Progressive Mechanics Library: Damage Control & Mod Compatibility

Progressive Mechanics Library: smarter combat math for Minecraft mods If you love modded Minecraft combat, you have probably noticed how hard it can be for mods to agree on what really happened in a fight. Was that hit a crit? Was it a sweep that clipped multiple mobs? Library mods exist to give ...

Download pml for Minecraft 1.20.2, 1.20.1

Original name: pml

Minecraft: 1.20.1, 1.20.2

Loaders: Forge

FileVersionLoaderSize
pml-1.0.0.jar1.20.1Forge15 КБDownload
pml-1.0.2-all.jar1.20.1Forge195 КБDownload
pml-1.0.3-all.jar1.20.1Forge195 КБDownload
pml-1.0.3c-all.jar1.20.1Forge195 КБDownload
pml-1.0.4b-all.jar1.20.1Forge201 КБDownload
pml-1.0.1-all.jar1.20.2Forge194 КБDownload

Progressive Mechanics Library: smarter combat math for Minecraft mods

If you love modded Minecraft combat, you have probably noticed how hard it can be for mods to agree on what really happened in a fight. Was that hit a crit? Was it a sweep that clipped multiple mobs? Library mods exist to give everyone the same language, and Progressive Mechanics Library is aimed squarely at damage and combat mechanics so other mods can read and shape fights with less guesswork.

What this library is (and why players should care)

Progressive Mechanics Library is not a content pack full of new swords or bosses. It is infrastructure. Its job is to let your mods and other community mods coordinate how damage is typed, tracked, and adjusted before it lands on a living entity. When a library does that well, balancing mods, UI tooltips, and advanced combat systems all get easier because the numbers pass through a predictable pipeline.

Players might install it because something else in their mod list depends on it. Even then, it is worth knowing what changed under the hood, because those tweaks unlock cleaner crit logic and clearer sweep damage for addons that hook the same events.

Critical hits and sweeping attacks get their own damage types

Out of the box, the mod adjusts how damage is labeled when you land specific vanilla-style behaviors. When you score a critical strike, the damage type becomes pml:player_critical, which helps other mods detect crits without fragile heuristics. When you deal a sweeping attack, the damage type becomes pml:sweeping_damage, which separates wide-arc hits from ordinary strikes. That kind of explicit typing is surprisingly powerful for pack makers who want rules like “this enchant only boosts sweep damage” or “this armor debuff only triggers on crits.”

The DamageControl class: a structured damage pipeline

For mod developers, the core idea is the DamageControl class. Think of it as a worksheet that walks from raw base damage to a final value you can still inspect or tweak around LivingDamageEvent. The flow starts with raw base damage, applies weapon-specific scaling (which can shave damage before other math kicks in), then stacks bonuses in a deliberate order, then resolves reductions, and finally exposes a coherent snapshot of what the game is about to apply.

That order matters. If you have ever watched two mods fight because one multiplier ran too early, structured pipelines are the antidote. Base flat bonuses feed in first, then percentage-based base bonuses. After that, additional flat and percent bonuses apply. Reductions follow, covering armor, enchantments, and special cases that should trim the result at the right moment.

When you are juggling libraries and combat overhauls, a modern setup helps. Sorting out dependency mods does not have to feel like archaeology; if you want a launcher that keeps installs tidy, this mod can be easily installed via the foxygame.net launcher—a convenient, flexible, and modern Minecraft launcher where you can download mods right from the menu—so you spend less time chasing filenames and more time testing how DamageControl behaves in your pack.

Variables modders hook for bonuses and reductions

Progressive Mechanics Library exposes named slots so you can reason about each contribution instead of patching everything in one giant mutator. For increasing damage, common fields include baseFlatBonus and basePercentBonus for early buffs, plus flatBonus and percentBonus for later layers. That split mirrors how designers think: some effects should amplify the weapon baseline, while others should add finishing spice after other systems have spoken.

For reducing damage, you get finer control too. weapondamagecontrol handles weapon-based scaling ahead of the rest of the chain. Armor and enchantments are tracked separately through armor reduction and enchantment reduction paths, which keeps vanilla-style mitigation readable. specialReduction is the heavy-handed knob: it directly trims the final damage, so authors should treat it like a last-resort brake, not a default fix, because it can zero out hits if mishandled.

Key getters: armor, enchantments, and special trims

Three methods help you read the story the pipeline just told. getArmorReduction() returns how much armor mechanics shaved off after being set via setArmorReduction(float value), whether that is vanilla armor or a custom armor mod layering extra mitigation. getEnchantmentReduction() tracks enchant-driven trims, which is handy for tooltip transparency or for rebalancing Protection-style effects without stripping enchantments entirely. getSpecialReduction() reports the end-stage reduction from bespoke mechanics; because it lands at the end, it is the most powerful reduction form and the easiest to overshoot.

Reference snapshots also include originalDamage, which stores the computed final damage ready for LivingDamageEvent, and originalAbsorption, which preserves the absorption picture before modifications. Those anchors help mods align UI, debugging, and downstream listeners.

First Aid compatibility and body-part awareness

Many combat packs run First Aid, which reimagines damage as injuries hitting specific body regions. Progressive Mechanics Library adds integration so DamageControl-minded mods can stay coherent with that model. During LivingDamageEvent, when First Aid is present, getDamagedBodyPart(Player player) can retrieve the affected body part as an EquipmentSlot mapping. If the player is not mapped, you get null, which is a polite signal not to assume limb logic where it does not apply. Mods such as Forgotten Nunchakus illustrate the pattern: body-part-aware effects become easier when you can query the slot that actually took the hit.

Closing thoughts

Progressive Mechanics Library is the kind of mod you might never “see” in inventory screens, yet it quietly upgrades how crits, sweeps, and layered modifiers cooperate across Minecraft versions and biome-hopping adventures. Whether you are tuning PvE on a server or shipping your own combat addon, treating damage as typed, staged, and inspectable turns chaotic brawls into systems you can iterate on. Pair it with careful use of special reduction, respect the First Aid hooks when they are active, and you get combat mechanics that scale with your imagination instead of fighting the engine.