An AbilitySystem developed based on Godot 4.4, designed to provide a powerful, modular, extensible, data-driven, and reusable capability system plugin based on an effect tree structure for various types of games.
- Composable skill effect system (based on effect_node_tree)
- Flexible resource management mechanism
- Complete Buff system
- Extensible damage calculation system
- Diverse target selection methods
- Event-driven skill triggering mechanism
- Editing functionality for effect_node_tree based on scene node tree
- Configuring skill effect trees through JSON files
- Clone or download this project.
- Place the project into the
addonsdirectory of your project to use it as a plugin. - Refer to the example code in the
examplesdirectory to implement your own combat system.
- docs/ Plugin documentation
- examples/ Example code for the plugin
- icons/ Custom node icons for the plugin
- source/
- core/ Core code, including content such as ability, ability_effect, and ability_resource
- common/ Implementation of classes like auto and factory
- ability/ Implementations of skill and buff derived from ability
- ability_cost/ Related to ability costs, you can inherit from AbilityCost to implement your own cost logic
- ability_cost_resource/ Skill cost resources, derived into health, mana, rage, etc.
- ability_effect_node/ Implementations related to effect_node
- scene/ Scenes and common widget implementations required by the plugin
- editor/ Editor functionality for the plugin's effect_node_tree
- utils/ General utilities, including constants, log processing, etc. ability_component.gd Core component of the skill system, added to scenes that require the skill system (e.g., Character) ability_attribute_component.gd Skill attribute component, providing attribute support for the skill system ability_resource_component.gd Skill resource component, providing cost resource support for the skill system, depends on ability_component
This project is open-sourced under the MIT License.
- All code in this project is open-sourced under the MIT License
- You are free to use, modify, and distribute the code
- You can use the code in both commercial and non-commercial projects
- When using the code, you must retain the original license and copyright notices
We welcome contributions! Please see our Contributing Guidelines for details on how to submit issues, pull requests, and contribute to the project.