Skip to content

11‐3. Conditional Innate Skills

Sleys edited this page Jun 18, 2026 · 6 revisions

Conditional Innate Skills support condition-based execution. Depending on the player's state at the moment of activation, the skill selects a specific animation and property configuration. If no condition is met, the default configuration (normal) is applied.

📁 Directory Paths

Drop your JSON configuration files into either of the following paths depending on your development environment:

⚙️ Option A: Local Config Folder

  • Path: .minecraft/config/epicfight_edp/innate_skill_builder/conditional_innate_skill/*.json

📦 Option B: In-Jar (Bundled Data-Driven)

  • Path: data_driven/<your_modid>/innate_skill_builder/conditional_innate_skill/*.json

📄 JSON Structure & Schema

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.

The fields are not mandatory, you can use any of them.

{
  "modid": "epicfight",
  "name": "fatal_slash",
  "conditions": {
    "normal": {
      "animation": "epicfight:biped/skill/battojutsu",
      "properties_type": "mono_phase",
      "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",
      "properties": {
        "max_strikes": 1.0,
        "damage_multiplier": 8.0,
        "armor_negation": 20.0,
        "impact": 1.6,
        "stun_type": "long"
      }
    },
    "in_air": {
      "animation": "epicfight:biped/skill/rushing_tempo3",
      "properties_type": "mono_phase",
      "properties": {
        "max_strikes": 1.0,
        "damage_multiplier": 12.0,
        "armor_negation": 20.0,
        "impact": 1.6,
        "stun_type": "long"
      }
    },
    "kneeling": {
      "animation": "epicfight:biped/skill/wrathful_lighting",
      "properties_type": "mono_phase",
      "properties": {
        "max_strikes": 1.0,
        "damage_multiplier": 16.0,
        "armor_negation": 20.0,
        "impact": 1.6,
        "stun_type": "long"
      }
    },
    "use_item": {
      "animation": "epicfight:biped/skill/sharp_stab",
      "properties_type": "mono_phase",
      "properties": {
        "max_strikes": 1.0,
        "damage_multiplier": 20.0,
        "armor_negation": 20.0,
        "impact": 1.6,
        "stun_type": "long"
      }
    }
  },

  "tooltip": [
    {
      "argTargetType": "scripted_text",
      "translatableKey": "skill.epicfight.fatal_slash.air",
      "colorKey": "aqua"
    },
    {
      "argTargetType": "key_binding",
      "translatableKey": "key.mouse.right",
      "colorKey": "aqua"
    },
    {
      "argTargetType": "key_binding",
      "translatableKey": "key.sprint",
      "colorKey": "aqua"
    },
    {
      "argTargetType": "key_binding",
      "translatableKey": "key.sneak",
      "colorKey": "aqua"
    }
  ]
}

📋 Parameters & Field Definitions

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.
properties_type String Must be set strictly to "mono_phase" for simple skills.

⚔️ Combat Properties Matrix

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.

💥 Valid Hit Stun Types

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

📋 Tooltip (opcional)

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.

Supported Component Types

  1. key_binding: Displays the currently assigned key for the specified key mapping.
{
  "argTargetType": "key_binding",
  "translatableKey": "key.mouse.right",
  "colorKey": "aqua"
}
  1. scripted_text: Displays a translatable text component.
{
  "argTargetType": "scripted_text",
  "translatableKey": "example.skill.description",
  "colorKey": "gold"
}
  1. 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"
}

📋 Component Properties

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

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.

Clone this wiki locally