CombatEventFix
CombatEventFix fixes BetterCombat's and EpicFight's compatibility issues with Forge's event system, allowing custom combat implementations to work correctly with other mods that rely on Forge events.
It also enables BetterCombat and EpicFight to work with ParCoolSkill by fixing issues that prevented some skills from being triggered, with the exception of Cleave in EpicFight, which is intentionally incompatible by design.
BetterCombat
Attack Input Events
BetterCombat replaces Minecraft's vanilla attack input handling, which can prevent Forge's click input events from being fired during its custom attacks.
CombatEventFix ensures that BetterCombat's custom attacks properly trigger the corresponding Forge input event and respect the event's cancellation result. This allows other mods to intercept or cancel these attacks through the standard Forge event system.
EpicFight
Critical Hit Events
EpicFight replaces vanilla critical hits with its own custom critical hit implementation. As a result, Forge's critical hit event cannot correctly detect critical attacks performed through EpicFight.
CombatEventFix restores the use of the vanilla critical hit implementation while preserving EpicFight's original critical hit conditions. This allows other mods to reliably detect EpicFight critical hits through Forge's standard critical hit event.
Damage Multiplier Timing
In Minecraft 1.21.1, EpicFight applies certain damage multipliers after damage reduction has already been calculated. Vanilla damage modifiers are generally applied before armor and other damage reduction calculations, allowing increased damage to partially bypass these reductions.
Because EpicFight applies its damage multiplier later through LivingDamageEvent.Pre, the additional damage cannot properly contribute to overcoming armor reduction, resulting in lower-than-expected damage.
CombatEventFix moves the application of EpicFight's damage multiplier to the appropriate stage of the damage calculation, restoring the intended interaction with armor and other damage reduction mechanics.
For example, when performing a critical hit with a Diamond Sword against a fully armored Zombie:


With CombatEventFix, EpicFight's damage multiplier is applied at the correct point in the calculation to prevent this unintended damage loss.