EternalTD Commands
EternalTD registers the root command:
/eternaltd
/etd
The Nightbreak token command used during setup is separate:
/nightbreaklogin <token>
Setup and Content Management
Most of these subcommands are registered by MagmaCore through NightbreakPluginBootstrap.registerStandardCommands. They are shared across all Nightbreak plugins and ship inside EternalTD because MagmaCore is shaded into the plugin.
| Command | Sender | Current purpose |
|---|---|---|
/etd | Any | Prints the current setup/content quick-start help. Although the command class sets eternaltd.*, the command manager's no-args path executes it without checking permissions, so it works for all senders. |
/etd initialize | Player | Not registered in the current build (hasPresetModes=false causes NightbreakPluginBootstrap to skip registering this command, and the first-time setup spec passes null for the initialize command so the setup warner does not reference it either). First-time setup is handled automatically or via /etd setup. |
/etd setup | Player | Opens the EternalTD setup menu (package browser plus the shared plugin-update, recommended-plugins, and automatic-update controls) |
/etd recommendedplugins | Any | Opens (player) or prints (console) the recommended companion plugins for EternalTD |
/etd downloadpluginupdate | Any | Downloads an EternalTD plugin update if one is available (used after the next restart) |
/etd downloadall | Any | Downloads the EternalTD plugin update and all available content |
/etd downloadallcontent | Any | Downloads all available EternalTD content (no plugin update) |
/etd updatecontent | Any | Downloads updates for outdated EternalTD content |
/etd updateallcontent | Any | Alias for /etd updatecontent |
/etd install | Any | Applies the official EternalTD resource-pack setup |
/etd reload | Any | Reloads imported EternalTD content and refreshes FMM imports if present |
Admin note:
- The setup/content commands above are currently coded as admin-facing commands.
setup,recommendedplugins,downloadall,downloadallcontent,updatecontent/updateallcontent,reload,cheat,setwave,selectfloor,selectfloorcoordinates,register,register start, andregister endall require theeternaltd.*permission. (downloadpluginupdateanddownloadalluse the admin permission;setup,recommendedplugins,downloadallcontent, andupdatecontentuse the setup permission — both areeternaltd.*for EternalTD, so the effective requirement is the same.)initializeis not registered in the current build (hasPresetModes=false), so its permission does not apply.install,hub/lobby,showselection,join,start/go, andquit/stopdo not requireeternaltd.*.- The base
/etdcommand (no subcommand) haseternaltd.*set on its command class, but the command manager's no-args dispatch path executes it without checking permissions. In practice it works for all senders.
Gameplay Commands
| Command | Sender | Current purpose |
|---|---|---|
/etd join <level> | Player | Starts a new level session from a loaded level file |
/etd start | Player | Starts the active session's first wave |
/etd go | Player | Alias for /etd start |
/etd quit | Player | Ends your current level session |
/etd stop | Player | Alias for /etd quit |
/etd hub | Player | Teleports you back to the EternalTD hub spawn. If run mid-run, the active session is ended cleanly first (inventory restored, towers removed, instance world deleted). Requires the hub spawn to be configured in config.yml. |
/etd lobby | Player | Alias for /etd hub |
Debug and Admin Gameplay Commands
| Command | Sender | Current purpose |
|---|---|---|
/etd cheat | Player | Toggles cheat mode for the active session |
/etd setwave <wave> | Player | Skips the active session to a specific wave |
These are not normal player setup commands. They are session/debug tools.
Map Authoring Commands
These commands are still present in the current codebase for floor selection and level registration work.
| Command | Sender | Current purpose |
|---|---|---|
/etd selectfloor | Player | Starts or stops floor-corner selection with clicks |
/etd selectfloorcoordinates <x1> <y1> <z1> <x2> <y2> <z2> | Player | Sets the selection region directly from coordinates |
/etd showselection <level> | Player | Validates the current floor selection against a level (kept selection) |
/etd register <level> | Player | Validates the current floor selection against a level and then clears the selection. In the current build this only runs the visual check — the helper that would persist levelLocations to the YAML (LevelsConfigFields#addLevelLocations) is defined but no command calls it, so this command does not yet save the floor region. |
/etd register <level> start | Player | Adds the player's current standing block to the level's startLocation list |
/etd register <level> end | Player | Adds the player's current standing block to the level's endLocation list |
Notes
- EternalTD's
plugin.ymlonly declares the root command. Subcommands are registered through the command manager at runtime. - Some usage strings inside the current command classes still reference older command text. The command names documented on this page reflect the actual registered subcommands.