Skip to content

11‐1. Simple Innate Skills

Sleys edited this page Jun 18, 2026 · 7 revisions

Simple Innate Skills are designed for clean, instant-execution combat abilities. Unlike conditional or channeled mechanics, they trigger a single standalone animation mapped to one unified property block upon key activation.


📁 File Locations & Loading Methods

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:

⚙️ Option A: Local Config Folder

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/simple_innate_skill/*.json
  • ⚠️ Rule: You MUST explicitly declare the modid field inside the JSON when using this folder.

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

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/simple_innate_skill/*.json
  • 💡 Rule: The modid field can be safely omitted inside the JSON because the directory's namespace acts as the fallback signer automatically.

📄 JSON Structure & Schema

The 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.

{
  "modid":"epicfight",
  "name": "fatal_sharp_stab",

  "animation": "epicfight:biped/skill/sharp_stab",
  "properties_type": "mono_phase",

  "properties": {
    "max_strikes": 1.0,
    "damage_multiplier": 7.0,
    "armor_negation": 20.0,
    "impact": 1.6,
    "stun_type": "long"
  },

  "tooltip": [
    {
      "argTargetType": "key_binding",
      "translatableKey": "key.mouse.right",
      "colorKey": "aqua"
    },
    {
      "argTargetType": "scripted_text",
      "translatableKey": "fatal_sharp_stab.skill.des",
      "colorKey": "dark_purple"
    }
  ]
}

📋 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