HomeJavaModsOverhauled Damage
Overhauled Damage
ModsJava

Overhauled Damage

by TheRedBrain · on Modrinth

A complete overhaul to several mechanics revolving around damage. Including elemental damage and shield parrying.

Which Minecraft do you have?

Every version of the game needs its own build. Pick yours, then download — the wrong build installs fine and then does nothing in the game. This mod is built for Fabric only.

⬇ Download for 26.1–26.1.2⬇ Download for 1.21.1⬇ Download for 1.21⬇ Download for 1.20.1
I don't know my version or loader
Open the Minecraft launcher and look at the profile you play on — it names both, like fabric-loader-1.21.4. The version also shows in the bottom-right corner of the game's main menu.
No loader in the profile name? Then it's plain Minecraft, and these mods won't run — you need Fabric or NeoForge installed first.

Overhauled Damage

A complete overhaul to several mechanics revolving around damage. It is inspired by games like Dark Souls and Valheim and aims to deepen Minecraft's combat.

Effect Build-Ups

Effect Build-Ups are a resource (like health) and are zero by default. Certain events (like taking damage) increase or reduce these resources. Build-Ups are also slowly reduced over time.

If a build-up reaches a certain threshold, the corresponding status effect is applied and the build-up is set to zero again.

Currently, there are the following effect build-ups:

Effect Build-ups are displayed in the HUD.

Almost all aspects of this system are configurable via entity attributes, config files and/or data packs.

Status Effects

Overhauled Damage adds several status effects that are used by the effect build-ups. They can be configured in the server config.

Some of these effects currently don't have a gameplay effect, since the required third-party APIs are not updated yet.

The Effect Build-Ups can also be configured to use other effects.

The status effects added by Overhauled Damage are:

Overhauled Damage Calculation

Every instance of damage that is dealt to an entity in Minecraft has a "damage type". This defines the death message and mechanics like resistances.

Overhauled Damage expands this system. Each enabled overhaul naturally disables the corresponding vanilla implementation.

When an entity is damaged, this no longer just reduces health. Depending on the damage type, there can be a variety of effects. This can still include health reduction, but it can also be effect build-up increases and even mana/stamina can be modified.

What exactly happens, is determined by the damage type or more precisely, to which category (or attack type) the damage type belongs.

Attack Types

Each "damage type" belongs to one or more categories (called "attack types"). This is defined by a list of float values (called multipliers), one for each attack type.

The attack types are:

By default, every damage type has a multiplier of 1.0 for Generic and 0.0 for the rest. Exceptions to this are defined in the server config.

The first step of the new damage calculation is to determine the amount of each attack type, using the damage amount that was dealt to the entity.

attack_type_amount = damage_amount * attack_type_multiplier

True Damage

Damage types in the "overhauleddamage:is_true_damage" damage type tag will ignore the custom damage calculation. They are not affected by shield blocking, armor or resistance. They don't apply Effect Build-Ups. They just deal damage to health (and/or mana/stamina, if applicable).


Blocked Damage

This part of the calculation only happens if:

Parrying

Parrying replaces normal blocking and increases the parry_multiplier if certain conditions are met:

parry_multiplier = (if parrying) ? ("blockingoverhaul:parry_multiplier" attribute) : 1

Stamina Cost Application

If Stamina Attributes is installed, the stamina cost for blocking/parrying an attack is applied. If the entity's stamina is lower than zero after that, the attempt to block/parry the attack fails and the damage amount is not reduced.

Blocked Damage Calculation

The amount of blocked damage is no longer determined by the "minecraft:blocks_attacks" data component, but is now depending on the damage_type (more specifically on its attack_types) of the attack and on several entity attributes. There are 2 different modes, flat damage reduction and percentage based damage reduction.

blocked_attack_type_amount = blocked_attack_type_damage_attribute * parry_multiplier

blocked_attack_type_amount = attack_type_amount * blocked_attack_type_damage_attribute * parry_multiplier / 100

Stagger Application

The sum of all attack_type_stagger_amount is then applied to the stagger build-up of the attacked entity. If the entity gets staggered by this, then the block/parry attempt fails and no damage is blocked.

attack_type_stagger_amount = (attack_type_amount - blocked_attack_type_amount) * attack_type_stagger_multiplier

Damage Reduction

If the blocking/parrying attempt was successful, then the attack amount is reduced.

new_attack_type_amount = old_attack_type_amount - blocked_attack_type_amount

Additional Effects

If the attack had an attacker, then blocking/parrying has additional consequences. If the attack was parried, then the attacker gets staggered instantly.

If the attack was blocked normally, then either the attacking or the defending entity are knocked back by a variable amount.

additional_attack_type_knockback = old_attack_type_amount * attack_type_negative_block_force_multiplier

applied_knock_back = ((defender's "blockingoverhaul:block_force" attribute) * parry_multiplier) - (attacker's "minecraft:attack_knockback" attribute) + (sum of all additional_attack_type_knockback) * total_applied_blocking_knockback_multiplier_config_option

If applied_knock_back is greater zero, it is applied to the attacking entity.

If applied_knock_back is lesser zero, its absolute value is applied to the blocking entity.


Damage Reduction by Armor

The remaining attack type amounts are reduced by armor, using the following formula:

effective_armor = armor_attribute * armor_toughness_attribute (This can be disabled in the server config)

attack_type_armor_damage = attack_type_amount * effective_armor * attack_type_armor_multiplier / 100;

attack_type_amount = attack_type_amount - attack_type_armor_damage

The sum of all attack_type_armor_damage is then used to damage the entities armor.


Damage Reduction by Resistances

Each attack type has a corresponding resistance attribute. The remaining attack type amounts are reduced by resistance using the following formula:

attack_type_amount = attack_type_amount - (attack_type_amount * attack_type_resistance_attribute) / 100;


Effects of the Attack

The remaining attack type amounts apply their effects to the attacked entity.

Bleeding Build-Up

If the damage type is in the "overhauleddamage:applies_bleeding" damage type tag, the attack can apply bleeding build-up. The amount is calculated by multiplying each attack type amount with a configurable multiplier and adding up the results.

Burn Build-Up

The applied burn build-up is simply the fire_amount.

Chilled Effect and Freeze Build-Up

Frost damage applies the Chilled effect. The effect duration is the frost_amount * a configurable multiplier.

The applied freeze build-up is simply the frost_amount.

Stagger Build-Up

If no attempt was made to block/parry the attack with a shield, then stagger build-up is applied now. The amount is calculated by multiplying each attack type amount with a configurable multiplier and adding up the results.

Poison Build-Up

The applied poison build-up is simply the poison_amount.

Shock Build-Up

The applied shock build-up is simply the lightning_amount.

Knockback

If no attempt was made to block/parry the attack with a shield and the Knockback Overhaul is enabled, then the attack knockback is applied now. The amount is calculated by multiplying each attack type amount with a configurable multiplier and multiplying the sum with a configurable global multiplier .

Damage applied to health/mana/stamina

The amount of "applied damage" is calculated by multiplying each remaining attack type amount with a configurable multiplier and adding up the results.

If Mana Attributes and/or Stamina Attributes is installed, a portion of "applied damage" can be taken from mana/stamina. The remaining amount of "applied damage" is then taken from the entity's health.

Integration of Overhauled Damage into vanilla Minecraft and mod packs

How exactly Overhauled Damage should be integrated into the gameplay and balance of a mod pack is highly subjective, which is why most features can be configured extensively and/or use data driven methods for configuration.

Most features have default values that are somewhat reasonable and could be used as a baseline for customisations.

If you have any questions or problems when configuring Overhauled Damage, you can contact me on GitHub or Discord.

API

Overhauled Damage provides a Java API that allows any Mob entity to deal damage with a custom damage type.

Implement the "UsesCustomDamageType" interface and override the "overhauleddamage$getCustomDamageType()" method.

Built-in Data Packs

Overhauled Damage also comes with several built-in data packs, which further integrate existing or add new content.

Overhauled Damage Enchantments

This data pack adds several new enchantments:

Vanilla Enchantments Overhaul

This data pack reworks some vanilla enchantments to use mechanics introduced by Overhauled Damage.

This includes:

Quick facts

Install steps are the general flow for this file type — How to install Minecraft Java mods & modpacks walks through it step by step.

Verified by MCModsHub

These come from our own check of the pack file, not from the source page.

Explore more