Skip to content

commands

github-actions[bot] edited this page Sep 15, 2026 · 10 revisions

Commands

Commands are registered from four places:

  • standalone command classes in dev.stemcraft.command
  • feature-owned registrations
  • service-owned registrations
  • minigame command classes

The list below reflects the active built-in command roots in source.

Core and Admin

Command Owner Notes
/stemcraft STEMCraftCommand Status, version, explicit STEMCraft/extension saves, reload, and first-join administration
/maintenance STEMCraft.java Toggles server maintenance mode
/webserver WebServiceImpl Embedded web server control
/world WorldCommand World lifecycle, inspection, settings, and join/leave command editing
/resourcepack ResourcePackCommand Pack delivery and pack build operations
/namedregion NamedRegions Inspect, find, teleport to, rename, retire, release, and regenerate named areas; see Named Regions
/hologram HologramServiceImpl Hologram creation and editing
/mailbox Mailboxes Send mail and administer the delivery queue
/quest QuestFeature Player quest journal and administration
/audit AuditServiceImpl Audit review
/moderation ChatServiceImpl Moderation incident review
/reports ChatServiceImpl Player report review
/profanity ProfanityFilterServiceImpl Filter inspection and management
/muteall ChatServiceImpl Global chat mute control
/ban, /unban, /kick, /warn PunishmentServiceImpl Punishment management
/report ChatServiceImpl Player report submission

Travel and Utility

Command Owner Notes
/hub HubCommand Sends players to the configured hub
/back TeleportUtils Returns to last stored location
/warp, /setwarp, /delwarp TeleportUtils Warp management
/spawn, /tpspawn TeleportUtils Spawn travel
/tpall, /tphere TeleportUtils Player teleport administration
/tpworld, /tpworldspawn, /tpworldlast TeleportUtils World-aware teleport tools
/top, /jump, /thru TeleportUtils Positional utility commands
/coord, /coordbar Coordinates Coordinate displays
/speed PlayerSpeed Walk/fly speed management
/fly FlyCommand Flight toggle/control
/ptime, /pweather Base commands Per-player time/weather
/workbench WorkbenchCommand Virtual workstation surface plus aliases such as anvil and stonecutter
/invsee, /enderchest, /clearinv, /break, /repair Base commands Inventory/admin utilities
/clearsel SelectionServiceImpl Clears active selection state
/selpreview [on|off|grid [on|off]] SelectionServiceImpl Controls saved player preferences for WorldEdit outlines and grids; alias /selprev; available to all players

Content and Interaction

Command Owner Notes
/book CustomBooks Create, list, show, and distribute configured books; saved book keys are title-derived and preserve existing hyphens
/quest QuestFeature View active quests and carried books, track objectives, or abandon quests
/imenu InteractiveMenus Interactive menu runtime and editor
dynamic configured aliases CustomCommands Commands loaded from config at startup; default player sender with optional player: / server: prefixes
gms, gmc, gma, gmsp GameModeAliases Short aliases that dispatch to /gamemode

Minigames

Command Owner
/bridge BridgeCommand
/boatrace BoatRaceCommand
/bedwars BedWarsCommand
/minefield MinefieldCommand
/nightfall NightfallCommand
/parkour ParkourCommand
/skyblock SkyBlockCommand
/tntrun TntRunCommand

World Command Highlights

The /world command is one of the most important operator surfaces. It covers:

  • create, load, unload, duplicate, and delete
  • world inspection via /world info
  • player-facing world names via /world displayname <world> <name|clear>
  • stored generator selection
  • world settings such as time, weather, tick speed, gamemode, nether, end, and random spawn
  • join/leave command editors:
    • /world joincommands
    • /world leavecommands
    • /world addjoincommand
    • /world addleavecommand
    • /world setjoincommand
    • /world setleavecommand
    • /world removejoincommand
    • /world removeleavecommand

Join and leave commands run as the player by default. Use player: or server: prefixes on individual entries to control sender mode per command.

Custom command aliases also run as the player by default. Use player: or server: on a configured run entry to force the sender, and {player} / {uuid} placeholders inside the configured command text.

Permission Conventions

See Player and staff permissions for the standard-player grant list, all eight minigames, other-player checks and migration from the old broad permissions.

Most built-in commands follow:

  • stemcraft.command.<label>

Common exceptions:

  • feature editor permissions such as stemcraft.imenu.edit
  • maintenance bypass or specialized gameplay override permissions

For exact argument validation and user-facing usage strings, see locale entries in plugin/src/main/resources/locales/en.yml.

Notice boards use /noticeboard post, /noticeboard list [page], /noticeboard edit <post-id>, /noticeboard expiry <post-id> <duration|-1>, and /noticeboard remove <post-id>. Administrators create displays with /noticeboard board create <id> [columns] [rows] while targeting the bottom-left backing block.

Dynamic command lifecycle

Registered commands own all aliases and namespaced labels pointing to their exact Bukkit command object. Cleanup snapshots matching keys and removes them through Paper's command map, which updates Brigadier. Do not use entrySet().removeIf: the current Paper forwarding iterator does not support iterator removal. Re-registration first cleans up the previous registration; failure retains the handle and logs its cause.

Returning to a dimension group

/tpworldlast survival [player] returns to the most recently visited location in survival or any survival_* world, including custom dimensions. If the player is already in that group, it leaves them at their current location. A player with no saved visit goes to the base world's spawn. Locations persist through logout and restart. Cancelled teleports do not update them.

Travel groups use the requested base name and an underscore boundary; they are independent of inventory sharing settings. /tpworld survival still explicitly selects the overworld, and /tpworldspawn survival selects its spawn.

For existing installations, change the custom /survival command's run entry in config.yml to server:tpworldlast survival {player} and reload STEMCraft. Also change any survival menu command to player:tpworldlast survival; players using that direct command need stemcraft.command.tpworldlast. Bundled defaults use these commands, but existing custom commands are preserved.

Clone this wiki locally