FFItemWeight
ModAdds weight and encumbrance built dynamically from crafting recipes and data. Insanely configurable.
Type
Mod
Modrinth Downloads
82
Modrinth ID
h0IDTSdb
Last Updated
Sep 27, 2026
Description
The goal of this mod was to make players think about inventory management and equipment, without being too punishing. By default only potion effects are applied such that the player can visually understand their encumberance, but attributes can be modified as well if desired. (This was done specifically so players have a visual reminder to what is affecting them.)
All Items have weight, either by a base configuration or determined by the weight of their crafting ingredients. Carry too much and you become encumbered. Highly configurable, almost every feature can be modified or disabled.

Overview
Every item has a unit weight. Stack weight is unit times count, plus contents of shulkers, bundles, and other nested inventories when that option is on. Your total is inventory plus optional armour, offhand, Accessories, and Curios.
Totals map to encumbrance bands (default Unencumbered through Immobile). Capacity can raise those thresholds from player level, armour, equipment overrides, accessory bonuses, and the Burden Bearing / Crushing Load enchantments.
Heavy bands can apply potion effects and attribute modifiers from server config. Creative mode ignores carry weight unless you turn that on.
Client display
- Tooltips: category and numeric weight (Shift for precise values)
- Inventory slots: optional outline or background by item weight band
- HUD: encumbrance icon, optional label and total. The icon can shake from a chosen band upward (default Heavy Load). Custom icons go in assets/ffitemweight/textures/gui/encumbrance/<name>.png (Heavy Load becomes heavy_load.png)
Weights are computed on the server (datapack bases plus optional recipe derivation) and synced. Display is client-only.
Soft compatibility
Mod Notes EMI Weights on item tooltips Accessories / Curios Equipped slot weight and capacity. Accessories wins if both are loaded so Compatibility Layer does not double-count Create Default recipe modifiers and filters Universal Sawmill sawmill:woodcutting ignored by defaultCommands (permission 2): /ffitemweight defaults [page] lists items still on defaultWeight. /ffitemweight help.
Client config: ffitemweight-client.toml (tooltips, slots, HUD). Server config: ffitemweight-server.toml (calculation, nested inventories, tracking, capacity, effects).
Datapack makers
Path: data/<namespace>/item_weights/<name>.json
{ "comment": "optional", "weights": [ { "id": "mymod:widget", "weight": 2.5 }, { "id": "mymod:.*_ore", "weight": 6.0, "regex": true }, { "id": "mymod:boss_core", "weight": 50.0, "force": true } ] } Field Default Meaning id required Item id, or a Java regex on the full registry id when regex is true weight required Unit weight (one item). Clamped by maxUnitWeight regex false Treat id as a regex force false Lock the base. Recipes cannot overwrite itResolution order: forced exact, forced regex (HEAVIEST or LIGHTEST), non-forced exact, longest non-forced regex, recipes, then defaultWeight.
Use force: true for balance anchors and items with bad recipe graphs. Leave normal craft chains unforced so tools and armour can derive from ingredients.
Shipped defaults: data/ffitemweight/item_weights/default.json. Override the same exact id (optional force).
Recipe derivation (server calculation): multi-pass HEAVIEST or LIGHTEST, type modifiers, ignored types, and skip patterns for recycling. Repairs and dyes (result is also an ingredient) are skipped in code. Diamond to netherite smithing still applies unless the result is forced.
ignoredRecipeTypes = ["minecraft:smithing_trim", "sawmill:woodcutting", "mymod:assembler"] containerContentModifiers = [".*:.*_shulker_box=0.5"]Encumbrance bands: Name:maxTotal:#RRGGBB. Effects and attributes use the same names (Category=effect:amplifier;... and Category=attr:operation:amount;... with add / multiply_base / multiply_total).
If many items stay on default weight, add JSON bases and use /ffitemweight defaults. If a machine mod inflates materials, ignore its recipe types or force anchors.
Modding API
Package com.fyxe.ffitemweight.api. Prefer ItemWeightAPI over internal classes.
[[dependencies.yourmod]] modId="ffitemweight" type="optional" versionRange="[0,)" ordering="NONE" side="BOTH" ItemWeightAPI.getUnitWeight(item); ItemWeightAPI.getWeight(stack); // count plus nested contents ItemWeightAPI.getPlayerTotalWeight(player); ItemWeightAPI.getPlayerEncumbrance(player); ItemWeightAPI.isPlayerEncumbranceAtLeast(player, "Heavy Load"); ItemWeightAPI.invalidatePlayerCache(player); ItemWeightAPI.getEquipmentCapacityBonus(stack);EncumbranceChangedEvent fires on NeoForge.EVENT_BUS when the player's band name changes (not on first observation after join, not cancellable). Client HUD helpers live in com.fyxe.ffitemweight.api.client.ClientItemWeightAPI.
What's with the FF prefix?
It stands for Fyxe's Features! Its a clean way to easily find all of my mods when changing configs or creating packs. Mods that are a part of the "FF" system are usually smaller and unintrusive.
Feedback
If you have any ideas for improvements, questions, or concerns, I am open to communicating through email: [email protected]
Compatibility
Mod Loaders
Game Versions
Recommended Gear
AffiliateHardware and extras that pair well with this mod.
As an Amazon Associate I earn from qualifying purchases.
Screenshots
Similar Mods
Apotheotic's Shadow Walker - Stealth Overhaul
A stealth mod based around the sneak mechanic in Skyrim, sneak attack and evade your enemies
No Idle Animation
Removes the idle hand-moving animation.
Anti Spectator Noclip
Prevent spectator players from passing through walls
Lazer guns
This mod add to game a Lazer Gun!
EF Resurrection crash fix
Small Forge 1.20.1 mixin mod that prevents a server crash when Epic Fight's BasicAttack.setComboCounterWithEvent is cal...
(AI Mod) FBX Player Models
Tired of vanilla skins? FBX Player Models lets you upload any 3D model and use it as your player skin.