RPGDamageOverhaul

RPGDO is a complete overhaul to minecraft's damage system, adding damage types with unique passives for each attack and resistances for each mob.
Back to Files

rpgdamageoverhaul-neoforge-1.21.1-2.0.0.jar

File namerpgdamageoverhaul-neoforge-1.21.1-2.0.0.jar
Uploader
httpedrodevhttpedrodev
Uploaded
Aug 31, 2026
Downloads
12
Size
268.1 KB
Mod Loaders
Fabric
File ID
8777705
Type
R
Release
Supported game versions
  • 1.20.1

Curse Maven Snippet

Fabric

modImplementation "curse.maven:rpgdamageoverhaul-1293843:8777705"

Learn more about Curse Maven

What's new

RPG Damage Overhaul 2.0.0

Covers everything between the April 29, 2026 build (1.2.2-forge, Minecraft 1.20.1) and the 2.0.0 rewrite. The 2.0.0 branch is a mid-flight rewrite, so wired-up changes and unfinished work are listed separately.

Platform

  • Ported to Minecraft 1.21.1.
  • Rebuilt as a multi-loader mod. There is now a shared common module plus separate neoforge (NeoForge 21.1.x) and fabric (loader 0.16.9) builds. The old single Forge project layout is gone, replaced by buildSrc and per-loader subprojects sharing one gradle.properties. Please note that the fabric build is not yet working.
  • The Forge 1.20.1 line (1.2.2) stays as its own branch. 2.0.0 targets NeoForge and Fabric on 1.21.1.

New damage classes

  • Water. A child of frost. Marks the target wet on hit, hits harder in water or rain (x1.5), and briefly raises the frost and lightning damage the target takes afterward. Pulls from water spell power attributes (Aces' Spell Utils hydro, Spell Power water). It only inherits part of frost's defenses (parent defense effectiveness 1.75, parent damage defense effectiveness 0.5).
  • Lava. A child of elemental. Ignites on hit, stacks up to 4 times over 3 seconds, and is weaker in water (x0.75). Shares damage scaling with fire.
  • Fire is now defined as a child of lava. It ignites for a shorter time, stacks up to 3, and is much weaker in water (x0.5).
  • English and Portuguese names added for both water and lava (damage, resistance, absorption, armor).

Damage class definitions

  • Each class is now its own file under data/rpgdamageoverhaul/rpgdamageoverhaul/damage_class/<name>.json. A datapack can add or replace one class without redefining all of them. (The old combined damage_classes.json still loads for now.)
  • The old nested subClasses structure is replaced by a parent field. A class names its parent and inherits behavior up the chain. The tree is physical > {sharp > {slashing, piercing}, blunt} and elemental > {fire > lava, frost > water, poison, holy, soul, wither, blood, lightning}, plus arcane and true.
  • New parent_defense_effectiveness and parent_damage_defense_effectiveness fields control how much of a parent class's resistance and armor carry down to a child.
  • Class behavior is now a registrable property system. Other mods can register their own class properties and on-hit effects through RPGDamageOverhaulAPI.registerPropertyBuilder and registerPropertyAlias.
  • All field names moved to snake_case (on_water, armor_effectiveness, damage_types, attribute_modifier, and so on).

Behavior changes

  • Fire and frost use plain ignite and freeze duration numbers instead of on-hit effect lists.
  • New modify_damage property. A time-limited multiplier on the target's outgoing damage, with either an exception list or a whitelist. Holy uses it (+5% per point of damage, at least +50%, for 2 seconds, not stacking with holy). Water uses it to boost follow-up frost and lightning.
  • New modify_heal property. Cuts healing the target receives for a short time based on the hit. Poison uses this instead of the old anti-heal block.
  • New set_wet property. Marks the target wet for a duration. Used by water.
  • New rename_attributes property. Lets a class treat another mod's attribute as one of its own slots (damage, armor, absorption, resistance). This is how Iron's Spellbooks magic resist and spell power attributes fold into the matching classes.
  • Chain lightning is now the generic chain_damage property with range, max_targets, and damage_modifier, and the modifier accepts a formula using dmg and n (target number).
  • apply_potion now takes explicit duration and amplifier, and the amplifier can be a formula. Poison reaches level 2 at 4 or more damage.
  • attribute_modifier is now a list and uses the 1.21 operation names. Frost's slow was retuned (attack speed down 8% per damage, capped at 60%; movement down 4.5% per damage). Wither now shreds armor and armor toughness on hit instead of blocking healing.
  • Soul keeps its max-health shred and gains a damage enchantment hook (Luminous Nether soul cleave).
  • The standalone physical.json sets the vanilla Resistance effect to cut physical damage by 20% per level (was 5%).
  • The formula evaluator now exposes more variables to class JSON (armor for armor effectiveness, heal for heal modifiers, n for chain targets).

Rebalanced damage and resistance overrides

  • Water, drowning, and aquatic mob attacks moved off frost onto the new water class. minecraft:drown is now water. Drowned, Cataclysm deeplings, leviathan and Scylla, Alex's Caves deep ones and hullbreaker, Aquamirae fish, Ice and Fire sea serpents and sirens, Sea Dwellers mermorphs, and many others now resist water instead of frost, and several of those values went up.
  • Lava, magma, and volcanic attacks moved off fire onto lava: minecraft:lava, Create fan lava, Cataclysm Ignis and flame strike, Alex's Caves nuke, tephra and Luxtructosaurus, Souls Weapons flame pillar, Fryc lava slime, Mowzie's solar beam and sunstrike, and more.
  • Added a neoforge:poison mapping to the poison class.
  • Cataclysm pass: Scylla now also deals water damage, lightning_spear and lightning_storm map to lightning, the Ignis abyss fireball is lava plus water, and coral golem and deepling resistances were retuned.
  • Small tuning to Frostmaw, Hydra, and a few others.

Compatibility

  • Iron's Spellbooks (new optional dependency). Fire, frost, lightning, blood, holy, ender, eldritch, and nature spell power and magic resist attributes are mapped into the matching RPGDO classes, and spell power copies into class damage.
  • Spell Power and Aces' Spell Utils. Fire, frost, water, arcane, holy, and soul spell power attributes feed the matching classes.
  • Rotten Creatures (new). Resistances for burned, frostbitten, swampy, mummy, glacial hunter, scarab, dead beard, the zombie and skeleton lackeys, and immortal (which takes extra holy damage). Magma and frozen rotten flesh give fire or frost resistance when eaten, if Food Attributes is present.
  • Food Attributes (new, first pass). A curated food to class mapping in attributesetter/item_type/foodattributescompat.json: strider slice and minced strider give fire armor and resistance, bullet pepper and pepper powder give fire damage, chili and buffalo wings give fire damage, gumbo gives fire armor and keeps its blast resistance, magma cream gives lava resistance, strider egg gives lava armor, melon gives piercing resistance, chorus fruit gives arcane armor, several fish give water resistance, pufferfish gives poison resistance, ghasta gives soul resistance, and beetroot gives blood damage. The full design is in docs/design/foodattributes-compat.md.
  • Better Combat, Simply Swords, Simplymore, Jade, and Curios compat carried forward to 1.21.1.

Networking

  • New payload-based sync for 1.21.1: RPGDODatapackSyncPayload, DamageClassSyncStartPayload, DamageClassAddConfigPayload, DamageClassSyncFinishedPayload. Damage class configuration streams to clients on join and on reload.
  • On NeoForge the sync runs before Forge's own registry sync to avoid an ordering crash.

Other

  • Attribute modifier data dropped the old UUID fields to match 1.21's ResourceLocation-based modifiers.
  • New AttributeUtils helper that resolves an attribute value through all modifier operations, used by the class damage and resistance math.

Not finished in this build

  • Better Mob Combat, Apotheosis, Dungeons and Combat, and some Simply Swords ability compat from 1.20.1 is not ported yet.
  • Legacy damage_classes.json, damage_overrides.json, entity_overrides.json, item_overrides.json, and bettercombat.json still ship alongside the new per-class files, this is because if I screw something up I want to be able to look at the old files.