Skip to content

01. Skill Datakeys & Styles

Sleys edited this page Jun 18, 2026 · 2 revisions

Skill Datakeys allow you to implement conditional logic based on the internal state of a combat skill. This lets you changes in style, or weapon states dynamically.


⚖️ Supported Types & Predicates

When using predicates, you can query both Passive and Innate skills with three data types:

  • passive_skill_boolean_data_key / innate_skill_boolean_data_key
  • passive_skill_integer_data_key / innate_skill_integer_data_key
  • passive_skill_float_data_key / innate_skill_float_data_key

📝 Simple Syntax Examples

1. Boolean Key

{
  "skill_data_key": "namespace:path",
  "expected_value": true
}

2. Integer Key

{
  "skill_data_key": "namespace:path",
  "expected_value": 5
}

3. Float Key

{
  "skill_data_key": "namespace:path",
  "expected_value": 2.5,
  "tolerance": 0.01
}

📝 Comparators Syntax Examples

1. Integer Key

{
  "skill_data_key": "namespace:path",
  "comparison_type": ">",
  "expected_value": 5
}

2. Float Key

{
  "skill_data_key": "namespace:path",
  "comparison_type": ">",
  "expected_value": 2.5,
  "tolerance": 0.01
}

💡 Good Practices

Internally, the system evaluates conditions in a linear order:

[Skill Key] ➡️ [Comparison Type] ➡️ [Expected Value (Constant)]

(e.g., If current charge is 8, then 8 > 5 evaluates to True).


⚔️ Combat Application

The Uchigatana Sheath: You can use a boolean key to check if a Katana is currently "Sheathed". If true, you force the player to change into a customized "Sheath combat style".

  "styles": {
    "default": "two_hand",
    "cases": [
      {
        "style": "two_hand",
        "conditions": [
          {
            "predicate": "epicfight:offhand_item_category",
            "category": "not_weapon"
          }
        ]
      },
      {
        "style": "sheath",
        "conditions": [
          {
            "predicate": "epicfight:passive_skill_boolean_data_key",
            "skill_data_key": "epicfight:sheath",
            "expected_value": true
          }
        ]
      }
    ]
  }

Dynamic Stances: Check if an Innate Skill reaches > 5 charges. If it does, you can swap the player's weapon stance from Two Handed to Ochs automatically until charges drop back to ≤ 5

  "styles": {
    "default": "two_hand",
    "cases": [
      {
        "style": "two_hand",
        "conditions": [
          {
            "predicate": "epicfight:offhand_item_category",
            "category": "not_weapon"
          }
        ]
      },
      {
        "style": "ochs",
        "conditions": [
          {
            "predicate": "epicfight:innate_skill_integer_data_key",
            "skill_data_key": "namespaces:charge",
            "comparison_type": ">",
            "expected_value": true
          }
        ]
      }
    ]
  }

Clone this wiki locally