Modscraper Modscraper Minecraft
Pondus Inventory logo

Pondus Inventory

Mod

by CatCosYT

The mod allows you to add the calculation of items in storage on ships to the Sable physics calculations.

Type

Mod

CurseForge Downloads

4,329

CurseForge ID

1528664

Modrinth Downloads

1,726

Modrinth ID

jkDxc7XT

Last Updated

Aug 29, 2026

Description

# Pondus Inventory FI *An addon for Sable that makes every block, item, and fluid pull its weight—literally.* > ⚠️ **I warn you:** this mod is still under active development. To make it work with other mods, you will need to manually adjust the settings. You have been warned! > ℹ️ **If you want to help** with the blanks for the weights of items, blocks, and liquids from various mods, write about it in the channel **[⌬・synthesis-of-ideas](https://discord.com/channels/1438431308203163661/1495773585766224043)**. All whose configs will be listed on this mod page and in the mod description. --- ## What does it all mean? Pondus Inventory FI is a companion mod for the Sable physics engine. It provides an incredibly detailed system for determining how much blocks, items, **and fluids** actually weigh. You can change the mass of a block, item, or fluid on the fly using settings or in-game commands. The mod also looks inside chests, barrels, fluid tanks, and any other containers and adds weight to whatever is holding them up — so your airship suddenly becomes much heavier when the cargo hold is full of oil, or your portable water tank tips the scales when filled. Ideal for builds using **TerraFirmaCraft**, **Create**, **Sable**, or anything else where realistic mass, balance, and fluid dynamics are important. --- ## What can it do? ### ⚖️ Mess with block & fluid mass any way you like Set a custom base weight for almost any block **or fluid** using the config or the `/pondus mass` command. You can even target entire groups with tags like `#minecraft:planks`, `#tfc:ores`, or `#forge:water`. The config supports math expressions — write things like `"2.5 * stack_size"` directly in the JSON file. ### 📦 Count the weight of everything inside containers Any container (chest, barrel, Create's moving contraption, fluid tank, etc.) automatically adds the total weight of all items **and fluids** stored inside. You can tweak an `inventory_multiplier` to balance things out (maybe only 80% of the contents count), and decide whether the container block's own mass is included. ### 💧 Fluid mass calculations Pondus now supports fluids via the NeoForge Fluid Handler capability. Define mass per bucket for any fluid, and the mod automatically calculates the weight based on the actual amount in millibuckets (mB). Perfect for realistic water towers, fuel tanks, lava reservoirs, or chemical processing setups. ### 🌍 **Global mass modifiers** Need to make the entire world 20% heavier without editing hundreds of individual entries? Use `global.json`! This file contains three multipliers — `block_mass_modifier`, `item_mass_modifier`, and `fluid_mass_modifier` — that are applied to **every** block, item, and fluid in the game. Perfect for fine-tuning the overall physics balance of a modpack with a single number change. ### 🗂️ **Namespace‑based configuration storage** Config files are now organised **per mod** inside `config/pondus_inventory_fi/`. Each mod (e.g. `minecraft`, `create`, `tfc`) gets its own subfolder, and inside that folder you place the standard `blocks.json`, `items.json`, and `fluids.json`. Benefits: * No more ID collisions between mods. * Easier to manage, share, or version-control configs for each mod separately. * The mod automatically migrates old flat config files (if present) into the new structure and backs them up in `_migrated_backup`. #### Example folder structure: ``` config/pondus_inventory_fi/ ├── global.json # global multipliers for all blocks/items/fluids ├── minecraft/ │ ├── blocks.json │ ├── items.json │ └── fluids.json ├── tfc/ │ ├── blocks.json │ ├── items.json │ └── fluids.json ├── create/ │ ├── blocks.json │ └── items.json └── _migrated_backup/ # created automatically if old configs existed ├── blocks.json ├── items.json └── fluids.json ``` ### ⚙️ Configs that actually make sense Each JSON file uses a clean, simple format. Expressions like `"base_mass": "2.5 * stack_size"` or `"mass_per_bucket": "0.8 + density_factor"` are fair game. And you can reload everything on the fly with `/pondus reload` — no server restart needed. ### 🚀 **First‑launch import helper** When you start the game for the first time after installing Pondus, a screen will appear asking whether you want to import masses from the external physics engine data. This saves you from manually entering masses for hundreds of blocks and items. If you skip it, you can always run `/pondus import_external` later (requires OP). ### 📥 **Auto‑populate missing entries** Running `/pondus populate` will scan all registered blocks, items, and fluids and add any missing ones to the config files with default masses (0.5 for blocks, 0.01 for items, 1.0 for fluids per bucket). Existing entries are left untouched, so it's safe to run at any time. Perfect for quickly bootstrapping a mass database for a new modpack or after adding many new mods. --- ## Getting it set up ### Requirements You need **Sable**. That's it. *(Fluid support requires mods/blocks that implement NeoForge's `IFluidHandler` capability)* ### Config files All configs live in `config/pondus_inventory_fi//`. #### `global.json` – global mass multipliers. Example: ``` { "block_mass_modifier": 1.0, "item_mass_modifier": 1.0, "fluid_mass_modifier": 1.0 } ``` These values multiply the final calculated mass of **all** blocks, items, and fluids respectively. Change one number to scale the entire physics system up or down. #### `blocks.json` – sets the rules for blocks. Example: ``` { "minecraft:chest": { "block_id": "minecraft:chest", "base_mass": "2.5", "inventory_multiplier": 0.8, "include_container_mass": true }, "tfc:sand/red": { "block_id": "tfc:sand/red", "base_mass": "0.1", "inventory_multiplier": 1.0, "include_container_mass": false }, "#minecraft:planks": { "block_id": "#minecraft:planks", "base_mass": "0.5", "inventory_multiplier": 1.0, "include_container_mass": false } } ``` #### `items.json` – item weights. Example: ``` { "minecraft:iron_ingot": { "item_id": "minecraft:iron_ingot", "mass": "0.5", "per_stack": true }, "tfc:metal/ingot/cast_iron": { "item_id": "tfc:metal/ingot/cast_iron", "mass": "1.2", "per_stack": true } } ``` #### `fluids.json` – fluid weights. Example: ``` { "minecraft:water": { "fluid_id": "minecraft:water", "mass_per_bucket": "1.0" }, "minecraft:lava": { "fluid_id": "minecraft:lava", "mass_per_bucket": "3.5" }, "tfc:olive_oil": { "fluid_id": "tfc:olive_oil", "mass_per_bucket": "0.92" }, "#forge:crude_oil": { "fluid_id": "#forge:crude_oil", "mass_per_bucket": "0.85" } } ``` #### Quick rundown of the parameters: | Parameter | Description | | --- | --- | | `base_mass` / `mass` | A number or an expression (`"2.5"`, `"0.5 * stack_size"`, `"1.0 + nbt_power"`). | | `mass_per_bucket` | Mass in kg for 1000 mB (1 bucket). Supports expressions. | | `per_stack` | If `true`, the mass is multiplied by the number of items in the stack. | | `inventory_multiplier` | Multiplier for the total weight of contents inside a container (e.g. `0.8` = 80%). | | `include_container_mass` | Whether the container block's own mass counts on top of its contents. | | `block_mass_modifier` | Global multiplier applied to **all** blocks' final mass. | | `item_mass_modifier` | Global multiplier applied to **all** items' final mass. | | `fluid_mass_modifier` | Global multiplier applied to **all** fluids' final mass. | > 💡 **Fluid math note:** Mass is calculated as `mass_per_bucket × (millibuckets / 1000.0)`. So 500 mB of water (`mass_per_bucket: 1.0`) weighs exactly 0.5 kg. --- ## In-game commands All commands need operator-level permissions (level 2). Here's what you can do: | Command |What it does |Example | | ------------------------------------------------------ |-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |---------------------------------------------------------------------------- | | `/pondus mass block [storage_modifier]` | Set the mass of the block you're looking at. Optional `storage_modifier` sets the inventory multiplier (how much the contents weigh). | `/pondus mass 5.0 block` or `/pondus mass 10.0 block 0.8` | | `/pondus mass item` | Set the mass of the item you're holding. | `/pondus mass 0.3 item` | | `/pondus mass fluid ` | Set the mass per bucket for a fluid. | `/pondus mass 1.0 fluid minecraft:water` | | `/pondus mass tag ` | Apply a mass to every block/item/fluid with that tag. | `/pondus mass 1.0 tag #tfc:ores` | | /pondus populate [block_mass] [item_mass] [fluid_mass] |Automatically scans all registered blocks, items, and fluids and adds any missing entries to the config files with the given default masses.
• If a mass is omitted, sensible defaults are used: 0.5 for blocks, 0.01 for items, and 1.0 for fluids (kg per bucket).
• Existing entries are skipped – only missing ones are added.
• The config is saved automatically after the scan.
Use case: Perfect for quickly bootstrapping a mass database for a new modpack or after adding many mods – you get a baseline for everything without manual editing. |/pondus populate (uses defaults)
/pondus populate 2.5 0.1 1.5 (custom masses) | | `/pondus import_external` | Import masses from the external physics engine's data (such as Sable) into Pondus config files. Useful if you skipped the first‑launch confirmation screen. | `/pondus import_external` | | `/pondus reload` | Hot-reload all configs (including `global.json`) and clear caches. | `/pondus reload` | | `/pondus sync` | Rebuilds physics for all SubLevels (use after mass changes). | `/pondus sync` | | `/pondus config showmass ` | Toggle whether the mass of items is shown in tooltips. | `/pondus config showmass true` | | `/pondus config showblockmass ` | Toggle whether the mass of blocks is shown in tooltips (for BlockItems). | `/pondus config showblockmass true` | --- ## For mod & pack developers ### Register masses straight from code: ```java // Register a block MassRegistry.registerBlock("minecraft:stone", new BlockMassEntry("minecraft:stone", "3.0", 1.0, true)); // Register an item MassRegistry.registerItem("minecraft:diamond", new ItemMassEntry("minecraft:diamond", "0.3", true)); // Register a fluid MassRegistry.registerFluid("minecraft:water", new FluidMassEntry("minecraft:water", "1.0")); // Register by tag MassRegistry.registerBlock("#minecraft:logs", new BlockMassEntry("#minecraft:logs", "0.8", 1.0, false)); ``` ### Work with custom NBT data: ```java // Reading double power = InventoryMassCalculator.getCustomDataValue(stack, "power", 1.0); // Writing InventoryMassCalculator.setCustomDataValue(stack, "power", 2.5); ``` ### Fluid mass calculation internals: ```java // FluidMassEntry handles millibucket → kg conversion automatically FluidMassEntry water = new FluidMassEntry("minecraft:water", "1.0"); double massFor500mb = water.getMass(500); // Returns 0.5 kg // Expressions are supported too FluidMassEntry oil = new FluidMassEntry("tfc:olive_oil", "0.92 * density_mod"); ``` ### Runtime config changes: If you change configs at runtime, don't forget to invalidate caches: ```java ModConfig.CONFIG.reload(); InventoryMassCache.clear(); // Then run /pondus sync on the server ``` > 💡 **Note on global modifiers:** The `block_mass_modifier`, `item_mass_modifier`, and `fluid_mass_modifier` from `global.json` are applied automatically during mass calculation. You don't need to handle them in your code — just register the base values, and the global multipliers will scale them appropriately. --- ## Found a bug? Great! (Well, not great, but you know what I mean.) Here's what helps me the most: 1. Grab the log from `logs/latest.log` and search for `pondus_inventory_fi`. 2. Tell me the mod version, Minecraft version, NeoForge version, and Sable version. 3. Describe exactly what you did, what you expected, and what happened instead. If there's an error, paste the relevant part of the log. 4. **For fluid-related issues:** Include which fluid tank/block you tested with and whether it implements `IFluidHandler`. --- > **License:** MIT. Use it, remix it, share it — just keep the credit. **Developer:** **CatCosYT** & **Fractal Interactive** **Discord:** [https://discord.gg/pZ42QYZTD6](https://discord.gg/pZ42QYZTD6)

Compatibility

Mod Loaders

Neoforge

Game Versions

1.21 1.21.1 1.21.2 1.21.3 1.21.4 1.21.5 1.21.6 1.21.7 1.21.8 1.21.9 +2 more

Recommended Gear

Affiliate

Hardware and extras that pair well with this mod.

As an Amazon Associate I earn from qualifying purchases.

Similar Mods

Included in Modpacks (2)

External Resources