Farmstead Mods
RU

Items

Repair, enchanting, powertool, renaming, stack condensing and books.

On this page

Commands 29#

CommandSyntaxAliasesPermissionDescription
/book/book | /book unlock | /book title <title> | /book author <author>—neoessentials.book by conventionManage booksWithout an argument it gives a writable book. unlock / title / author work on the book in hand and require neoessentials.book.unlock / .title / .author.
/cartography/cartography—neoessentials.cartography by conventionOpen portable cartography tablePortable cartography table.
/cartographytable/cartographytable—neoessentials.cartographyOpen portable cartography table (alias)Alias of /cartography.
/ci/ci—neoessentials.item.clearinventoryClear inventory (alias)Alias of /clearinventory, separate flag commands.ci.
/ciconfirmtoggle/ciconfirmtoggle—neoessentials.ciconfirmtoggle by conventionToggle /ci confirmation promptsToggles the in-memory ciConfirmDisabled flag. /clearinventory does not read this flag — there is no confirmation anyway.
/clear/clear—neoessentials.item.clearinventoryClear inventory (alias)The help registry declares it as an inventory-clear alias, but ClearInventoryCommand registers only clearinventory, ci and clearinv. This system has no root Commands.literal("clear") — the game keeps vanilla /clear.
/clearinventory/clearinventory—neoessentials.item.clearinventoryClear inventorySelf only, there is no <player> argument. Clears main + armor + offhand and prints three numbers. neoessentials.item.clearinventory. The command code has no confirmation.
/clearinventoryconfirmtoggle/clearinventoryconfirmtoggle—neoessentials.ciconfirmtoggleToggle /ci confirmation prompts (alias)Alias of /ciconfirmtoggle, same permission neoessentials.ciconfirmtoggle.
/condense/condense [<item>]—neoessentials.condense by conventionCompact items to their block formsCompresses by a fixed table (nuggets→ingots→blocks etc.). Without an argument — all eligible types in the inventory; <item> — word, compared to the full id. Leftovers that do not fit drop at your feet.
/ctext/ctext [<chapter> [<page>]]—neoessentials.customtextDisplay a custom server text page (alias)Alias of /customtext.
/customtext/customtext [<chapter> [<page>]]—neoessentials.customtext by conventionDisplay a custom server text pageFile config/neoessentials/text/<chapter>.txt, 10 lines per page. Without arguments — chapter info, page 1. The chapter name is trimmed to [a-zA-Z0-9_-]. `{player}` and `&` are replaced on output.
/dispose/dispose [confirm|cancel]—neoessentials.item.disposeDispose of itemsWithout an argument it opens a 27-slot chest. Items put there are held in pendingDisposals until confirm (destroy), cancel (return) or leaving the server (return). Closing the GUI by itself destroys nothing.
/enchant/enchant <enchantment> [<level>] | /enchant <player> <enchantment> [<level>]—neoessentials.item.enchantEnchant itemsOverrides vanilla /enchant. <enchantment> — a ResourceLocation from the registry, <level> an integer 1–32767 (default 1). The player branch requires neoessentials.item.enchant.others (or OP 2). unsafe — neoessentials.item.enchant.unsafe or the global unsafe-enchantments; any — neoessentials.item.enchant.any. The item is the target's main hand. The ench and enchanthand literals exist in the tree under their own flags but are not in the help registry.
/fix/fix—neoessentials.item.repairRepair items (alias)Same code as /repair. Enabled by the commands.fix flag, separately from commands.repair.
/i/i <item> [<amount>]—neoessentials.itemGive yourself an item by name (alias)Alias of /item, same argument tree and same permission neoessentials.item.
/item/item <item> [<amount>]—neoessentials.item by conventionGive yourself an item by nameGive yourself an item by id. <item> — word (the minecraft: prefix can be omitted), <amount> 1–64; without an amount — defaultMaxStackSize. Player only, neoessentials.item. Not to be confused with /give from PlayerStateCommands (utility commands).
/itemdb/itemdb [<item>]—neoessentials.itemdb by conventionLook up item registry infoWithout an argument — the item in hand; otherwise a word id. Prints the registry id, max stack, durability.
/itemlore/itemlore add <text> | /itemlore set <line> <text> | /itemlore remove <line> | /itemlore clear—neoessentials.itemlore by conventionEdit held item lore<line> is 1-based. add/set take greedy text. The item in the main hand.
/itemname/itemname [<name>]—neoessentials.itemname by conventionRename held itemWithout an argument or with the name `-` it removes CUSTOM_NAME. Otherwise a greedy string with `&` colours applied to the item in hand. neoessentials.itemname.
/loom/loom—neoessentials.loom by conventionOpen portable loomPortable loom, neoessentials.loom.
/powertool/powertool list | /powertool remove | /powertool <command>—neoessentials.item.powertoolBind commands to itemsBinds by the type of the item in the main hand, not by slot. list/remove/<command> require neoessentials.item.powertool inside executes. A string starting with "@p " is not bound but immediately runs the command for everyone online except you (requires neoessentials.command.target). There is no root executes. The tree also has ptool (commands.ptool) and powertooltoggle/ptt — they are not in the help registry. Bindings live in an in-process HashMap and are lost on restart.
/powertoollist/powertoollist—neoessentials.powertoollist by conventionList all active powertool bindingsOnly your own bindings, permission neoessentials.powertoollist (not item.powertool). An empty list is an empty error.
/ptlist/ptlist—neoessentials.powertoollistList all active powertool bindings (alias)Alias of /powertoollist, same permission.
/rename/rename [<name>]—neoessentials.itemnameRename held item (alias)Alias of /itemname.
/repair/repair [all]—neoessentials.item.repairRepair itemsPlayer only, permission neoessentials.item.repair. Without an argument it repairs the item in the main hand (setDamageValue(0)) and always reports success, even if the hand is empty or the item has no durability. /repair all repairs all damaged items in the main inventory, armor and offhand; the reply contains the number of items actually repaired.
/sign/sign | /sign <line> <text> | /sign clear [<line>]—neoessentials.sign by conventionEdit sign textThe sign you are looking at. Without arguments — show the 4 lines. <line> 1–4. clear without a number clears all lines.
/skull/skull [<player>]—neoessentials.skull by conventionGet a player head itemA head with a profile: without an argument — your own, otherwise a word name (offline works if it is in the profile cache; otherwise a GameProfile with a random UUID and that name). Into your own inventory only.
/smithing/smithing—neoessentials.smithing by conventionOpen portable smithing tablePortable smithing table, neoessentials.smithing.
/trash/trash—neoessentials.item.disposeDispose of items (alias)Opens the GUI only, no confirm|cancel branches. Permission neoessentials.item.dispose.

Examples#

Give yourself an item, enchant it and name it#

Make a named sword without vanilla /give and without an NBT editor.

/item minecraft:diamond_sword
/enchant minecraft:sharpness 5
/itemname &bBlade
/itemlore add &7The server's first blade

item without an amount gives a full stack by defaultMaxStackSize (1 for a sword). enchant applies the enchantment to the main hand; level 5 passes if unsafe-enchantments is on or you have neoessentials.item.enchant.unsafe, otherwise the validator rejects it. itemname sets a coloured name; itemlore add appends a line. /give is not used here: it is a different command among the utility commands.

Bind a command to an item type#

Right-clicking with a stick teleports you home without permanently occupying a hotbar slot.

/item minecraft:stick 1
/powertool spawn
/powertool list
/powertoollist

The binding is keyed by type id (minecraft:stick): any stick in either hand triggers the command, and the vanilla right-click on a block is cancelled. list and powertoollist show the same thing but need different permissions (item.powertool vs powertoollist). A server restart clears the HashMap — set the binding again. Do not use /pt for binding: without arguments it is paytoggle (see edgeCases).

Repair a tool and throw away junk#

Repair the pickaxe in hand and safely destroy junk, with the option to undo.

/repair
/dispose
/dispose cancel

repair resets the main hand's damage and always reports success; /repair all repairs all damaged items in the inventory, armor and offhand. dispose opens 27 slots; items put there leave your inventory but are not destroyed yet — they are pending. cancel returns them; confirm destroys them; leaving the server also returns them. Just closing the window is not enough to erase items for good.

Compress ore and look up an item id#

Turn 9 diamonds into a block and find the exact registry id for kits/crates.

/condense diamond
/itemdb
/itemdb minecraft:diamond_block

condense diamond looks for minecraft:diamond (9→diamond_block). itemdb without an argument describes what is in your hand after compressing; with an argument it is for reference only and does not put the item in your inventory.

Edge cases#

/pt is paytoggle; powertool subcommands hang off it on the side#

Economy registers Commands.literal("pt").executes(paytoggle) first. Powertool then adds children list, remove and greedy <command> to the same literal and does not set its own root executes — Brigadier merges the nodes. Result: /pt without arguments toggles receiving /pay (neoessentials.economy.paytoggle). /pt list, /pt remove, /pt spawn are powertool (neoessentials.item.powertool). The mod's help lists /pt as a powertool alias — that refers to the catalog, not the root executes.

What to do: Set bindings with /powertool <command>. For paytoggle use /paytoggle or bare /pt. Do not document /pt as a replacement for /powertool.

/give does not belong to this system#

/give is registered by PlayerStateCommands (utility commands), vanilla-like, for giving to another player. Giving yourself an item by short id is /item / /i (MiscItemCommands, amount 1–64). Do not mix them up: different tree, different permission (neoessentials.give vs neoessentials.item).

What to do: In item guides write /item diamond 16, not /give.

/invsee: view or edit depending on the node#

The commands live in InventoryViewCommands (in the inventory — likelySystem utility, permissions neoessentials.invsee / .edit). With neoessentials.invsee, /invsee and /inv open a snapshot via buildReadOnlyMenu: slots with mayPickup/mayPlace = false. With neoessentials.invsee.edit the same command opens the target's live inventory and sets a "single editor" lock. The .edit node also allows running the command and takes precedence. You cannot open yourself. EntityArgument — online only. The aliases inv/ec/ecedit are full literals with requires(), not redirect().

What to do: Give moderators invsee (and enderchest if needed). To edit someone else's inventory grant invsee.edit; there is no longer a separate command.

Powertool: item type, process memory, @p#

The UUID → itemId → command map is a static HashMap and is not written to disk. Right-click runs the command as the player (performPrefixedCommand with their source) and cancels the vanilla action (you cannot eat/place this type at the same time). The @p prefix in /powertool is not a binding but an immediate run for all other online players with the neoessentials.command.target permission and {player} substitution. allowUnsafeCommands is true by default; with false, @, ~, { etc. are stripped.

What to do: Set bindings again after a restart. Bind a command with a selector as an ordinary string, not via @p — that prefix fires immediately.

/repair without an argument always "succeeds"; /clearinventory has no target and no confirm#

/repair all repairs all damaged items in your own main inventory, armor and offhand. But /repair and /fix without arguments repair only the main hand, and the success message is sent even if nothing was damaged. Clearing is your own inventory only (main+armor+offhand). isCiConfirmDisabled is never called except by the toggle itself.

What to do: For all equipment and the inventory use /repair all. Clear someone else's inventory via /invsee with neoessentials.invsee.edit, not via /ci.

enchant overrides vanilla and confuses the first argument#

Two sibling branches: ResourceLocation and EntityArgument.player(). A name that matches an enchantment path may go to the wrong branch. Brigadier does not allow a level below 1. Item compatibility is coarse (isEnchantable); books are allowed. With unsafe off, applyEnchantment additionally checks getMaxLevel().

What to do: For another player always use /enchant <name> <enchantment id> [level]. Unsafe levels need the .unsafe node or the config.

dispose: GUI ≠ destruction#

The code comment says "removed on close", but the implementation differs: closing leaves the SimpleContainer in pendingDisposals. Destruction happens only with /dispose confirm. /trash has no confirm branch — confirm with /dispose confirm anyway.

What to do: After sorting junk in the window run /dispose confirm. Changed your mind — /dispose cancel or rejoin.

Known issues#

/invsee used to copy items into the viewer's inventory (fixed)#

Before build.214 /invsee//inv//ec//enderchest opened a ChestMenu over a SimpleContainer with .copy() of the stack. The client could pull out copies while the originals stayed with the target. Now read-only goes through buildReadOnlyMenu (mayPickup/mayPlace = false). Editing went through a menu without the viewer's hotbar slots — a desync; viewer slots have been added. The aliases are no longer redirect() without requires() (the permission bypass on /inv//ec is closed).

What to do: On the current build duplication through the read-only window does not reproduce. If a player "took" items out of /invsee, it is either an old build or they have neoessentials.invsee.edit.

/ciconfirmtoggle has no effect#

MiscItemCommands.isCiConfirmDisabled is not read by any /clearinventory//ci call: there is no confirmation, the toggle only prints "enabled/disabled" in chat. The state is in memory, without DataStore.

What to do: Do not promise players a preview before clearing. If you need a safeguard, do not grant neoessentials.item.clearinventory.

Permissions 29#

NodeIn registryWhat it grants
neoessentials.bookregistry: yesGive yourself a writable book
neoessentials.book.authorregistry: noSet the author of a written book
neoessentials.book.titleregistry: noSet the title of a written book
neoessentials.book.unlockregistry: noUnlock a written book for editing
neoessentials.cartographyregistry: noOpen portable cartography table
neoessentials.ciconfirmtoggleregistry: yesToggle /clearinventory confirmation prompts
neoessentials.condenseregistry: noCondense items to storage blocks
neoessentials.customtextregistry: yesDisplay custom server text pages
neoessentials.itemregistry: noGive yourself an item by name (/item)
neoessentials.item.clearinventoryregistry: noClear inventory
neoessentials.item.clearinventory.othersregistry: noClear others' inventory
neoessentials.item.disposeregistry: yesUse disposal system
neoessentials.item.enchantregistry: noEnchant items
neoessentials.item.enchant.anyregistry: noEnchant any item (ignore restrictions)
neoessentials.item.enchant.othersregistry: noEnchant others' items
neoessentials.item.enchant.unsaferegistry: noUnsafe enchanting
neoessentials.item.powertoolregistry: noUse powertools
neoessentials.item.powertool.toggleregistry: noToggle powertools
neoessentials.item.repairregistry: noRepair items
neoessentials.item.spawnregistry: noUse /spawnitem command
neoessentials.itemdbregistry: noLook up item registry information
neoessentials.itemloreregistry: noEdit held item lore
neoessentials.itemnameregistry: noRename held item
neoessentials.loomregistry: noOpen portable loom
neoessentials.powertoollistregistry: yesList all active powertool bindings
neoessentials.signregistry: yesEdit sign text
neoessentials.sign.colorsregistry: noUse colors in signs
neoessentials.skullregistry: noGet a player head item
neoessentials.smithingregistry: yesOpen portable smithing table

Detailed guide#

The section below is the project's original documentation (docs/Wiki/ItemManagement.md). Links to other wiki pages are rewritten to this site; the guides themselves are not edited, so upstream syncs stay conflict-free.

Version: 1.0.5+build.54 · Last verified: 2026-08-25


Overview#

Item management commands for repair, disposal, enchanting, inventory management, powertool bindings, and item utilities.


Commands#

Repair & Disposal#

Command Syntax Permission Description
/repair /repair [hand\|all] neoessentials.item.repair Repair held item or all items
/fix alias same Alias
/dispose /dispose neoessentials.item.dispose Open a disposal chest (items placed are destroyed)
/trash alias same Alias

Inventory#

Command Syntax Permission Description
/clearinventory /clearinventory [player] neoessentials.item.clearinventory Clear inventory
/ci alias same Alias
/clearinv alias same Alias
/ciconfirmtoggle /ciconfirmtoggle neoessentials.ciconfirmtoggle Toggle confirmation prompt for /ci (own dedicated node, distinct from neoessentials.item.clearinventory)
/clearinventoryconfirmtoggle alias same Alias
/invsee /invsee <player> neoessentials.invsee View a player's inventory (read-only)
/inv alias same Alias
/invseeedit /invseeedit <player> neoessentials.invsee.edit View and edit a player's inventory
/enderchest /enderchest [player] neoessentials.enderchest View a player's ender chest (read-only)
/ec alias same Alias
/enderchestedit /enderchestedit <player> neoessentials.enderchest.edit View and edit a player's ender chest
/ecedit alias same Alias

⚠️ Security fix (build.40) — Prior to build.40, /inv and /ec were registered as Brigadier redirect() nodes with no requires() predicate, which meant any player could bypass permission checks and open another player's inventory or ender chest. This has been fixed; each alias now carries its own permission check.
neoessentials.invsee and neoessentials.enderchest are granted to the moderator group by default. | /condense | /condense [item] | neoessentials.condense | Compact loose items to storage blocks |

Item Customisation#

Command Syntax Permission Description
/itemname /itemname [name\|-] neoessentials.itemname Rename held item (omit or - to clear)
/rename alias same Alias
/itemlore /itemlore add\|set <n>\|remove <n>\|clear <text> neoessentials.itemlore Edit held item lore lines
/more /more [amount] neoessentials.more Fill held stack to max
/hat /hat neoessentials.hat Wear held item as helmet
/item /item <id> [amount] neoessentials.item Give yourself an item by registry ID
/i alias same Alias
/skull /skull [player] neoessentials.skull Get a player head item

Enchanting#

Command Syntax Permission Description
/enchant /enchant <enchantment> [level] neoessentials.item.enchant Enchant held item (overrides vanilla /enchant)
/enchant <player> <enchantment> [level] /enchant <player> <enchantment> [level] neoessentials.item.enchant.others Enchant another player's held item
/ench alias for /enchant same Alias
/enchanthand /enchanthand <enchantment> [level] neoessentials.item.enchant Hand-only enchant command, gated independently of /enchant (its own config toggle)
/potion /potion add <effect> [duration] [amp] · /potion clear neoessentials.potion Edit potion effects on held potion (no remove subcommand — use clear to remove all)

neoessentials.item.enchant.unsafe allows enchant levels/combinations beyond vanilla limits; neoessentials.item.enchant.any allows enchanting item types the enchantment wouldn't normally apply to. Both are checked internally by /enchant — they aren't separate commands.

Powertool#

Command Syntax Permission Description
/powertool /powertool <command> neoessentials.item.powertool Bind a command to held item type
/powertool remove /powertool remove same Remove powertool from held item
/powertool list /powertool list same List all your powertool bindings
/ptool alias same Alias (full command tree, not just an alias name)
/powertooltoggle /powertooltoggle (none — open to any player) Toggle all powertools on/off
/ptt alias same Alias
/powertoollist /powertoollist neoessentials.powertoollist List active powertool bindings
/ptlist alias same Alias

Note: /powertooltoggle and /ptt have no dedicated permission node — any player who can run commands can toggle their own powertools on/off. /powertoollist//ptlist use a separate neoessentials.powertoollist node, distinct from neoessentials.item.powertool (which gates binding/removing/listing via the /powertool command itself).

How powertools work: - Bindings are stored by item type (not slot) — the command travels with the item regardless of which inventory slot it's in - Right-clicking with the item (on a block, mob, or in air) executes the bound command as you - /powertooltoggle globally enables/disables all your powertools without removing bindings - Use @p <command> syntax to execute the command on all other online players

Command Safety Filter

Before a command is accepted by /powertool, NeoEssentials runs it through a safety check.
If the command is rejected you will see:

Command contains potentially dangerous operations. Enable 'allowUnsafeCommands' in config to use this command.

or

Command contains unsafe characters. Enable 'allowUnsafeCommands' in config to use special characters.

Commands that work without any config change (common examples):

Command Notes
/give @s minecraft:diamond 1 Standard item give
/effect give @s minecraft:speed 30 1 Potion effect
/gamemode creative Mode switch
/say Hello Chat message
/neoe heal NeoEssentials shortcut

Commands blocked when allowUnsafeCommands is false:

Command Blocked because
/tp ~ 100 ~ Contains ~ (relative coords)
/tp ~0 ~10 ~0 Contains ~
/execute as @a run ... Contains @
/tellraw @a {"text":"hi"} Contains @ and {
/give @s shulker_box{Items:[]} Contains @ and {

allowUnsafeCommands ships true by default — the patterns above are not blocked out of the box. Set it to false if you want powertool bindings restricted to the simpler patterns in the "works without any config change" table above; leave it true (the default) to allow the full range of commands, including relative coordinates and selectors, in a powertool binding.

  • Split config mode: config/neoessentials/security.json → security.allowUnsafeCommands
  • Monolithic mode: config/neoessentials/config.json → security.allowUnsafeCommands

Then run /neoe reload — no restart needed.

ℹ️ Full details, all blocked patterns, and security advice are in SplitConfigs — Security Configuration.

Portable Workstations#

Command Permission Description
/anvil neoessentials.anvil Open portable anvil
/workbench / /crafting / /craft neoessentials.crafting Open portable crafting table
/grindstone neoessentials.grindstone Open portable grindstone
/smithing neoessentials.smithing Open portable smithing table
/stonecutting / /stonecutter neoessentials.stonecutting Open portable stonecutter
/loom neoessentials.loom Open portable loom
/cartography neoessentials.cartography Open portable cartography table

Back to Wiki Home