CompatLink - Epic Fight Weapons Compat
No reviews yet
Give ANY modded weapon Epic Fight movesets — no coding, just JSON.
Provides a framework or library for other mods to use.
Community voices
Reviews
Click once to include, again to exclude, again to clear
No reviews yet. Be the first to review this project!
Get it on
Available Platforms
Compatibility
Supported Environments
About
Project Details
For authors
Embed Badge
If you're the author of this project, you can embed a live badge anywhere that supports HTML or Markdown. It updates automatically whenever ratings change.
Use HTML for any page that supports it, or Markdown for README files and Markdown-based descriptions.
Identifiers
Platform IDs
Resources
External Links
About
Description
CompatLink
Give ANY modded weapon Epic Fight movesets — no coding, just JSON.
Epic Fight only knows vanilla weapons out of the box. CompatLink lets you connect any modded weapon to an Epic Fight moveset by dropping a small JSON file in your config folder. Claymores swing like greatswords, katanas draw like uchigatana, spears thrust like spears — for any mod, in minutes.
-
Available for Forge 1.20.1 (Epic Fight 20.14.17+) and NeoForge 1.21.1 (Epic Fight 21.13+)
-
Any item, any Epic Fight moveset — including weapon types from other Epic Fight addon mods, not just the built-in ones
-
Swing trails, combat-stat tuning, and (experimental) mob movesets — all from the same JSON
-
New in 1.2.0 — fixes modded armor that renders broken in battle mode, with one line of JSON
-
100% data-driven: no code, no datapack knowledge required for basic use
-
Safe by design: broken mapping files are skipped with a log message — never a crash
-
Loads fine without Epic Fight installed (mappings just wait until it's there)
For players & modpack makers: 30-second setup
-
Install CompatLink (plus Epic Fight).
-
Open
config/compatlink/mappings/— CompatLink creates it with an example on first run. -
Create
mymappings.json:
{
"format": 1,
"backend": "epicfight",
"weapons": [
{ "target": "simplyswords:iron_claymore", "preset": "epicfight:greatsword" },
{ "target": "cataclysm:the_incinerator", "preset": "epicfight:greatsword" },
{ "target": "somemod:*_katana", "preset": "epicfight:uchigatana" }
]
}
-
Start the game (or run
/reload). Done — the log printsCompatLink: N entity mappings, M weapon mappings applied.
Wildcards (somemod:*) and priorities (higher wins; exact id beats wildcard on ties) let you map whole mods in one line and override single items afterwards.
Available weapon presets include epicfight:sword, epicfight:greatsword, epicfight:longsword, epicfight:uchigatana, epicfight:tachi, epicfight:spear, epicfight:dagger, epicfight:axe, epicfight:bow and any weapon type added by Epic Fight datapacks.
Use movesets from other Epic Fight addons
A preset is just an Epic Fight weapon-type id, so you're not limited to the built-in ones — you can borrow movesets registered by other Epic Fight addon mods. Any item can take any moveset:
{
"format": 1,
"backend": "epicfight",
"weapons": [
{ "target": "minecraft:golden_apple", "preset": "wom:ender_blaster" }
]
}
Here a plain golden apple picks up the full attack animations of the wom:ender_blaster weapon type from another addon. Whatever weapon types are registered in your modpack — Epic Fight's own or ones added by other mods — are all valid presets.
Weapon trails: mapped weapons automatically inherit their weapon type's Epic Fight swing trail — no extra setup. Add an explicit "trail" object to a mapping for a custom one (EF item_skins schema: color, begin_pos, end_pos, lifetime, interpolations, texture_path, particle_type). Opt a single weapon out with "trail": "none" (or false), or disable automatic trails entirely — so only weapons with an explicit "trail" object get one — by setting "auto_trails": false in config/compatlink/settings.json. Optional "params" tune EF weapon attributes (impact, armor_negation, max_strikes, damage_bonus, speed_bonus).
Fix broken modded armor in battle mode (NEW in 1.2.0)
In Epic Fight's battle mode, armor from many mods renders as a garbled, nearly invisible mess. Epic Fight falls back to a generic armor mesh whose UVs assume a vanilla 64x32 texture, so mods that use 64x64 armor textures (Ice and Fire CE and plenty of others) sample the wrong part of the sheet. One line of JSON fixes it:
{
"format": 1,
"backend": "epicfight",
"armors": [
{ "target": "somemod:*" }
]
}
One exception: if a dedicated compat mod already restores that mod's armor (e.g. CompatLink: Ice and Fire CE, which rebuilds Ice and Fire armor with its original 3D shape), do not also list that mod here — a generated mesh takes priority over the better fix and silently replaces it with the vanilla silhouette.
No texture sizes, no preset — CompatLink measures each item's armor texture itself and generates a corrected mesh only where one is needed. Non-armor items and armor that already renders correctly are skipped automatically, so mod-wide wildcards are safe. Optional texture_width / texture_height are there if auto-detection ever fails. New files apply on the next resource reload (F3+T) or the next launch, and persist from then on.
The result is the vanilla armor silhouette wearing the mod's texture — mod-specific 3D armor shapes (face guards, wings, crests) don't show up in battle mode, the same treatment Epic Fight gives every non-GeckoLib armor. Client-side only, and Epic Fight must be installed. No Epic Fight asset is bundled: the base mesh is read from your own install at runtime.
For pack/mod authors: ship mappings as a datapack
Put mapping files at data/<your_namespace>/compatlink/mappings/*.json in any datapack or mod jar. They participate in /reload and merge with config-folder mappings under the same priority rules. Ready-made packs: CompatLink: Simply Swords (all 122 weapons mapped) — see the project page sidebar.
Entity mapping (EXPERIMENTAL)
You can also give mobs Epic Fight combat AI/animations with an entities array (e.g. map an illager-type boss to the minecraft:evoker preset). This is an experimental feature for advanced pack authors:
-
The preset must share the target's model family and texture layout — otherwise the mob renders broken (the game itself keeps working).
-
Validation is strict: if anything about a mapping can't be wired safely, CompatLink registers nothing for it and logs the reason.
FAQ
Does the server need it? The client? Both, on dedicated servers — install CompatLink (and the same mapping files) on client and server. In singleplayer one install is enough.
What happens if Epic Fight is missing? Nothing breaks. CompatLink loads, parses your files, and reports "backend 'epicfight' unavailable" in the log.
A mapping file has a typo — will my game crash? No. That one file is skipped and the reason is logged; everything else applies.
Can other combat mods be supported? The core API is a loader-agnostic, MIT-licensed backend SPI. Epic Fight is the first backend; NeoForge 1.21 support is on the roadmap.
Do weapon params do anything yet? Not yet — the field is parsed and reserved for future tuning (attributes, colliders).
CompatLink
Give ANY modded weapon Epic Fight movesets — no coding, just JSON.
Epic Fight only knows vanilla weapons out of the box. CompatLink lets you connect any modded weapon to an Epic Fight moveset by dropping a small JSON file in your config folder. Claymores swing like greatswords, katanas draw like uchigatana, spears thrust like spears — for any mod, in minutes.
Available for Forge 1.20.1 (Epic Fight 20.14.17+) and NeoForge 1.21.1 (Epic Fight 21.13+) Any item, any Epic Fight moveset — including weapon types from other Epic Fight addon mods, not just the built-in ones Swing trails, combat-stat tuning, and (experimental) mob movesets — all from the same JSON 100% data-driven: no code, no datapack knowledge required for basic use Safe by design: broken mapping files are skipped with a log message — never a crash Loads fine without Epic Fight installed (mappings just wait until it's there) For players & modpack makers: 30-second setup Install CompatLink (plus Epic Fight). Open config/compatlink/mappings/ — CompatLink creates it with an example on first run. Create mymappings.json: { "format": 1, "backend": "epicfight", "weapons": [ { "target": "simplyswords:iron_claymore", "preset": "epicfight:greatsword" }, { "target": "cataclysm:the_incinerator", "preset": "epicfight:greatsword" }, { "target": "somemod:*_katana", "preset": "epicfight:uchigatana" } ] }
Start the game (or run /reload). Done — the log prints CompatLink: N entity mappings, M weapon mappings applied.
Wildcards (somemod:*) and priorities (higher wins; exact id beats wildcard on ties) let you map whole mods in one line and override single items afterwards.
Available weapon presets include epicfight:sword, epicfight:greatsword, epicfight:longsword, epicfight:uchigatana, epicfight:tachi, epicfight:spear, epicfight:dagger, epicfight:axe, epicfight:bow and any weapon type added by Epic Fight datapacks.
Use movesets from other Epic Fight addons
A preset is just an Epic Fight weapon-type id, so you're not limited to the built-in ones — you can borrow movesets registered by other Epic Fight addon mods. Any item can take any moveset:
{ "format": 1, "backend": "epicfight", "weapons": [ { "target": "minecraft:golden_apple", "preset": "wom:ender_blaster" } ] }
Here a plain golden apple picks up the full attack animations of the wom:ender_blaster weapon type from another addon. Whatever weapon types are registered in your modpack — Epic Fight's own or ones added by other mods — are all valid presets.
Tune weapon stats with params
Each weapon mapping can also tune Epic Fight combat attributes — same meaning as Epic Fight's own datapack attributes.common, no datapack needed:
{ "target": "simplyswords:iron_claymore", "preset": "epicfight:greatsword", "params": { "impact": 8.0, "max_strikes": 6, "damage_bonus": 2.0 } }
impact — stagger/knockback strength (decimal) armor_negation — % of armor ignored (decimal) damage_bonus — extra damage in battle mode (decimal) speed_bonus — attack speed bonus (decimal) max_strikes — max targets hit per swing (integer)
Unknown keys or malformed numbers are warned about in the log and ignored — the weapon still gets its moveset.
Weapon trails
Mapped weapons automatically inherit their weapon type's Epic Fight swing trail — no extra setup. Want a custom one? Add a trail object to the mapping (Epic Fight item_skins schema):
{ "target": "simplyswords:runic_katana", "preset": "epicfight:uchigatana", "trail": { "color": [120, 40, 255], "begin_pos": [0.0, 0.0, -0.2], "end_pos": [0.0, -0.22, -1.25], "lifetime": 4, "interpolations": 6, "texture_path": "epicfight:textures/particle/swing_trail.png", "particle_type": "epicfight:swing_trail" } }
Trail too big on a small item? Turn it off for that one weapon with "trail": "none" (or false). To disable automatic trails entirely — so only weapons with an explicit trail object get one — set "auto_trails": false in config/compatlink/settings.json.
Trails from config mappings show from game start; wildcard/datapack mapping trails apply after a resource reload (F3+T). Trails defined by Epic Fight itself or other mods always take priority over CompatLink's generated ones.
For pack/mod authors: ship mappings as a datapack
Put mapping files at data/<your_namespace>/compatlink/mappings/*.json in any datapack or mod jar. They participate in /reload and merge with config-folder mappings under the same priority rules. Ready-made packs: CompatLink: Simply Swords (all 122 weapons mapped) — see the project page sidebar.
Entity mapping (EXPERIMENTAL)
You can also give mobs Epic Fight combat AI/animations with an entities array. This is an experimental feature for advanced pack authors:
{ "format": 1, "backend": "epicfight", "entities": [ { "target": "illagerinvasion:basher", "preset": "minecraft:vindicator" }, { "target": "illagerinvasion:necromancer", "preset": "minecraft:evoker" } ] }
The preset must share the target's model family and texture layout (an illager-shaped mob needs an illager preset like minecraft:evoker/minecraft:vindicator, a zombie-shaped mob needs epicfight:zombie, etc.). Custom-model mobs (GeckoLib bosses) are not supported by design. Built-in safeguard: before wiring anything, CompatLink compares the target's texture size with the preset's. On mismatch the mapping is rejected with a clear log message (e.g. texture size mismatch 64x128 vs 64x64 — mapping skipped) and the mob stays 100% vanilla — no broken models, no crashes. Validation is strict: if anything about a mapping can't be wired safely, CompatLink registers nothing for it and logs the reason. FAQ
Does the server need it? The client? Both, on dedicated servers — install CompatLink (and the same mapping files) on client and server. In singleplayer one install is enough.
What happens if Epic Fight is missing? Nothing breaks. CompatLink loads, parses your files, and reports "backend 'epicfight' unavailable" in the log.
A mapping file has a typo — will my game crash? No. That one file is skipped and the reason is logged; everything else applies.
Which loader/version do I download? compatlink-1.1.2.jar for Forge 1.20.1 (Java 17), compatlink-neoforge-1.1.2.jar for NeoForge 1.21.1 (Java 21). Same features, same JSON format on both.
Can other combat mods be supported? The core API is a loader-agnostic, MIT-licensed backend SPI. Epic Fight is the first backend.
Do weapon params do anything? Yes — impact, armor_negation, damage_bonus, speed_bonus and max_strikes are applied exactly like Epic Fight datapack attributes. See "Tune weapon stats" above.
Screenshots
Gallery
Versions
Files
Relations
Project Relations
More like this
Similar Mods
Suggestions use data such as tags, dependencies, dependents, descriptions, titles, and more to rank how much they overlap with this mod.
On ModDex
Community snapshot
By the numbers
Statistics
Want to reach Minecraft players?
We're looking for a server hosting partner to feature here and other parts of the site. Interested? Send us a message!
Get in touchGet it on
Available Platforms
On ModDex
Community snapshot
By the numbers
Statistics
Resources