Repository navigation
Conditional Holdable Innate Skills
Conditional Holdable Innate Skills are designed for chargeable combat abilities whose released animation depends on the player's current physical condition.
Unlike Simple Innate Skills, which execute a single animation immediately, or Holdable Innate Skills, which use a predefined release animation, Conditional Holdable Innate Skills can select a different animation and set of properties depending on the condition that is satisfied when the skill is released.
A skill can therefore provide different attacks for states such as:
- Normal
- Kneeling
- Sprinting
- In Air
- Using an Item
The skill uses a dedicated charging animation while the player holds the skill, then selects the appropriate conditional animation when the skill is released.
Depending on whether you want users to be able to modify the skills 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 and editable by servers or pack developers.
-
Path:
.minecraft/config/epicfight_edp/innate_skill_builder/holdable_conditional_innate_skill/*.json ⚠️ Rule: You MUST explicitly declare themodidfield inside the JSON when using this folder.
Use this path to ship skills natively pre-configured inside your mod jar or data-driven setup.
-
Path:
data_driven/your_modid/innate_skill_builder/holdable_conditional_innate_skill/*.json - 💡 Rule: The
modidfield can be safely omitted inside the JSON because the directory's namespace acts as the fallback namespace automatically.
{
"modid": "epicfight",
"name": "conditional_holdable",
"chargeAnimation": "epicfight:biped/skill/steel_whirlwind_charging",
"maxAllowedCharging": 45,
"maxChargingTicks": 30,
"minChargingTicks": 15,
"reduceSpeed": true,
"playbackForCharging": true,
"holdable_conditions": {
"normal": {
"animation": "epicfight:biped/skill/steel_whirlwind",
"playbackForRelease": false,
"properties": [
{
"max_strikes": 1.0,
"damage_multiplier": 1.2,
"impact": 1.0,
"stun_type": "SHORT"
},
{
"max_strikes": 2.0,
"damage_multiplier": 2.4,
"impact": 1.5,
"stun_type": "SHORT"
},
{
"max_strikes": 3.0,
"damage_multiplier": 4.8,
"armor_negation": 10.0,
"impact": 3.0,
"stun_type": "KNOCKBACK",
"extra_damage": true
}
]
},
"kneeling": {
"animation": "epicfight:biped/skill/wrathful_lighting",
"playbackForRelease": false,
"properties": [
{
"max_strikes": 1.0,
"damage_multiplier": 8.0,
"armor_negation": 20.0,
"impact": 1.6,
"stun_type": "long"
}
]
}
}
}| Field | Type | Description |
|---|---|---|
| modid | String | The target mod namespace used to register the skill. |
| name | String | Unique internal identifier for the custom innate skill. |
| chargeAnimation | Resource Location | Animation played while the skill is being charged. |
| disableTooltipProperties | Boolean | Prevents animation properties from being displayed in the tooltip. |
| maxAllowedCharging | Integer | Maximum amount of charging allowed by the skill. |
| maxChargingTicks | Integer | Maximum charging time in ticks. |
| minChargingTicks | Integer | Minimum charging time required before the skill can be released. |
| reduceSpeed | Boolean | Determines whether the player's movement speed is reduced while charging. |
| playbackForCharging | Boolean | Modifies the animation playback speed based on the load; initially it will be normal and then it will slow down while loading. |
| playbackForRelease | Boolean (optional, default false) | The speed of the animation depends on the amount of charge it carries when released. |
| tooltip | Array | Optional list of custom tooltip components. |
| holdable_conditions | Object | Conditions and animations used when the skill is released. |
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.
The disableTooltipProperties field prevents the automatic animation phase properties from being displayed in the skill tooltip. disableTooltipProperties": true By default: "disableTooltipProperties": false When disabled, custom tooltip components can still be used. This is useful when the skill requires a fully customized tooltip rather than automatically displaying its animation properties.
Multiple Conditional Attacks A single holdable skill can provide several different attacks.
{
"modid": "epicfight",
"name": "conditional_holdable",
"chargeAnimation": "epicfight:biped/skill/steel_whirlwind_charging",
"maxAllowedCharging": 45,
"maxChargingTicks": 30,
"minChargingTicks": 15,
"reduceSpeed": false,
"playbackForCharging": true,
"holdable_conditions": {
"in_air": {
"animation": "example:air_attack",
"playbackForRelease": false,
"properties": [
{
"max_strikes": 1.0,
"damage_multiplier": 3.0,
"impact": 1.5,
"stun_type": "long"
}
]
},
"sprinting": {
"animation": "example:dash_attack",
"playbackForRelease": false,
"properties": [
{
"max_strikes": 2.0,
"damage_multiplier": 4.0,
"impact": 2.0,
"stun_type": "knockback"
}
]
},
"kneeling": {
"animation": "example:ground_attack",
"playbackForRelease": false,
"properties": [
{
"max_strikes": 1.0,
"damage_multiplier": 5.0,
"impact": 2.5,
"stun_type": "long"
}
]
},
"normal": {
"animation": "example:normal_attack",
"playbackForRelease": false,
"properties": [
{
"max_strikes": 1.0,
"damage_multiplier": 2.0,
"impact": 1.0,
"stun_type": "short"
}
]
}
}
}The resulting behavior can be represented as:
Release
│
▼
┌───────────────┐
│ Player State │
└───────┬───────┘
│
┌───────────────┼───────────────┐
│ │ │
▼ ▼ ▼
In Air Sprinting Kneeling
│ │ │
▼ ▼ ▼
Air Attack Dash Attack Ground Attack
│ │ │
└───────────────┼───────────────┘
│
▼
No special
condition
│
▼
Normal Attack
- 💡 For a holdable skill with only one release animation, use a Holdable Innate Skills.
- 💡 For a skill that immediately executes a single animation without charging, use a Simple Innate Skills.
- 💡 For a skill that selects its animation based on stored Data Packets rather than physical state, use a Conditional Data Innate Skills.
EF: Extended Datapacks
📦 Data
🧰 Core
👁️ Visuals
- Zoom Types
- Weapon Models per Style
- Advanced Swing Trails
- Weapons Passive Particles
- Shader Effects I
- Shader Effects II
- Shader Effects III
⚔️ Combat
🗝️ Skill Builder
🛠️ Innate Builder
- Simple Innate Skills
- Holdable Innate Skills
- Conditional Innate Skills
- Conditional Data Innate Skills
- Conditional Holdable Innate Skills
- Sequential Innate Skills
- Per Combo Innate Skills
- Combo Innate Skills
🗡️ Animation Operations
- Animation Operations
- Animation Properties
⚙️ Third-Party