
Item Smith
Free, custom items for Paper — a schema-driven ability engine plus a full in-game chest-GUI item creator. Free Minecraft Java mod for 1.21.8.
⬇ Download on Modrinth




ItemSmith
Custom items for Paper: an ability engine and a real in-game item creator.
Give a sword a poison strike. Make an axe that freezes what it hits. Build a pickaxe that vein-mines and auto-smelts, a wand that blinks you through walls, a totem that heals everyone nearby. Then hand the item to your players through a craft, a mob drop, a fishing catch, or a chest, and let them discover it in the vanilla recipe book.
You build all of it in-game, through a chest GUI, or by hand-editing a small, readable YAML file. Both write the same file. Both /reload instantly.
Pre-release. ItemSmith is in final pre-launch polish. This page describes the plugin as built and tested on Paper 1.21.8; it is not yet a public release.
How the engine works
Every item is a base material + display text + a list of abilities. Each ability is a small pipeline:
Activator (when) → Conditions (if) → Targeter (who) → Actions (what), with an optional Gate (may I?).
- Activator: the trigger. On hit, on right-click, on kill, on sneak, on take-fall-damage, on block break, every tick while held…
- Conditions: pass/fail checks. Only in this world, only below 30% health, only if it's night, only if the target is a player…
- Targeter: who the actions run on. The entity you hit, yourself, everyone in a radius, the block you're looking at, a projectile…
- Actions: what happens. Deal damage, apply an effect, launch the target, break an area of blocks, teleport, spawn an entity, play a sound…
Because every component declares its own typed parameters, the GUI can render an editor for it automatically and the YAML serializer can read/write it automatically. That's how ItemSmith reaches this scale without hand-building a menu per feature:
| Component | Count | Examples |
|---|---|---|
| Activators | ~150 | right/left click, hit/be-hit, kill, death, block break/place, consume, sneak, drop/pickup, projectile, equip, hold-tick |
| Actions | ~160 | damage, potion effect, knockback, pull, lifesteal, ignite, freeze, teleport/blink/dash, area-break, vein-break, auto-smelt, spawn entity, give item, economy |
| Conditions | ~70 | health/hunger, world, region, time, item, target type, charges, cooldown, balance, permission |
| Targeters | 18 | self, target, nearby entities, looked-at block, area, look direction |
≈400 registered engine components in total. The plugin logs the exact count on boot.
Flow control (abilities that branch)
Actions aren't just a flat list; several are nested flow-control blocks, so an ability can make decisions and sequence itself:
- delay: wait, then continue
- repeat: run a sub-list N times
- if: run a sub-list only when a condition holds
- random / chance: pick a branch, or fire only some of the time
- abort: stop the ability early
Combine them and a single ability can stagger effects over time, roll for a critical, or fan out a combo, with no code and just nested blocks.
Gating & economy (balance your items)
Every ability can be gated so power costs something:
- Permission: restrict who can trigger it.
- World / region: restrict where (region gating via WorldGuard, optional).
- Use-cost via Vault: charge money, XP, items, or hunger per activation.
- Charges & custom durability: limited-use items that deplete and can break.
- Cooldown groups: share one cooldown across several abilities, or give each its own.
(Admin itemsmith.bypass.* permissions let staff skip cost, cooldown, or region gates for testing.)
Obtaining: put items into the world's economy
An item nobody can get is just a screenshot. ItemSmith makes custom items reachable through every Bukkit-native path:
- Recipes across all native families: shaped, shapeless, furnace / blasting / smoking / campfire, smithing transform, and stonecutter. Multiple recipes per item, and they show up in the vanilla recipe book.
- Mob & block drops: by chance and count, optionally player-kill-only, with silk-touch handling for blocks.
- Loot-table injection: inject items into chest, mob, and fishing loot tables.
- Player catalog GUI: a browsable, searchable in-game catalog (behind
itemsmith.catalog, granted by default) where players see every custom item, how to obtain each one, and can add known recipes to their recipe book.
The in-game creator
An admin-only chest-GUI creator, built on triumph-gui and the native Paper Dialog API, so text entry, search boxes and confirmations look like vanilla, with no resource pack required for the GUI itself:
- Start from a template (Weapon / Tool / Armor / Consumable / Wearable) or a blank item.
- Edit id, material, name, lore, cooldown, item settings, recipe, drops, loot, and the full ability tree, including drilling into nested flow-control blocks.
- Pick activators, conditions, targeters and actions from categorized folders with search, so there are no names to memorize.
- Simple + Advanced progressive disclosure keeps the common path short.
- Immutable ids + Save-As protect existing items; edits write the same YAML and reload live.
- In-GUI recipe / drops / loot editors and admin give round it out.
Everything the GUI does, you can also do by hand in YAML; they're two doors into the same file.
A minimal example item
plugins/ItemSmith/items/venom_blade.yml:
material: DIAMOND_SWORD
name: "<gradient:#00e676:#1de9b6>Venom Blade</gradient>"
lore:
- "<dark_gray>Coated in a lethal toxin.</dark_gray>"
- "<gray>On hit: <green>Poison</green> + bonus damage</gray>"
abilities:
- activator: player_hit_entity # when you hit something in melee
targeter: target # act on the entity you hit
cooldown: 1.5 # seconds; shows the vanilla cooldown sweep
actions:
- type: add_damage # extra damage on the hit
amount: 2 # 2.0 = one heart
- type: potion_effect # then poison the target
effect: poison
duration: 5 # seconds
amplifier: 0 # 0 = level I
recipe:
type: shaped
shape:
- " F "
- " D "
- " S "
ingredients:
F: FERMENTED_SPIDER_EYE
D: DIAMOND
S: STICK
Drop that file in, run /itemsmith reload, and /itemsmith get venom_blade. Or build the exact same thing in the GUI and it writes this file for you. Share the file and anyone else's server has the item.
Textures: Bring Your Own Pack (for now)
ItemSmith does not generate resource packs yet. Custom textures and models are Bring-Your-Own-Pack: point an item at item-model: or custom-model-data: and supply your own pack, and it renders. Out of the box, items use their base material's look, and the GUI is native-styled so it needs no pack at all. Automatic resource-pack generation is on the roadmap (see below).
Requirements & compatibility
- Server: Paper 1.21.8. ItemSmith uses Paper-only APIs (Adventure/MiniMessage text, the native Dialog API), so Spigot is not supported.
- Java: 21+.
- Install: drop the single jar into
/pluginsand restart. The GUI library is shaded and relocated inside it, with nothing else to install. - Optional soft-depends (graceful if absent): Vault (economy costs), WorldGuard (region gating), GriefPrevention (protection).
- Client: a server-side plugin, so players install nothing. The admin creator uses the native Dialog API for text and number entry, which needs a 1.21.6+ client; on older clients it shows a clear message rather than failing silently.
- Folia: not yet confirmed.
Commands & permissions
Commands for /itemsmith (aliases /ismith, /citems):
| Subcommand | What it does |
|---|---|
catalog |
Open the player catalog (browse / search / how-to-obtain) |
open |
Open the admin creator GUI |
create |
Start a new item in the creator |
get <id> |
Give yourself a custom item |
give <id> [player] |
Give a custom item to a player |
list |
List all defined items |
reload |
Reload item files from disk |
Permissions:
| Node | Default | Purpose |
|---|---|---|
itemsmith.admin |
op | Creator GUI + all admin commands |
itemsmith.catalog |
true | Open the player catalog |
itemsmith.bypass.all |
false | Bypass all ability gates |
itemsmith.bypass.cost |
false | Bypass use-costs |
itemsmith.bypass.cooldown |
false | Bypass cooldown groups |
itemsmith.bypass.region |
false | Bypass region gating |
Roadmap
Built and working today: the full ability engine, ~150 activators / ~160 actions / ~70 conditions / 18 targeters, nested flow control, gating & economy, the in-game creator GUI, all Bukkit-native recipes, mob/block drops, loot-table injection, the player catalog and recipe-book integration.
Planned (not yet in the plugin, listed so you know what's coming, not implying it's here):
- Resource-pack generation: automatic custom textures/models (today it's BYO-pack).
- PlaceholderAPI placeholders and deeper MythicMobs integration.
- Localization (translatable messages).
- Import / export of item files.
- Custom blocks & mobs (post-launch).
TL;DR
A custom-items plugin for Paper 1.21.8 with a schema-driven ability engine (Activator → Conditions → Targeter → Actions), ~400 components, nested flow control, cost/cooldown/region gating, every native recipe type plus drops and loot injection, an in-game chest-GUI creator, and a player catalog. Items are shareable YAML. Bring your own resource pack for custom textures.
Demo Videos
Credits
Built on Paper and triumph-gui (MIT, © 2021 TriumphTeam), which powers the in-game creator GUI and is bundled inside the jar.
- Ships as ItemSmith-1.0.0.jar — drop this file into the mods folder
- Download size: 801 KB
- Download link checked 4 Sept 2026 — working
These come from our own check of the pack file, not from the source page.