promotional bannermobile promotional banner

FFItemWeight

Adds weight and encumbrance built dynamically from crafting recipes and data. Insanely configurable.

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.

Tooltip, basic Tooltip, Advanced

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 default

Commands (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 it

Resolution 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: FyxeINCFeedback@gmail.com

The FFItemWeight Team

profile avatar
Owner
  • 11
    Projects
  • 212
    Downloads

More from FyxeView all

  • FFNutrition project image

    FFNutrition

    A lightweight and configurable food nutrition system that works differently from "Spice of" mods and effects max health. A Fyxe's Features mod.

    • 43
    • September 29, 2026
  • FFFoodSpoilageAndPreservation project image

    FFFoodSpoilageAndPreservation

    A spoilage mod with ways to preserve food. Has support for Cold Sweat, Appleskin, and EMI. Food loses hunger and saturation as it decays. Insanely configurable.

    • 20
    • September 29, 2026
  • FFExpandedBiomeTint project image

    FFExpandedBiomeTint

    Allows any block to get tinted per-biome. Supports Sodium!

    • 8
    • September 29, 2026
  • FFMobSunBurnAngle project image

    FFMobSunBurnAngle

    A mod that changes mob burning / spawning to be dependant on the sun angle. Has optional config to work through transparent blocks.

    • 8
    • September 29, 2026
  • FFNutrition project image

    FFNutrition

    A lightweight and configurable food nutrition system that works differently from "Spice of" mods and effects max health. A Fyxe's Features mod.

    • 43
    • September 29, 2026
  • FFFoodSpoilageAndPreservation project image

    FFFoodSpoilageAndPreservation

    A spoilage mod with ways to preserve food. Has support for Cold Sweat, Appleskin, and EMI. Food loses hunger and saturation as it decays. Insanely configurable.

    • 20
    • September 29, 2026
  • FFExpandedBiomeTint project image

    FFExpandedBiomeTint

    Allows any block to get tinted per-biome. Supports Sodium!

    • 8
    • September 29, 2026
  • FFMobSunBurnAngle project image

    FFMobSunBurnAngle

    A mod that changes mob burning / spawning to be dependant on the sun angle. Has optional config to work through transparent blocks.

    • 8
    • September 29, 2026