Endless-Autofighter
Midori AI — Endless-Autofighter
Endless-Autofighter (a.k.a. Midori AI AutoFighter) is a web-based auto-battler that blends tactical party management, elemental systems, collectible characters, and deep progression systems into a compact, replayable experience. Built with a Svelte frontend and a Python Quart backend, the project supports both lightweight local play and optional LLM-enhanced features for narrative and chat.
Quick snapshot
- Platform: Web (Svelte frontend, Python Quart backend)
- Play mode: Auto-battler / roguelite runs (45-room floors, procedurally-generated maps)
- Key systems: Elemental damage types, DoT/HoT effects, relics & cards, gacha-style recruits, action-gauge turn order
- Deployment: Runs with Docker Compose; optional LLM profiles for CPU/GPU
Core Features
Strategic Party Combat
Combat runs automatically, but depth comes from pre-run party composition, relics, and upgrade choices. Party size, element synergies, and relic combinations all materially change how a run plays out.
Elemental Damage Types and Effects
Each damage type (Fire, Lightning, Ice, Wind, Light, Dark, etc.) is implemented as a plugin providing unique DoT/HoT mechanics and signature ultimates. The system supports stacking DoTs, multi-hit ultimates, and effects that interact in emergent ways.
Action Queue & Turn Order
Every combatant uses an action gauge system (10,000 base gauge) to determine turn order. Lower action values act first; action pacing and visible action values help players plan and anticipate important interactions.
Relics, Cards, and Rewards
Wins award gold, relic choices, and cards. Players pick one card (or relic) from curated choices after fights. Relics unlock passive and active synergies and can alter run-level mechanics like rare drop rate (RDR).
Roster & Character Customization
Playable characters are defined as plugin classes in backend/plugins/characters/
. Each fighter exposes passives, signature moves, and metadata (about
and prompt
) for future LLM integration. An in-game editor lets players distribute stat points, choose pronouns, and set a damage type for the Player slot.
Procedural Maps & Rooms
Each floor contains 45 rooms generated by a seeded MapGenerator
and must include at least two shops and two rest rooms. Rooms types include battle (normal/boss), rest, shop, and scripted chat scenes (LLM-dependent).
Optional LLM Enhancements
When LLM extras are enabled, the game supports:
- LLM-powered chat with party members (per-run scoped memory via ChromaDB)
- Model testing and async model loading
- Player and foe memory for richer interactions
How to Play (Quick Start)
Recommended: Docker Compose (easiest)
Prerequisites: Docker & Docker Compose installed.
Download the Repo - https://github.com/Midori-AI-OSS/Midori-AI-AutoFighter
Standard run (frontend + backend):
docker compose up --build frontend backend
Open your browser to http://YOUR_SYSTEM_IP:59001
.
Deep Dive — Systems & Mechanics
Combat details
- Foes scale by floor, room pressure, and loop count. Each defeated foe temporarily boosts the run’s
rdr
by +55% for the remainder of the battle, increasing relic and gold expectations. - Boss rooms have increased relic drop odds and unique encounter rules (always spawn exactly one foe).
- Effect hit rate and resistance interact such that very high effect hit rates can apply multiple DoT stacks by looping in 100% hit chunks.
Damage types and canonical behaviors
- Fire: Scales with missing HP, applies “Blazing Torment” DoT, ultimate scorches all foes at the cost of self-burn stacking.
- Lightning: Pops DoTs on hit and applies “Charged Decay” (stun on final tick); ultimate scatters DoTs and grants Aftertaste.
- Ice: Applies Frozen Wound (reduces actions per turn) and cold wounds with stack caps; big ultimates hit multiple times with scaling.
- Wind: Repeats hits and applies Gale Erosion (reduces mitigation); ultimates strike many targets repeatedly.
- Light / Dark: Support and drain mechanics (heals, shields, HP siphon, and field-wide status effects).
Progression and economy
- Gold, relics, card picks, and upgrade items form the core progression loop. Shops heal a fraction of party HP and sell upgrade items and cards.
- Pull tickets are extremely rare but can be earned via very low odds; relics and card star ranks can be improved by extremely high
rdr
values.
Plugin-based architecture
The backend auto-discovers plugin modules (players, foes, relics, cards, adjectives) and wires them through a shared event bus. Plugins expose metadata like about
and optional prompt
strings to support future AI features.
Playable Roster (high-level)
A large roster lives in backend/plugins/characters/
with defined rarities and special signature traits. Story-only characters like Luna remain encounter-only; others are gacha recruits. See the README and ABOUTGAME.md
for the full table of characters and signature abilities.
Contributing
We welcome contributions. If you’d like to help:
- Check
AGENTS.md
and.codex/
for contributor guides and implementation notes - Run tests before opening a PR
- Keep imports and coding style consistent with repo conventions (see
AGENTS.md
)
Assets & Screenshots
Screenshots used in docs live in .codex/screenshots/
.
Links & Resources
- Repository root: https://github.com/Midori-AI-OSS/Midori-AI-AutoFighter
- Issues: https://github.com/Midori-AI-OSS/Midori-AI-AutoFighter/issues
- Discord: https://discord.gg/xdgCx3VyHU
This page was autogenerated from repository docs (README.md & ABOUTGAME.md). If you’d like changes, edit the source documents or open a PR.