Files
core-minigames/docs/commands.md
T

112 lines
3.6 KiB
Markdown

# Commands Reference
All commands are subcommands of `/minigame`.
## Definition Management
### `/minigame list`
Lists registered minigames and basic runtime state.
### `/minigame create <pack> <id> <name>`
Creates a new minigame definition with default settings and saves it **into the named
asset pack** (`<pack>/Server/Minigames/<id>.json`). The pack must exist and be writable
(not a read-only/zipped pack). Because the definition lives in an asset pack, it is
reloaded by the normal asset scan on every server start.
```text
/minigame create KingOfHillAssetPack Beach_Race "Beach Race"
```
Ids may only contain letters, numbers, `_` and `-`.
### `/minigame info <id>`
Shows the loaded definition and runtime status for a minigame.
### `/minigame edit <id> <property> <value>`
Edits a simple definition property and saves it back into its asset pack.
Supported properties: `name`, `description`, `enabled`. Use the Hytale asset
editor for everything else.
```text
/minigame edit Beach_Race name Beach Race Deluxe
/minigame edit Beach_Race enabled true
```
### `/minigame enable <id>` / `/minigame disable <id>`
Sets `Enabled` and persists the definition to its asset pack. Disabling prevents new
queue joins and starts but does not stop an already running runtime.
### `/minigame validate <id>`
Runs definition validation (player counts, round length, countdown, overtime/sudden-death
timer settings).
### `/minigame delete <id>`
Ends any running runtimes, removes the definition from the asset store, and deletes its
file from its asset pack. Definitions in read-only packs cannot be deleted.
## Runtime Management
### `/minigame start <id>`
Starts a queued runtime for the given minigame as an **admin start**: the min-player
pregame check is skipped, so the game runs even with an empty or short queue.
The selected map comes from `MapSelectionMode`: highest vote for `VOTE`, random
discovered map for `RANDOM`.
A start is refused (with a message) when:
- the definition has a `WorldId` and you are in a different world, or
- no trigger volume sets the game's phase to `ACTIVE` (see *Lifecycle contract*
in `architecture.md`).
### `/minigame stop <id> [reason]`
Stops all active runtimes for the minigame ID.
### `/minigame reset <id>`
Resets all active runtimes for the minigame ID.
## Map Commands
### `/minigame maps <id>`
Lists maps discovered from trigger volumes in the sender's current world. Run this command
as a player in the world containing the tagged volumes.
### `/minigame vote <id> <mapId>`
Casts or updates the sender's vote. Only players who are in the queue may vote.
## Player Commands
### `/minigame join <id> [player]`
Adds the command sender, or the optional player target, to the minigame queue.
Fails when the queue is full (`MaxPlayers`) or the minigame is disabled.
### `/minigame leave [player]`
Removes the player from every queue and from their current game. Leaving a game restores
the player's saved inventory; if nobody is left in the runtime, it ends.
### `/minigame spectate <id> [player]`
Joins a running game as a spectator (requires `AllowSpectators: true` in the definition)
and teleports the spectator to the game's MainArena volume when one is visible from
their world. Spectators are excluded from rankings and the scoreboard.
## Volume Workflow
The old custom minigame volume system was removed. Use Hytale's trigger-volume editor for
volume placement and attach the minigame trigger effects and conditions there.
`/triggervolume clone` and `/triggervolume clonegroup` (injected by this plugin) help
duplicate configured volumes between maps.