Armor Weight
Strong armor can keep you alive, but it should not always be the best choice for every situation.
ITM's Armor Weight gives armor a configurable movement cost based on the attributes of each equipped item. Every player also has an Armor Weight Capacity: armor within that capacity causes no slowdown, while overload gradually trades mobility for protection.
The system is based on the actual attributes of each equipped item rather than a hardcoded material list. This lets vanilla and modded armor participate in the same rules automatically.
The goal
Armor progression is often linear: equipment with higher defensive stats is simply better once it becomes available. ITM's Armor Weight turns that progression into a choice between protection and mobility.
Light armor can remain attractive for players who value speed, positioning, and easier disengagement. High-end armor becomes a deliberate tradeoff rather than an automatic upgrade, while mixed equipment and different levels of protection can support distinct playstyles:
- Wear lighter equipment for mobility
- Accept moderate weight for reliable all-purpose protection
- Become a slower, heavily armored juggernaut
- Mix armor pieces instead of automatically choosing the highest available stats
Default balance
The default Armor Weight Capacity is 20. Common early- and mid-game armor still has weight, but full leather, gold, chainmail, and iron sets all fit within that capacity and therefore cause no slowdown. The table assumes the default capacity and Max Health scaling disabled.
| Example set | Total weight | Overload | Movement slowdown |
|---|---|---|---|
| Full leather armor | 7 | 0 | 0% |
| Full gold armor | 11 | 0 | 0% |
| Full chainmail armor | 12 | 0 | 0% |
| Full iron armor | 15 | 0 | 0% |
| Full diamond armor | 24 | 4 | about 2.9% |
| Full netherite armor | 28.6 | 8.6 | about 8.5% |
| Botania — Terrasteel | 33.67 | 13.67 | about 15.7% |
| Ice and Fire — Dragonsteel | 54.4 | 34.4 | about 42.6% |
| Mekanism Tools — Refined Obsidian | 55.8 | 35.8 | about 44.0% |
These values are examples, not hardcoded special cases. The modded rows use the armor's default 1.20.1 item attributes and are calculated piece by piece rather than from the player's aggregated armor bar: Terrasteel has 20 total Armor, 12 total Toughness, and 1.0 total Knockback Resistance; Dragonsteel has 34 Armor and 24 Toughness; Refined Obsidian has 31 Armor, 20 Toughness, and 0.8 total Knockback Resistance. Other mod versions or modpack configs may change those attributes and therefore produce different weights.
How item weight is calculated
For the positive additive Armor (A), Armor Toughness (T), and Knockback Resistance (K) attributes of one item:
pieceWeight =
A × armorImpact
× (1 + T × toughnessImpact)
× (1 + K × knockbackResistanceImpact)
Default impacts:
armorImpact = 1.0toughnessImpact = 0.1knockbackResistanceImpact = 1.0
Armor is the item's base weight. Toughness and Knockback Resistance multiply that base because defensive stats become more valuable when combined. The weights of all equipped pieces are then added together.
This preserves intuitive differences between armor pieces: if two items have the same secondary stats and one provides twice as much Armor, it also weighs twice as much. An item with no Armor has zero weight even if it provides one of the secondary stats.
How weight becomes slowdown
Let W be total equipped weight and C be the player's effective Armor Weight Capacity:
overload = max(0, W - C)
Only overload is penalized. For half-speed overload H and curve exponent E:
remainingSpeed = 1 / (1 + (overload / H) ^ E)
Default values:
baseArmorWeightCapacity = 20overloadForHalfSpeed = 42overloadCurveExponent = 1.5
H is an easy balance anchor: when overload reaches 42, the player keeps exactly 50% movement speed. With the default capacity, this happens at total weight 62.
E controls the shape of the curve:
E = 1.0produces a basic hyperbolic curve- Values above
1.0make the initial transition from zero overload gentler and the later transition steeper - Values between
0and1.0make light overload more punishing
The optional maximum-slowdown limit is disabled by default, allowing extremely heavy armor to approach complete immobility. Servers can enable it and choose a limit; its default configured value is 0.8, which caps the penalty at 80% and always leaves at least 20% movement speed.
Optional Max Health scaling
Servers can optionally scale the player's base Armor Weight Capacity from effective Max Health. This feature is disabled by default, so installing the mod does not create an automatic dependency between health and armor balance.
Let M be effective Max Health, R be the reference Max Health, and I be the scaling impact:
capacityScale = max(0, 1 + (M / R - 1) × I)
Default values:
enableMaxHealthCapacityScaling = falsereferenceMaxHealth = 20maxHealthScalingImpact = 1.0
The impact controls how strongly percentage changes in Max Health affect base capacity:
I = 0neutralizes health scalingI = 0.5applies half of the Max Health percentage changeI = 1.0scales capacity in direct proportion to Max HealthI = 2.0applies twice the percentage change
For example, with base capacity 20, reference Max Health 20, and effective Max Health 40, impact 0.5 produces base capacity 30, impact 1.0 produces 40, and impact 2.0 produces 60.
The calculation uses effective Max Health, so vanilla Health Boost and compatible modded health attributes work automatically. Scaling is applied as a transient multiply-base modifier on armor_weight:armor_weight_capacity; other mods can still add their own capacity modifiers without being overwritten.
Movement integration
The slowdown is applied as a transient Movement Speed attribute modifier rather than a Slowness status effect.
The mod also scales additional horizontal impulse created by vanilla sprint-jumping. This prevents sprint-jumping from bypassing armor weight without scaling the player's existing momentum twice.
Weight is recalculated when armor is equipped, removed, or replaced, as well as on login, respawn, and server config application. The cached equipment weight is not recalculated every tick.
Armor Weight Capacity is a synchronized player attribute named armor_weight:armor_weight_capacity. Its effective value is checked every server tick, so other mods can raise or lower capacity with ordinary attribute modifiers without forcing the player to re-equip armor.
Temporary skills, status effects, and modifiers applied directly to other player attributes do not change item weight. Only the attributes provided by the equipped armor items are evaluated.
Tooltips
Armor items with positive weight receive a vanilla-style tooltip line:
+3 Armor Weight
The normal tooltip also tells the player to hold Alt for more information. Holding Alt keeps the item-weight line visible and adds a projected summary:
16/20 Armor Weight
-0% Speed
The preview accounts for the item currently equipped in the same slot, so it shows the result of replacing that item rather than adding both weights. Weight/capacity is blue while within capacity and red when overloaded. The speed line is blue at 0% and red when a slowdown applies.
Tooltip visibility can be disabled in the client configuration.
Configuration
Server-controlled gameplay settings:
armorImpacttoughnessImpactknockbackResistanceImpactbaseArmorWeightCapacityenableMaxHealthCapacityScalingreferenceMaxHealthmaxHealthScalingImpactoverloadForHalfSpeedoverloadCurveExponentenableMaximumSlowdownmaximumSlowdownaffectSprintJumpImpulse
Client setting:
showItemWeightTooltip
The gameplay settings required for movement prediction and item-weight previews are synchronized to connected clients. Effective Armor Weight Capacity is synchronized through Minecraft's attribute system, keeping the displayed capacity and slowdown consistent with the server.
Mod compatibility
Armor using standard additive Armor, Armor Toughness, and Knockback Resistance attributes is supported automatically, including equipment from other mods.
ITM's Armor Weight has no required dependency on the other ITM movement mods:
- Sprint Equalizer composes with the armor speed modifier and sprint-jump adjustment
- Aerial Dash reads the resulting Movement Speed, so heavier armor naturally shortens horizontally speed-scaled dashes
These integrations use vanilla attributes and movement behavior rather than direct mod dependencies.
Supported platforms
- Minecraft 1.20.1 — Forge
- Minecraft 1.21.1 — NeoForge
- Minecraft 26.1.2 — NeoForge
- Minecraft 26.1.2 — Fabric
Install the file matching both your exact Minecraft version and mod loader.
The mod must be installed on both the client and server. For singleplayer, install it in the normal client mod folder.
Fabric installations also require Fabric API.
Modpacks
You may include Armor Weight in any public or private modpack, including monetized modpacks where permitted by the relevant platform rules. No separate permission is required.
When you use the original, unmodified JAR, no additional attribution steps are needed. The license and copyright notice are already bundled inside the JAR, so you do not need to copy them to your modpack page or include separate files.

