Command reference
Implemented Chunkwake commands, permission levels and differences from vanilla.
The command tree is declared once in crates/net/src/play/commands/registry.rs. The client commands packet, tab-complete suggestions and permission checks are generated from it, so the tree, permissions and execution cannot drift apart. Node shapes are checked against vanilla reports/commands.json 26.3.
Search covers the name, arguments, description and differences from vanilla.
Player and chat
Chat, inventory, effects, entities and the camera.
/help [command]List available commands or show usage for one command.
Differences: No hover or clickable links.
/list [uuids]Online players.
Differences: uuids prints the UUID next to each name.
/me <action>An action in chat under your name.
/say <message>A message from the server.
/msg <targets> <message>Private message to a player.
Differences: No message history or /socialspy.
/teammsg <message>Message to your team.
Differences: Only the sender's team; without a team it returns commands.teammsg.failed.
/team add|remove|list|modify ...Team members, colour, prefix and collisions.
Differences: Friendly fire does not affect damage: team combat is not implemented.
/tellraw <targets> <message>Send a text component to chat.
/title <targets> title|subtitle|actionbar|times|clear|reset ...Show a title, subtitle or action bar.
/playsound <sound> <source> <targets> [pos] [volume] [pitch] [minVolume]Play or stop a sound.
Differences: Categories (master…ui) work; beyond volume * 16 the sound plays with minVolume, 0 sends nothing. /stopsound <targets> [<source>] [<sound>], * means no category.
/give <targets> <item> [count]Give an item to a player.
Differences: Enchantments, name, lore, custom_data and damage; other components are stored for comparison but not sent to the client.
/clear <targets> [item] [maxCount]Clear an inventory.
Differences: Only matching components are cleared; #tag removes every item in the tag.
/effect give|clear <targets> <effect> [seconds] [amplifier] [hideParticles]Apply or remove an effect.
Differences: infinite and hideParticles are supported.
/xp add|set|query <targets> <amount> [points|levels]Add, set or query experience.
/gamemode <mode> [target]Change the game mode.
/kill [targets]Kill an entity.
Differences: Works on mobs and item entities too.
/tp <targets> <location> [<rotation>]Teleport an entity, including ^ and facing.
Differences: ^ is relative to the executor's view; without angles the rotation is kept.
/damage <target> <amount> [type] [at <location>|by <entity>]Deal damage.
Differences: fall, out_of_world, starve, magic, wither, arrow; unknown types become ordinary damage.
/rotate <target> <rotation>Rotate an entity.
/spawnpoint [targets] [pos] [angle]Set a respawn point.
Differences: Stored in the player save (SpawnX/Y/Z).
/tag <targets> add|remove|list <name>Add, remove or list entity tags.
Differences: Up to 1024 tags; the tag= selector sees them.
/swing <targets> mainhand|offhandPlay an arm swing.
Differences: mainhand/offhand, animations none/whack/stab; items and projectiles return notliving.
/spectate <target> [player]Switch to a spectator camera.
Differences: Spectator mode only; sends set_camera.
/ride <target> mount|dismount <vehicle>Mount or dismount a passenger.
Differences: A passenger cannot mount a player or close a loop; sends set_passengers.
/trigger <objective> add|set <value>Change your trigger score.
Differences: Works after scoreboard players enable; without it the result is unprimed.
/random value|roll <range> [sequence]Random number.
Differences: roll prints to chat, value returns a number; the sequence keeps its seed until restart. The generator is not bit-identical to vanilla RandomSequence.
/bossbar add|set|remove|list ...Create and configure a boss bar.
Differences: Viewers are set with set players; the bar returns on join and respawn. Sky, music and fog are not implemented.
/enchant <targets> <enchantment> [level]Enchant the held item.
Differences: Level 0 removes enchantments; incompatible ones are not replaced; a book stores stored_enchantments.
/spreadplayers <center> <spreadDistance> <maxRange> <respectTeams> <targets>Spread entities across an area.
Differences: Height is the motion_blocking surface of a loaded chunk; under does not search caves below.
/stopwatch create|query ...Stopwatch.
Differences: Counts real time, not ticks; query for execute store returns floor(seconds × scale).
/posteffect <targets> <effect>Screen effect.
Differences: Sends the full post_effects list.
/attribute <target> <attribute> get|base|modifier ...Attribute base and modifiers.
Differences: Players use the player set, mobs the mob set; sends update_attributes. Session sprint is not included in get.
/waypoint modify <targets> color|style ...Waypoint colour and style.
Differences: Only players have a waypoint; mobs and items return argument.waypoint.invalid. The command does not create one; sends waypoint.
/dialog clear|show <targets>Close a dialog.
Differences: clear sends an empty clear_dialog. show returns not found: there is no dialog registry.
/particle <name> [pos] [delta] [speed] [count] [force|normal] [viewers]Particles for nearby players.
Differences: Simple types (flame, heart, …) use level_particles. dust takes <r> <g> <b> <scale>. block, item, vibration and similar return particle.invalidOptions. Beyond 32 blocks force is required (up to 512).
/item replace entity <targets> <slots> with <item> [count]Put an item into a slot.
Differences: Only replace entity. Slots: weapon, weapon.mainhand, weapon.offhand, weapon.*, armor.head…armor.feet, armor.*, hotbar.N, inventory.N, container.N. Mobs have no slots. block, from, modify, fill and override are not declared.
/loot give|spawn|insert|replace ...Give or drop loot from a table.
Differences: give players … loot, spawn <pos> loot, insert <pos> loot, replace block <pos> <slot> [count] loot. The key is a path under loot_table. kill, fish and mine need a damage source or a fishing rod. replace entity is not declared.
World and blocks
Blocks, time, weather, borders and structure search.
/setblock <pos> <block> [destroy|keep|replace|strict]Place a block.
Differences: keep leaves non-air blocks alone, destroy drops the old block, strict fails without changing anything.
/fill <from> <to> <block> [destroy|hollow|keep|outline|replace|strict]Fill an area with blocks.
Differences: Limit is 32,768 blocks; destroy drops blocks; the replace filter accepts a block name or #tag.
/clone <begin> <end> <destination> [replace|masked|filtered] [normal|force|move]Copy a block region.
Differences: replace/masked/filtered, normal/force/move; strict does not wake neighbours; the chunk must be loaded; current dimension only.
/summon <entity> [pos] [nbt]Summon a mob.
Differences: Four mobs exist in the world: cow, pig, sheep and chicken.
/weather clear|rain|thunder [duration]Set the weather.
Differences: Rain is visible, but precipitation is not ticked.
/gamerule <rule> [value]Show or change a world rule.
Differences: 59 rules from 26.3; the tick reads a subset.
/time set|add|query <value>Set, add or query time.
Differences: query returns time and gametime as in 26.3 (daytime is still accepted).
/difficulty [peaceful|easy|normal|hard]Set the difficulty.
/seedShow the world seed.
/setworldspawn [pos] [angle]Set the world spawn.
/worldborder add|center|damage|get|set|warning ...Configure the world border.
Differences: Centre, diameter, warning and damage are stored and sent to the client; edge damage is not applied yet.
/forceload add|remove|query ...Keep a chunk in the simulation.
Differences: The disk load queue is not maintained separately.
/locate biome|poi|structure <id>Find a biome, point of interest or structure.
Differences: Biome: radius 4096, step 32, height is the column surface. Structures: villages, outposts, abandoned camps, desert pyramids, jungle temples, witch huts, igloos, shipwrecks, mineshafts, ocean monuments, strongholds, woodland mansions, ruined portals, ocean ruins and trial chambers; other ids return not found. poi does not create chunks and uses radius 256.
/fillbiome <from> <to> <biome>Replace the biome in an area.
Differences: Chunks must be loaded; sends chunks_biomes; volume is limited by max_block_modifications.
/place template <id> <pos> [rotation] [mirror]Place a structure template.
Differences: Only template. Templates come from data/minecraft/structure. Blocks are placed as setblock replace; block entities are not filled. integrity and seed report that processors are unavailable. feature, jigsaw and structure are not declared.
Data and scoreboard
Scores, NBT and `execute` chains.
/scoreboard objectives add|remove|list|modify ...Manage score objectives.
Differences: modify supports displayname, rendertype and numberformat (blank, fixed, styled; a bare word resets the format). The objective format is sent in set_objective.
/scoreboard players get|set|add|remove|reset|enable|display ...Manage score values.
Differences: display numberformat is stored on the score and is not written to set_score; enable opens a trigger objective.
/data get|merge|modify ...Read and change block or entity NBT.
Differences: Path Foo.Bar[0], merge, modify set|merge|append|prepend|insert.
/execute ... run <command>Chain execution contexts and run a command.
Differences: align, anchored, on, store into scores and block or entity NBT; summon continues from the new entity; if/unless support biome, blocks, data, loaded, items, slots and score matches; positioned over sets Y from the heightmap.
Administration
Permissions, bans, ticking, saving and shutdown.
/op <targets>Grant or revoke operator rights.
Differences: Uses vanilla ops.json.
/kick <targets> [reason]Kick a player.
Differences: The reason is included in the response.
/whitelist add|remove|list|on|off|reloadManage the whitelist.
Differences: When enabled, the list is checked on login; operators pass.
/ban <targets> [reason]Bans by name and IP.
Differences: Name and IP are checked on login.
/reloadReload ops.json.
Differences: There are no data packs.
/tick query|rate|freeze|step|sprint ...Control the server tick.
Differences: sprint accelerates the loop.
/debug start|stopTick profile.
Differences: Writes per-tick MSPT to debug/profile-*.txt, not spark.
/perf start|stopLoad snapshot and profile.
/stopSave the world and shut down.
/versionServer version.
/save-all [flush]Control autosaving.
Differences: save-all requests an autosave outside the schedule.
/publish [allowCommands] [gamemode] [port]Publish to LAN.
Differences: Only the flag is set; UPnP is not touched.
/transfer <hostname> [port] [players]Transfer a player to another server.
Differences: The client receives transfer, then the session closes.
/setidletimeout <minutes>Idle timeout.
Differences: No game packets for N minutes closes the session; 0 disables the timeout.
/return <value>Return from a function.
Differences: There are no functions: every form reports that the command works only inside a function.
Chunkwake extensions
Commands that do not exist in vanilla.
/tpsTPS and MSPT line.
Differences: Chunkwake extension; the format is consumed by chunkwake-lab.
/top [cpu|tick|mem|world|net]Load snapshot.
Differences: Chunkwake extension.
Command index
A short list of names for search and navigation; descriptions and differences are in the cards above.
- Player and chat:
help,list,me,say,msg/tell/w,teammsg/tm,team,tellraw,title,playsound/stopsound,give,clear,effect,xp,gamemode/defaultgamemode,kill,tp/teleport,damage,rotate,spawnpoint,tag,swing,spectate,ride,trigger,random,bossbar,enchant,spreadplayers,stopwatch,posteffect,attribute,waypoint,dialog,particle,item,loot. - World and blocks:
setblock,fill,clone,summon,weather,gamerule,time,difficulty,seed,setworldspawn,worldborder,forceload,locate,fillbiome,place. - Data and scoreboard:
scoreboard objectives,scoreboard players,data,execute. - Administration:
op/deop,kick,whitelist,ban/ban-ip/banlist/pardon/pardon-ip,reload,tick,debug,perf,stop,version,save-all/save-off/save-on,publish/unpublish,transfer,setidletimeout,return. - Chunkwake extensions:
tps,top.
Permission levels
Levels match vanilla. An operator receives level 3; the server owner receives level 4.
| Level | Who | Vanilla group |
|---|---|---|
| 0 | everyone | — |
| 2 | game master | gamemasters |
| 3 | admin | admins |
| 4 | server owner | owners |
Selectors
@s, @p, @r, @a, @e and player names with arguments are supported:
@a[distance=..20,gamemode=creative]
@e[type=minecraft:cow,limit=5,sort=nearest,tag=farm]
@p[x=0,y=64,z=0,dx=10,dy=10,dz=10]
@a[name=Ali*,level=1..]Supported arguments: sort, limit, distance, dx/dy/dz, gamemode, name, tag, scores and rot. type= distinguishes a mob from a player.
Not implemented yet
advancement, compute, datapack, fetchprofile, function, jfr, recipe, schedule, test.
Some of them need subsystems that do not exist yet: scoreboard in the tick, a data pack loader, a structure generator, player recipes. The commands_parity.rs test compares the tree with vanilla 26.3 and fails if this list drifts from the code.
Plugin commands
The tree above is the core only. Plugins add commands dynamically: the client suggests literals and arguments from the commands packet, and the server answers command_suggestion with plugin command names and the TabComplete result. The list is extended, not replaced: an empty response does not wipe the tree.
Console
The console accepts the same commands as chat, without /. chunkwake reads stdin line by line. stop shuts the server down, top writes a load snapshot to the log.
Related
- Operations — service, logs, backups and Velocity.
- Observability — dashboard,
/topand tick profile. - Feature matrix — what is ready, partial or missing.
- Source documentation —
docs/commands.mdin the repository.