Preskoči na sadržaj

Custom entity datapack

Epic Fight isn't normally compatible with other mods, especially with the entities. So you have to manually define the entity's model, animations, and other attribute values. This can be achieved by using Datapack.


Making the pack.mcmeta file

First, you'll need to create a pack.mcmeta file. Here's how to do it:

  1. Create the File:
    - Start by creating a new text file.
    - Rename the file to pack.mcmeta. Ensure that file extensions are visible so you can properly change the extension (e.g., from .txt to .mcmeta).

  2. Edit the File:
    - Open the file with a text editor and add the following code for your datapack to function properly:

{
    "pack":{
        "pack_format":48,
        "description":"A short description on your pack"
        }
}

pack_format Values

Version Value
1.16.5 6
1.17.x 7
1.18.2 8
1.19.2 9
1.20.1 15
1.21.1 48


Defining the JSON File and Directory Structure

Before creating a JSON file, it's important to determine the registry name of the entity you want to make compatible. In Minecraft, you can find a list of all currently registered entities by using the /summon command in the game. When you type /summon and press the Tab key, it will display a list of available entity registry names. These names are what you will use to reference the entities in your JSON file.

Most registry names follow the format modid:entityname, where modid represents the identifier for the mod, and entityname is the specific name of the entity. Once you have identified the registry name, you can create the JSON file in the appropriate directory structure based on this format. The file should be placed under the following path: data/"modid"/epicfight_mobpatch/"entityname".json


Obtaining armature, animation and model tags -

Model Entries

src/main/java/yesman/epicfight/api/client/model/Meshes.java
    public static HumanoidMesh ALEX;
    public static HumanoidMesh BIPED;
    public static HumanoidMesh BIPED_OLD_TEX;
    public static HumanoidMesh BIPED_OUTLAYER;
    public static HumanoidMesh VILLAGER_ZOMBIE;
    public static CreeperMesh CREEPER;
    public static EndermanMesh ENDERMAN;
    public static HumanoidMesh SKELETON;
    public static SpiderMesh SPIDER;
    public static IronGolemMesh IRON_GOLEM;
    public static HumanoidMesh ILLAGER;
    public static VillagerMesh WITCH;
    public static RavagerMesh RAVAGER;
    public static VexMesh VEX;
    public static PiglinMesh PIGLIN;
    public static HoglinMesh HOGLIN;
    public static DragonMesh DRAGON;
    public static WitherMesh WITHER;
View on Github

Armature Entries

src/main/java/yesman/epicfight/gameasset/Armatures.java
    public static HumanoidArmature BIPED;
    public static CreeperArmature CREEPER;
    public static EndermanArmature ENDERMAN;
    public static HumanoidArmature SKELETON;
    public static SpiderArmature SPIDER;
    public static IronGolemArmature IRON_GOLEM;
    public static RavagerArmature RAVAGER;
    public static VexArmature VEX;
    public static PiglinArmature PIGLIN;
    public static HoglinArmature HOGLIN;
    public static DragonArmature DRAGON;
    public static WitherArmature WITHER;
View on Github

Animation Entries

src/main/java/yesman/epicfight/gameasset/Animations.java
    public static AnimationAccessor<StaticAnimation> BIPED_IDLE;
    public static AnimationAccessor<MovementAnimation> BIPED_WALK;
    public static AnimationAccessor<MovementAnimation> BIPED_RUN;
    public static AnimationAccessor<MovementAnimation> BIPED_SNEAK;
    public static AnimationAccessor<MovementAnimation> BIPED_SWIM;
    public static AnimationAccessor<StaticAnimation> BIPED_FLOAT;
    public static AnimationAccessor<StaticAnimation> BIPED_KNEEL;
    public static AnimationAccessor<StaticAnimation> BIPED_FALL;
    public static AnimationAccessor<StaticAnimation> BIPED_FLYING;
    public static AnimationAccessor<StaticAnimation> BIPED_CREATIVE_IDLE;
    public static AnimationAccessor<SelectiveAnimation> BIPED_CREATIVE_FLYING;
    public static AnimationAccessor<StaticAnimation> BIPED_MOUNT;
    public static AnimationAccessor<StaticAnimation> BIPED_SIT;
    public static AnimationAccessor<StaticAnimation> BIPED_JUMP;
    public static AnimationAccessor<LongHitAnimation> BIPED_DEATH;
    public static AnimationAccessor<StaticAnimation> BIPED_DIG_MAINHAND;
    public static AnimationAccessor<StaticAnimation> BIPED_DIG_OFFHAND;
    public static AnimationAccessor<SelectiveAnimation> BIPED_DIG;
    public static AnimationAccessor<MovementAnimation> BIPED_RUN_SPEAR;
    public static AnimationAccessor<StaticAnimation> BIPED_HOLD_GREATSWORD;
    public static AnimationAccessor<StaticAnimation> BIPED_HOLD_UCHIGATANA_SHEATHING;
    public static AnimationAccessor<StaticAnimation> BIPED_HOLD_UCHIGATANA;
    public static AnimationAccessor<StaticAnimation> BIPED_HOLD_TACHI;
    public static AnimationAccessor<StaticAnimation> BIPED_HOLD_LONGSWORD;
    public static AnimationAccessor<StaticAnimation> BIPED_HOLD_LIECHTENAUER;
    public static AnimationAccessor<StaticAnimation> BIPED_HOLD_SPEAR;
    public static AnimationAccessor<StaticAnimation> BIPED_HOLD_DUAL_WEAPON;
    public static AnimationAccessor<StaticAnimation> BIPED_HOLD_CROSSBOW;
    public static AnimationAccessor<StaticAnimation> BIPED_HOLD_MAP_TWOHAND;
    public static AnimationAccessor<StaticAnimation> BIPED_HOLD_MAP_OFFHAND;
    public static AnimationAccessor<StaticAnimation> BIPED_HOLD_MAP_MAINHAND;
    public static AnimationAccessor<StaticAnimation> BIPED_HOLD_MAP_TWOHAND_MOVE;
    public static AnimationAccessor<StaticAnimation> BIPED_HOLD_MAP_OFFHAND_MOVE;
    public static AnimationAccessor<StaticAnimation> BIPED_HOLD_MAP_MAINHAND_MOVE;
    public static AnimationAccessor<MovementAnimation> BIPED_WALK_GREATSWORD;
    public static AnimationAccessor<MovementAnimation> BIPED_WALK_SPEAR;
    public static AnimationAccessor<MovementAnimation> BIPED_WALK_UCHIGATANA_SHEATHING;
    public static AnimationAccessor<MovementAnimation> BIPED_WALK_UCHIGATANA;
    public static AnimationAccessor<MovementAnimation> BIPED_WALK_TWOHAND;
    public static AnimationAccessor<MovementAnimation> BIPED_WALK_LONGSWORD;
    public static AnimationAccessor<MovementAnimation> BIPED_WALK_LIECHTENAUER;
    public static AnimationAccessor<MovementAnimation> BIPED_RUN_GREATSWORD;
    public static AnimationAccessor<MovementAnimation> BIPED_RUN_UCHIGATANA;
    public static AnimationAccessor<MovementAnimation> BIPED_RUN_UCHIGATANA_SHEATHING;
    public static AnimationAccessor<MovementAnimation> BIPED_RUN_DUAL;
    public static AnimationAccessor<MovementAnimation> BIPED_RUN_LONGSWORD;
    public static AnimationAccessor<StaticAnimation> BIPED_UCHIGATANA_SCRAP;
    public static AnimationAccessor<StaticAnimation> BIPED_LIECHTENAUER_READY;
    public static AnimationAccessor<MirrorAnimation> BIPED_HIT_SHIELD;
    public static AnimationAccessor<MovementAnimation> BIPED_CLIMBING;
    public static AnimationAccessor<StaticAnimation> BIPED_SLEEPING;
    public static AnimationAccessor<AimAnimation> BIPED_BOW_AIM;
    public static AnimationAccessor<ReboundAnimation> BIPED_BOW_SHOT;
    public static AnimationAccessor<MirrorAnimation> BIPED_DRINK;
    public static AnimationAccessor<MirrorAnimation> BIPED_EAT;
    public static AnimationAccessor<MirrorAnimation> BIPED_SPYGLASS_USE;
    public static AnimationAccessor<AimAnimation> BIPED_CROSSBOW_AIM;
    public static AnimationAccessor<ReboundAnimation> BIPED_CROSSBOW_SHOT;
    public static AnimationAccessor<StaticAnimation> BIPED_CROSSBOW_RELOAD;
    public static AnimationAccessor<AimAnimation> BIPED_JAVELIN_AIM;
    public static AnimationAccessor<ReboundAnimation> BIPED_JAVELIN_THROW;
    public static AnimationAccessor<HitAnimation> BIPED_HIT_SHORT;
    public static AnimationAccessor<LongHitAnimation> BIPED_HIT_LONG;
    public static AnimationAccessor<LongHitAnimation> BIPED_HIT_ON_MOUNT;
    public static AnimationAccessor<LongHitAnimation> BIPED_LANDING;
    public static AnimationAccessor<KnockdownAnimation> BIPED_KNOCKDOWN;
    public static AnimationAccessor<MirrorAnimation> BIPED_BLOCK;
    public static AnimationAccessor<DodgeAnimation> BIPED_ROLL_FORWARD;
    public static AnimationAccessor<DodgeAnimation> BIPED_ROLL_BACKWARD;
    public static AnimationAccessor<DodgeAnimation> BIPED_STEP_FORWARD;
    public static AnimationAccessor<DodgeAnimation> BIPED_STEP_BACKWARD;
    public static AnimationAccessor<DodgeAnimation> BIPED_STEP_LEFT;
    public static AnimationAccessor<DodgeAnimation> BIPED_STEP_RIGHT;
    public static AnimationAccessor<DodgeAnimation> BIPED_KNOCKDOWN_WAKEUP_LEFT;
    public static AnimationAccessor<DodgeAnimation> BIPED_KNOCKDOWN_WAKEUP_RIGHT;
    public static AnimationAccessor<ActionAnimation> BIPED_DEMOLITION_LEAP_CHARGING;
    public static AnimationAccessor<ActionAnimation> BIPED_DEMOLITION_LEAP;
    public static AnimationAccessor<ActionAnimation> BIPED_PHANTOM_ASCENT_FORWARD;
    public static AnimationAccessor<ActionAnimation> BIPED_PHANTOM_ASCENT_BACKWARD;
    public static AnimationAccessor<AttackAnimation> BIPED_MOB_ONEHAND1;
    public static AnimationAccessor<AttackAnimation> BIPED_MOB_ONEHAND2;
    public static AnimationAccessor<AttackAnimation> BIPED_MOB_GREATSWORD;
    public static AnimationAccessor<AttackAnimation> BIPED_MOB_TACHI;
    public static AnimationAccessor<AttackAnimation> BIPED_MOB_SPEAR_ONEHAND;
    public static AnimationAccessor<AttackAnimation> BIPED_MOB_SPEAR_TWOHAND1;
    public static AnimationAccessor<AttackAnimation> BIPED_MOB_SPEAR_TWOHAND2;
    public static AnimationAccessor<AttackAnimation> BIPED_MOB_SPEAR_TWOHAND3;
    public static AnimationAccessor<AttackAnimation> BIPED_MOB_SWORD_DUAL1;
    public static AnimationAccessor<AttackAnimation> BIPED_MOB_SWORD_DUAL2;
    public static AnimationAccessor<AttackAnimation> BIPED_MOB_SWORD_DUAL3;
    public static AnimationAccessor<AttackAnimation> BIPED_MOB_LONGSWORD1;
    public static AnimationAccessor<AttackAnimation> BIPED_MOB_LONGSWORD2;
    public static AnimationAccessor<AttackAnimation> BIPED_MOB_UCHIGATANA1;
    public static AnimationAccessor<AttackAnimation> BIPED_MOB_UCHIGATANA2;
    public static AnimationAccessor<AttackAnimation> BIPED_MOB_UCHIGATANA3;
    public static AnimationAccessor<AttackAnimation> BIPED_MOB_DAGGER_ONEHAND1;
    public static AnimationAccessor<AttackAnimation> BIPED_MOB_DAGGER_ONEHAND2;
    public static AnimationAccessor<AttackAnimation> BIPED_MOB_DAGGER_ONEHAND3;
    public static AnimationAccessor<AttackAnimation> BIPED_MOB_DAGGER_TWOHAND1;
    public static AnimationAccessor<AttackAnimation> BIPED_MOB_DAGGER_TWOHAND2;
    public static AnimationAccessor<EmoteAnimation> BIPED_FRUSTRATED;
    public static AnimationAccessor<EmoteAnimation> BIPED_HOPAK;
    public static AnimationAccessor<EmoteAnimation> BIPED_LAUGH;
    public static AnimationAccessor<EmoteAnimation> BIPED_SALUTE;
    public static AnimationAccessor<EmoteAnimation> BIPED_SLIT_THROAT;
    public static AnimationAccessor<EmoteAnimation> BIPED_WAVE_HAND;
    public static AnimationAccessor<RangedAttackAnimation> BIPED_MOB_THROW;
    public static AnimationAccessor<StaticAnimation> CREEPER_IDLE;
    public static AnimationAccessor<MovementAnimation> CREEPER_WALK;
    public static AnimationAccessor<LongHitAnimation> CREEPER_HIT_LONG;
    public static AnimationAccessor<HitAnimation> CREEPER_HIT_SHORT;
    public static AnimationAccessor<LongHitAnimation> CREEPER_DEATH;
    public static AnimationAccessor<StaticAnimation> DRAGON_IDLE;
    public static AnimationAccessor<EnderDragonWalkAnimation> DRAGON_WALK;
    public static AnimationAccessor<StaticAnimation> DRAGON_FLY;
    public static AnimationAccessor<EnderDragonDeathAnimation> DRAGON_DEATH;
    public static AnimationAccessor<EnderDragonActionAnimation> DRAGON_GROUND_TO_FLY;
    public static AnimationAccessor<EnderDragonDynamicActionAnimation> DRAGON_FLY_TO_GROUND;
    public static AnimationAccessor<EnderDragonAttackAnimation> DRAGON_ATTACK1;
    public static AnimationAccessor<EnderDragonAttackAnimation> DRAGON_ATTACK2;
    public static AnimationAccessor<EnderDragonAttackAnimation> DRAGON_ATTACK3;
    public static AnimationAccessor<EnderDragonAttackAnimation> DRAGON_ATTACK4;
    public static AnimationAccessor<EnderDragonActionAnimation> DRAGON_ATTACK4_RECOVERY;
    public static AnimationAccessor<EnderDragonActionAnimation> DRAGON_FIREBALL;
    public static AnimationAccessor<StaticAnimation> DRAGON_AIRSTRIKE;
    public static AnimationAccessor<EnderDragonActionAnimation> DRAGON_BACKJUMP_PREPARE;
    public static AnimationAccessor<AttackAnimation> DRAGON_BACKJUMP_MOVE;
    public static AnimationAccessor<EnderDragonActionAnimation> DRAGON_BACKJUMP_RECOVERY;
    public static AnimationAccessor<EnderDragonActionAnimation> DRAGON_CRYSTAL_LINK;
    public static AnimationAccessor<EnderDragonActionAnimation> DRAGON_NEUTRALIZED;
    public static AnimationAccessor<EnderDragonActionAnimation> DRAGON_NEUTRALIZED_RECOVERY;
    public static AnimationAccessor<StaticAnimation> ENDERMAN_IDLE;
    public static AnimationAccessor<MovementAnimation> ENDERMAN_WALK;
    public static AnimationAccessor<LongHitAnimation> ENDERMAN_DEATH;
    public static AnimationAccessor<HitAnimation> ENDERMAN_HIT_SHORT;
    public static AnimationAccessor<LongHitAnimation> ENDERMAN_HIT_LONG;
    public static AnimationAccessor<LongHitAnimation> ENDERMAN_NEUTRALIZED;
    public static AnimationAccessor<InvincibleAnimation> ENDERMAN_CONVERT_RAGE;
    public static AnimationAccessor<StaticAnimation> ENDERMAN_RAGE_IDLE;
    public static AnimationAccessor<MovementAnimation> ENDERMAN_RAGE_WALK;
    public static AnimationAccessor<AttackAnimation> ENDERMAN_GRASP;
    public static AnimationAccessor<AttackAnimation> ENDERMAN_TP_KICK1;
    public static AnimationAccessor<AttackAnimation> ENDERMAN_TP_KICK2;
    public static AnimationAccessor<AttackAnimation> ENDERMAN_KNEE;
    public static AnimationAccessor<AttackAnimation> ENDERMAN_KICK1;
    public static AnimationAccessor<AttackAnimation> ENDERMAN_KICK2;
    public static AnimationAccessor<AttackAnimation> ENDERMAN_KICK_COMBO;
    public static AnimationAccessor<ActionAnimation> ENDERMAN_TP_EMERGENCE;
    public static AnimationAccessor<StaticAnimation> SPIDER_IDLE;
    public static AnimationAccessor<MovementAnimation> SPIDER_CRAWL;
    public static AnimationAccessor<LongHitAnimation> SPIDER_DEATH;
    public static AnimationAccessor<HitAnimation> SPIDER_HIT;
    public static AnimationAccessor<LongHitAnimation> SPIDER_NEUTRALIZED;
    public static AnimationAccessor<AttackAnimation> SPIDER_ATTACK;
    public static AnimationAccessor<AttackAnimation> SPIDER_JUMP_ATTACK;
    public static AnimationAccessor<StaticAnimation> GOLEM_IDLE;
    public static AnimationAccessor<MovementAnimation> GOLEM_WALK;
    public static AnimationAccessor<LongHitAnimation> GOLEM_DEATH;
    public static AnimationAccessor<AttackAnimation> GOLEM_ATTACK1;
    public static AnimationAccessor<AttackAnimation> GOLEM_ATTACK2;
    public static AnimationAccessor<AttackAnimation> GOLEM_ATTACK3;
    public static AnimationAccessor<AttackAnimation> GOLEM_ATTACK4;
    public static AnimationAccessor<StaticAnimation> HOGLIN_IDLE;
    public static AnimationAccessor<MovementAnimation> HOGLIN_WALK;
    public static AnimationAccessor<LongHitAnimation> HOGLIN_DEATH;
    public static AnimationAccessor<AttackAnimation> HOGLIN_ATTACK;
    public static AnimationAccessor<StaticAnimation> ILLAGER_IDLE;
    public static AnimationAccessor<MovementAnimation> ILLAGER_WALK;
    public static AnimationAccessor<StaticAnimation> VINDICATOR_IDLE_AGGRESSIVE;
    public static AnimationAccessor<MovementAnimation> VINDICATOR_CHASE;
    public static AnimationAccessor<AttackAnimation> VINDICATOR_SWING_AXE1;
    public static AnimationAccessor<AttackAnimation> VINDICATOR_SWING_AXE2;
    public static AnimationAccessor<AttackAnimation> VINDICATOR_SWING_AXE3;
    public static AnimationAccessor<StaticAnimation> EVOKER_CAST_SPELL;
    public static AnimationAccessor<StaticAnimation> PIGLIN_IDLE;
    public static AnimationAccessor<MovementAnimation> PIGLIN_WALK;
    public static AnimationAccessor<StaticAnimation> PIGLIN_ZOMBIFIED_IDLE;
    public static AnimationAccessor<MovementAnimation> PIGLIN_ZOMBIFIED_WALK;
    public static AnimationAccessor<MovementAnimation> PIGLIN_ZOMBIFIED_CHASE;
    public static AnimationAccessor<StaticAnimation> PIGLIN_CELEBRATE1;
    public static AnimationAccessor<StaticAnimation> PIGLIN_CELEBRATE2;
    public static AnimationAccessor<StaticAnimation> PIGLIN_CELEBRATE3;
    public static AnimationAccessor<StaticAnimation> PIGLIN_ADMIRE;
    public static AnimationAccessor<LongHitAnimation> PIGLIN_DEATH;
    public static AnimationAccessor<StaticAnimation> RAVAGER_IDLE;
    public static AnimationAccessor<MovementAnimation> RAVAGER_WALK;
    public static AnimationAccessor<LongHitAnimation> RAVAGER_DEATH;
    public static AnimationAccessor<ActionAnimation> RAVAGER_STUN;
    public static AnimationAccessor<AttackAnimation> RAVAGER_ATTACK1;
    public static AnimationAccessor<AttackAnimation> RAVAGER_ATTACK2;
    public static AnimationAccessor<AttackAnimation> RAVAGER_ATTACK3;
    public static AnimationAccessor<StaticAnimation> VEX_IDLE;
    public static AnimationAccessor<StaticAnimation> VEX_FLIPPING;
    public static AnimationAccessor<LongHitAnimation> VEX_DEATH;
    public static AnimationAccessor<HitAnimation> VEX_HIT;
    public static AnimationAccessor<AttackAnimation> VEX_CHARGE;
    public static AnimationAccessor<LongHitAnimation> VEX_NEUTRALIZED;
    public static AnimationAccessor<StaticAnimation> WITCH_DRINKING;
    public static AnimationAccessor<StaticAnimation> WITHER_SKELETON_IDLE;
    public static AnimationAccessor<InvincibleAnimation> WITHER_SKELETON_SPECIAL_SPAWN;
    public static AnimationAccessor<MovementAnimation> WITHER_SKELETON_WALK;
    public static AnimationAccessor<MovementAnimation> WITHER_SKELETON_CHASE;
    public static AnimationAccessor<AttackAnimation> WITHER_SKELETON_ATTACK1;
    public static AnimationAccessor<AttackAnimation> WITHER_SKELETON_ATTACK2;
    public static AnimationAccessor<AttackAnimation> WITHER_SKELETON_ATTACK3;
    public static AnimationAccessor<StaticAnimation> WITHER_IDLE;
    public static AnimationAccessor<AttackAnimation> WITHER_CHARGE;
    public static AnimationAccessor<LongHitAnimation> WITHER_DEATH;
    public static AnimationAccessor<LongHitAnimation> WITHER_NEUTRALIZED;
    public static AnimationAccessor<InvincibleAnimation> WITHER_SPELL_ARMOR;
    public static AnimationAccessor<ActionAnimation> WITHER_BLOCKED;
    public static AnimationAccessor<InvincibleAnimation> WITHER_GHOST_STANDBY;
    public static AnimationAccessor<AttackAnimation> WITHER_SWIRL;
    public static AnimationAccessor<ActionAnimation> WITHER_BEAM;
    public static AnimationAccessor<AttackAnimation> WITHER_BACKFLIP;
    public static AnimationAccessor<StaticAnimation> ZOMBIE_IDLE;
    public static AnimationAccessor<MovementAnimation> ZOMBIE_WALK;
    public static AnimationAccessor<MovementAnimation> ZOMBIE_CHASE;
    public static AnimationAccessor<AttackAnimation> ZOMBIE_ATTACK1;
    public static AnimationAccessor<AttackAnimation> ZOMBIE_ATTACK2;
    public static AnimationAccessor<AttackAnimation> ZOMBIE_ATTACK3;
    public static AnimationAccessor<ComboAttackAnimation> AXE_AUTO1;
    public static AnimationAccessor<ComboAttackAnimation> AXE_AUTO2;
    public static AnimationAccessor<DashAttackAnimation> AXE_DASH;
    public static AnimationAccessor<AirSlashAnimation> AXE_AIRSLASH;
    public static AnimationAccessor<ComboAttackAnimation> FIST_AUTO1;
    public static AnimationAccessor<ComboAttackAnimation> FIST_AUTO2;
    public static AnimationAccessor<ComboAttackAnimation> FIST_AUTO3;
    public static AnimationAccessor<DashAttackAnimation> FIST_DASH;
    public static AnimationAccessor<AirSlashAnimation> FIST_AIR_SLASH;
    public static AnimationAccessor<ComboAttackAnimation> SPEAR_ONEHAND_AUTO;
    public static AnimationAccessor<AirSlashAnimation> SPEAR_ONEHAND_AIR_SLASH;
    public static AnimationAccessor<ComboAttackAnimation> SPEAR_TWOHAND_AUTO1;
    public static AnimationAccessor<ComboAttackAnimation> SPEAR_TWOHAND_AUTO2;
    public static AnimationAccessor<AirSlashAnimation> SPEAR_TWOHAND_AIR_SLASH;
    public static AnimationAccessor<DashAttackAnimation> SPEAR_DASH;
    public static AnimationAccessor<MountAttackAnimation> SPEAR_MOUNT_ATTACK;
    public static AnimationAccessor<StaticAnimation> SPEAR_GUARD;
    public static AnimationAccessor<GuardAnimation> SPEAR_GUARD_HIT;
    public static AnimationAccessor<ComboAttackAnimation> SWORD_AUTO1;
    public static AnimationAccessor<ComboAttackAnimation> SWORD_AUTO2;
    public static AnimationAccessor<ComboAttackAnimation> SWORD_AUTO3;
    public static AnimationAccessor<DashAttackAnimation> SWORD_DASH;
    public static AnimationAccessor<AirSlashAnimation> SWORD_AIR_SLASH;
    public static AnimationAccessor<StaticAnimation> SWORD_GUARD;
    public static AnimationAccessor<GuardAnimation> SWORD_GUARD_HIT;
    public static AnimationAccessor<GuardAnimation> SWORD_GUARD_ACTIVE_HIT1;
    public static AnimationAccessor<GuardAnimation> SWORD_GUARD_ACTIVE_HIT2;
    public static AnimationAccessor<GuardAnimation> SWORD_GUARD_ACTIVE_HIT3;
    public static AnimationAccessor<GuardAnimation> LONGSWORD_GUARD_ACTIVE_HIT1;
    public static AnimationAccessor<GuardAnimation> LONGSWORD_GUARD_ACTIVE_HIT2;
    public static AnimationAccessor<ComboAttackAnimation> SWORD_DUAL_AUTO1;
    public static AnimationAccessor<ComboAttackAnimation> SWORD_DUAL_AUTO2;
    public static AnimationAccessor<ComboAttackAnimation> SWORD_DUAL_AUTO3;
    public static AnimationAccessor<DashAttackAnimation> SWORD_DUAL_DASH;
    public static AnimationAccessor<AirSlashAnimation> SWORD_DUAL_AIR_SLASH;
    public static AnimationAccessor<StaticAnimation> SWORD_DUAL_GUARD;
    public static AnimationAccessor<GuardAnimation> SWORD_DUAL_GUARD_HIT;
    public static AnimationAccessor<LongHitAnimation> BIPED_COMMON_NEUTRALIZED;
    public static AnimationAccessor<LongHitAnimation> GREATSWORD_GUARD_BREAK;
    public static AnimationAccessor<AttackAnimation> METEOR_SLAM;
    public static AnimationAccessor<AttackAnimation> REVELATION_ONEHAND;
    public static AnimationAccessor<AttackAnimation> REVELATION_TWOHAND;
    public static AnimationAccessor<ComboAttackAnimation> LONGSWORD_AUTO1;
    public static AnimationAccessor<ComboAttackAnimation> LONGSWORD_AUTO2;
    public static AnimationAccessor<ComboAttackAnimation> LONGSWORD_AUTO3;
    public static AnimationAccessor<DashAttackAnimation> LONGSWORD_DASH;
    public static AnimationAccessor<ComboAttackAnimation> LONGSWORD_LIECHTENAUER_AUTO1;
    public static AnimationAccessor<ComboAttackAnimation> LONGSWORD_LIECHTENAUER_AUTO2;
    public static AnimationAccessor<ComboAttackAnimation> LONGSWORD_LIECHTENAUER_AUTO3;
    public static AnimationAccessor<AirSlashAnimation> LONGSWORD_AIR_SLASH;
    public static AnimationAccessor<StaticAnimation> LONGSWORD_GUARD;
    public static AnimationAccessor<GuardAnimation> LONGSWORD_GUARD_HIT;
    public static AnimationAccessor<ComboAttackAnimation> TACHI_AUTO1;
    public static AnimationAccessor<ComboAttackAnimation> TACHI_AUTO2;
    public static AnimationAccessor<ComboAttackAnimation> TACHI_AUTO3;
    public static AnimationAccessor<DashAttackAnimation> TACHI_DASH;
    public static AnimationAccessor<ComboAttackAnimation> TOOL_AUTO1;
    public static AnimationAccessor<ComboAttackAnimation> TOOL_AUTO2;
    public static AnimationAccessor<DashAttackAnimation> TOOL_DASH;
    public static AnimationAccessor<ComboAttackAnimation> UCHIGATANA_AUTO1;
    public static AnimationAccessor<ComboAttackAnimation> UCHIGATANA_AUTO2;
    public static AnimationAccessor<ComboAttackAnimation> UCHIGATANA_AUTO3;
    public static AnimationAccessor<DashAttackAnimation> UCHIGATANA_DASH;
    public static AnimationAccessor<AirSlashAnimation> UCHIGATANA_AIR_SLASH;
    public static AnimationAccessor<ComboAttackAnimation> UCHIGATANA_SHEATHING_AUTO;
    public static AnimationAccessor<DashAttackAnimation> UCHIGATANA_SHEATHING_DASH;
    public static AnimationAccessor<AirSlashAnimation> UCHIGATANA_SHEATH_AIR_SLASH;
    public static AnimationAccessor<StaticAnimation> UCHIGATANA_GUARD;
    public static AnimationAccessor<GuardAnimation> UCHIGATANA_GUARD_HIT;
    public static AnimationAccessor<MountAttackAnimation> SWORD_MOUNT_ATTACK;
    public static AnimationAccessor<ComboAttackAnimation> GREATSWORD_AUTO1;
    public static AnimationAccessor<ComboAttackAnimation> GREATSWORD_AUTO2;
    public static AnimationAccessor<DashAttackAnimation> GREATSWORD_DASH;
    public static AnimationAccessor<AirSlashAnimation> GREATSWORD_AIR_SLASH;
    public static AnimationAccessor<StaticAnimation> GREATSWORD_GUARD;
    public static AnimationAccessor<GuardAnimation> GREATSWORD_GUARD_HIT;
    public static AnimationAccessor<ComboAttackAnimation> DAGGER_AUTO1;
    public static AnimationAccessor<ComboAttackAnimation> DAGGER_AUTO2;
    public static AnimationAccessor<ComboAttackAnimation> DAGGER_AUTO3;
    public static AnimationAccessor<DashAttackAnimation> DAGGER_DASH;
    public static AnimationAccessor<AirSlashAnimation> DAGGER_AIR_SLASH;
    public static AnimationAccessor<ComboAttackAnimation> DAGGER_DUAL_AUTO1;
    public static AnimationAccessor<ComboAttackAnimation> DAGGER_DUAL_AUTO2;
    public static AnimationAccessor<ComboAttackAnimation> DAGGER_DUAL_AUTO3;
    public static AnimationAccessor<ComboAttackAnimation> DAGGER_DUAL_AUTO4;
    public static AnimationAccessor<DashAttackAnimation> DAGGER_DUAL_DASH;
    public static AnimationAccessor<AirSlashAnimation> DAGGER_DUAL_AIR_SLASH;
    public static AnimationAccessor<ComboAttackAnimation> TRIDENT_AUTO1;
    public static AnimationAccessor<ComboAttackAnimation> TRIDENT_AUTO2;
    public static AnimationAccessor<ComboAttackAnimation> TRIDENT_AUTO3;
    public static AnimationAccessor<AttackAnimation> THE_GUILLOTINE;
    public static AnimationAccessor<AttackAnimation> SWEEPING_EDGE;
    public static AnimationAccessor<AttackAnimation> DANCING_EDGE;
    public static AnimationAccessor<AttackAnimation> HEARTPIERCER;
    public static AnimationAccessor<AttackAnimation> GRASPING_SPIRAL_FIRST;
    public static AnimationAccessor<AttackAnimation> GRASPING_SPIRAL_SECOND;
    public static AnimationAccessor<StaticAnimation> STEEL_WHIRLWIND_CHARGING;
    public static AnimationAccessor<AttackAnimation> STEEL_WHIRLWIND;
    public static AnimationAccessor<AttackAnimation> BATTOJUTSU;
    public static AnimationAccessor<AttackAnimation> BATTOJUTSU_DASH;
    public static AnimationAccessor<AttackAnimation> RUSHING_TEMPO1;
    public static AnimationAccessor<AttackAnimation> RUSHING_TEMPO2;
    public static AnimationAccessor<AttackAnimation> RUSHING_TEMPO3;
    public static AnimationAccessor<AttackAnimation> RELENTLESS_COMBO;
    public static AnimationAccessor<AttackAnimation> EVISCERATE_FIRST;
    public static AnimationAccessor<AttackAnimation> EVISCERATE_SECOND;
    public static AnimationAccessor<AttackAnimation> BLADE_RUSH_COMBO1;
    public static AnimationAccessor<AttackAnimation> BLADE_RUSH_COMBO2;
    public static AnimationAccessor<AttackAnimation> BLADE_RUSH_COMBO3;
    public static AnimationAccessor<LongHitAnimation> BLADE_RUSH_HIT;
    public static AnimationAccessor<GrapplingAttackAnimation> BLADE_RUSH_EXECUTE_BIPED;
    public static AnimationAccessor<GrapplingTryAnimation> BLADE_RUSH_TRY;
    public static AnimationAccessor<ActionAnimation> BLADE_RUSH_FAILED;
    public static AnimationAccessor<AttackAnimation> WRATHFUL_LIGHTING;
    public static AnimationAccessor<AttackAnimation> TSUNAMI;
    public static AnimationAccessor<AttackAnimation> TSUNAMI_REINFORCED;
    public static AnimationAccessor<ActionAnimation> EVERLASTING_ALLEGIANCE_CALL;
    public static AnimationAccessor<ActionAnimation> EVERLASTING_ALLEGIANCE_CATCH;
    public static AnimationAccessor<AttackAnimation> SHARP_STAB;
View on Github


Easy Setup -

Using presets

For entities that extend the vanilla classes/or simmilar models to the ones in vanilla you can use presets as a simple setup method.

{
    "preset": "minecraft:creeper"
}

You should know that this will not work properly if the targeted entity doesn't share its code with the vanilla entity (if the entity class doesn't extend the vanilla class), although it is seemingly the same. The allowed values are all the entity's registry names that are registered in the code

Disabling an "epicfied" entity

You also can disable entity animations and custom models by using the following line (inside of entityname.json): .zip

{
    "disabled": true
}


Entity animation features -

In epic fight you are able to change entity ai's and behaviour through datapacks. You can customize which animations should be played according to certain behaviors.

Below is a simple example of how you can create a punching zombie. .zip

{
    "model": "epicfight:entity/biped_old_texture",
    "armature": "epicfight:entity/biped",
    "renderer": "minecraft:zombie",
    "isHumanoid": false,
    "faction": "neutral",
    "attributes": {
        "impact": 0.5,
        "armor_negation": 0.0,
        "max_strikes": 1,
        "chasing_speed": 1.0,
                "scale": 1.0
    },
    "default_livingmotions": {
        "idle": "epicfight:biped/living/idle",
        "walk": "epicfight:biped/living/walk",
        "chase": "epicfight:biped/living/walk",
        "mount": "epicfight:biped/living/mount",
                "fall": "epicfight:biped/living/fall",
        "death": "epicfight:biped/living/death"
    },
    "stun_animations": {
        "short": "epicfight:biped/combat/hit_short",
        "long": "epicfight:biped/combat/hit_long",
        "knockdown": "epicfight:biped/combat/knockdown",
        "fall": "epicfight:biped/living/landing"
    },
    "combat_behavior": [
        {
            "weight": 100.0,
            "canBeInterrupted": true,
            "looping": false,
            "behaviors": [
                {
                    "conditions": [
                        {"predicate":"within_eye_height"}, {"predicate":"within_distance", "min": 0.0, "max": 2.0}
                    ],
                    "animation": "epicfight:zombie/attack1"
                },
                {
                    "conditions": [
                        {"predicate":"within_eye_height"}, {"predicate":"within_distance", "min": 0.0, "max": 2.0}
                    ],
                    "animation": "epicfight:zombie/attack2"
                },
                {
                    "conditions": [
                        {"predicate":"within_eye_height"}, {"predicate":"within_distance", "min": 0.0, "max": 2.0}
                    ],
                    "animation": "epicfight:zombie/attack3"
                }
            ]
        }
    ]
}

model: The model of the entity. Allowed values are here

armature: Defines the skeletal structure (armature) that the entity utilizes. For a complete list of allowed values, refer here

renderer: All the entity's registry names that are registered in our source code can be obtained here

isHumanoid: Specifies if the entity is humanoid. Humanoids adjust animations based on the item they hold.

faction: Entities in the same faction won't attack each other. Allowed values: enderman, piglins, wither, neutral, undead, illager, villager


attributes:
Key Feature
impact Extends the stun time of attack target
armor_negation Bypasses defense points by %
max_strikes Determines how many entities can hit per one swing
chasing_speed For melee attack mobs, determines how fast the mob chases the enemy
scale Determines the size of the entity
default_livingmotions:
Key Feature
idle When the entity stays still
walk When the entity moves
chase When the entity moves and has a target
fall When the entity falls because of gravity
death When the entity dies
mount When the entity is riding

stun_animations:
Key Feature
short Every normal attack
long For some special attacks
knockdown Ender dragon's ground slam
fall Fall damage
combat_behavior: attack moves of the entity.
Key Feature
weight The possibility of this behavior is selected. It will be calculated as (weight/total weight sum)
canBeInterrupted Determines if this movement series can be canceled
looping Determines whether the current behavior should be saved when canceled
cooldown Determines how many "ticks" it'll take to be used again
behaviors Definition of the conditions and attack animation

behaviors:

Key Feature
conditions Conditions that have to be met to be selected
animation The animation path

conditions:

Key Feature Arguments
random_chance Checks if the random value is higher than the given argument "chance": double
within_eye_height Checks if the Y distance between target and attacker is smaller than the attacker's eye height -
within_distance Checks the distance between target and attacker, if they are within the given arguments "min": double, "max": double
within_angle Checks if the angle towards the target is within the given argument. "min": double, "max": double
within_angle_horizontal Checks if the Y-axis angle towards the target is within the given argument. "min": double, "max": double
health Checks the entity's health. "health": double, "comparator": enum:(greater_absolute, less_absolute, greater_ratio, less_ratio)

Changing the animation based on the weapon its holding -

For the humanoid mobs, you can set different animation sets depending on the weapon they're holding. In this case, the format of the "combat_behaviors" is slightly changed. First, you have to check if you set the "isHumanoid" value to true.

Below is an example of how you can create a zombie, that wields a sword like a wither skeleton while idle and walking, attacking with a sword, or punching with empty hands.

{
    "model": "epicfight:entity/biped_old_texture",
    "armature": "epicfight:entity/biped",
    "renderer": "minecraft:zombie",
    "isHumanoid": true,
    "faction": "neutral",
    "attributes": {
        "impact": 0.5,
        "armor_negation": 0.0,
        "max_strikes": 1,
        "chasing_speed": 1.0,
                "scale": 1.0
    },
    "default_livingmotions": {
        "idle": "epicfight:biped/living/idle",
        "walk": "epicfight:biped/living/walk",
        "chase": "epicfight:biped/living/walk",
        "mount": "epicfight:biped/living/mount",
                "fall": "epicfight:biped/living/fall",
        "death": "epicfight:biped/living/death"
    },
    "humanoid_weapon_motions": [
        {
            "weapon_categories": ["sword"],
            "style":"one_hand",
            "livingmotions": {
                "walk": "epicfight:wither_skeleton/walk",
                "chase": "epicfight:wither_skeleton/chase"
            }
        }
    ],
    "stun_animations": {
        "short": "epicfight:biped/combat/hit_short",
        "long": "epicfight:biped/combat/hit_long",
        "knockdown": "epicfight:biped/combat/knockdown",
        "fall": "epicfight:biped/living/landing"
    },
    "combat_behavior": [
        {
            "weapon_categories": ["axe", "hoe", "pickaxe", "shovel", "sword"],
            "style": "one_hand",
            "behavior_series": [
                {
                    "weight": 100.0,
                    "canBeInterrupted": true,
                    "looping": true,
                    "behaviors": [
                        {
                            "conditions": [
                                {"predicate":"within_eye_height"}, {"predicate":"within_distance", "min": 0.0, "max": 2.2}
                            ],
                            "animation": "epicfight:biped/combat/mob_onehand1"
                        },
                        {
                            "conditions": [
                                {"predicate":"within_eye_height"}, {"predicate":"within_distance", "min": 0.0, "max": 2.2}
                            ],
                            "animation": "epicfight:biped/combat/mob_onehand2"
                        }
                    ]
                }
            ]
        },
        {
            "weapon_categories": ["fist"],
            "style": "common",
            "behavior_series": [
                {
                    "weight": 100.0,
                    "canBeInterrupted": true,
                    "looping": false,
                    "behaviors": [
                        {
                            "conditions": [
                                {"predicate":"within_eye_height"}, {"predicate":"within_distance", "min": 0.0, "max": 2.0}
                            ],
                            "animation": "epicfight:zombie/attack1"
                        },
                        {
                            "conditions": [
                                {"predicate":"within_eye_height"}, {"predicate":"within_distance", "min": 0.0, "max": 2.0}
                            ],
                            "animation": "epicfight:zombie/attack2"
                        },
                        {
                            "conditions": [
                                {"predicate":"within_eye_height"}, {"predicate":"within_distance", "min": 0.0, "max": 2.0}
                            ],
                            "animation": "epicfight:zombie/attack3"
                        }
                    ]
                }
            ]
        }
    ]
}

humanoid_weapon_motions: A list of the modified living motions for each weapon category.

weapon_categories: Which weapons should have the same behavior series. Allowed values are:

       AXE, FIST, GREATSWORD, HOE, PICKAXE, SHOVEL, SWORD, UCHIGATANA, SPEAR, TACHI, TRIDENT, LONGSWORD, DAGGER, SHIELD, RANGED

style: Holding style. Allowed values are: one_hand, two_hand, common.