Mineuniverse
Log in Register
Mods

Apothic Attributes x Brutality Compat

Compatibility for Brutality armor calculation and Apothic Attributes damage calculation
by d0ugdimmadome
Download Claim this project
8,490 downloads
0 likes
Updated Jul 6, 2026
0 hypes
Addons Bug Fixes

Purpose

This mod fixes armor bypass compatibility math between Brutality and Apothic Attributes / AttributesLib.

The issue

In certain compatibility paths, Brutality’s lethality can push effective armor below zero before armor reduction is resolved.
If that negative armor is fed into a reduction formula without safeguards, results can become invalid (0, huge spikes, or non-finite values).

Why it happens

Brutality computes effective armor as:

modifiedArmor = targetArmor * (2 - armorPenetration) - lethality

Then armor reduction uses Apothic’s damage scaled constant a:

if damage < 20: a = 10
if damage >= 20: a = 10 + (damage - 20) / 2

Damage through factor:
a / (a + modifiedArmor)

Final damage after armor stage:
finalDamageAfterArmor = damage * (a / (a + modifiedArmor))

If modifiedArmor becomes strongly negative:

denominator can approach 0, causing extreme damage values
denominator can hit 0, causing inf / undefined damage cases
denominator can go negative, causing negative final damage result (doesnt heal target, but gets clamped to 0 in many cases)

Examples

Case A (negative output path)

targetArmor = 1, armorPenetration = 1, lethality = 12, damage = 20

modifiedArmor = 1 * (2 - 1) - 12 = -11

a = 10

final = 20 * (10 / (10 + -11)) = -200

Case B (divide-by-zero path)

targetArmor = 1, armorPenetration = 1, lethality = 11, damage = 20

modifiedArmor = -10

a = 10

final = 20 * (10 / (10 + -10)) = 20 * (10 / 0)

The fix

This mod applies two safeguards:

Clamp effective armor floor to 0 before reduction math (no negative armor input into armor formula).

Preserve high lethality scaling by splitting lethality into:

armor reduction down to zero

excess lethality converted into linear bonus damage:
bonus = unarmoredDamage * (excess * bonusPerExcessLethalityPoint)

Default:
bonusPerExcessLethalityPoint = 0.10 (10% per excess point, configurable)

Example of excess bonus

If unarmoredDamage baseline is 5, excess lethality is 4, and config is 0.10:

bonus = 5 * (4 * 0.10) = 2

Total = 5 + 2 = 7

Compatibility behavior

If Apothic Attributes is present, uses ALCombatRules#getArmorDamageReduction
If not, falls back to vanilla CombatRules.getDamageAfterAbsorb

Result

no divide by zero / infinite damage cases
no negative to zero behavior
predictable and configurable lethality scaling

Intended for packs using Brutality + Apothic/AttributesLib.

lethalityfix-1.0.0.jar
MC 1.20.1, Forge
Release 2026-02-17 Get

More from d0ugdimmadome

Advanced Bow Enchantments
8,297
Echelon - Linggango Variant
343,817
Macabre Fixes and Optimizations Patch
23,871

You Might Also Like

SI: Scriptified [DISCONTINUED]
DISCONTINUED
99,868
FTB Quests Entity Visualization
Adds entity visualization to FTB Quests
99,525
JEI / REI WorldGen
JEI/REI Addon for World Gen Information with universal compatibility for all mods ores by utilizing biome generation data
99,419
Pixel Blocks
Pokemon Lucky Block! When mining the pixel block a random pokemon spawns.
9,988
TFC Bonsai
Add TFC Trees to bonsai pots
9,988
Laser Eyes
A "laser eyes" addon for the Viltrumite mod.
9,968