 
Data-driven modular framework for your RPG. Define your game's foundations directly in the editor and iterate on balance during play mode.
Simple, lightweight, and easy to learn.Unity 2022.3 or higher versionIn order to have the sample scene working, you need to import Text Mesh Pro Essentials.✨ Key FeaturesStatistics & Attributes: Define the core building blocks for your gameExperience & Levels: Build a robust progression systemClasses & Progression: Design custom classes and unique progression pathsScaling Formulas: Create complex formulas for damage, healing, and other values using entities' stats and attributesEvent System: Enable dynamic game-object interactions with inspector-wired events and listenersUtilities: Helpful tools to streamline development. Ever used Int and Long variables as ScriptableObjects? Discover new possibilities!☝Why SOAP RPG Framework?While other RPG frameworks may have steep learning curves and require a lot of initial setup, the SOAP RPG Framework is built for simplicity and efficiency. It provides the most essential RPG features, but with a high degree of customizability, ensuring no limitations on your creative needs.Because it works right out of the box, you can skip the tedious boilerplate setup and dive directly into defining your game mechanics.🧼 Implemented on top of SOAP: Scriptable Object Architecture PatternDesigner-friendly: Most of the features are ScriptableObjects, easily created and wired in the Unity Inspector. Custom inspectors are available for everything.Reusable and modular: Objects can be reused across game objects and scenes. They are the building blocks for your game. Instantiate, compose, reuse. Changes instantly reflect on dependent objects. No duplication, no hassle.Easy testing: Swap objects, switch from class-based stats to fixed ones, or replace complex formulas—all without leaving play mode. Debugging and testing is effortless.🧩 Modular packagesThis is a standalone package that serves as foundation for an ecosystem of upcoming packages that are thought to seamlessly integrate together. You choose what to import, what to use, what you need. See more on our website.🤸♂️Highly flexibleIt is so flexible that you could use it for any game with entities that use statistics. Weapons, cars, planes, survivals: they are all built on top of raw statistics.Roadmap - what's next?While actively supporting this package we want to work on the publishing of the SOAP RPG Framework extensions. SOAP RPG Health and SOAP RPG Modifiers are already being developed. Take a look at the status on our website.Information & ContactQuestions, feedbacks, or bugs? Email us at electricdrill.info@gmail.com.AttributesAttributes 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.StatisticsStatistics 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.Experience & LevelsDefine 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 & ProgressionClasses (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.Scaling FormulasEasily 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 EventsGame 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:GameEvent: No context parameters. For simple events like 'Player Jumped', 'Player Slept', etc.IntGameEvent: One integer context parameter.EntityLeveledUpGameEvent: An event that carries along an EntityCore and an int as context parameters, where the EntityCore is the entity that leveled up and the int is the new level reached.StatChangedGameEvent: Notifies when a stat changes for a specific entity.AttributeChangedGameEvent: Notifies when an attribute changes for a specific entity.Game Event GeneratorsGame 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.Want to know more? Take a look at the documentationCopilot was used to generate the methods documentation; however, every method document was reviewed and corrected when needed.The custom inspector code was also first generated with Copilot. That code was then carefully reviewed and tuned to ensure that no bugs were being introduced by AI. Finally, AI was used to improve the form of the package documentation (which was written by hand in the first place).Overall, AI has proven useful for generating the base of the custom GUI code and for writing documentation, increasing productivity for these processes.
 
 
 
  
  
