Skip to content

07‐3. Add Category to Guard Skills

Sleys edited this page Jun 18, 2026 · 9 revisions

This is an advanced configuration for integrating Guard and Parry systems. It maps weapon categories to Guard Skills while managing animation sets, single/multi-frame triggers, and style-specific behaviors.

📁 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/skill_builder/guard_skills/*.json

📦 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/<mod_id>/skill_builder/guard_skills/*.json

📊 Animation Sets Requirements

Depending on the target skill type, you must provide either 2 or 3 animation configurations:

  • Guard / Impact Guard: Requires 2 sets (guard_motion and guard_break_motion).
  • Parrying-like Skills: Requires 3 sets (guard_motion, guard_break_motion, and guard_advanced_motion).

📋 Core Parameters

Field Type Description
skill_guard_builder Array Root array storing all guard skill configuration entries.
skill_guard_id String The target Epic Fight Guard Skill ID (Must inherit from Guard Skill).
category String The weapon category to be appended to the Guard Skill.

🎬 Animation Configuration Fields

Animation Field Description Supported Types
guard_motion Played when the player successfully guards an attack. Only single
guard_break_motion Played when posture/stamina breaks, stunning the player. Only single
guard_advanced_motion Special interaction (e.g., Parry deflection or Miracle counter). single or multi

⚙️ Sub-Configuration & Stance Parameters

Inside each animation entry object, you must specify how the file handles type execution and combat styles:

  • type (String): Defines animation structure.
    • single: Plays a single animation frame/file.
    • multi: Uses an array of animations. Note: Only guard_advanced_motion supports multi. Setting this type on standard guard or break motions is invalid.
  • per_style (String/Array): Defines style-specific parameters.
    • Use specific style identifiers if you want stance-dependent animations (e.g., one_hand, two_hand).
    • 💡 The return Keyword: Use "return" to completely ignore the player's current stance. If you set "per_style": "return", the system bypasses style checks entirely—DO NOT assign standard styles if you use this keyword.

📄 JSON Structure & Schema

{
  "skill_guard_builder": [
    {
      "skill_guard_id": "epicfight:guard",
      "category": "dagger",
      "guard_motion": {
        "type": "single",
        "per_style": {
          "one_hand": "epicfight:biped/skill/guard_sword_hit",
          "two_hand": "epicfight:biped/skill/guard_dualsword_hit"
        }
      },
      "guard_break_motion": {
        "type": "single",
        "per_style": {
          "return": "epicfight:biped/skill/guard_break1"
        }
      }
    },
    {
      "skill_guard_id": "epicfight:impact_guard",
      "category": "dagger",
      "guard_motion": {
        "type": "single",
        "per_style": {
          "one_hand": "epicfight:biped/skill/guard_sword_hit",
          "two_hand": "epicfight:biped/skill/guard_dualsword_hit"
        }
      },
      "guard_break_motion": {
        "type": "single",
        "per_style": {
          "return": "epicfight:biped/skill/guard_break1"
        }
      }
    },
    {
      "skill_guard_id": "epicfight:parrying",
      "category": "dagger",
      "guard_motion": {
        "type": "single",
        "per_style": {
          "one_hand": "epicfight:biped/skill/guard_sword_hit",
          "two_hand": "epicfight:biped/skill/guard_dualsword_hit"
        }
      },
      "guard_break_motion": {
        "type": "single",
        "per_style": {
          "return": "epicfight:biped/skill/guard_break1"
        }
      },
      "guard_advanced_motion": {
        "type": "multi",
        "per_style": {
          "one_hand": [
            "epicfight:biped/skill/guard_sword_hit_active1",
            "epicfight:biped/skill/guard_sword_hit_active2"
          ],
          "two_hand": [
            "epicfight:biped/skill/guard_sword_hit_active2",
            "epicfight:biped/skill/guard_sword_hit_active3"
          ]
        }
      }
    }
  ]
}

🎥 In-Game Showcase

2026-06-17.22-44-20.mp4

⚠️ CRITICAL RULES:

  • No Override Support: This system does NOT allow overrides.
  • A single weapon category declaration can be safely reused across multiple distinct Guard Skills.

Clone this wiki locally