Custom Item Framework · Fabric 26.1.2 · JSON-Driven · Server-Side Only
A data-driven custom-item framework — define fully custom items, weapons, and armor entirely through JSON, using vanilla items as the base. No coding, no client install, no restarts. Drop a config, run /fiwtools reload, and your item is live.
Designed as the sibling mod to FIW Bosses — they work standalone or together. With both installed, bosses can drop or wear custom Fiw Tools items by id.
| Loader | Minecraft | Status | Branch |
|---|---|---|---|
| Fabric | 26.1.2 | Active — primary development target | main |
NeoForge and earlier Minecraft versions are not currently supported. The codebase only touches vanilla data components and Fabric API events, so a future port is possible but not planned.
- JSON-driven — define any item without touching a single line of code
- Fully server-side — vanilla 26.1.2 clients connect with no install required
- Vanilla data components — custom name, lore, rarity, attributes, enchantments (uncapped levels), durability, food, tool, hide-tooltip flags, free-form NBT
- 8 player-balanced abilities — right-click cast, on-attack proc, on-hurt counter, on-kill, on-block-break — all configurable
- Animated arc slash — multi-tick layered particle sweep ported from Fiw Bosses
- Keep on death — flagged items survive respawn even when
keepInventoryis off - Hot reload —
/fiwtools reloadswaps the registry atomically without a server restart - Tab completion — every command tab-completes loaded item ids
- Public API —
FiwToolsAPI.getItemStack(id, server)for other mods to look up items - Pairs with Fiw Bosses — bosses can drop or equip Fiw Tools items by id (soft dependency, silently degrades when one mod is missing)
| Dependency | Version |
|---|---|
| Minecraft | 26.1.2 |
| Fabric Loader | 0.19.2+ |
| Fabric API | 0.148.0+26.1.2 or newer |
| Fabric Language Kotlin | latest |
| Java | 25 |
| Client-side required | No |
- Install Fabric Loader for Minecraft 26.1.2
- Install Fabric API
- Install Fabric Language Kotlin
- Drop the Fiw Tools jar (
fiw-tools-<version>.jar) into yourmods/folder - Start the server — configs generate automatically in
config/fiw_tools/items/
To get started, copy any JSON from examples/items/ into config/fiw_tools/items/, then run /fiwtools reload in-game.
/fiwtools give <players> <itemId> — give one item to one or more players
/fiwtools give <players> <itemId> <count> — give a stack
/fiwtools list — list all loaded item ids
/fiwtools info <itemId> — print a summary of the item's definition
/fiwtools reload — reload all item configs without restart
Permission level: 2 (operator). Tab-complete works on item ids.
Every item JSON is a flat object. All fields except id and base are optional.
| Section | Fields |
|---|---|
| Identity | id, base, displayName, lore, rarity |
| Stack | stackSize, repairCost |
| Durability | unbreakable, maxDamage, damage |
| Visual | enchantmentGlint, hideFlags |
| Power | enchantments (uncapped levels), attributes (per-slot, every operation) |
| Persistence | keepOnDeath, customData |
| Use | food, tool |
| Behavior | abilities |
Color codes use & prefix: &0–&f for colors, &l/&o/&n/&m/&k/&r for styles — same syntax as Fiw Bosses.
Full schema, every field, every default, every example — see ITEM_CONFIG_DOCS.md.
| Ability | Description |
|---|---|
arc_slash |
Animated multi-tick blade sweep — 5 layered particle types, configurable arc / radius / roll / height |
riptide_dash |
Forward dash in look direction with a small upward kick — works on dry land |
lightning_strike |
Cosmetic lightning at the target on attack with bonus damage — no fires, no pig conversion by default |
shockwave |
Ground ring around the player — entities in radius take damage and knockback |
heal_on_hit |
Player heals a small amount when they damage something |
blink |
Short teleport in look direction, clamped to safe blocks |
projectile_burst |
Particle projectile travels forward, deals AoE damage on impact or at max range |
frost_nova |
AoE around the player applies Slowness and small magic damage |
Triggers: on_right_click, on_attack, on_kill, on_hurt, on_block_break.
Every ability supports cooldownTicks (per-player), chance (0.0–1.0), and a params block with ability-specific knobs (range, damage, particles, sound, etc.). Cooldowns are tracked per-player per-ability-slot, so dual-wielding two copies of the same item shares one cooldown for that ability.
When both mods are installed, Fiw Bosses can reference Fiw Tools items by id from its loot tables and equipment slots:
// boss loot entry
{ "toolId": "soul_blade", "count": 1, "chance": 0.25 }
// boss equipment slot
"mainHand": { "toolId": "soul_blade" }If Fiw Tools is missing the lookup is silently skipped — boss configs never crash. Each mod also works fully on its own.
The integration goes through a stable static API (FiwToolsAPI.getItemStack(id, server, count)) that any other mod is free to consume the same way.
Full configuration reference — every field, every ability parameter, every component, full examples:
Six pre-built items live in examples/items/ — copy any into config/fiw_tools/items/ to use them.
| Item | Style | Highlights |
|---|---|---|
legendary_sword |
Weapon | Netherite sword, +11 damage, sharpness 6 + fire aspect 2, arc_slash on right-click |
storm_axe |
Weapon | Diamond axe, lightning_strike 35% on attack, shockwave on right-click |
riptide_trident |
Weapon | Trident, riptide 3 + impaling 4, riptide_dash on right-click |
void_trident |
Weapon | Unbreakable trident, riptide 4, +10 damage, no glint, 10-block dash, keep on death |
mythic_helmet |
Armor | Netherite helmet, +5 armor, +0.2 KB resist, keep on death |
soul_apple |
Food | Apple base, nutrition 6, saturation 8, always-edible |
Found a bug or have a feature request? Open an issue:
git clone https://github.com/Fi3w0/Fiw-Tools
cd Fiw-Tools
./gradlew buildOutput JAR in build/libs/. Requires Java 25.
- Cooldowns reset on player disconnect or server restart (intentional — kept simple, avoids NBT bloat).
- Food effects beyond nutrition / saturation / always-edible are not yet implemented (the new consumable component split in 26.x is on the roadmap).
- Items already in player inventories are not retroactively updated when their JSON changes — re-give to refresh.
- Modded enchantments and attributes work via their full registry id but are not extensively tested.
This project is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0).
You are free to:
- Share — copy and redistribute the material in any medium or format
- Adapt — remix, transform, and build upon the material
Under the following terms:
- Attribution — you must give appropriate credit, provide a link to the original repository (https://github.com/Fi3w0/Fiw-Tools), and indicate if changes were made.
- NonCommercial — you may not use the material for commercial purposes.
- ShareAlike — if you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original.
Full license text: https://creativecommons.org/licenses/by-nc-sa/4.0/
For uses outside these terms (including commercial use), open an issue or contact Fi3w0 to request permission.
- Fi3w0 — design, mechanics, and direction
- Claude Opus 4.7 (Anthropic) — assisted in code implementation
Made by Fi3w0 — built for my SMP, shared with everyone who asks first.