Pufferfish's Skills - MT Inventory Weight
ModrinthIt lets a player's skill progression increase their maximum inventory weight capacity.
Pufferfish's Skills InventoryWeight
Pufferfish's Skills InventoryWeight is a server-side add-on that connects
MT Inventory Weight with Pufferfish's Skills.
It lets a player's skill progression increase their maximum inventory weight capacity, in
two ways:
- Attribute reward (data-driven) — a skill node grants the Inventory Weight attribute
directly. No Java needed; this is how the bundled "Carrying" tree works. - Java event connector — the add-on reads a skill category's experience level and
modifies max weight through MT Inventory Weight's event.
It also ships an optional, built-in "Carrying" skill tree you can enable per world.
This mod is not standalone.
MT Inventory Weight registers a vanilla-style attribute:
inventoryweight:generic.max_weight
Pufferfish's Skills can grant any registered attribute via its puffish_skills:attribute
reward, so a skill node can grant max weight directly.
1. Attribute reward (data-driven, no Java)
In a category's definitions.json, a skill definition lists rewards. Point a
puffish_skills:attribute reward at inventoryweight:generic.max_weight:
{
"type": "puffish_skills:attribute",
"data": {
"attribute": "inventoryweight:generic.max_weight",
"value": 200.0,
"operation": "addition"
}
}
| operation | Effect |
| --- | --- |
| addition / add / add_value | Flat add (e.g. +200). Recommended. |
| multiply_base / add_multiplied_base | Add a fraction of the attribute base. |
| multiply_total / add_multiplied_total | Multiply the running total. |
Prefer
addition. If the attribute base is0,multiply_*operations may have little or
no effect.
2. Java event connector (level-based scaling)
The add-on listens to MT Inventory Weight's max-weight event:
InventoryWeightEvents.MODIFY_MAX_WEIGHT
and scales capacity by a skill category's experience level, read via Pufferfish's
SkillsAPI (Category.getExperience().getLevel(player)). See the config below.
If a node grants the attribute (path 1) AND you scale the same value by level (path 2),
the bonuses stack.
Built-in "Carrying" skill tree
The mod bundles an optional Pufferfish category, carrying:
- Registered as a Fabric built-in datapack at
resourcepacks/carrying/in the jar, so it
shows up in the world-creation Data Packs screen, disabled by default. - Nodes grant
inventoryweight:generic.max_weight(flat and percent), with a small
movement-speed node and a capstone. - Earns experience from mining blocks and crafting items.
- The strong percent/mobility nodes are placed deeper in the tree, gated behind several
flat nodes.
Enable it:
- New world → Create World → Data Packs → move "Carrying Skill Tree" to the active
side, or - Existing world →
/datapack list, then/datapack enable "<id>".
Open the skills screen (default key K) to see the Carrying category.
Default pack vs. your own pack (modpack devs / server admins)
You are not locked into the bundled tree:
- Use the default — enable the built-in "Carrying Skill Tree" pack. No files needed.
- Override it — ship a datapack that redefines the
carryingcategory under the
puffish_skillsnamespace. A later-loaded pack overrides the built-in files
(last pack wins per file). Keep the built-in pack disabled to avoid mixing. - Add a separate tree — define a NEW category with a different id (and your own
namespace) and leave the built-incarryingoff. Cleanest for modpacks: no conflicts.
Whichever pack's
config.jsonwins must list every category you want loaded.
Configuration (Java event path)
Synced server config via fzzy_config:
config/pufferfishs-skills-inventoryweight/server-config.*
General
| Option | Default | Description |
| --- | ---: | --- |
| enabled | true | Master switch. |
| minimumMaxWeight | 1.0 | Floor for the final max weight. |
category (default on)
Scales by one configured category's experience level.
| Option | Default | Description |
| --- | --- | --- |
| category.enabled | true | Enable category-based scaling. |
| category.categoryId | puffish_skills:adventure | Category id to read. Namespace defaults to puffish_skills if omitted. |
| category.additivePerLevel | 0.0 | Flat bonus per category level. |
| category.multiplierPerLevel | 0.05 | 0.05 = +5% per level. |
totalLevel (default off)
Scales by the sum of all categories' experience levels.
| Option | Default | Description |
| --- | --- | --- |
| totalLevel.enabled | false | Enable combined-level scaling. |
| totalLevel.additivePerLevel | 0.0 | Flat bonus per combined level. |
| totalLevel.multiplierPerLevel | 0.0 | 0.01 = +1% per combined level. |
Formula
result = (currentMaxWeight + additive) * multiplier
result = max(minimumMaxWeight, result)
currentMaxWeight is the value MT Inventory Weight already computed, so this stacks with the
base config, armor pockets, and other Inventory Weight add-ons.
Example
Base max weight: 100
category level (adventure): 10
category.multiplierPerLevel: 0.05
multiplier = 1 + 10 * 0.05 = 1.5
result = (100 + 0) * 1.5 = 150
Notes
- A category contributes
0if it doesn't exist or has no experience source. - Negative config values are clamped to neutral.
- Find category ids in your Pufferfish's Skills datapack/config (the
puffish_skills:<id>). - The built-in tree is
NORMAL(off by default); enable it in the Data Packs screen.
Troubleshooting
- A skill grants no weight — confirm the attribute id is exactly
inventoryweight:generic.max_weight, preferoperation: addition, and reset the skill
after editing a reward so the modifier reapplies. - Built-in tree missing — it's disabled by default; enable it. Check the log for
Registered built-in 'carrying' datapack: true. pack.mcmetawon't load — the description must be strict JSON (no smart quotes /
trailing commas).Unknown variable 'true'in experience.json — conditions must reference a defined
variable; for unconditional XP use a bare string like"experience": "1".
Documentation
Full documentation: see docs/pufferfishs-skills.md (or the online docs site).

Комментарии 0
Пока нет комментариев. Будь первым, кто поделится мнением.