-
Notifications
You must be signed in to change notification settings - Fork 0
11‐4. Stacks Conditional Innate Skills
Stacks Conditional Innate Skills support condition-based execution. Depending on the player's state at the moment of activation & skill stacks, the skill selects a specific animation and property configuration. If no condition is met, the default configuration (normal) is applied.
Depending on whether you want users to be able to modify categories locally or bundle them inside your mod, choose one of the following paths:
Use this path if you want the setup to be easily accessible/editable by servers or pack devs.
-
Path:
.minecraft/config/epicfight_edp/innate_skill_builder/stacks_conditional_innate_skill/*.json ⚠️ Rule: You MUST explicitly declare themodidfield inside the JSON when using this folder.
Use this path to ship categories natively pre-configured inside your mod jar file or data-driven setup.
-
Path:
data_driven/<your_modid>/innate_skill_builder/stacks_conditional_innate_skill/*.json - 💡 Rule: The
modidfield can be safely omitted inside the JSON because the directory's namespace acts as the fallback signer automatically.
The Conditional skills configuration supports both "mono_phase" and "multi_phase" property layouts, depending on the requirements of the skill. The example below uses the "mono_phase" setup for clarity for each condition.
This is an extension of conditional skills; it supports the same number of parameters and the same tooltip system (normal, sprinting, in_air, kneeling, use_item).
{
"modid": "epicfight",
"name": "stacks_fatal_slash",
"conditions": {
"normal": {
"animation": "epicfight:biped/skill/battojutsu",
"properties_type": "mono_phase",
"stacks": 1,
"properties": {
"max_strikes": 1.0,
"damage_multiplier": 5.0,
"armor_negation": 20.0,
"impact": 1.6,
"stun_type": "long"
}
},
"sprinting": {
"animation": "epicfight:biped/skill/battojutsu_dash",
"properties_type": "mono_phase",
"stacks": 2,
"properties": {
"max_strikes": 1.0,
"damage_multiplier": 8.0,
"armor_negation": 20.0,
"impact": 1.6,
"stun_type": "long"
}
},
"kneeling": {
"animation": "epicfight:biped/skill/wrathful_lighting",
"properties_type": "mono_phase",
"stacks": 4,
"properties": {
"max_strikes": 1.0,
"damage_multiplier": 16.0,
"armor_negation": 20.0,
"impact": 1.6,
"stun_type": "long"
}
}
},
"tooltip": [
{
"argTargetType": "key_binding",
"translatableKey": "key.sprint",
"colorKey": "aqua"
},
{
"argTargetType": "key_binding",
"translatableKey": "key.sneak",
"colorKey": "aqua"
}
]
}| Field | Type | Description |
|---|---|---|
| modid | String | The target mod namespace used to register the skill. |
| name | String | Unique internal identifier for your custom innate skill. |
| animation | String | The resource location path to the core attack animation file. |
| stacks | Integer | The number of skill points needed to execute and be consumed; the skill will consume the same number of points needed to execute. |
| properties_type | String | Must be set strictly to "mono_phase" for simple skills. |
The nested fields inside the properties block control the weapon's direct gameplay mechanics during execution
| Property | Type | Description |
|---|---|---|
| max_strikes | Float | Maximum number of targets/entities that can be hit in a single sweep. |
| damage_multiplier | Float | Raw base attack damage scaling factor. |
| armor_negation | Float | Percentage value of the victim's armor ignored during damage calculations. |
| impact | Float | Stagger intensity and hit-reaction strength forced onto the target. |
| stun_type | String | The visual/mechanical stun state applied on hit (See options below). |
| extra_damage | Boolean | Allows the ability's damage to scale with the Sweeping Edge enchantment. |
When defining your stun_type string value, use any of the following standard identifiers (case-insensitive but lowercase matches conventions):
- short
- long
- hold
- knockback
- neutralize
- fall
- none
The tooltip array defines a list of text components displayed in the skill description. Each entry is resolved independently and can represent a key binding, localized text, or a dynamically calculated numeric value.
Components are rendered in the order they appear in the array.
- key_binding: Displays the currently assigned key for the specified key mapping.
{
"argTargetType": "key_binding",
"translatableKey": "key.mouse.right",
"colorKey": "aqua"
}- scripted_text: Displays a translatable text component.
{
"argTargetType": "scripted_text",
"translatableKey": "example.skill.description",
"colorKey": "gold"
}- damage_operation: Displays a numeric value that can be calculated from either a fixed base value or the attack damage of the held item.
{
"argTargetType": "damage_operation",
"baseValue": 10.0,
"operation": "multiplication",
"modifier": 1.5,
"format": "%.1f",
"colorKey": "red"
}| Property | Required | Description |
|---|---|---|
| argTargetType | Yes | Type of component to render. |
| translatableKey | Depends | Translation key or keybinding identifier used by the component. |
| colorKey | No | Text color applied to the rendered component. |
| baseValue | No | Base numeric value used by damage_operation. |
| operation | No | Mathematical operation applied to the value. |
| modifier | No | Operand used by the selected operation. |
| format | No | Java format string used to display numeric values. |
Supported Operations
The following operations are available for damage_operation
| Operation | Result |
|---|---|
| addition | base + modifier |
| subtract | base - modifier |
| multiplication | base * modifier |
| division | base / modifier |
If baseValue is omitted, the component uses the attack damage of the provided item stack as its starting value. This allows tooltip values to scale dynamically with weapon attributes.