Farmstead Mods
RU

Utility commands

Personal time and weather, effects, mob spawning, /fly, /god, /heal and other everyday tools.

On this page

Commands 102#

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.
/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.
/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.
/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.
/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.
/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.
/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.
/day/day—neoessentials.time.setSet time to daySets 1000 in all worlds. Permission neoessentials.time.set, not neoessentials.time.
/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.
/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.
/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.
/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.
/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.
/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.?).
/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.
/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.
/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.
/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.
/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.
/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.
/mem/mem—neoessentials.gcShow server memory info (alias)Alias of /gc, permission neoessentials.gc.
/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.
/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.
/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.
/night/night—neoessentials.time.setSet time to nightSets 13000 in all worlds. Permission neoessentials.time.set.
/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.
/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.
/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.
/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.
/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.
/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.
/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.
/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).
/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.
/smite/smite [target]—neoessentials.lightningStrike lightning (alias)Alias of /lightning, permission neoessentials.lightning.
/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.
/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.
/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.
/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.
/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.
/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.
/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.

Examples#

Switch the mode for yourself and someone else with shortcuts#

Check that /gms and /gmc go into the same tree as the full /gamemode, and that someone else's mode is gated by a separate node.

/gms
/gmc Steve
/gamemode spectator
/gamemode 1 Steve

/gms without a target sets Survival for the sender (needs neoessentials.gamemode; the console gets player_only). /gmc Steve requires gamemode.others and an online EntityArgument player — offline gives "player not found". /gamemode spectator is a full literal, not a number. /gamemode 1 Steve does not parse: the 0–3 branches do not accept [target]; 1 is for yourself only. If you are already in that mode, the shortcuts reply already_in_mode.

Portable GUIs without a block#

Open a crafting table and an anvil in the field, and make sure the console cannot do it.

/workbench
/craft
/anvil
/grindstone
/stonecutter

workbench and craft are one /crafting handler (permission neoessentials.crafting, key commands.crafting). anvil / grindstone / stonecutter are separate commands and keys. The menus are virtual (stillValid is always true); XP on the anvil is charged as usual. From the console all five reply player_only (anvil also has a root requires ServerPlayer).

An announcement to the whole server and to your world only#

Tell /broadcast from /broadcastworld and see that placeholders are taken from the sender.

/broadcast &6Restart soon, {online} players online
/bc Maintenance window
/broadcastworld This world only

/broadcast and /bc send the line §6[Broadcast] §f… to everyone online and to the server's system chat — there is no separate "sent to N"; you see your own message as a recipient. {online} is resolved by PlaceholderAPI. /broadcastworld marks it §6[World] §e and filters by src.getLevel(): a player in the Nether will not see an announcement from the Overworld; the console usually broadcasts to the overworld.

Joke projectiles#

Check that /antioch, /kittycannon and /beezooka require a player and do not work from the console.

/antioch
/antioch holy
/kittycannon
/beezooka 3

Look at a block (20-block ray). /antioch places TNT with an 80-tick fuse; any tail like holy additionally broadcasts two Holy Hand Grenade lines. /kittycannon launches a kitten; a second later the entity vanishes with a power-0 explosion (blocks are intact). /beezooka 3 — three angry bees (limit 20). The console gets player_only for all three.

Farmstead Claims in help, not in NeoEssentials#

Understand why /rg is sometimes in /help and sometimes not, and who actually runs the command.

/help rg
/rg list

If Farmstead Claims (or the original RegionGuard) is loaded, /help rg shows 17 syntaxes from the catalog (define, claim, flag…). /rg list itself is executed by the claims mod: NeoEssentials only called registerCommand("rg …") at startup. Without a claims mod these lines are not in /help, and /rg list is either an unknown command or another mod's tree — NeoEssentials does not create it.

Edge cases#

OP and permission nodes — three different checks#

Most trees in PlayerState/ServerAdmin/Fun/Utility use .requires(p == null || PermissionAPI.hasPermission(...)). The console, command blocks and functions always pass. For a player, PermissionAPI with opsBypassPermissions: true (the default in config.json) returns true for any OP, even without the node. With permissions.requireExplicitGrant: true (shipped) the registry default does not grant access by itself — a non-OP needs an explicit grant.

Commands on PermissionValidator (seen, ping, depth, anvil, crafting, rules, all of /motd, suicide, list, near, whois, compass, getpos, gamemode shortcuts) require source.hasPermission(2) for a non-player — a command block without OP 2 is refused. A player still needs the node if they are not OP and the bypass is off.

The /gms shortcuts and the full /gamemode differ: the shortcuts use PermissionValidator, /gamemode uses PermissionAPI with p == null.

What to do: Grant nodes to non-OPs explicitly. To stop OPs getting /give and /nuke "for free", set opsBypassPermissions: false and give nodes to groups. Restrict command blocks with /sudo and /nuke via vanilla OP and access to the blocks.

Console vs player#

The GUIs (anvil, crafting, grindstone, stonecutting), /hat, /more, /break, /tree, /fireball, /spawner, /recipe, /remove, /bottom, /suicide and all fun commands require a ServerPlayer in execute. /depth and /anvil additionally set .requires(instanceof ServerPlayer) — the console does not even reach the target.

Another online name is accepted by fly/god/heal/give/kill/effect: /give Steve diamond 64 works from the console. /ping and /compass without a name cannot be used from the console (your own ping/compass).

/nuke without an argument from the console bombs everyone online. /list and /gc work from the console with OP 2 (Validator) or right away (PermissionAPI).

What to do: From the console always specify a name where there is [player]/[target]. Do not leave a command block with a bare /nuke.

/give does not collide with crates and breaks vanilla /give#

Crate keys are given with /crate key give <player> <crate> <amount> — a different literal, a different module. There is no overlap with /give.

NeoEssentials registers its own /give <target> <item> [amount]: item is a word without components/NBT, amount 1–3456. Vanilla /give <targets> <item> with @a selectors, count via component and data components in square brackets after the item is no longer parsed once the mod registers — Brigadier keeps the mod's node.

Item resolution — WorthManager: minecraft:diamond, diamond or a path fragment (copper takes the first id whose path contains "copper").

What to do: Do vanilla giving with NBT via /minecraft:give. For crates — only /crate key give. Do not rely on the "first diamond_ore vs diamond" order in fuzzy contains.

/fly and /god state is saved; the other personal toggles are not#

Enabled /fly and /god are written to the DataStore collection player_command_states by UUID and restored on the next login. Restoring requires the player to still have the corresponding neoessentials.fly or neoessentials.god permission; if the permission is revoked, the saved flag is deleted. playerTimes, playerWeather and unlimitedItems remain in-memory maps and are cleared on quit.

What to do: For permanent flight or protection enable /fly or /god once. For client-side time, weather and unlimited use a command block, a script or the panel after login.

/xp is not /exp, /mob is not /spawnmob#

/exp supports show/set/give and [target] on set/give. /xp — only bare, set and give for yourself. /spawnmob <mob> [amount] [target] spawns at another player; /mob stops at amount. Both aliases are labelled as full commands in the catalog, but the tree is shorter.

What to do: For another player's XP and mobs at another player use the canonical /exp and /spawnmob.

Known issues#

/pong and /fw are in /help but not in Brigadier#

NeoEssentials.java calls registerCommand("pong") and registerCommand("fw"), so the lines end up in the HelpCommand catalog. Neither PingCommand nor FunCommands creates Commands.literal("pong") / literal("fw"). Completion and parsing follow the tree: /pong and /fw are unknown commands (or vanilla/another mod, if someone else took them).

What to do: Ping — /ping. Firework — /firework clear|power|fire|color. Do not promise players aliases from /help until the literals appear in the source.

/info is labelled as a whois alias in the catalog but does something else#

registerCommand("info", "Get player information (alias)") describes whois, but WhoisCommand does not register an info literal. FunCommands attaches /info to printing the MOTD + a footer about /rules. Permission neoessentials.info, no arguments — /info Steve does not work as whois.

What to do: Player data — only /whois . Treat /info as a short MOTD.

/compass prints the card twice#

In the no-target branch CompassCommand calls showCompassInfo(...) twice in a row. The player sees a duplicated "facing / coordinates / biome" block. The [player] branch is called once.

What to do: Until it is fixed, read the first card. /compass for someone else has no duplicate.

/whois does not show offline players#

The word branch calls showOfflinePlayerInfo → getOfflinePlayerSeenInfo, which always returns Optional.empty() (an "integrate with SeenCommand" stub). Even with neoessentials.whois.detailed an offline name ends in player_not_found. Online — EntityArgument.player() — works.

What to do: Check offline status with /seen (seen_data.json). /whois only for those currently in the world.

Bare /fireball requires the nonexistent node fireball.fireball#

The root requires checks neoessentials.fireball. executeFireball for the default type "fireball" additionally requires neoessentials.fireball.fireball or neoessentials.fireball.*. There is no fireball.fireball node in PermissionRegistry. A player with only fireball (and no OP bypass) gets no_perm_type. The trident suggestion is in PROJECTILE_TYPES but not in the switch — a large fireball spawns.

What to do: Grant neoessentials.fireball.* (or OP with opsBypassPermissions). For the trident do not expect a separate entity.

/recipe, /give, /kill, /xp, /effect override vanilla#

The mod registers the same literals after vanilla. Lost: /recipe give, /give with selectors and components, /kill @e, full /xp add/query, vanilla /effect. The mod removes /help via reflection and installs its own. This is not a parsing failure — the last tree wins.

What to do: Vanilla parsing — with the namespace prefix: /minecraft:give, /minecraft:kill, /minecraft:recipe, /minecraft:xp, /minecraft:effect, /minecraft:help.

/rest does not skip the night#

The upstream wiki says "Skip the night (vote)". The implementation is resetStat(TIME_SINCE_REST): it zeroes the insomnia counter that makes phantoms spawn. The game day, weather and sleep vote do not change.

What to do: Night — /time night / /day or vanilla sleeping. /rest — anti-phantom only.

Permissions 86#

NodeIn registryWhat it grants
neoessentials.anvilregistry: yesOpen portable anvil
neoessentials.broadcastregistry: noBroadcast a message to all players
neoessentials.broadcastworldregistry: noBroadcast to players in your current world
neoessentials.burnregistry: noSet a player on fire
neoessentials.compassregistry: yesView compass / bearing / coordinates info (/compass)
neoessentials.compass.othersregistry: noView compass info for another player
neoessentials.craftingregistry: yesOpen portable crafting table
neoessentials.depthregistry: yesView depth/Y-level information
neoessentials.depth.othersregistry: noView others' depth information
neoessentials.effectregistry: noApply potion effects to players
neoessentials.enderchestregistry: noView other players' ender chests
neoessentials.enderchest.editregistry: noEdit other players' ender chests
neoessentials.expregistry: yesView XP info
neoessentials.exp.giveregistry: noGive XP to self
neoessentials.exp.give.othersregistry: noGive XP to another player
neoessentials.exp.setregistry: noSet own XP
neoessentials.exp.set.othersregistry: noSet another player's XP
neoessentials.extregistry: yesExtinguish self
neoessentials.ext.othersregistry: noExtinguish another player
neoessentials.feedregistry: noRestore own hunger
neoessentials.feed.othersregistry: noRestore another player's hunger
neoessentials.flyregistry: noToggle flight mode
neoessentials.fly.othersregistry: noToggle flight for other players
neoessentials.gamemoderegistry: noChange own gamemode
neoessentials.gamemode.othersregistry: noChange others' gamemode
neoessentials.gcregistry: noView server memory and TPS info
neoessentials.godregistry: noToggle god mode (invincibility)
neoessentials.god.othersregistry: noToggle god mode for other players
neoessentials.grindstoneregistry: yesOpen portable grindstone
neoessentials.hatregistry: noWear held item as helmet
neoessentials.healregistry: noRestore own health and hunger
neoessentials.heal.othersregistry: noRestore another player's health
neoessentials.helpregistry: yesView command help list
neoessentials.helpopregistry: yesSend a help request to staff
neoessentials.helpop.receiveregistry: noReceive help-op requests
neoessentials.invseeregistry: noView other players' inventories
neoessentials.invsee.editregistry: noEdit other players' inventories
neoessentials.killregistry: noKill players
neoessentials.kill.exemptregistry: noExempt from being killed by /kill
neoessentials.kill.forceregistry: noForce kill even exempt players
neoessentials.lightningregistry: noStrike lightning at look target
neoessentials.lightning.othersregistry: noStrike lightning at a named player
neoessentials.listregistry: yesView online player list
neoessentials.moreregistry: noFill held stack to max
neoessentials.motdregistry: yesView the message of the day
neoessentials.motd.broadcastregistry: noBroadcast MOTD to all online players
neoessentials.motd.profileregistry: noManage MOTD profiles (create/delete/switch/info)
neoessentials.motd.reloadregistry: noReload MOTD profiles from disk
neoessentials.motd.rotationregistry: noControl MOTD auto-rotation (enable/disable/next)
neoessentials.motd.setregistry: noSet MOTD on the active profile
neoessentials.nearregistry: yesList nearby players
neoessentials.pingregistry: yesView your ping
neoessentials.ping.othersregistry: yesView another player's ping
neoessentials.playtimeregistry: yesView own playtime
neoessentials.playtime.othersregistry: noView another player's playtime
neoessentials.ptimeregistry: noSet own per-player time override
neoessentials.ptime.othersregistry: noSet another player's time override
neoessentials.pweatherregistry: noSet own per-player weather override
neoessentials.pweather.othersregistry: noSet another player's weather override
neoessentials.realnameregistry: yesLook up real name from nickname
neoessentials.reciperegistry: yesShow/unlock crafting recipe for an item
neoessentials.rtoggleregistry: yesToggle /r reply direction
neoessentials.rtoggle.othersregistry: noToggle /r reply direction for another player
neoessentials.rulesregistry: yesView server rules
neoessentials.rules.adminregistry: noManage server rules
neoessentials.seenregistry: yesView when a player was last online
neoessentials.spawnerregistry: noChange a mob spawner type
neoessentials.spawner.*registry: noChange spawner to any mob type
neoessentials.spawnmobregistry: noSpawn entities at a player
neoessentials.spawnmob.othersregistry: noSpawn entities at another player
neoessentials.speedregistry: noSet walk/fly speed
neoessentials.speed.othersregistry: noSet another player's speed
neoessentials.stonecuttingregistry: yesOpen portable stonecutter
neoessentials.sudoregistry: noRun commands as another player
neoessentials.sudo.exemptregistry: noCannot be sudo'd by non-console
neoessentials.suicideregistry: yesKill yourself with /suicide
neoessentials.timeregistry: noView current world time
neoessentials.time.setregistry: noSet or add world time
neoessentials.treeregistry: noGrow a tree at look target
neoessentials.unlimitedregistry: noToggle unlimited item use
neoessentials.unlimited.othersregistry: noToggle unlimited items for another player
neoessentials.weatherregistry: noSet world weather
neoessentials.whoisregistry: noView detailed player info
neoessentials.whois.detailedregistry: noView detailed player information
neoessentials.worldregistry: noTeleport to a world/dimension
neoessentials.world.othersregistry: noTeleport another player to a world

Detailed guide#

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

Version: 1.0.4+build.16


Table of Contents#

  1. Player Info Commands
  2. Nicknames
  3. MOTD System
  4. Rules System
  5. Helpop
  6. Suicide
  7. Depth
  8. Player State Commands
  9. Per-Player Time & Weather
  10. Server Admin Commands
  11. World Interaction
  12. Fun Commands
  13. Mail

Overview#

Miscellaneous quality-of-life commands covering player info, server admin tools, world/environment manipulation, fun commands, and player state management.


Player Info Commands#

Command Aliases Permission Description
/seen <player> — neoessentials.seen Show online/offline status with location or last-seen time
/near [radius] /nearby neoessentials.near List nearby players and their distance (default 100 blocks, max 500)
/ping [player] /pong neoessentials.ping Show own latency (colour-coded). Checking others requires neoessentials.ping.others
/playtime [player] — neoessentials.playtime Show total play time in h/m/s. Others requires neoessentials.playtime.others
/whois <player> — neoessentials.whois Show UUID, dimension, coords, gamemode, ping, health, food. Detailed view requires neoessentials.whois.detailed
/realname <nick> — neoessentials.realname Look up real username from nickname
/list /who, /online neoessentials.list List online players with count
/motd — neoessentials.motd Display the active server MOTD

Permissions note: neoessentials.whois is an admin-only node (default: false). Use neoessentials.whois.detailed for detailed diagnostics (IPs, internal flags). neoessentials.ping.others is granted to all players by default.


Nicknames#

Commands#

Command Permission Description
/nick neoessentials.nick Show your current nickname
/nick <name> neoessentials.nick Set your nickname
/nick reset neoessentials.nick Remove your nickname
/nick off neoessentials.nick Alias for /nick reset
/nickname … neoessentials.nick Full alias — redirects to /nick
/setnick <player> <name> neoessentials.nick.others Set another player's nickname (admin)
/setnick <player> reset neoessentials.nick.others Remove another player's nickname (admin)

Permission nodes#

Node Default Description
neoessentials.nick true Set / clear own nickname
neoessentials.nick.color false Use &-colour codes in nickname
neoessentials.nick.others false Set / clear another player's nickname

Nickname rules#

  • Length: 3–16 characters (after stripping colour codes).
  • Characters: a-z A-Z 0-9 _ & # § only.
  • Uniqueness: case-insensitive; two players cannot share the same plain-text nick.
  • Colour codes: &0–9, &a–f, &k–r, and hex &#RRGGBB are all supported when the player has neoessentials.nick.color.

Storage#

Nicknames are persisted in config/neoessentials/nickname_data.json (UUID → raw nick string with & codes). They are loaded on server start and re-applied to all online players.


MOTD System#

The MOTD (Message of the Day) system supports multiple named profiles, auto-rotation, and web-dashboard management.

Commands#

Command Permission Description
/motd neoessentials.motd Show the active MOTD
/motd set <message> neoessentials.motd.set Set the active profile's MOTD text
/motd clear neoessentials.motd.set Clear the active profile's MOTD
/motd reload neoessentials.motd.reload Reload all profiles from disk
/motd broadcast neoessentials.motd.broadcast Broadcast active MOTD to all online players
/motd profile list neoessentials.motd.profile List all profiles and the active one
/motd profile create <name> <message> neoessentials.motd.profile Create or overwrite a named profile
/motd profile delete <name> neoessentials.motd.profile Delete a profile (at least one must remain)
/motd profile switch <name> neoessentials.motd.profile Switch the active profile
/motd profile info [name] neoessentials.motd.profile Show details for a profile (defaults to active)
/motd rotation enable <minutes> neoessentials.motd.rotation Enable auto-rotation every N minutes
/motd rotation disable neoessentials.motd.rotation Disable auto-rotation
/motd rotation next neoessentials.motd.rotation Rotate to the next profile immediately

Color codes#

Use & color codes in MOTD messages (e.g. &aGreen text &cRed text). They are converted to § automatically.

Profiles#

Profiles are persisted through the pluggable DataStore backend (JSON by default — see Storage Backend), across two collections:

  • motd_profiles — one record per profile, keyed by profile name, holding motd/author/timestamp
  • motd_meta — a single "settings" record holding activeProfile, rotationEnabled, rotationIntervalMinutes, and rotationCurrentIndex

Legacy file: config/neoessentials/motd_data.json (both the multi-profile layout and the older single-MOTD-at-root layout) is only read once, automatically, to migrate its contents into the DataStore collections above the first time the profile collection is empty — it is never written to again afterward.

Dashboard API#

The dashboard exposes /api/motd for full profile management:

Method Path Description
GET /api/motd Get all profiles + rotation settings
GET /api/motd/active Get the active profile only
POST /api/motd/profiles Create/update a profile {name, motd, author?}
DELETE /api/motd/profiles/{name} Delete a profile
PUT /api/motd/active Switch active profile {name}
PUT /api/motd/rotation Update rotation {enabled, intervalMinutes}
POST /api/motd/rotation/next Rotate to next profile immediately
POST /api/motd/broadcast Broadcast active MOTD to online players

Rules System#

The Rules system stores server rules in config/neoessentials/rules_data.json.
Rules are auto-generated with sensible defaults on first startup if no file exists.

Commands#

Command Permission Description
/rules neoessentials.rules Display rules (page 1)
/rules <page> neoessentials.rules Show a specific page
/rules add <text> neoessentials.rules.admin Append a new rule
/rules remove <n> neoessentials.rules.admin Remove rule number n
/rules edit <n> <text> neoessentials.rules.admin Replace rule number n
/rules insert <n> <text> neoessentials.rules.admin Insert rule before position n
/rules clear neoessentials.rules.admin Remove all rules
/rules reload neoessentials.rules.admin Reload rules from disk without a server restart

Color codes#

Use & color codes in rule text (e.g. &cNo griefing). They are converted to § automatically when displayed.

Data file#

Rules are stored in config/neoessentials/rules_data.json:

{
  "rules": [
    "&6Be respectful to all players and staff members",
    "&cNo griefing, stealing, or destroying other players' builds",
    "&eNo spamming in chat or using excessive caps"
  ]
}

Location: config/neoessentials/rules_data.json
Generated automatically: Yes — 10 default rules are written on first start if the file is absent.
Edit in-game: Use /rules add, /rules edit, /rules remove.
Edit on disk: Modify rules_data.json directly, then run /rules reload in-game.

Legacy migration: Servers upgrading from NeoEssentials <1.0.2.6 may have rules.json.
NeoEssentials automatically detects and migrates it to rules_data.json on first load — no manual action needed.

Console feedback#

NeoEssentials logs detailed guidance to the console when rules fail to load:

╔══════════════════════════════════════════════════════╗
║  RULES LOAD ERROR: rules_data.json is corrupt JSON  ║
║  File: config/neoessentials/rules_data.json         ║
║  Error: Unexpected character ...                    ║
║  Fix:  Delete the file and run /rules reload to     ║
║        regenerate defaults, then re-add your rules. ║
╚══════════════════════════════════════════════════════╝

If the file is simply missing, NeoEssentials creates it automatically and logs its absolute path along with quick-start edit instructions.

Dashboard API#

The dashboard exposes /api/rules for full rule management:

Method Path Description
GET /api/rules List all rules with 1-based index
POST /api/rules Replace all rules {"rules": ["...", ...]}
POST /api/rules/add Append a rule {"rule": "..."}
PUT /api/rules/{n} Edit rule at position n {"rule": "..."}
DELETE /api/rules/{n} Delete rule at position n
POST /api/rules/reload Reload rules from disk

All /api/rules endpoints require Bearer-token authentication (same as every other dashboard endpoint).


Helpop#

The /helpop command lets players send requests to online staff. Staff receive them if they have the neoessentials.helpop.receive permission.

Commands#

Command Aliases Permission Description
/helpop <message> /ac, /amsg neoessentials.helpop Send a help request to all online staff

Permission nodes#

Node Default Description
neoessentials.helpop true Send a help request
neoessentials.helpop.receive false Receive help requests (staff)

Behaviour#

  • Messages are broadcast to all online players who have neoessentials.helpop.receive.
  • The sender's name is prefixed in the staff notification (e.g. [HelpOp] PlayerName: message).
  • Console operators always receive helpop messages.

Suicide#

Commands#

Command Aliases Permission Description
/suicide /killme neoessentials.suicide Kill yourself (requires confirmation)
/suicide confirm /killme confirm neoessentials.suicide Confirm the suicide within 10 seconds

Behaviour#

  1. /suicide displays a confirmation prompt. Players have 10 seconds to type /suicide confirm.
  2. If the confirmation window expires, the prompt is silently cancelled.
  3. After a successful suicide, a 30-second cooldown prevents spamming.
  4. /suicide is blocked in Creative and Spectator modes.
  5. Death uses DamageTypes.GENERIC_KILL (does not count as PvP; no attacker credited).

Note: /kill is the vanilla admin command (can target entities). NeoEssentials' /suicide is strictly self-only and is intentionally not aliased to /kill.


Depth#

Shows Y-coordinate information including depth below sea level and height above bedrock.

Commands#

Command Permission Description
/depth neoessentials.depth Show own depth/elevation info
/depth <player> neoessentials.depth.others Show another player's depth info

Output#

  • Current Y level
  • Depth below / height above sea level (Y=63)
  • Height above bedrock (Y=−64)
  • Layer description (e.g. Deepslate Region, Nether, Diamond Level)

Player State Commands#

Command Syntax Permission Description
/fly /fly [on\|off] [player] neoessentials.fly Toggle flight
/god /god [on\|off] [player] neoessentials.god Toggle god mode
/heal /heal [player] neoessentials.heal Full health, hunger, and saturation
/feed /feed [player] neoessentials.feed Full hunger and saturation
/speed /speed [walk\|fly] <0-10> [player] neoessentials.speed Set walk or fly speed
/ext /ext [player] neoessentials.ext Extinguish fire
/extinguish alias same Alias
/burn /burn <player> [seconds] neoessentials.burn Set fire ticks on a player
/give /give <player> <item> [amount] neoessentials.give Give items to a player
/more /more [amount] neoessentials.more Fill held stack to max
/hat /hat neoessentials.hat Wear held item as helmet
/exp /exp [show\|set\|give] [amount] [player] neoessentials.exp Show, set, or give XP
/xp alias same Alias for /exp
/gamemode /gamemode <mode\|0-3> [player] neoessentials.gamemode Change gamemode
/gms, /gmc, /gma, /gmsp shortcut same Gamemode shortcuts

Per-Player Time & Weather#

Command Syntax Permission Description
/ptime /ptime [reset\|day\|noon\|night\|<ticks>] [player] neoessentials.ptime Set client-side time (server time unaffected)
/pweather /pweather [reset\|sun\|storm\|clear\|rain] [player] neoessentials.pweather Set client-side weather

Server Admin Commands#

Command Syntax Permission Description
/broadcast /broadcast <message> neoessentials.broadcast Server-wide announcement
/bc, /announce aliases same Aliases
/broadcastworld /broadcastworld <message> neoessentials.broadcastworld Broadcast to current world only
/bcastworld alias same Alias
/time /time [set\|add] <value\|day\|night…> neoessentials.time (view) / neoessentials.time.set (set/add) Get/set server time
/day, /night shortcuts neoessentials.time.set Shortcuts (use the set-time permission, not neoessentials.time)
/weather /weather <sun\|storm\|thunder> [dur] neoessentials.weather Set server weather
/sun, /storm, /thunder shortcuts same Shortcuts
/sudo /sudo <player> <command> neoessentials.sudo Run a command as another player
/gc /gc neoessentials.gc Show TPS, memory, uptime, chunks
/mem alias same Alias
/backup /backup neoessentials.backup Trigger a server backup
/kill /kill <player> neoessentials.kill Kill a player
/spawner /spawner <mob> neoessentials.spawner Set spawner type at looked block
/spawnmob /spawnmob <mob> [amount] [player] neoessentials.spawnmob Spawn entities at a player
/mob alias same Alias
/effect /effect <player> <effect\|clear> [dur] [amp] neoessentials.effect Apply/clear potion effects
/unlimited /unlimited [list\|clear\|<item\|hand>] [player] neoessentials.unlimited Unlimited item mode (never depleted)
/recipe /recipe [item] neoessentials.recipe Unlock crafting recipes for an item

World Interaction#

Command Syntax Permission Description
/fireball /fireball [type] [speed] [ride] neoessentials.fireball.<type> Shoot a projectile (11 types)
/tree /tree <type> neoessentials.tree Grow a tree at your feet
/bigtree /bigtree neoessentials.tree Grow a big tree
/break /break neoessentials.break Instantly break looked-at block
/ice /ice [player] neoessentials.ice Fully freeze a player (powder snow mechanic)
/lightning /lightning [player] neoessentials.lightning Strike lightning
/smite alias same Alias
/remove /remove <type> [radius] neoessentials.remove Remove entities by type in radius
/nuke /nuke neoessentials.nuke Remove all nearby entities
/tptoggle /tptoggle [on\|off] neoessentials.tptoggle Toggle receiving TP requests
/msgtoggle /msgtoggle [on\|off] neoessentials.msgtoggle Toggle receiving private messages
/rtoggle /rtoggle [on\|off] neoessentials.rtoggle Toggle receiving /reply messages

Fun Commands#

Command Syntax Permission Description
/me /me <action> neoessentials.me Broadcast a third-person action message
/firework /firework clear\|power <0-127>\|fire [amount]\|color <hex[,hex]> [fade:<hex>] [shape:<shape>] [effect:<effect>] neoessentials.firework (fire additionally needs neoessentials.firework.fire) Edit and launch the firework rocket you're holding — there's no bare /firework with no subcommand
/antioch /antioch neoessentials.antioch Launch a Holy Hand Grenade 🐇
/kittycannon /kittycannon neoessentials.kittycannon Launch a kitten
/beezooka /beezooka neoessentials.beezooka Launch bees
/rest /rest neoessentials.rest Skip the night (vote)
/info /info neoessentials.info Show server/mod info
/itemdb /itemdb [item] neoessentials.itemdb Show registry info for held/named item

Mail#

Command Syntax Permission Description
/mail read /mail read [page] neoessentials.mail Read your mail
/mail send /mail send <player> <message> neoessentials.mail.send Send mail
/mail sendtemp /mail sendtemp <player> <duration> <message> neoessentials.mail.sendtemp Send expiring mail (duration like 30s/5m/2h/1d/1w)
/mail sendall /mail sendall <message> neoessentials.mail.sendall Broadcast mail to all players (admin)
/mail sendtempall /mail sendtempall <duration> <message> neoessentials.mail.sendtempall Broadcast expiring mail to all players (admin)
/mail delete /mail delete <id> neoessentials.mail Delete a single message by its short ID
/mail clear /mail clear [index] neoessentials.mail.clear Clear your mailbox or a specific message
/mail clear /mail clear <player> [index] neoessentials.mail.clear.others Clear another player's mailbox (admin)
/mail clearall /mail clearall neoessentials.mail.clearall Wipe every player's mailbox (admin)

Back to Wiki Home