Simple JRPG
Turn-Based Combat API for Unity
Your rules, your formulas.
Coming Soon — Free
Stop Writing Battle Systems from Scratch
Simple JRPG handles the battle flow so you can focus on what makes your game unique — your damage formulas, your status effects, your UI. Set up your characters, pick a turn system, and start calling actions. Simple JRPG manages turn order, tracks battle state, and notifies you whenever something happens so you can react however you want.
You Do the Math
Simple JRPG doesn't care what your stats look like, what "Fire" means in your game, or how you calculate damage. That's all yours.
We Run the Battle
Turn order, state tracking, win/loss detection, event broadcasting. Create a battle, add characters, pick a turn system — you're running.
Pure C#
No singletons, no MonoBehaviours, no ScriptableObjects, no Unity dependencies. Test your battle logic anywhere .NET runs.
5 Turn Systems Included
Classic
Characters act in speed order, one round at a time. The standard JRPG turn system.
ATB (Active Time Battle)
Each character has a gauge that fills based on speed. When it's full, they act. Faster characters act more often.
Timeline / CTB
Every action has a cost. Heavy attacks push your next turn further away. A visible timeline shows who acts when.
Press Turn
Teams take turns in phases. Each phase starts with action points. Smart plays conserve them; mistakes waste them.
Action Point
Save points by skipping your turn, then spend them later for multiple actions in a row. Risk and reward.
Build Your Own
Implement the turn system interface and create whatever turn order logic your game needs.
11 Actions, 20 Events
Actions
- DealDamage — hit one target or a whole group
- Heal — restore HP to one or many
- Kill — instantly knock out a character
- Revive — bring back a knocked-out character
- ApplyStatus / RemoveStatus — poison, stun, whatever you define
- ApplyBuff / RemoveBuff — attack up, defense down, your call
- Flee — escape from battle
- RemoveCombatant — pull a character out entirely
- EndBattle — manually end with a specific outcome
Events
- Battle started / ended
- Turn started / ended
- Before damage / before heal (intercept and modify)
- Damage dealt / healed
- Character KO'd / revived
- Status applied / removed
- Buff applied / removed
- Fled / character removed
- Group damage / group heal
- Group status / group buff
Every action fires an event. Listen for what you care about — update UI, play animations, trigger sound.
Intercept Actions Before They Happen
The "before damage" and "before heal" events fire before the action goes through. Change the damage amount, boost healing, or cancel the action entirely. Use these to build dodge mechanics, shields, damage reduction, healing amplification — anything.
What's Included
Documentation
- 11-page HTML docs
- Multi-page + single-page format
- Light/dark mode
- Full API reference
Cookbook
- 15 copy-paste recipes
- Mana costs, elemental weakness
- Status timers, buff stacking
- Critical hits, drain, instant kill
Demos
- 5 interactive demo scenes
- One per turn system
- Demo Hub for navigation
- Template Generator
Template Generator
Window > Simple JRPG > Generate Battle Controller. Pick a turn system, name your script, hit Generate. Get a complete, ready-to-run script with placeholder logic and TODO comments showing exactly what to customize. Attach to a GameObject, hit Play — working battle.
Technical Details
Your Characters
Your character class provides: name, alive status, team, speed, take damage, and heal. Beyond that, add whatever you want — MP, defense, elements, equipment. Simple JRPG never touches your custom stats.
Clean Code
No singletons, no global state. Create a battle, use it, done. Run multiple battles simultaneously. Pure C# with zero engine dependencies.
Requirements
- Unity 2021.3+
- Any project template
- No dependencies
- All platforms
Battle Orchestration, Handled
5 turn systems. 11 actions. 20 events. Zero opinions on your game design.
Coming Soon — Free on Unity Asset Store