promotional bannermobile promotional banner

Strike After Swing

Delays mob melee damage until the attack swing animation finishes.
Back to Files

StrikeAfterSwing 1.0.3 - neoforge 1.21.1

File nameStrikeAfterSwing-neoforge-1.21.1-1.0.3.jar
Uploader
MerrySnowMerrySnow
Uploaded
Oct 15, 2026
Downloads
29
Size
22.4 KB
Mod Loaders
NeoForge
File ID
9189111
Type
R
Release
Supported game versions
  • 1.21.1

Curse Maven Snippet

NeoForge

implementation "curse.maven:strike-after-swing-1592394:9189111"

Learn more about Curse Maven

What's new

New

  • The attack windup is now an entity attribute: strikeafterswing:attack_windup (in ticks, default 6 = the vanilla base, range 0-1024). It replaces the number vanilla hard-codes in LivingEntity#getCurrentSwingDuration, so a mob's windup can be tuned per entity, e.g. /attribute @e[type=minecraft:husk,limit=1] strikeafterswing:attack_windup base set 20 or with attribute modifiers (add_value / add_multiplied_total) from commands, datapacks or other mods. The attribute is synced to clients, so the swing animation and the hit timing stay in step in multiplayer without any client-side setup.
  • config/strikeafterswing/blacklist.json: a JSON array of entity ids the mod leaves completely alone, e.g. ["minecraft:zombie"]. Listed mobs keep vanilla attack timing and never have their hit deferred. Hot-reloaded like windup.json; a missing file means an empty list.

Behaviour changes

  • windup.json now multiplies the attribute base instead of the raw vanilla value: final swing duration = round((attribute + vanilla's own adjustments) x multiplier). Vanilla's adjustments stay (Haste / Mining Fatigue, and on 26.1.2 also the held item's swing animation), so with nothing configured every mob behaves exactly as in 1.0.2 - a husk at maximum Mining Fatigue still swings for 518 ticks. The attribute and the config multiplier are independent factors: 150 ticks with {"minecraft:husk": 2.0} gives 300 ticks, 150 ticks alone gives 150.
  • When a deferred hit resolves, the melee reach re-check now compares horizontal distance only and ignores the vertical axis, matching what vanilla does once it has committed to an attack. A target that gets launched, lifted or jumps during the windup used to have the whole queued hit voided; it now still takes the hit.
  • Bad entries stay isolated in both config files: a bad value is dropped with a warning while the rest keeps working, and a file that cannot be parsed keeps the last good values.

Compatibility

  • Same nine builds as 1.0.2: Forge 1.16.5 / 1.18.2 / 1.19.2 / 1.20.1, Fabric 1.20.1 / 1.21.1 / 26.1.2, NeoForge 1.21.1 / 26.1.2.
  • Only mob attacks are affected; player swings keep vanilla timing. Modded mobs registered without the usual Mob#createMobAttributes default attribute table simply fall back to the vanilla base (the config multiplier still applies).
  • No config change is required when updating: a mob without the attribute uses the vanilla base, and a missing blacklist.json means an empty list.

Verified

  • All nine targets build with their own JDK and pass the full behaviour suite (11 scenarios on a live dedicated server), including the new attribute scenario: attribute 150 ticks lands its first hit at 152-203 ticks, the same attribute with a x2 config entry at 311-322, and a mob left at the attribute default at 12-50 (unchanged from 1.0.2).

This mod has no additional files