Farmstead Mods
RU

All commands

274 commands: syntax, aliases, permission and description.

The table is built from the command registrations in the source on every site build, so the Permission column shows the node the mod actually checks. Syntax and notes are the hand-verified part.

CommandSyntaxAliasesPermissionDescription
/?/? | /? <page_or_command>—neoessentials.? by conventionShow available commands (alias)Alias of /help: the same requires (neoessentials.help, the console passes), the same executeHelp. No <command> <page> branch. The catalog shows the node as neoessentials.? — a registry convention; the check uses neoessentials.help.
/ac/ac <message>—neoessentials.helpopRequest help from staff (alias)Alias of /helpop (HelpopCommand), not a channel switch. The shipped staff channel is /staff.
/afk/afk [<message>]—neoessentials.afk by conventionToggle AFK statusPlayer only. The neoessentials.afk permission is checked inside executes, not in requires. <message> is a greedyString and goes into the broadcast as the reason. Without an argument the reason is null. The command silently refuses if the chat module is off (isChatEnabled), commands.afk is off, or the legacy ChatManager.isAfkEnabled() is false. afk is in excludedCommands by default — /afk itself does not reset the idle timer.
/ah/ah | /ah sell <price> | /ah selling | /ah expired | /ah reload | /ah helpauctionhouseneoessentials.ahAuction House — buy and sell itemsThe auctionhouse alias is registered only if both ah and auctionhouse are enabled in commands. The root requires neoessentials.ah (the console passes). sell additionally requires neoessentials.ah.sell and a player; selling/expired require a player. reload requires neoessentials.ah.reload. The sell price is a DoubleArgumentType from 0.01. The whole stack in the main hand goes into the listing in one call.
/amsg/amsg <message>—neoessentials.helpopRequest help from staff (alias)Alias of /helpop, not a private message and not a channel.
/announce/announce <message>—neoessentials.broadcastBroadcast a message (alias)Alias of /broadcast, permission neoessentials.broadcast.
/antioch/antioch [flavour]—neoessentials.antioch by conventionSpawn lit TNT at your look target ( easter egg)Player only. A 20-block ray, PrimedTnt fuse 80. Any greedy argument adds two server-wide Holy Hand Grenade lines; TNT spawns either way. Permission neoessentials.antioch.
/anvil/anvil—neoessentials.anvil by conventionOpen portable anvilPlayer only (console — player_only). A virtual menu with stillValid=true, no physical block. The root .requires is instanceof ServerPlayer. The neoessentials.anvil permission is checked by PermissionValidator (a console with OP 2 never gets here anyway because of requires). Repair XP is charged as with a normal anvil.
/apikey/apikey <create <label> [role] | list | revoke <id>>—neoessentials.dashboard.apikeysManage long-lived API keys for external dashboard integrationsThe root requires neoessentials.dashboard.apikeys (validatePermission). Bare /apikey is incomplete — there is no .executes on the root. <label> and <id> are words. [role] defaults to ADMIN; completion offers ADMIN, OPERATOR, MODERATOR, VIEWER. The full token is printed once (a copyable component) and is never stored in plain form again. list shows id/label/role/enabled/last used, not the secret. Unlike /dashboard, isCommandEnabled("apikey") is not checked — the command is always registered.
/away/away [<message>]—neoessentials.afkToggle AFK status (alias)The same registerAfkCommand as /afk: a separate literal, not a redirect. The commands.away flag is not read — both literals look at commands.afk. The default excludedCommands has no away entry.
/back/back—neoessentials.teleport.backReturn to previous locationThe point is recorded before home/warp/spawn/tpa and before /tp|/tphere|/tpall|/tppos|/top|/jump|/jumpto. /tpo and /tpoffline from ServerAdminCommands do not record /back. Death — backSettings.enableDeathBack; the point is saved without a chat notification. Its own warmup: backSettings.teleportDelay, not generalSettings. enableBackSafety is false by default. A return into a Farmstead Claims (or original RegionGuard) region with teleport-escape deny is cancelled.
/backup/backup—neoessentials.backup by conventionTrigger a server world save and backupsave(null, true, false) across all levels, then a ProcessBuilder from commands.backupCommand (an empty string / "save-all" — save only). The command is split by spaces, inheritIO, does not wait for completion. Permission neoessentials.backup.
/bal/bal—neoessentials.economy.balanceCheck your balance (alias)A separate registration in BalanceCommand, the root is also neoessentials.economy.balance: only your own balance, there is no <player> argument. Another player's account — only via /balance <player>.
/balance/balance [player]—neoessentials.economy.balanceCheck your balanceThe /balance, /bal and /money roots are gated by neoessentials.economy.balance. Bare /balance shows your own account. The [player] branch is gated by neoessentials.economy.balance.others (or OP 2). The name is resolved via EconomyPlayerUtil — offline too. The console does not pass: executeOther calls getPlayerOrException on the sender. The /money alias in the same file shows only your own balance, like /bal.
/balancetop/balancetop [page]—neoessentials.economy.baltopView top balances (alias)Same node as /baltop: the {baltop, balancetop, btop} loop in BaltopCommand.register.
/baltop/baltop [page]—neoessentials.economy.baltopView top balancesneoessentials.economy.baltop; the console passes (player == null). Without [page] — page 1, IntegerArgumentType from 1. The page size of 10 and the 60 s cache TTL are hardcoded in BaltopCommand; economy.json has no keys for them. Players with neoessentials.economy.baltop.exempt are left out of the table. The /btop alias is registered in the same loop and has no separate card.
/ban/ban <player> [reason]—neoessentials.moderation.banBan a player<player> — StringArgumentType.word, online first (case-insensitive), otherwise the server's profile cache; offline bans are possible. Without [reason], moderation.banSettings.defaultBanReason is used. Gated by neoessentials.moderation.ban on the root. Banning the same UUID again returns false while the record is active.
/banip/banip <ip> [reason]—neoessentials.moderation.banipBan an IP address<ip> — one word; only an IPv4 of four octets 0–255 is accepted, you cannot pass a name. Kicks everyone online with that address. enableIPBans: false → banIP returns false. Permission neoessentials.moderation.banip. Without a reason — defaultBanReason.
/banlist/banlist [players | ips]—neoessentials.moderation.banlistList banned playersWithout an argument the players branch runs. players archives expired temp bans on read if autoExpireTempBans is on. ips returns the raw ipBans Map without an expiry filter. Permission neoessentials.moderation.banlist.
/bb/bb <player>—neoessentials.bb by convention /help catalogueReturn a non-member of your current region to spawnA Farmstead Claims (or original RegionGuard) command, not a NeoEssentials one. Requires the base node regionguard.command plus owner or member status of a regular region (not __global__) under the player. The named player must be online and in the same region; an owner/member of that region stays put, while a guest is immediately teleported to the configured NeoEssentials spawn (if set) or the vanilla spawn and gets a message about being sent back. The warmup and messages of the regular /spawn are not used. In /help the command description is shown in Russian ("Send a guest of the current claim back to spawn").
/bc/bc <message>—neoessentials.broadcastBroadcast a message (alias)Alias of /broadcast, permission neoessentials.broadcast.
/bcastworld/bcastworld <message>—neoessentials.broadcastworldBroadcast to world (alias)Alias: performPrefixedCommand "broadcastworld …", permission neoessentials.broadcastworld.
/beezooka/beezooka [amount]—neoessentials.beezooka by conventionLaunch angry bees Player only. amount Integer 1–20, default 1. Bees with persistent anger of 400–800 ticks. Permission neoessentials.beezooka.
/bigtree/bigtree—neoessentials.treeGrow a large tree (alias)Calls the same handler with type=bigoak (fancy_oak). Permission neoessentials.tree.
/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.
/bottom/bottom—neoessentials.bottom by conventionTeleport to the bottom of the worldPlayer only. Looks for the lowest solid block with two air above it between minBuildHeight and the current Y, records back via MiscTeleportManager. No safe place — no_safe.
/break/break—neoessentials.break by conventionBreak the looked-at blockPlayer only, a 20-block ray, destroyBlock without drops. Bedrock — only with neoessentials.break.bedrock. Console: the tree is visible, execute — player_only.
/broadcast/broadcast <message>—neoessentials.broadcast by conventionBroadcast a message to all playersgreedyString. PlaceholderAPI placeholders from the sender (console — without a player). Prefix §6[Broadcast] §f, colour codes. Sent to all players and to the server's system chat — there is no separate "sent to N". The console passes.
/broadcastworld/broadcastworld <message>—neoessentials.broadcastworld by conventionBroadcast to players in your worldOnly players in the current src.getLevel() (for the console that is usually the overworld). Prefix §6[World] §e. PlaceholderAPI placeholders.
/burn/burn <target> [seconds]—neoessentials.burn by conventionSet a player on fireThe target is required. Seconds Integer 1–600, default 10. Sets remainingFireTicks = seconds×20. There is no separate burn.others — neoessentials.burn is enough. The console passes.
/cartography/cartography—neoessentials.cartography by conventionOpen portable cartography tablePortable cartography table.
/cartographytable/cartographytable—neoessentials.cartographyOpen portable cartography table (alias)Alias of /cartography.
/chatformat/chatformat set <player> <format> | clear <player> | check <player> | list | reload—neoessentials.chat.format.setManage per-player/per-group chat formatsThe root and all branches require neoessentials.chat.format.set (the node is not in PermissionRegistry — it will not be in the site's permission table; LuckPerms accepts the string). <player> — online only. set/clear/check/reload write to the DataStore collection chat_formats; list prints only online players who have an override, although getCount() counts everyone. Branch messages are hardcoded English Component.literal, not lang. The tree is not registered if chatEnabled or commands.chatformat is off.
/chestshop/chestshop [list [player] | info | convert | remove [<x> <y> <z>] | setprice <buy|sell|both> <price> | stats | limit | export | import [create] | reload | pricing | hologram enable|disable|enablepos <x> <y> <z>|move <x> <y> <z>]—neoessentials.chestshopSign-based chest shop systemBare /chestshop prints help; the root requires neoessentials.chestshop (the console passes). Targeting for info/convert/setprice/remove without coordinates/hologram is player.pick(5.0). list [player] — others' only with neoessentials.shop.list.others or OP 3, and online only. convert — neoessentials.shop.create. remove without coordinates — the owner or shop.admin.remove/OP 3; with coordinates — admins only. setprice — shop.setprice or shop.admin.setprice; someone else's sign — only admin.setprice. hologram enablepos is invoked by the chat button after creating a sign. reload — OP 3 or shop.admin.reload. There is no /shop alias in the code, despite the ShopCommand javadoc.
/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.
/clearwarnings/clearwarnings <player>—neoessentials.moderation.warnClear all warnings for a playerErases all of the target's warnings. Permission neoessentials.moderation.warn.
/compass/compass [player]—neoessentials.compass by conventionShow your compass directionWithout a target — player only, neoessentials.compass. With a target EntityArgument.player() and compass.others; the console can view another player's. Shows cardinal directions, coordinates, biome, distance to spawn. An extra bearing literal is registered but is not in the /help catalog.
/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.
/coords/coords [player]—neoessentials.getposGet your current position (alias)Alias of /getpos, permission neoessentials.getpos.
/craft/craft—neoessentials.craftingOpen portable crafting table (alias)Alias of /crafting. Permission neoessentials.crafting, not neoessentials.craft. Disabled by the commands.crafting key; there is no separate commands.craft.
/crafting/crafting—neoessentials.crafting by conventionOpen portable crafting tablePlayer only (console — player_only). A virtual menu with stillValid=true, no physical block. Permission neoessentials.crafting via PermissionValidator. The craft and workbench aliases are registered by the same method if commands.crafting is on.
/crate/crate [list | open <crate> | preview <crate> | keys [player] | key give|take|giveitem <player> <crate> <amount> | admin create <id> <displayName> | admin delete <crate> | admin addreward <crate> <weight> | admin setanimation <crate> <animation> | admin setkey <crate> | admin setchatname <crate> <name> | admin setkeyname <crate> <name> | admin setblock <crate> | admin removeblock | admin reload]—neoessentials.crate.openOpen and manage cratesThe /crate root node is gated entirely by neoessentials.crate.open (without it even /crate preview does not work, although it has its own permission neoessentials.crate.preview), the key and admin branches additionally require neoessentials.crate.admin, and every <player> argument is looked up among online players only.
/createkit/createkit <kitname> [<displayname> [<cooldown> [<description>]]]—neoessentials.kits.createCreate a new kitPlayer only (an inventory is needed). <kitname> is a word of [A-Za-z0-9_] up to 32 characters; in storage the name is lower-cased. <displayname> is a String (spaces only in quotes), <cooldown> is whole seconds ≥ 0 (stored as milliseconds in the record), <description> is greedy. The main inventory is copied without armor and the offhand. Repeating with the same name overwrites the kit. The tree also has the makekit and addkit literals; they are not in the help registry.
/cshop/cshop [list [player] | info | convert | remove [<x> <y> <z>] | setprice <buy|sell|both> <price> | stats | limit | export | import [create] | reload | pricing | hologram enable|disable|enablepos <x> <y> <z>|move <x> <y> <z>]—neoessentials.chestshopSign-based chest shop (alias)A redirect to the chestshop node, and only if both the chestshop and cshop keys are enabled in commands. If only cshop is enabled, nothing is registered.
/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.
/dashboard/dashboard [start | stop | restart | status | url | pair <dashboardUrl> <code> | unpair]—neoessentials.admin.dashboardStart/stop/status/URL for the web dashboardThe root is gated by neoessentials.admin.dashboard via validateAdminPermission (the console and OP level 2 always pass). Bare /dashboard equals status. pair/unpair additionally require neoessentials.dashboard.pair (validatePermission, no admin bypass). <dashboardUrl> is StringArgumentType.string(): a URL with : and / must be quoted, otherwise Brigadier splits the token. start looks at webDashboard.enabled and modules.webDashboardEnabled; autoStart ships as false — HTTP does not come up on its own. The command is registered only if commands.dashboard is enabled.
/dashboardregister/dashboardregister [start | complete <username> <password> | discord | status]—neoessentials.dashboard.accessRegister a web dashboard accountA player needs neoessentials.dashboard.access; the console is allowed with OP 2, but every branch except help replies players_only. A bare call prints help. <password> is greedy (spaces allowed), at least 8 characters; <username> is a word of 3–20 characters. The start token lives for 5 minutes in memory and is not written to the DataStore. discord requires a ready SDLink / Mc2Discord / DCIntegration and an already linked Discord account.
/day/day—neoessentials.time.setSet time to daySets 1000 in all worlds. Permission neoessentials.time.set, not neoessentials.time.
/deletehome/deletehome <name> | /deletehome confirm | /deletehome deny—neoessentials.teleport.home.deleteDelete your home (alias)The same Brigadier node as /delhome: registerDelHomeCommandWithName("deletehome"), if the literal is still free. Same permission: neoessentials.teleport.home.delete.
/delhome/delhome <name> | /delhome confirm | /delhome deny—neoessentials.teleport.home.deleteDelete your homeWith homeSettings.requireConfirmationForDelete (true by default) deletion goes only through /delhome confirm. The chat buttons send /delhome confirm and /delhome deny — the name is read from the pending map. The removehome and rhome aliases are skipped on conflict with FTB/Essentials.
/deljail/deljail <name>—neoessentials.moderation.setjailDelete a jail locationSame permission as setjail. Does not release inmates — only warns how many there were. While the location is missing, canPlayerMove returns true, but isPlayerJailed stays true until /unjail or a login (logging in without a location clears the jail by itself).
/delkit/delkit <kitname> [confirm]—neoessentials.kits.deleteDelete a kitThe first call only prints a warning; deletion is /delkit <kitname> confirm, with no stored "pending" state and no timeout. The kits.commandCosts.delkit price is charged on confirm. The extra literals deletekit, removekit, rkit exist in the tree but not in the help registry.
/delpwarp/delpwarp <name>—neoessentials.teleport.pwarp.deleteDelete a player warpDeletes only your own player warp. Others' points are not affected by this command (there is REST DELETE /api/warps/players/{uuid}/{name} for that).
/delwarp/delwarp <name>—neoessentials.teleport.warp.deleteDelete a warpSame literals: deletewarp, removewarp, rwarp. From the console (OP 3) it calls deleteWarpByAdmin, from the game — deleteWarp. Suggestions — current warp names.
/depth/depth [player]—neoessentials.depth by conventionShow your depthThe root .requires is instanceof ServerPlayer: the console cannot run even /depth <player>. Your own — neoessentials.depth; another player's EntityArgument.player() — depth.others. Sea level Y=63, bedrock Y=−64. Layer descriptions are hardcoded in English (Deepslate Level, Nether Floor…).
/direction/direction [player]—neoessentials.compassShow your compass direction (alias)Alias of /compass, permission neoessentials.compass / compass.others.
/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.
/ec/ec <target>—neoessentials.enderchestView another player's ender chest (alias)Alias of /enderchest, permission neoessentials.enderchest.
/ecedit/ecedit <target>—neoessentials.enderchest.editView and edit another player's ender chest (alias)Alias of /enderchestedit, permission neoessentials.enderchest.edit.
/eco/eco give|take <player> <amount> | set <player> <amount> | reset <player> | history [player]—neoessentials.economy.ecoAdmin economy commandsRoot — OP 2 or neoessentials.economy.eco; there is no bare /eco. give/take — amount from 0.01, set — from 0.0 (negatives are rejected in execute). Names resolve offline via the profile; a string starting with @ is a vanilla selector, online only (quests: /eco give @p 100). history without an argument — your own feed; [player] additionally requires source.hasPermission(2) specifically, the eco node alone is not enough. The /economy alias — the same tree. The 10% percentage syntax is not supported.
/effect/effect <target> clear | /effect <target> <effect> [duration] [amplifier]—neoessentials.effect by conventionApply potion effects to playersThe target is required (online word). duration 1–1000000 s, default 30; amplifier 0–255, default 0. Effect — path or namespace:path. Overrides vanilla /effect. The console passes.
/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.
/enderchest/enderchest <target>—neoessentials.enderchest by conventionView another player's ender chestOnly another/specified player's EC; there is no own-EC variant without a target. Unlike invsee, it does not forbid yourself — /ec <your name> opens it. Permission neoessentials.enderchest.
/enderchestedit/enderchestedit <target>—neoessentials.enderchest.editView and edit another player's ender chestThe target's live EC, single-editor lock. Permission neoessentials.enderchest.edit, key commands.enderchestedit.
/exp/exp | /exp show [target] | /exp set <amount> [target] | /exp give <amount> [target]—neoessentials.exp by conventionManage player experienceThe order is amount then target, not the other way round. Bare /exp and show — your own XP (console without a target — player_only). set: neoessentials.exp.set, amount ≥ 0 (first zeroes levels/points, then giveExperiencePoints). give: exp.give, amount ≥ 1. Another player's set/give — exp.set.others / exp.give.others. Target online only.
/ext/ext [target]—neoessentials.ext by conventionExtinguish a playerrequires: p == null || node — the console and command blocks pass without OP. Target — word, online only via getPlayerByName. clearFire(). Another player — ext.others.
/extinguish/extinguish [target]—neoessentials.extExtinguish a player (alias)Alias of /ext, permission neoessentials.ext / ext.others.
/feed/feed [target]—neoessentials.feed by conventionRestore player hungerrequires: p == null || node — the console and command blocks pass without OP. Target — word, online only via getPlayerByName. Only hunger and saturation 20; effects are not touched. Another player — feed.others.
/fireball/fireball [type] [speed] [ride]—neoessentials.fireball by conventionShoot a projectilePlayer only. Defaults: type=fireball, speed=2.0, no ride. Suggested types: fireball, small, large, arrow, skull, egg, snowball, expbottle, dragon, trident, windcharge. speed Double 0–10. ride is a literal, permission fireball.ride. After the root fireball, execute additionally requires fireball.<type> or fireball.* — for bare /fireball that is fireball.fireball (no such node in the registry) or fireball.*.
/firework/firework clear | /firework power <level> | /firework fire [amount] | /firework color <options>—neoessentials.firework by conventionEdit or fire held firework rocketsNo root .executes — bare /firework does not run. You need a rocket in your main hand. power Integer 0–127; fire 1–50 and a separate neoessentials.firework.fire; color — greedyString: hex[,hex] and optionally fade:/shape (star, large, creeper, burst) / trail|twinkle|flicker. Player only.
/fix/fix—neoessentials.item.repairRepair items (alias)Same code as /repair. Enabled by the commands.fix flag, separately from commands.repair.
/fly/fly | /fly on | /fly off | /fly <target> | /fly <target> on | /fly <target> off—neoessentials.fly by conventionToggle flight moderequires: p == null || node — the console and command blocks pass without OP. Target — word, online only via getPlayerByName. The order is not [on|off] [player]: the target comes first, or bare on/off for yourself. Another player — neoessentials.fly.others on the target branch. Without on/off it inverts mayfly; turning off resets flying and fallDistance. The enabled state is saved by UUID and restored after login if the player still has neoessentials.fly.
/freeze/freeze <player> [reason]—neoessentials.moderation.freezeFreeze a playerOnline only (getPlayerByName). Without a reason — freezeSettings.defaultFreezeReason. Already frozen — error. Writes the freezes collection. Permission neoessentials.moderation.freeze.
/freezeall/freezeall [reason]—neoessentials.moderation.freezeallFreeze all playersThe tree has an optional greedy reason. Does not affect the sender or those already frozen. Permission neoessentials.moderation.freezeall.
/freezelist/freezelist—neoessentials.moderation.freezelistList frozen playersPermission neoessentials.moderation.freezelist.
/fw/fw—neoessentials.fw by conventionEdit or fire held firework rockets (alias)Only a /help catalog entry. There is no Commands.literal("fw") — the alias does not work. Use /firework.
/gamemode/gamemode survival|creative|adventure|spectator [target] | /gamemode 0|1|2|3—neoessentials.gamemode by conventionChange player gamemodeMode names are literals, not word. The numbers 0–3 = survival/creative/adventure/spectator and do not accept [target]. Another player — gamemode.others. Console without a target — player_only. Overrides vanilla /gamemode. Target — online word.
/gc/gc—neoessentials.gc by conventionShow server memory and TPS infoJVM uptime, TPS from getAverageTickTimeNanos (cap 20), used/total/max MB, the total of loaded chunks. The console passes.
/getpos/getpos [player]—neoessentials.getpos by conventionGet your current positionWithout a target — player, neoessentials.getpos. With a target — getpos.others. Exact and block coordinates, light, the block underfoot, the Nether/Overworld equivalent. An extra pos literal exists in the tree but not in the catalog.
/give/give <target> <item> [amount]—neoessentials.give by conventionGive items to a playerTarget and item are required. item — word (no NBT/components); resolved by WorthManager.resolveItem: namespace:path, otherwise minecraft:path, otherwise an exact path from any mod, otherwise contains. amount Integer 1–3456, default 1; stacks are split by maxStack, the excess drops. Overrides vanilla /give. Does not overlap with /crate key give — that is a /crate subcommand.
/gma/gma [player]—neoessentials.gamemodeChange to adventure modeAdventure shortcut. The same permission and target scheme as /gms.
/gmc/gmc [player]—neoessentials.gamemodeChange to creative modeCreative shortcut. The same permission and target scheme as /gms.
/gms/gms [player]—neoessentials.gamemodeChange to survival modeSurvival shortcut. Enabled by commands.gamemode. Your own — neoessentials.gamemode, another player's EntityArgument.player() — gamemode.others. Already in that mode — already_in_mode. Console without a target — player_only.
/gmsp/gmsp [player]—neoessentials.gamemodeChange to spectator modeSpectator shortcut. The same permission and target scheme as /gms.
/god/god | /god on | /god off | /god <target> | /god <target> on | /god <target> off—neoessentials.god by conventionToggle god moderequires: p == null || node — the console and command blocks pass without OP. Target — word, online only via getPlayerByName. Enabling also fully heals and sets hunger to 20, clears the target from nearby mobs and prevents mobs from picking them as a new target. Another player — god.others. The enabled state is saved by UUID and restored after login if the player still has neoessentials.god.
/grindstone/grindstone—neoessentials.grindstone by conventionOpen portable grindstonePlayer only (console — player_only). A virtual menu with stillValid=true, no physical block. Permission neoessentials.grindstone.
/hat/hat—neoessentials.hat by conventionWear held item as helmetPlayer only. Swaps the main hand and armor slot 3 (helmet), even if the item is "not a helmet". Empty hand — no_item.
/heal/heal [target]—neoessentials.heal by conventionRestore player health and hungerrequires: p == null || node — the console and command blocks pass without OP. Target — word, online only via getPlayerByName. Full HP, hunger 20, saturation 20, removeAllEffects. Does not heal the dead (heal.dead). Another player — heal.others.
/help/help | /help <page_or_command> | /help <command> <page>—neoessentials.help by conventionShow available commandsBefore registering it removes the vanilla help and ? nodes via reflection. One word argument: a plain number ≥ 1 is a page number (10 commands each), otherwise a search by name/description in the CommandRegistry catalog. A second page exists only for /help <command> <page>; /? has none. The list is filtered by the actual node from CommandPermissionRegistry; the console and holders of neoessentials.admin / neoessentials.* see everything. The description is looked up first by the full syntax without placeholders (for example, cmd.rg.flag.clear.description), then by the root (cmd.bb.description); so individual /rg branches show different Russian descriptions. A player can type the root of any NeoEssentials command or alias in any case (/HOME, /Home, /home); the case of arguments and subcommands is not changed. Node — neoessentials.help (not neoessentials.?).
/helpop/helpop <message>—neoessentials.helpop by conventionRequest help from staffWithout an argument — usage. Sender permission neoessentials.helpop; only online players with neoessentials.helpop.receive receive it. A muted player is blocked. The [Reply] buttons insert /msg <name> ; teleporting to the coordinates / to the player — if you have neoessentials.teleport.admin.tp / tphere. This is not a staff channel: /ac and /amsg are helpop aliases, not ChannelCommands.
/history/history <player>—neoessentials.moderation.historyView a player's moderation history (alias)dispatcher.redirect to the modhistory node. Registered only if commands.modhistory is on. The same permission neoessentials.moderation.history.
/hologram/hologram create <id> [<x> <y> <z> [world]] | delete <id> | rename <id> <newid> | copy <id> <newid> | addline <id> <text> | insertline <id> <index> <text> | setline <id> <index> <text> | removeline <id> <index> | moveline <id> <from> <to> | clearlines <id> | addframes <id> <lineIndex> <intervalTicks> <frames> | removeframes <id> <lineIndex> | moveto <id> <x> <y> <z> | movehere <id> | align <id> | tp <id> | near [radius] | setrefresh <id> <seconds> | toggle <id> | list | info <id> | reload | billboard <id> <fixed|vertical|horizontal|center> | textalign <id> <center|left|right> | spin <id> on [speed] [axis] | spin <id> off | spintrack <id> on|off | hover <id> on [amplitude] [speed] | hover <id> off | scale <id> <scale> | linespacing <id> <spacing> | shadow <id> on|off | seethrough <id> on|off | opacity <id> <0-255> | viewrange <id> <range> | linewidth <id> <pixels> | background <id> <transparent|#RRGGBB|#AARRGGBB>holoneoessentials.hologram.adminManage holographic displaysThe whole root is gated by hasPermission: OP 4, neoessentials.hologram.admin or neoessentials.admin.* (the console always passes). The /holo alias is a redirect to the same node and is registered only if both commands.hologram and commands.holo are enabled. The id is stored in lower case. Line numbers are 1-based. <text> and <frames> are greedyString. There is no setscale subcommand: the scale is set with scale. create without coordinates uses the player's position, Y+1.5 (the console cannot create one this way). near without a radius = 20, radius 1–1000. spin on defaults to speed 3.0 on the Y axis; hover on defaults to amplitude 0.08, speed 1.5. The modules.hologramEnabled module switch turns off registration entirely.
/home/home [<name>]—neoessentials.teleport.homeTeleport to your homeWithout a name: the home key, otherwise the first key of a ConcurrentHashMap — not alphabetical. The /h alias is not set if ftbessentials / ftb_essentials / essentials is loaded. In jail with preventJailEscape the command stays silent. Cooldown homeTeleportCooldown, warmup — generalSettings.teleportDelay.
/homes/homes—neoessentials.teleport.home.listList your homesAliases listhomes, homelist. The family is registered only if commands.listhomes=true; the commands.homes key does not affect the tree. The console does not pass requires().
/i/i <item> [<amount>]—neoessentials.itemGive yourself an item by name (alias)Alias of /item, same argument tree and same permission neoessentials.item.
/ice/ice [target]—neoessentials.ice by conventionFreeze a playersetTicksFrozen(getTicksRequiredToFreeze()+1) — the powder snow mechanic, not an ice block. Your own — neoessentials.ice; another online word — ice.others. Console without a target — player_only.
/ignore/ignore <target>—neoessentials.chat.ignoreIgnore a playerSame tree: /block (not in the registry). <target> online only. You cannot ignore yourself. Permission neoessentials.chat.ignore. A target with neoessentials.chat.ignore.exempt is not ignored (the node is not declared in PermissionRegistry, but the code checks it). Ignoring the same name again is an error. The list is the DataStore collection ignore_lists, key = lowercase name, not UUID. IgnoreManager does not filter public chat.
/info/info—neoessentials.info by conventionGet player information (alias)Not an alias of /whois, despite the catalog description. Prints a header + the active MOTD (only {player}/{name}) + a footer with a link to /rules. Permission neoessentials.info (default true). The console passes (p == null).
/inv/inv <target>—neoessentials.invseeView another player's inventory (alias)Alias of /invsee, not a redirect: its own requires. The mode is determined the same way: `neoessentials.invsee` — view, `neoessentials.invsee.edit` — edit.
/invsee/invsee <target>—neoessentials.invsee by conventionView another player's inventoryThe target EntityArgument.player() is required. The console passes requires, but execute uses getPlayerOrException (a player is needed). Audit — neoessentials/inventory_audit.log. With `neoessentials.invsee` a read-only window opens (mayPickup/mayPlace=false); with `neoessentials.invsee.edit` — the editable live inventory and a "one editor per target" lock. The `.edit` node also grants access to the command itself and takes precedence over viewing. You cannot view your own inventory (invsee.self). Enabled by commands.invsee.
/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.
/jail/jail <player> <jail> [duration_or_reason]—neoessentials.moderation.jailJail a player<jail> — the location name. The tail is greedy, as in /mute: a 30m/1h/… token is the duration, otherwise the whole string is the reason for an indefinite jailing. Offline via the profile cache. Permission neoessentials.moderation.jail. Requires an existing location (and at least one, if requireJailLocation).
/jailfor/jailfor <player> <jail> <duration> [reason]—neoessentials.moderation.jailJail a player for a set duration<duration> is required and must match the same regexp as /jail, otherwise invalid_duration. Access: neoessentials.moderation.jail.timed or neoessentials.moderation.jail (validateAnyPermission; in LuckPerms the parent node does not imply .timed).
/jailinfo/jailinfo [jail]—neoessentials.moderation.jailinfoShow info about a jailWithout a name — all locations; with a name — one plus the number of inmates. The argument is a cell name, not a player. Permission neoessentials.moderation.jailinfo.
/jaillist/jaillist—neoessentials.moderation.jaillistList all jail locationsContrary to the /help catalog, this is a list of jailed players, not locations. Locations — /jailinfo without an argument. Permission neoessentials.moderation.jaillist.
/jails/jails—neoessentials.moderation.jaillistList all jail locations (alias)A separate literal with the same executeJailList as /jaillist (jailed players, not locations). Permission neoessentials.moderation.jaillist. Not a redirect.
/jump/jump—neoessentials.teleport.jumpJump through wallsThe same execute as /jumpto: a 100-block ray, landing on the block above the hitbox. It does not "jump" through walls: if the ray hits an opaque block, you are teleported on top of it.
/jumpto/jumpto—neoessentials.teleport.jumptoTeleport to block you're looking atIdentical to /jump (both register* call jumpToTargetBlock). If there are not two blocks of air above the target — jumpto_failed.
/kick/kick <player> [reason]—neoessentials.moderation.kickKick a playerOnline only. You cannot kick yourself. Without [reason] the tree hardcodes "Kicked by an operator", not defaultKickReason from the config. Screen — kickSettings.kickMessage with {reason}/{kicker}. Writes the kicks collection. Permission neoessentials.moderation.kick.
/kickall/kickall [reason]—neoessentials.moderation.kickallKick all playersKicks everyone except the sender. Without a reason the tree hardcodes "Server maintenance"; the screen text is kickAllMessage. Permission neoessentials.moderation.kickall.
/kill/kill <target>—neoessentials.kill by conventionKill a playerThe target is required — you cannot kill yourself without a name (unlike vanilla /kill). Online players only. exempt plus no kill.force on a player sender blocks it; the console bypasses exempt. genericKill. Overrides vanilla /kill (entities/selectors no longer work).
/killme/killme | /killme confirm—neoessentials.suicideKill yourself (alias)Alias of /suicide, permission neoessentials.suicide. Enabled by commands.suicide.
/kit/kit [<kitname> [<player>]]—neoessentials.kits.useClaim a kitWithout arguments — the list of kits you have a per-kit permission for. Giving to someone else requires neoessentials.kit.others on the <player> node (the target will not appear in completion without this permission). The console must specify <player>. The target is looked up among online players only. Cooldown and maxUses are checked on the recipient, the per-kit permission on the sender.
/kitreset/kitreset <kitname> [<player>]—neoessentials.kitreset by conventionReset a kit cooldownResets both the cooldown and the usage counter. For another player — neoessentials.kitreset.others on the <player> node. The console must specify a target. Online targets only.
/kits/kits [page]—neoessentials.kits.listList available kitsThe same implementation as /listkits: page ≥ 1, 10 kits per page. The tree is registered only if commands.listkits is enabled (the commands.kits flag on its own does not disable /kits). A player without neoessentials.kits.override sees only the kits available to them, not the full admin list.
/kittycannon/kittycannon—neoessentials.kittycannon by conventionLaunch an exploding baby cat Player only. A kitten (age −24000) with a look-direction×2 impulse; after 20 ticks discard + explode power 0, ExplosionInteraction.NONE — no block damage. Permission neoessentials.kittycannon.
/language/language <code> | /language set <code> | /language list | /language reload | /language stats | /language info | /language template <code> | /language exportmissing | /language clearmissing | /language validate <code> | /language regenerate <code> | /language override set <key> <value> | /language override get <key> | /language override remove <key> | /language override list | /language override clear | /language override reload—vanilla:op-level-4Manage custom language filesThe root requires vanilla OP 4 (`source.hasPermission(4)`), not the neoessentials.language node. The permission registry records the command as vanilla:op-level-4. Bare `/language <code>` is shorthand for set. The <value> of override set is a greedyString (the rest of the line). The console passes the OP check.
/leaderboard/leaderboard [<board> [page | gui] | reload | admin set <board> <player> <value> | admin add <board> <player> <delta> | admin reset <board> <player> | admin create <id> <displayName> | admin delete <board> | hologram create <board> <id> [lines]]lbneoessentials.leaderboard.viewView ranked leaderboards (money, kills, playtime, ...)The `/lb` alias is registered by the same tree. Root — neoessentials.leaderboard.view (console passes); `reload` / `admin` / `hologram` — neoessentials.leaderboard.admin. `<board>`/`<id>`/`<player>` — word; `<displayName>` greedy; `<value>`/`<delta>` — long; `<page>` ≥ 1; chat pages hold 10 lines, the GUI 45. `gui` and `hologram create` are player-only. set/add/reset/delete work only on type `custom`. The shipped config has no separate `modules.leaderboardEnabled` or `commands.leaderboard` key — the command is always registered. `/baltop` does not use this system.
/lightning/lightning [target]—neoessentials.lightning by conventionStrike lightning at a playerWithout a target — a strike at the point of a 100-block ray (a player is needed). With a target — at an online player's feet, permission lightning.others. Console without a target — player_only.
/linkaccount/linkaccount <code>—neoessentials.dashboard.linkaccountLink your Minecraft account to an existing dashboard accountWithout neoessentials.dashboard.linkaccount the command is not in the tree. The console passes .requires, but execute replies players_only. The code comes from POST /api/auth/link-minecraft/start: 8 characters from ABCDEFGHJKLMNPQRSTUVWXYZ23456789, TTL 5 minutes; input is upper-cased. This is the reverse direction of /dashboardregister: it links an existing dashboard account to a player name instead of creating a new one.
/list/list—neoessentials.list by conventionList online playersNo arguments. With vanish, hidden players are not shown without neoessentials.vanish.see. With LuckPerms loaded — lines by primary group (descending weight, default always at the bottom); otherwise a single grey "Players:". The console passes PermissionValidator with OP 2.
/listkits/listkits [page]—neoessentials.kits.listList available kits (alias)Identical to /kits. Permission neoessentials.kits.list. The economy price kits.commandCosts.listkits is charged on every call, including when paging.
/loom/loom—neoessentials.loom by conventionOpen portable loomPortable loom, neoessentials.loom.
/mail/mail | /mail read [page] | /mail send <player> <message> | /mail sendtemp <player> <duration> <message> | /mail sendall <message> | /mail sendtempall <duration> <message> | /mail delete <id> | /mail clear [index|player [index]] | /mail clearall—neoessentials.mail by conventionManage mail messagesRoot /mail and read/delete — neoessentials.mail; send — neoessentials.mail.send; sendtemp — sendtemp; sendall/sendtempall — the corresponding admin nodes; clearing your own — neoessentials.mail.clear, others' — clear.others; clearall — clearall. <player> in send — StringArgumentType.word() plus the profile cache; offline with a known UUID works. sendall sends only to the online list. The mailbox is config/neoessentials/mail_data.json, not DataStore. Limits: 100 mails, 1000 characters, 9 per page, a global rate limit of 10/min (mailsPerMinute is not in the shipped config).
/me/me <target> <message>—neoessentials.chat.msgSend a private message (alias)Alias of /msg: sends a private message, not an action to public chat. Uses the same checks: neoessentials.chat.msg permission, mute, ignore and /msgtoggle.
/mem/mem—neoessentials.gcShow server memory info (alias)Alias of /gc, permission neoessentials.gc.
/message/message <target> <message>—neoessentials.chat.msgSend a private message (alias)A full copy of /msg: the same registerCommand in MsgCommand.java, the same neoessentials.chat.msg checks.
/mob/mob <mob> [amount]—neoessentials.spawnmobSpawn entities (alias)Alias of /spawnmob without the [target] branch — you cannot spawn at another player with this command. Permission neoessentials.spawnmob.
/modhistory/modhistory <player>—neoessentials.moderation.historyView a player's full moderation history (bans/mutes/kicks/warns)Online, otherwise profile cache — like PublicModerationEndpoint. Sections for bans, mutes, kicks and warnings, 5 lines each. Shows the reason, issuer, date, whether the record is active and a permanent duration. Permission neoessentials.moderation.history.
/more/more [amount]—neoessentials.more by conventionFill held stack to maxPlayer only, main hand. Without amount — maxStackSize; otherwise Integer 1–3456 (can exceed the max stack size). Empty hand — no_item. Console: the tree is visible (p == null), execute — player_only.
/motd/motd | /motd set <message> | /motd clear | /motd reload | /motd broadcast | /motd profile list | /motd profile create <name> <message> | /motd profile delete <name> | /motd profile switch <name> | /motd profile info [name] | /motd rotation enable <intervalMinutes> | /motd rotation disable | /motd rotation next—neoessentials.motdView message of the dayThe root is gated by allowsAny: neoessentials.motd / motd.set / motd.broadcast / motd.reload / motd.profile / motd.rotation — any one is enough to see the tree. Bare /motd still checks neoessentials.motd internally. set/clear — motd.set; reload — motd.reload; broadcast — motd.broadcast (sends only to players with motd); the profile branch — motd.profile; rotation — motd.rotation (interval Integer 1–10080). set and create: greedyString, & → §, placeholders {player}/{online}/{max}/{time} and PlaceholderAPI.
/msg/msg <target> <message>—neoessentials.chat.msgSend a private messageBrigadier registers the same tree as /tell, /w, /message, /me and /pm too (the last one is not in the mod's command registry). <target> — EntityArgument.player(), online only. The root is gated by neoessentials.chat.msg (the console passes). You cannot message yourself. If the target ignores the sender — refused, SocialSpy does not fire. If the target has /msgtoggle on — refused, except for OP 4 and neoessentials.chat.msgtoggle.bypass. A muted sender is blocked too. LastMessageManager records the pair only on the recipient. Formats: chat.messaging.msgFormatTo / msgFormatFrom, otherwise lang.
/msgtoggle/msgtoggle—neoessentials.chat.msgtoggleToggle receiving private messagesThere are no on|off arguments — only a toggle. Same tree: /togglemsg and /mt (not in the registry). Registered only with chatEnabled and commands.msgtoggle. Permission neoessentials.chat.msgtoggle; OP 4 bypasses. State is in MsgToggleManager memory and is not written to disk.
/mute/mute <target> [duration_or_reason]—neoessentials.chat.muteMute a player<target> — EntityArgument.player(), online only. The root is gated by neoessentials.chat.mute (the console passes). duration_or_reason is greedy: a first word like 30m/1h/1d/2w is taken as the duration, the rest is the reason; without such a word the whole string is the reason and the mute is permanent. A target with neoessentials.chat.mute.exempt (hasPermissionExplicit) is not muted. A separate silence literal copies this tree; it is not listed on this page.
/mutelist/mutelist—neoessentials.chat.muteList muted playersNo arguments. The root is gated by neoessentials.chat.mute. Expired entries are lazily removed via isMuted. The console is allowed.
/n/n <message>—neoessentials.noticeSend a configurable server noticeAutomatically puts the red prefix §c[Объявление] §7>> §r ("Announcement") before the text. The argument is greedyString; & colour codes and PlaceholderAPI placeholders from the sender are supported, so you can style the text in any colour. Access: neoessentials.notice or OP level 2; the console passes too. The message is sent directly as a system message and does not go through the regular chat handlers.
/near/near [radius]—neoessentials.near by conventionFind nearby playersPlayer only. Radius Integer 1–500, default 100. Same dimension; vanish is checked pairwise via canViewerSeeVanishedPlayer. The /tp click in the hint only with neoessentials.teleport.tp. Does not work from the console.
/nearby/nearby [radius]—neoessentials.nearby by conventionFind nearby players (alias)A separate tree, the same 1–500 / 100. The check is neoessentials.near, not neoessentials.nearby. Enabled by the commands.nearby key independently of commands.near.
/neoe/neoe | /neoe reload | /neoe config split|validate|repair|status | /neoe <command> [args]—neoessentials.neoe by convention /help catalogueRandom teleportation (alias)The long form /neoessentials is registered separately when commands.neoessentials is enabled and mirrors the same tree. The root requires neoessentials.use (the console always passes). reload and the whole config branch need neoessentials.admin.reload. The greedy argument after the root routes to the mod's other commands. The help catalogue also lists /neoe tpr|randomtp|randomteleport as random-teleport aliases — these are not separate slash commands.
/nick/nick | /nick <nickname> | /nick reset | /nick off—neoessentials.nick by conventionChange your nicknamePermission neoessentials.nick. Nickname 3–16 characters without colour codes, pattern ^[a-zA-Z0-9_&§#]{1,32}$ — Cyrillic and spaces do not pass. Colours require neoessentials.nick.color. off/reset as literals and as a greedy string remove the nickname. Storage: config/neoessentials/nickname_data.json, not DataStore. Someone else's nickname is the separate /setnick (neoessentials.nick.others); this page does not cover it.
/nickname/nickname …—neoessentials.nickname by conventionChange your nickname (alias)A redirect to /nick, only if both commands.nick and commands.nickname are on. Same permission: neoessentials.nick (the registry lists neoessentials.nickname for the alias — that is a derived node; Brigadier does not check it).
/night/night—neoessentials.time.setSet time to nightSets 13000 in all worlds. Permission neoessentials.time.set.
/note/note <player> <text>—neoessentials.moderation.noteAdd a staff note to a player's record<text> is required (greedy). The first note for an offline player with no existing notes does not resolve — the profile cache is not consulted. Permission neoessentials.moderation.note.
/notes/notes <player>—neoessentials.moderation.notesView staff notes for a playerUp to 5 records, no pages. Permission neoessentials.moderation.notes (separate from note).
/npcshop/npcshop [create <name> | remove | additem <shopId> <item> <buyPrice> <sellPrice> <quantity> | removeitem <shopId> <index> | list | info <shopId> | reload | respawn <shopId> | entitytype <shopId> <entityType> <ai>]—neoessentials.shop.npc.manageNPC entity shop managementThe whole node — OP 3 or neoessentials.shop.npc.manage; bare /npcshop — help. <name> for create is greedyString (spaces allowed). <shopId> — a UUID or an unambiguous prefix from /npcshop list. additem: <item> — word(), the listing always stores "minecraft:" + the item without the minecraft: prefix; buy/sell from −1 (−1 disables that side), quantity from 1. remove — the nearest shop entity within 5 blocks. Buying in the GUI requires neoessentials.shop.use (right-click — buy, left-click — sell).
/nuke/nuke [target]—neoessentials.nuke by conventionRain TNT on a playerNot entity removal. Without a target — everyone online; with a target — one name. Above each, a 5×5 grid of PrimedTnt (step 5, −10..10) at maxBuildHeight, fuse 80 ticks. Permission neoessentials.nuke. The console without a target bombs everyone.
/online/online—neoessentials.listList online players (alias)Alias of /list, permission neoessentials.list.
/pay/pay <player> <amount>—neoessentials.economy.paySend money to another playerPermission neoessentials.economy.pay (a .requires node plus a repeat check in execute). <amount> — DoubleArgumentType from 0.01; Brigadier will not accept percentages like 10%. Name suggestions are online only, but with neoessentials.economy.pay.offline the transfer goes to a cached profile. The /p alias is registered in the same PayCommand; it has no separate command in this file. There is no cooldown in the config: ConfigManager.getPayCooldownSeconds() always returns 0.
/payconfirmtoggle/payconfirmtoggle—neoessentials.payconfirmtoggle by conventionToggle payment confirmation promptsRegistered by MiscItemCommands, not EconomyCommands. Permission neoessentials.payconfirmtoggle. Player only. The flag lives in an in-memory Set and resets on restart. /pay does not read this flag — see knownIssues.
/paytoggle/paytoggle—neoessentials.economy.paytoggleToggle receiving paymentsneoessentials.economy.paytoggle (or OP 2). Player only: getPlayerOrException. The value is written immediately to the pay_toggles collection. Until a record exists, economy.json → paytoggleDefault applies (true in the template — payments are accepted).
/permissions/permissions [reload | list groups | list users | info group <group> | info user <player> | check user <player> <permission> | check group <group> <permission> | search <pattern> | create group <group> | delete group <group> | rename group <oldName> <newName> | clone group <source> <newGroup> | debug <player> | group <group> setprefix <prefix> | group <group> setsuffix <suffix> | group <group> setpriority <priority> | group <group> getpriority | group <group> add <permission> | group <group> remove <permission> | group <group> clear | group <group> inherit add <inheritGroup> | group <group> inherit remove <inheritGroup> | group <group> addtemp <permission> <duration> | group <group> removetemp <permission> | group <group> listtemp | group <group> context add <contextKey> <permission> allow|deny | group <group> context remove <contextKey> <permission> | group <group> context list | user <player> setgroup <group> | user <player> add <permission> | user <player> remove <permission> | user <player> clear | user <player> addtemp <permission> <duration> | user <player> removetemp <permission> | user <player> listtemp | user <player> context add <contextKey> <permission> allow|deny | user <player> context remove <contextKey> <permission> | user <player> context list]—neoessentials.permissions.adminManage permissionsThe root has no .requires and no .executes — Brigadier rejects bare /permissions as incomplete; each branch checks its own node (reload → neoessentials.permissions.reload, group add → .group.permissions, setgroup → .user.groups, etc.). The /help catalog shows the tree by neoessentials.permissions.admin. Branches with validateAdminPermission let a level-2 operator through even before PermissionAPI, even with opsBypassPermissions: false. <prefix>/<suffix> — greedy (up to 64 characters); <permission> for add/remove — greedy, for addtemp — string, for context — word; <duration> — a single word like 1d12h30m, not 1d 12h; setpriority accepts an integer from −999 to 999. The modules.permissionsEnabled module and the commands.permissions / commands.pex flags are read at registration: with both off there is no tree at all.
/pex/pex [reload | list groups | list users | info group <group> | info user <player> | check user <player> <permission> | check group <group> <permission> | search <pattern> | create group <group> | delete group <group> | rename group <oldName> <newName> | clone group <source> <newGroup> | debug <player> | group <group> setprefix <prefix> | group <group> setsuffix <suffix> | group <group> setpriority <priority> | group <group> getpriority | group <group> add <permission> | group <group> remove <permission> | group <group> clear | group <group> inherit add <inheritGroup> | group <group> inherit remove <inheritGroup> | group <group> addtemp <permission> <duration> | group <group> removetemp <permission> | group <group> listtemp | group <group> context add <contextKey> <permission> allow|deny | group <group> context remove <contextKey> <permission> | group <group> context list | user <player> setgroup <group> | user <player> add <permission> | user <player> remove <permission> | user <player> clear | user <player> addtemp <permission> <duration> | user <player> removetemp <permission> | user <player> listtemp | user <player> context add <contextKey> <permission> allow|deny | user <player> context remove <contextKey> <permission> | user <player> context list]—neoessentials.permissions.adminManage permissions (alias)This is not a PermissionsEX imitation: PermissionsCommand.register attaches the same createRoot tree to the pex literal if commands.pex is on. The FakePermissionsEXCommand class with a "fake" /pex is not registered at runtime — registerFakePexCommand is never called.
/ping/ping [player]—neoessentials.ping by conventionCheck your pingWithout an argument — your own ping (the console gets player=null from PermissionValidator.success() and goes into latency() — do not call it without a target). Another player: EntityArgument.player() (online only) and neoessentials.ping.others (true by default). Quality — English strings Excellent…Terrible, not from lang.
/placeholder/placeholder [list | stats | info <identifier> | test <text>]—neoessentials.admin.placeholdersInspect and test the NeoEssentials placeholder systemThe root is gated by neoessentials.admin.placeholders via validateAdminPermission (OP 2 and the console pass). Bare /placeholder prints help. <identifier> is a word with completion from the registry; <text> is greedy, braces included, e.g. {neoessentials_balance}. test takes the context of the executor only: the tree has no player argument (contrary to the class javadoc). From the console player == null, so personal tokens stay unresolved. The command is not registered when commands.placeholder: false.
/playtime/playtime [target]—neoessentials.playtime by conventionCheck player play timeTarget — word + online name (getPlayerByName). Counter: Stats.PLAY_TIME plus the current session's milliseconds from sessionStart (set in onPlayerJoin). Console without a target — player_only. Another player — neoessentials.playtime.others.
/pong/pong—neoessentials.pong by conventionCheck your ping (alias)Only a /help catalog entry (registerCommand in NeoEssentials.java). There is no Commands.literal("pong") in the sources — the command will not appear in Brigadier completion, and /pong does nothing. See /ping.
/potion/potion clear | /potion add <effect> [duration] [amplifier]—neoessentials.potion by conventionEdit potion effects on held potion itemNot /effect: edits the POTION_CONTENTS of the item in hand (potion / splash / lingering / tipped_arrow). duration 1–1000000 s default 30; amplifier 0–255 default 0. No root .executes. Player only. Permission neoessentials.potion.
/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.
/pt/pt—neoessentials.item.powertoolBind commands to items (alias)Bare /pt is paytoggle: PayToggleCommand registers literal("pt").executes before PowertoolCommand. After Brigadier merges them, /pt list, /pt remove and /pt <command> belong to powertool (neoessentials.item.powertool), not the economy. Do not treat the subcommands as part of paytoggle.
/ptime/ptime | /ptime reset [target] | /ptime <time> [target]—neoessentials.ptime by conventionSet per-player time overrideA client-side ClientboundSetTimePacket; does not change server time. Bare — show. reset removes it; <time> — sunrise/day/morning/noon/afternoon/sunset/night/dusk/midnight or ticks; "reset" as a word also gives −1. Another player — ptime.others. The map is in memory; onPlayerQuit erases it.
/ptlist/ptlist—neoessentials.powertoollistList all active powertool bindings (alias)Alias of /powertoollist, same permission.
/pwarp/pwarp <name>—neoessentials.teleport.pwarpTeleport to your player warpname is required; there is no bare /pwarp. The command family is not registered if warpSettings.allowPlayerWarps=false. After checking your own player warp the handler calls teleportToWarp — i.e. the server warp with the same name, not the player's point.
/pwarps/pwarps—neoessentials.teleport.pwarp.listList your player warpsA list of only your own names plus a counter against your personal maximum (∞ with unlimited). Does not show others' warps.
/pweather/pweather | /pweather reset [target] | /pweather sun [target] | /pweather clear | /pweather storm [target] | /pweather rain—neoessentials.pweather by conventionSet per-player weather overrideClient-side RAIN/THUNDER_LEVEL_CHANGE. clear and rain are synonyms of sun/storm, but without the [target] branch. Another player — pweather.others. State is in memory and resets on quit. There is no separate thunder.
/r/r <message>—neoessentials.chat.replyReply to last private message (alias)Alias of /reply, the same ReplyCommand.
/realname/realname <player>—neoessentials.realname by conventionFind player by nicknameWithout an argument — usage. Searches online: exact name, then nickname without &-codes, then contains. Multiple matches print a list (up to 10). Does not search offline. Permission neoessentials.realname.
/recipe/recipe [item]—neoessentials.recipe by conventionShow/unlock recipe for an itemPlayer only. Without item — the item in the main hand. Otherwise word → minecraft:path. awardRecipes for all recipes with that result. Overrides vanilla /recipe (the give/take branches no longer exist).
/remove/remove <type> [radius]—neoessentials.remove by conventionRemove entities in radiusPlayer only. type: all, items, drops, mobs, animals, monsters, arrows, xp, paintings, boats, minecarts, tnt. Radius Integer 1–10000, default 200. Does not touch players. An unknown type matches 0 removals. Not to be confused with /rules remove.
/removenote/removenote <player> <noteId>—neoessentials.moderation.noteRemove a specific note by IDAn 8-character prefix, as with removewarn. Permission neoessentials.moderation.note.
/removewarn/removewarn <player> <warnId>—neoessentials.moderation.warnRemove a specific warning by ID<warnId> — word; an 8-character prefix from /warnings is enough. Permission neoessentials.moderation.warn.
/rename/rename [<name>]—neoessentials.itemnameRename held item (alias)Alias of /itemname.
/renamehome/renamehome <oldname> <newname>—neoessentials.renamehome by conventionRename a homeA second branch with the same two-word pattern and the permission neoessentials.renamehome.others parses the first argument as <player>:<old>, but only among online players. HomeCommands lowercases both names before calling the manager, whereas /sethome stores the key as typed.
/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.
/reply/reply <message>—neoessentials.chat.replyReply to last private messageThe same tree is attached to /r. The target comes from LastMessageManager: only the person who was messaged is recorded there, not the sender of the outgoing /msg. The target must be online; either side leaving clears the map. Permission neoessentials.chat.reply, plus the same mute / ignore / msgtoggle as /msg. Formats: chat.messaging.replyFormatTo / replyFormatFrom.
/report/report <player> <reason>—neoessentials.moderation.reportReport a player for staff reviewPlayer only, not the console; you cannot report yourself. Target: online or profile cache. The neoessentials.moderation.report node is granted to everyone by default. Online staff with neoessentials.moderation.reports get an English line in chat; the report is written to reports either way.
/reports/reports—neoessentials.moderation.reportsView the pending report queueThe PENDING queue, up to 8 lines, no pages. Permission neoessentials.moderation.reports.
/rest/rest [target]—neoessentials.rest by conventionReset your sleep timer (prevent phantoms)Not a vote to skip the night. resetStat(TIME_SINCE_REST) — resets the phantom timer. Your own — neoessentials.rest (default true); another player — rest.others. Console without a target — player_only.
/reviewreport/reviewreport <id> accept|dismiss [notes]—neoessentials.moderation.reportsAccept or dismiss a player reportThe branches are the literals accept and dismiss, not a free word. <id> is resolved via findById (a short prefix, if the manager searches that way). Statuses REVIEWED / DISMISSED. Permission neoessentials.moderation.reports.
/rg/rg define <id> | /rg claim <id> | /rg redefine <id> | /rg remove <id> | /rg delete <id> | /rg list | /rg tp <id> | /rg clearowners <id> | /rg clearmembers <id> | /rg info [id] | /rg addowner <id> <player> | /rg addmember <id> <player> | /rg delowner <id> <player> | /rg delmember <id> <player> | /rg flag <id> list | /rg flag <id> <flag> <value> | /rg flag <id> clear <flag> [value]—neoessentials.rg by convention /help catalogueCreate a region from your current selectionhelpCatalogOnly: NeoEssentials does not build Brigadier for /rg. The tree belongs to the claims mod: Farmstead Claims ("farmstead_claims") or the original RegionGuard ("regionguard"); these 17 lines, as well as /bb <player>, appear in /help only if farmstead_claims or regionguard is loaded at startup. In /help each /rg branch gets its own translated description (for example define, list and flag clear), not a shared text for the /rg root. Without the mod, /rg and /bb are not in the catalog and NE does not register them. Permissions and behaviour belong to the claims mod, not to neoessentials.rg nodes.
/rtoggle/rtoggle | /rtoggle on | /rtoggle off | /rtoggle <target> | /rtoggle <target> on | /rtoggle <target> off—neoessentials.rtoggle by conventionToggle /r reply-to-sender directionWhere /r replies: enabled (default) — to the last person you messaged; disabled — to the last person who messaged you. Another player — rtoggle.others. Console without a target — player_only. State is in process memory.
/rules/rules | /rules <page> | /rules add <rule> | /rules remove <number> | /rules edit <number> <newText> | /rules insert <number> <rule> | /rules clear | /rules reload—neoessentials.rules by conventionView server rulesViewing — neoessentials.rules (default true), 10 lines each, page Integer ≥ 1. Admin branches — rules.admin. add/edit/insert: greedyString, & → §. Numbering starts at 1. File config/neoessentials/rules_data.json; the legacy rules.json migrates by itself. PermissionValidator (console = OP 2).
/scoreboard/scoreboard [toggle | reload | enable | disable | info | preview | board list | set title <board> <text> | set line <board> <index> <text> | player <target> title <text> | player <target> line <index> <text> | player <target> reset | group <group> title <text> | group <group> line <index> <text> | group <group> reset]—neoessentials.scoreboard.adminManage the sidebar scoreboardThe root has no .requires — bare `/scoreboard` prints help to anyone; `toggle` is gated separately by neoessentials.scoreboard.toggle and is player-only; the other branches need neoessentials.scoreboard.admin (the console always passes); `<target>` — EntityArgument.player, online only; `<board>`/`<group>` — word; `<text>` greedy; `<index>` Integer 0–14. `set`/`player`/`group` and `enable`/`disable` live in memory: `/scoreboard reload` and `/neoe reload` restore everything from scoreboard.json.
/seen/seen <player>—neoessentials.seen by conventionCheck when player was last seenWithout an argument the root .executes replies with usage and returns 0. Looks up online by exact name, otherwise case-insensitive in seen_data.json (UUID → activity). Console: PermissionValidator, needs source.hasPermission(2). File config/neoessentials/seen_data.json.
/sell/sell [hand [amount] | inventory|all|invent | <item> [amount]]—neoessentials.sell by conventionSell items for moneyRoot — neoessentials.sell. Bare /sell and the hand branch additionally require neoessentials.sell.hand; inventory/all/invent — neoessentials.sell.bulk. <item> — StringArgumentType.word() (no spaces, colons are fine). The multiplier is config.json → economy.sellMultiplier plus the neoessentials.economy.sellmultiplier.N tiers. Renamed items (CUSTOM_NAME) are not sold unless economy.allowSellNamedItems is true.
/sethome/sethome <name> | /sethome confirm | /sethome deny—neoessentials.teleport.home.setSet your home locationThere is no bare /sethome; the name is required. confirm and deny are sibling literals of the root; the name lives in a pending map, not on the command line. Overwriting an existing home always asks for confirmation (this is not the requireConfirmationForDelete key). The createhome alias — only without a conflicting mod. Name: ^[a-zA-Z0-9_-]+$, up to 20 characters, case as typed. With the Farmstead Claims (or original RegionGuard) flag teleport-escape deny, a home cannot be created in such a zone.
/setjail/setjail <name> [sphere <radius> | cuboid]—neoessentials.moderation.setjailSet jail locationPlayer only. Bare /setjail <name>: WorldEdit cuboid → otherwise a sphere at your feet with jailSettings.defaultSphereRadius. sphere <radius> — Double ≥ 1.0 at the current position. cuboid requires a WE selection. Permission neoessentials.moderation.setjail.
/setpwarp/setpwarp <name>—neoessentials.teleport.pwarp.createCreate a player warpLimit: meta neoessentials.warps, then neoessentials.warp.limit.<1..100>, otherwise warpSettings.maxPlayerWarps (3 by default). neoessentials.warp.limit.unlimited removes the cap. Repeating the same name does not overwrite but replies already_exists. The warpSetCooldown is not spent if creation is rejected.
/setspawn/setspawn [<pos>]—neoessentials.teleport.spawn.setSet spawn locationWithout pos — your current feet. pos — BlockPosArgument, loaded chunk. Not registered if spawnSettings.allowSpawnSet=false. Permission neoessentials.teleport.spawn.set.
/setwarp/setwarp <name> [<pos>]—neoessentials.teleport.warp.createCreate a warpWithout pos it places the warp at your feet. pos — BlockPosArgument (integers, ~ allowed, the chunk must be loaded). The point is saved and used strictly at these coordinates: the safety check does not look for a replacement and does not change the warp. Same literals: createwarp, addwarp. The server warp cap is the maxWarps=50 field in a DataStore record of the warps collection, not a config.json key. Player only.
/setworth/setworth <item> <price|remove>—neoessentials.setworth by conventionSet the sell price of an itemneoessentials.setworth. <item> — ResourceLocationArgument: diamond and minecraft:diamond are both valid; there is no hand literal, the string hand is normalized to minecraft:hand and then the main hand is used. <price> — DoubleArgumentType from 0; 0 in WorthManager.setPrice removes the price just like the remove literal. Writes to the item_worth collection immediately; /neoe reload is not needed.
/showkit/showkit <kit>—neoessentials.showkit by conventionPreview kit contents without claimingThe argument is a word, so /showkit starter,vip (no spaces) is split on the comma and shows several kits. The per-kit permission is not checked: neoessentials.showkit is enough. Gives nothing. Registered from MiscItemCommands, not KitCommands.
/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.
/smite/smite [target]—neoessentials.lightningStrike lightning (alias)Alias of /lightning, permission neoessentials.lightning.
/smithing/smithing—neoessentials.smithing by conventionOpen portable smithing tablePortable smithing table, neoessentials.smithing.
/socialspy/socialspy—neoessentials.chat.socialspySpy on private messagesNo on|off. Same tree: /ss and /spy (not in the registry). Permission neoessentials.chat.socialspy. State is an in-memory ConcurrentHashMap; a restart resets it. Broadcasting happens only after a successful /msg|/reply; a sender with neoessentials.chat.socialspy.exempt is not monitored. Format: chat.messaging.socialspyFormat.
/spawn/spawn—neoessentials.teleport.spawnTeleport to spawnThere is no <player> argument — you cannot send someone else to spawn with this command. The spawnSettings.spawnCooldown is written to lastSpawnUsage before teleportToSpawn: a failed teleport still burns the wait. spawninfo/spawni are not in this page's inventory.
/spawner/spawner <mob>—neoessentials.spawner by conventionChange a spawner typePlayer only, a 6-block ray, the block must be a SPAWNER. Besides neoessentials.spawner you need spawner.<mob> or spawner.*. An id without ":" → minecraft:. Changes setEntityId; no drops.
/spawnmob/spawnmob <mob> [amount] [target]—neoessentials.spawnmob by conventionSpawn entitiesamount Integer 1–100, default 1. Without target — at the sender's feet (console — player_only). Another player — spawnmob.others. finalizeSpawn COMMAND. An id without ":" → minecraft:.
/speed/speed <speed> [target] | /speed walk <speed> [target] | /speed fly <speed> [target]—neoessentials.speed by conventionSet walk or fly speedrequires: p == null || node — the console and command blocks pass without OP. Target — word, online only via getPlayerByName. Float 0–10 → Minecraft 0.0–1.0 (cap 1.0). Bare /speed <n> checks whether the target is flying right now (abilities.flying), not mayfly. Walk — MOVEMENT_SPEED; fly — Abilities.flyingSpeed + onUpdateAbilities. Another player — speed.others.
/stonecutter/stonecutter—neoessentials.stonecuttingOpen portable stonecutter (alias)Alias of /stonecutting. Permission neoessentials.stonecutting.
/stonecutting/stonecutting—neoessentials.stonecutting by conventionOpen portable stonecutterPlayer only (console — player_only). A virtual menu with stillValid=true, no physical block. Permission neoessentials.stonecutting. The stonecut literal is also registered (it is not in the /help catalog — not a separate claimed command).
/storm/storm—neoessentials.weatherSet weather to stormShortcut for /weather storm without a duration, permission neoessentials.weather.
/sudo/sudo <target> <command> | /sudo * <command> | /sudo ** <command>—neoessentials.sudo by conventionRun a command as another playerThe * and ** literals are separate (word() does not consume "*"). * — everyone except the sender; ** — everyone including. command — greedyString; the c: prefix sends chat via ServerChatEvent (formatter/mute/anti-spam), otherwise performPrefixedCommand without the leading /. You cannot target yourself by name (sudo.self); exempt players are silently skipped in bulk and block a single target if the sender is a player (the console bypasses exempt).
/suicide/suicide | /suicide confirm—neoessentials.suicide by conventionKill yourselfPlayer only. The first call opens a 10 s window; confirm kills with DamageTypes.GENERIC_KILL (not PvP). A 30 s cooldown after success. Creative/Spectator — invalid_gamemode. Not an alias of vanilla /kill.
/sun/sun—neoessentials.weatherSet weather to clearShortcut for /weather sun without a duration, permission neoessentials.weather.
/tablist/tablist [reload | enable | disable | preview | info | animations list | independent [on|off] | layout [info|sort] | set <header|footer> <text> | player <target> <header|footer> <text> | player <target> nametag <prefix|suffix> <text> | player <target> reset | group <group> <header|footer> <text> | group <group> nametag <prefix|suffix> <text> | group <group> reset | proxy status | proxy setserver <server> <count> | fakeplayer <list|refresh> | fakeplayer add <id> <display> | fakeplayer remove <id>]—neoessentials.tablist.adminManage the player list header/footer/entriesThe whole command is gated by a single node, neoessentials.tablist.admin (the console always passes); `<target>` — an online player only; `<text>` and `<display>` are greedy arguments, i.e. they take the rest of the line; everything set via `set`, `player`, `group` and `fakeplayer add` lives only in memory and is lost on `/tablist reload`, `/neoe reload` and restart.
/tell/tell <target> <message>—neoessentials.chat.msgSend a private message (alias)A full copy of /msg (vanilla is overridden by the same tree).
/tempban/tempban <player> <duration> [reason]—neoessentials.moderation.tempbanTemporarily ban a player<duration> — word, not greedy: "30m", "2h", "1d", not "1h 30m". Parsed by BanManager.parseDuration; 0 or an unknown format → invalid_duration. Target as in /ban (online, otherwise cache). Permission neoessentials.moderation.tempban. enableTempBans: false blocks issuing.
/tempbanip/tempbanip <ip> <duration> [reason]—neoessentials.moderation.tempbanipTemporarily ban an IP addressThe same IPv4 filter as /banip, the same word <duration> as /tempban. Kicks online players with that IP. expireTime is stored in ip_bans. Permission neoessentials.moderation.tempbanip.
/thunder/thunder—neoessentials.weatherSet weather to thunderShortcut for /weather thunder without a duration, permission neoessentials.weather.
/time/time | /time set <value> | /time add <value> | /time <value>—neoessentials.time by conventionGet or set world timeBare — the current ticks of the source's world. set/add and the shorthand value require neoessentials.time.set. Names: sunrise=23000, day/morning=1000, noon=6000, afternoon=9000, sunset=12000, night/dusk=13000, midnight=18000, or a Long. Writes setDayTime to ALL dimensions. Overrides vanilla /time.
/togglejail/togglejail <player>—neoessentials.moderation.jailToggle a player's jail stateOnline only. If already jailed — unjail; otherwise jails into getAllJailLocations().getFirst() with the reason "Toggled by staff" and no duration. An empty location list → error. Permission neoessentials.moderation.jail.
/togglevotebroadcast/togglevotebroadcast—neoessentials.votifier.togglebroadcastOpt out of vote broadcastsPlayer only plus neoessentials.votifier.togglebroadcast (does not work from the console). It only disables receiving other players' announcements: the player's own vote still broadcasts to everyone else.
/top/top—neoessentials.teleport.topTeleport to highest blockScans the column from maxBuildHeight down, only above the current Y: from a cave it takes you to the surface above you; it does not search below you. Without solid+air — error no_solid_block.
/tp/tp <target> | /tp <player> <target> | /tp <x> <y> <z>—neoessentials.teleport.tpTeleport to a player or locationPlayers — EntityArgument.player() (online only). Coordinates — three DoubleArgumentType, no ~ and no world. The tree has no /tp <player> <x> <y> <z> branch. Rejects yourself to yourself. Records /back and calls player.teleportTo directly, bypassing the TeleportUtil warmup.
/tpa/tpa <player>—neoessentials.teleport.request.tpaRequest to teleport to a playerplayer — EntityArgument.player(), online only. Rejects yourself. A target with tptoggle off is unreachable unless the sender has neoessentials.teleport.tpo. For a target with tpauto no request is created — the teleport happens immediately. After /tpaccept the request also teleports immediately, exactly to the target's current position: no warmup and no search for a nearby "safe" point. If the landing falls into a Farmstead Claims (or original RegionGuard) region with teleport-escape deny, the teleport is cancelled. One outgoing request at a time (sentRequests).
/tpaall/tpaall [<target>]—neoessentials.tpaall by conventionSend tpa-here to all online playersWithout an argument the hub is the sender; <target> (online, word) requires neoessentials.tpaall.others. Every online player except the hub is sent a TPAHERE, skipping those with tptoggle off. Because of sentRequests on the sender's UUID only the first successful request actually goes out.
/tpaccept/tpaccept—neoessentials.teleport.request.acceptAccept a teleport requestNo player name: the single incoming request is accepted (the pendingRequests key is the target's UUID). You cannot pick from a queue.
/tpahere/tpahere <player>—neoessentials.teleport.request.tpahereRequest a player to teleport to youThe same instant scheme as /tpa, type TPAHERE: on accept the target moves, not the sender, exactly to the sender's current position. /back is recorded for whoever is actually moved.
/tpall/tpall—neoessentials.teleport.admin.tpallTeleport all players to youEveryone online except you to your feet. Permission neoessentials.teleport.admin.tpall. The console does not pass: a player is needed. /back is recorded for each.
/tpauto/tpauto | /tpauto on|off | /tpauto <target> | /tpauto <target> on|off—neoessentials.tpauto by conventionAuto-accept all teleport requestsA bare call toggles yourself. The on/off literals take precedence over a name: you cannot select a player named on with this command. Another target — neoessentials.tpauto.others. State is in a ConcurrentHashMap; after a restart everyone is off again. Does not bypass tptoggle: enabling it with toggle off gives a warning.
/tpcancel/tpcancel—neoessentials.teleport.request.cancelCancel your teleport requestCancels your outgoing request. No arguments.
/tpdeny/tpdeny—neoessentials.teleport.request.denyDeny a teleport requestDenies the same single incoming request. No arguments.
/tphere/tphere <player>—neoessentials.teleport.tphereTeleport a player to youEntityArgument.player(), online only. /back is recorded for the target. The executor must be a player (getPlayerOrException).
/tpo/tpo <player>—neoessentials.teleport.tpoTeleport override (bypass tptoggle)ServerAdminCommands: word, online only via getPlayerByName, bypasses tptoggle, permission neoessentials.teleport.tpo, /back is not recorded. DirectTeleportCommands with commands.tpo registers a second child tpo → argument("player") with permission neoessentials.teleport.admin.tpo and calls teleportToOfflinePlayer (lastLocation from PlayerData). Which node takes the line /tpo Steve — see knownIssues.
/tpoffline/tpoffline <player>—neoessentials.teleport.tpofflineTeleport to offline player's last positionword, not EntityArgument: an offline player's name passes. If they are online — a normal teleportTo to the live entity. Offline — vanilla playerdata NBT (Pos, Rotation, Dimension) via usercache; no profile or no Pos — not_found / no_data. /back is not recorded. World from Dimension, otherwise overworld.
/tpohere/tpohere <player>—neoessentials.teleport.tpohereBring player here overrideword + online getPlayerByName. Brings the target, ignoring tptoggle. /back is not recorded for the target. The console is rejected (player_only).
/tppos/tppos <coordinates>—neoessentials.teleport.tpposTeleport to coordinatesVec3Argument.vec3(): ~ ~ ~ and relative offsets are allowed, unlike /tp's three doubles. The world does not change. Records /back.
/tpr/tpr [<locationName>]randomtp, randomteleportneoessentials.teleport.tprRandom teleportationWithout a name randomTeleportSettings.defaultLocation is used (template {world}). With mode=gui bare /tpr opens the biome GUI, while /tpr <locationName> bypasses the GUI. The aliases rtp, randomtp, randomteleport are the same trees. Under /neoe and /neoessentials hang bare tpr|rtp|randomtp|randomteleport without locationName (that is the /neoe catalog, not this page). A named centre is set with /settpr <locationName> (not listed here). Cooldown randomTeleportSettings.cooldown, warmup — the same teleportDelay.
/tptoggle/tptoggle | /tptoggle on|off | /tptoggle <target> | /tptoggle <target> on|off—neoessentials.tptoggle by conventionToggle teleport request acceptanceAccepting is on by default (no record = true). Another target — neoessentials.tptoggle.others. Also memory-only. Blocks /tpa, /tpahere and /tpaall; does not block /tp, /tphere, /tpall, /tpo, /tpohere.
/trash/trash—neoessentials.item.disposeDispose of items (alias)Opens the GUI only, no confirm|cancel branches. Permission neoessentials.item.dispose.
/tree/tree <type>—neoessentials.tree by conventionGrow a tree at look targetPlayer only, a 20-block ray, plants on the block above the hit. Types: oak, birch, spruce, jungle, acacia, darkoak, mangrove, cherry, azalea, bigoak, mega_spruce, mega_jungle. Permission neoessentials.tree.
/unban/unban <player>—neoessentials.moderation.unbanUnban a playerThe name is looked up in active bans, then in the profile cache. Removes by UUID, writes unbannedBy/unbannedAt; the record stays in the same player_bans collection with active: false. Permission neoessentials.moderation.unban.
/unbanip/unbanip <ip>—neoessentials.moderation.unbanipUnban an IP addressRemoves an active IP ban and archives it with unbannedBy. Completion — the current ip_bans keys. Permission neoessentials.moderation.unbanip.
/unfreeze/unfreeze <player>—neoessentials.moderation.unfreezeUnfreeze a playerLooks in the frozen list first (offline too), otherwise online. Permission neoessentials.moderation.unfreeze.
/unfreezeall/unfreezeall—neoessentials.moderation.unfreezeallUnfreeze all playersUnfreezes everyone in freezes, including offline players. Permission neoessentials.moderation.unfreezeall.
/unignore/unignore <target>—neoessentials.chat.unignoreUnignore a playerSame tree: /unblock. The root is gated by neoessentials.chat.unignore; execute still checks neoessentials.chat.ignore — you need both nodes. The target must be online. If the name is not in the list — error.
/unjail/unjail <player>—neoessentials.moderation.unjailRelease a player from jailOnline or profile cache. Teleports to originalLocation if it was recorded (online at the time of jailing). Permission neoessentials.moderation.unjail.
/unlimited/unlimited | /unlimited list [target] | /unlimited clear [target] | /unlimited <item> [target]—neoessentials.unlimited by conventionToggle unlimited item useBare and list print the set of ids. clear removes everything. <item> toggles an id (minecraft: prefix, or hand — the id from the sender's hand). Another player — unlimited.others. The set is in memory; onPlayerQuit erases it. Stack refilling is done by the item-use handler.
/unmute/unmute <target>—neoessentials.chat.muteUnmute a playerAgain EntityArgument.player() — you cannot unmute an offline player by command, although the record lives in mutes. The root is gated by neoessentials.chat.mute. Registration is skipped if chat or commands.unmute is off.
/unvanish/unvanish [player]—neoessentials.moderation.vanishDisable vanish modeForces vanish off. Without an argument — yourself; another player — vanish.others. Root permission neoessentials.moderation.vanish. Target online only.
/v/v [player]—neoessentials.moderation.vanishToggle vanish mode (alias)A full copy of /vanish, not a Brigadier redirect. Registered together with vanish; there is no separate commands.v.
/vanish/vanish [player]—neoessentials.moderation.vanishToggle vanish modeWithout an argument — yourself (player only). Another <player> is gated by neoessentials.moderation.vanish.others; the target must be online. Root — neoessentials.moderation.vanish. A toggle: calling again removes vanish. The state is written to vanishes. /v copies this tree if commands.vanish is on.
/vanishlist/vanishlist—neoessentials.moderation.vanishlistList vanished playersOffline players still in vanishes are shown by UUID. Permission neoessentials.moderation.vanishlist.
/vault/vault [info | convert <from> <to>]—neoessentials.vault.adminNeoEssentials Vault API info and managementRegistered only if modules.vaultEnabled and commands.vault. .requires: vanilla OP level 3 **or** neoessentials.vault.admin (the console has no UUID, so hasPermission(3) remains). Bare /vault equals info. convert compares provider names with spaces removed (case-insensitive) and needs at least two registered VaultEconomy providers. The neoessentials.vault.admin node is not declared in PermissionRegistry — without OP 3 you must grant it explicitly; the registry default will not give it.
/vote/vote—neoessentials.votifier.voteShow vote site linksThe root requires neoessentials.votifier.vote (the console passes). Prints key/value pairs from votifier.json → voteLinks as plain text (§e<name>§7: §f<link>) — links are not clickable, colour codes and gradients inside voteLinks are not processed; with an empty or missing voteLinks it replies "No vote links are configured".
/voteparty/voteparty—neoessentials.votifier.voteShow vote party progressSame node as /vote: neoessentials.votifier.vote. The counter is server-wide and cumulative, not the player's personal contribution; with voteParty.enabled = false the command still replies, it just shows a frozen value.
/votes/votes [player]—neoessentials.votifier.voteShow vote totalsWithout an argument it shows the sender's statistics (from the console that is a player named "Server"). There is no separate permission for others' statistics — anyone with neoessentials.votifier.vote can see any name's counter; completion offers only online players, but any word is accepted, and an unknown name silently shows 0 instead of an error.
/votifier/votifier reload | /votifier genkeys | /votifier testvote <site> [player]—neoessentials.votifier.adminManage the Votifier vote listenerThe root requires neoessentials.votifier.admin (the console passes). Without a subcommand the command does not run (the root node has no .executes) and shows a syntax hint. reload clears the cache of all the mod's configs but does not restart the listener socket; genkeys generates nothing, it only prints instructions; testvote gives a real reward and counts the vote in the statistics and the vote party.
/w/w <target> <message>—neoessentials.chat.msgSend a private message (alias)A full copy of /msg (vanilla is overridden by the same tree).
/warn/warn <player> [reason]—neoessentials.moderation.warnIssue a warning to a playerWithout a reason — "No reason given.". UUID: online, otherwise existing warns (the profile cache is not used — there is no first warning for an offline player without history). Permission neoessentials.moderation.warn.
/warnings/warnings <player>—neoessentials.moderation.warningsView warnings for a player<player> is required. Prints up to 5 records, no paging. Permission neoessentials.moderation.warnings.
/warp/warp | /warp <name> | /warp <name> <target>—neoessentials.teleport.warpTeleport to a warpBare /warp prints the first page of the list (20 names). The name argument is StringArgumentType.word(); there is no separate <page> branch: /warp 2 looks for a warp named 2, not page 2. Sending another player (online only, getPlayerByName) is a node requiring neoessentials.teleport.warp.others. The root admits both neoessentials.teleport.warp and neoessentials.teleport.warp.list; the teleport itself still requires teleport.warp. With perWarpPermission you also need neoessentials.warps.<name>.
/warpinfo/warpinfo <warp>—neoessentials.warpinfo by conventionShow info about a warpPrints the name, world and coordinates of a server warp (getLocationString). Does not show player warps. Permission neoessentials.warpinfo. Registered separately (registerWarpInfoCommand), not inside WarpCommands.register.
/warps/warps [<page>]—neoessentials.teleport.warp.listList all warpspage — IntegerArgumentType.integer(1). Registration depends on commands.listwarps, not commands.warps. Aliases: warplist, listwarps. Permission neoessentials.teleport.warp.list.
/weather/weather sun|clear|rain|storm|thunder [duration]—neoessentials.weather by conventionSet world weatherduration Integer 1–1000000 seconds; 0 in code → 6000 ticks (5 min). clear=sun, rain=storm. Only dimensions with hasSkyLight (Nether/End are skipped). Overrides vanilla /weather.
/whereami/whereami [player]—neoessentials.getposGet your current position (alias)Alias of /getpos, permission neoessentials.getpos.
/whisper/whisper <target> <message>—neoessentials.chat.msgSend a private message (alias)The command is declared in the registry in NeoEssentials.java, but MsgCommand.register does not call it — there is no Commands.literal("whisper") in the sources. It will not appear in Brigadier completion until it is registered alongside msg/tell/w/message/pm.
/who/who—neoessentials.listList online players (alias)Alias of /list, permission neoessentials.list.
/whois/whois <player>—neoessentials.whois by conventionGet player informationNo root .executes. Two branches: EntityArgument.player() (online) and word playername. The offline branch calls getOfflinePlayerSeenInfo, which always returns Optional.empty() — an offline name gives player_not_found. UUID/coordinates/IP only with neoessentials.whois.detailed. The whois node is false by default. Not to be confused with /info.
/workbench/workbench—neoessentials.craftingOpen portable crafting tableAlias of /crafting. Permission neoessentials.crafting. Declared in the catalog with this node explicitly.
/world/world | /world <dimension> [target]—neoessentials.world by conventionTeleport to a world/dimensionBare — a list of dimension().location(). Teleports to the dimension's shared spawn; path or full id, case-insensitive. Another player — world.others. Console without a target — player_only.
/worth/worth [hand [amount] | <item> [amount]]—neoessentials.worth by conventionCheck the sell value of an itemneoessentials.worth; without arguments and with /worth hand — the item in the main hand (qty = stack size if amount is not given). The <item> branch is greedyString: a trailing number is read as the quantity ("diamond 64", "thermal:copper_ingot 16"), otherwise qty = 1. The command is not registered if modules.economyEnabled is off or commands.worth = false.
/xp/xp | /xp set <amount> | /xp give <amount>—neoessentials.expManage player experience (alias)A trimmed alias of /exp: the same permissions neoessentials.exp / exp.set / exp.give, but no show and no [target] on set/give — you cannot give another player XP with this command. Vanilla /xp is overridden.