Astra RPG Framework provides a complete, data-driven backbone for your RPG, letting you define your game's foundations directly in the editor and iterate on balance during play mode.
Simple, lightweight, and easy to learn. No configuration required: works out of the box with zero setup.
Attributes are the core numerical values that define an entity's capabilities. In most RPGs these include strength, dexterity, intelligence, constitution, etc. You define your own attributes, choosing their names and min/max values as needed.
Group attributes into attribute sets—shareable objects reusable across entities.
Supports both flat and percentage modifiers.
Statistics are derived values that directly affect gameplay, such as Physical Attack, Armor, Crit Chance, and movement speed. Define custom statistics and organize them into sets tailored for each entity. Statistic sets can be modular—for example, create separate sets for movement, offense, and defense, then assign only what's relevant to each entity.
Statistics can scale with attributes. Define how each statistic scales based on one or more attributes.
Like attributes, statistics can have lower and upper bounds.
Statistics support flat and percentage modifiers, plus powerful stat-to-stat modifiers. Create buffs/debuffs that change a statistic based on another statistic's value.
Define custom level progression curves and experience requirements for each level.
If an entity doesn't level up, set fixed base stats and attributes. Set up simple entities in seconds.
Classes (like warrior, mage, rogue, etc.) let you define unique progression paths for attributes and statistics. Assign progression curves for each attribute and statistic to each class for distinct play styles.
Balance progression curves in real-time—test and iterate instantly during play mode.
Easily build complex formulas for damage, healing, and other values using stats and attributes. Drag and drop scaling components to visually assemble formulas in the custom inspector.
Formulas are fully customizable. Set a fixed base value or make it scale dynamically with levels. Add scaling components to adjust values based on the caster’s or target’s stats and attributes—or both.
Add and remove temporary scaling components at runtime for advanced mechanics. For example, a potion might grant "Your next base attack deals extra damage equal to 50% of your Constitution." Drinking it adds a temporary scaling component to the base attack formula; after the attack, the temporary scaling component is removed.
Reuse formulas across entities and scenarios for consistency and reduced redundancy.
See the impact of changes instantly in play mode, enabling rapid iteration and fine-tuning of game balance.Game events are ScriptableObjects. Instantiate events in your assets, then drag & drop them into scripts that raise them and into Game Event Listeners that define responses. Testing your game's logic from the inspector is easier than ever.
The framework provides a set of predefined game events (and MonoBehaviour listeners) to get you started quickly:
Game Event Generators are powerful tools for generating C# source code for custom game events. Use the custom inspector to create new event types with up to 4 context parameters—these can be native C# types or your own classes.
Game Event Generators are also ScriptableObjects. Instantiate multiple generators to organize different sets of events for your project. Each generator can manage its own context-specific events.
GameActions, deriving from ScriptableObject, allow to incapsulate game logic in reusable assets to share across multiple game objects and scenes.
They are implemented on top of Awaitables to support asynchronous operations and chaining of game logic. They can be even used with UnityEvents, meaning that you can drag&drop them in compatible GameEventListeners and invoke their logic upon event raising.
Available now on the Unity Asset Store: Astra RPG Framework
Questions, feedback, or bugs? Email us at electricdrill.info@gmail.com.
Chat with the community on Discord: Discord Server
Discuss on Unity Forums: Unity Forum Discussion
A complete health and damage system built on Astra RPG Framework's data-driven foundation.
Astra RPG Health adds robust health management to your entities. Handle damage, healing, death, and resurrection with a flexible pipeline that adapts to your game's mechanics.
Simple to set up, powerful in action. Customize damage types, reduction formulas, and calculation pipelines without touching code.
A new MonoBehaviour component adds health management to any entity. Entities can take damage, heal, die, and resurrect.
Set maximum health, track current health, and configure death thresholds. Everything integrates with the core framework's stats and attributes.
Damage types represent categories of damage in your game—Physical, Magic, Fire, Poison, etc. Define your own types as ScriptableObjects.
Optionally link each damage type to a defensive statistic. For example, "Physical Damage" reduced by "Armor", or "Magic Damage" reduced by "Magic Resistance". True damage can be implemented as a damage type with no associated defensive stat.
Assign piercing statistics to ignore portions of defense. "Armor Pierce" could reduce the effectiveness of "Armor" when calculating net damage.
Damage sources represent the origin of damage—Skill, Trap, Environmental, etc. They can be used for advanced damage handling scenarios (e.g. damage source based damage reduction), or for tracking damage in combat logs (e.g. player took 350 damage from traps, 2400 damage from enemies, and 0 damage form environment). Also these are defined as ScriptableObjects, allowing flexible categorization to tailor damage handling to your needs.
Model how defensive stats reduce incoming damage using mathematical functions. The package includes three common functions:
Implement custom reduction functions if the defaults don't fit your needs.
Piercing stats use reduction functions too, determining how they bypass defense.
The same flat, percentage, and logarithmic functions are available out of the box.
The damage calculation pipeline transforms raw damage into net damage through customizable steps. Configure the order of operations to match your game's mechanics.
Pre-defined steps include:
Set a default pipeline for all entities, or assign custom pipelines to specific entities. Override pipelines at runtime for temporary effects or boss mechanics.
For example, add a damage limiter step to boss entities to cap incoming damage at 10% of max HP. Or implement a debuff that doubles electric damage by swapping in a custom pipeline with an extra electric damage multiplier step.
This flexibility makes implementing complex damage mechanics straightforward.
Heal sources identify where healing comes from—Potion, Skill, Regeneration, Lifesteal, Ally, Self, etc.
Use heal sources to implement mechanics like bonus healing from specific sources or reduced healing from enemies.
Lifesteal converts dealt damage into health for the attacker. The system is highly configurable.
Link lifesteal stats to specific damage types and choose which pipeline step it applies to—raw damage, net damage, pre-mitigation, post-mitigation, before barrier, after barrier, etc.
You can fine-tune lifesteal application timing to fit your game's design.
Entities die when health reaches zero, or at a custom death threshold. Negative thresholds enable "down but not out" mechanics.
Death strategies define what happens on death. Set a default strategy and override for specific entities.
Pre-defined death strategies:
Use death strategies to integrate with your architecture—return to object pools, trigger events, play animations, drop loot, etc.
Bring dead entities back to life through the API. Restore health as a flat value or percentage of maximum health.
Resurrection strategies define behavior when resurrecting. Out of the box:
Extend scaling formulas to use health values. Scale based on maximum health, current health, or missing health.
Build abilities that grow stronger as health decreases. Create healing that scales with max HP. Design berserker mechanics that reward risk. And more.
New game events for health-related actions:
Wire these events to your game logic for abilities, UI updates, sound effects, particles, etc.
Planned for Unity Asset Store after documentation phase.
Questions, feedback, or bugs? Email us at: electricdrill.info@gmail.com.
Chat with the community on Discord: Discord Server
A dynamic layering system for temporary or permanent stat & attribute alterations supporting stacking rules, duration strategies and custom effect logic.
Will enter design phase after Health module release. Store listing TBD.
Early design collaboration: electricdrill.info@gmail.com.
Chat with the community on Discord: Discord Server
Documentation & demos will appear after prototype milestone.
Each package is fully isolated—only the Astra RPG Framework is required as a foundation for the others. All modules are modular, testable, designer-friendly, and make minimal assumptions about your project structure. We prioritize ScriptableObject-first, data-driven design, enabling you to tweak and balance your game directly in play mode, without recompilations or code changes.