Commands¶
Quick Start: Pick your goal.
All commands are available under /manhunt and its alias /mh. Tab
completion only suggests what the sender has permission to run.
Casual players only need status, qs, and start.
Playing¶
| Command | What it does | Permission |
|---|---|---|
/manhunt |
First run: one-click setup. Later: opens the admin GUI (needs jmanhunt.gui) or shows your teams. |
jmanhunt.gui, jmanhunt.command.status |
/manhunt status [id|all] |
Shows one match roster by id, or every running match plus populated lobbies with all. |
jmanhunt.command.status, jmanhunt.command.status.other for the argument |
/manhunt help |
Shows the in-game command list. | jmanhunt.command.help |
/manhunt version |
Shows the plugin name, version, and edition (free or paid). | jmanhunt.command.version |
/manhunt setup |
Step-by-step setup tour in chat (players only). For learning as you go. | jmanhunt.command.setup |
/manhunt support |
Shows Discord, Modrinth, and Ko-fi links. | jmanhunt.command.support |
/manhunt challenges |
Shows a chat notice with a clickable link to the optional Challenges addon. | jmanhunt.command.challenges |
/manhunt tournament history <id> |
Shows the bracket tree or standings of a tournament, live or finished. | jmanhunt.command.tournament |
/manhunt tournament start <playlist> [lobby] |
Force-starts the registering tournament of a playlist. | jmanhunt.admin |
/manhunt tournament cancel <playlist> [lobby] |
Cancels the registering tournament of a playlist. | jmanhunt.admin |
Match Status¶
/manhunt status shows your own match (watching one after elimination
counts), else your lobby queue. An id shows one roster grouped by role;
all lists every running match, then every populated lobby. Extras under
settings.server.status toggle win conditions (show-win-conditions),
the L{lobby}|G{game} tag (show-ids), running time
(show-elapsed-time), the enabled-mods block (always the last section,
the effective per-match list: the same hoverable roll call as the match
start, gated by show-modifiers plus the mod-broadcasts switch),
and show-on-start.
Long rosters truncate, dead players get a skull line (tune the roster
under manhunt.status-* and the mods block under
modifiers.broadcast-*).
Teams¶
| Command | What it does | Permission |
|---|---|---|
/manhunt setplayer <selector> <role> |
Assigns hunter, speedrunner, spectator, afk, or none. |
jmanhunt.command.setplayer (jmanhunt.command.setplayer.self for your own role only) |
/manhunt quickstart [percentage] |
Assigns teams and starts immediately, bypassing autostart. | jmanhunt.command.quickstart |
/manhunt qs [percentage] |
Alias for /manhunt quickstart. |
jmanhunt.command.quickstart |
Roles¶
| Role | Description |
|---|---|
hunter |
Participates as a hunter. Requires jmanhunt.hunter. |
speedrunner |
Participates as a speedrunner. Requires jmanhunt.speedrunner. |
spectator |
Watches without playing. Requires jmanhunt.spectator. |
afk |
Excluded from the match entirely; waits in the lobby. Requires jmanhunt.afk. |
none |
Not participating: the pool Quick Start draws from. Requires jmanhunt.none. |
Targets always need the permission for their role. Players already in
the match need -f (-force) for any role change; moving someone
else out of afk needs the command twice within 10 seconds; -s
(-silent) suppresses the role messages and sounds. With a live match,
the mid-match policy decides instead (see
Concurrent Matches).
Quick Start¶
Assigns teams and starts immediately, bypassing autostart. Who converts and where everyone lands is in Concurrent Matches.
Lobbies¶
| Command | What it does | Permission |
|---|---|---|
/manhunt lobby join <selector> <lobby-id> [role] [-notp] |
Moves players to a lobby queue, teleporting them there unless -notp is given. |
jmanhunt.command.lobby |
/manhunt lobby leave [selector] |
Removes players from whatever lobby they are in. | jmanhunt.command.lobby |
Each lobby runs its own queue, autostart countdown, and match (see
Concurrent Matches); joining honors the
per-role queue caps unless -f is passed. New to lobbies? Start with
the Lobby System.
Preferences¶
| Command | What it does | Permission |
|---|---|---|
/manhunt prefs switch <lobby-id> [selector] |
Teleports through the lobby switcher, under its cooldown. | jmanhunt.command.prefs.self |
/manhunt prefs fx [mode] [selector] |
Reads or sets the effects visibility mode (ALL, LOBBY, MATCH, OFF). |
jmanhunt.command.prefs.self |
/manhunt prefs visibility [mode] [selector] |
Reads or sets who sees your in-match cosmetics (ALL, TEAM, SELF). |
jmanhunt.command.prefs.self |
/manhunt prefs bias [runner\|hunter] [selector] |
Reads or sets your role preference for weighted side assignment (premium; refused while role weights are off). | jmanhunt.command.prefs.self |
/manhunt prefs quickmatch [join|cancel] [selector] |
Bare opens the quick-match browser; join queues, cancel leaves the queue. |
jmanhunt.command.prefs.self |
The prefs verbs target yourself with
jmanhunt.command.prefs.self; targeting anyone else needs
jmanhunt.command.prefs.
Cosmetics¶
| Command | What it does | Permission |
|---|---|---|
/manhunt cosmetics |
Opens the cosmetics menu. | jmanhunt.command.cosmetics.self |
/manhunt cosmetics list [selector] |
Lists unlocked cosmetics per player, marking equipped ones. | jmanhunt.command.cosmetics.self |
/manhunt cosmetics info <id> [selector] |
Shows one cosmetic plus each target's state for it. | jmanhunt.command.cosmetics.self |
/manhunt cosmetics unlock <id> [selector] |
Unlocks one cosmetic the target may obtain. | jmanhunt.command.cosmetics.self |
/manhunt cosmetics remove <id> [selector] |
Removes one owned cosmetic. | jmanhunt.command.cosmetics |
/manhunt cosmetics equip <id> [selector] |
Equips one owned cosmetic. | jmanhunt.command.cosmetics.self |
/manhunt cosmetics unequip <slot> [selector] |
Clears one equipped slot. | jmanhunt.command.cosmetics.self |
/manhunt cosmetics ranks |
Lists the cosmetic ranks and which ones you hold. | jmanhunt.command.cosmetics.self |
Targeting anyone but yourself needs jmanhunt.command.cosmetics;
remove always needs it. Console names its targets.
Language¶
| Command | What it does | Permission |
|---|---|---|
/manhunt language |
Shows your current language. | jmanhunt.command.language |
/manhunt language <en|fi|de|es|zh|ru> |
Sets your lobby language. | jmanhunt.command.language |
/manhunt language default |
Clears your override; you follow the server language again. | jmanhunt.command.language |
Players only. See Per-player language.
Matches¶
| Command | What it does | Permission |
|---|---|---|
/manhunt start [lobby-id] |
Starts a match for a lobby queue. | jmanhunt.command.start |
/manhunt end [id] |
Cancels a match with no winner; history rows persist but career stays untouched. | jmanhunt.command.end |
/manhunt end [id] -i / -immediate |
Cancels immediately, skipping the end delay intermission. | jmanhunt.command.end |
/manhunt end all [-i] |
Cancels every running match at once. Works from console. | jmanhunt.command.end |
/manhunt match join <id> [role] [selector] |
Adds players to a running match (default spectator). |
jmanhunt.command.match |
/manhunt match leave [id] [selector] |
Removes players from a running match; leaving participants need a second run within 10 seconds. | jmanhunt.command.match |
/manhunt match history <match-id> |
Shows one stored match summary to the sender only. Works from console. | jmanhunt.command.match |
Joining and Leaving a Running Match¶
/manhunt match join lets someone watch; living participants confirm
leaving with a second run within 10 seconds. Full behavior is in
Concurrent Matches.
Match History¶
/manhunt match history <match-id> replays the stored MATCH SUMMARY
for that match, tagged with the match id in the header. It works from
console and for players, renders to the sender only, and reads the
same stored snapshot as the
by id placeholders. Tab
completion suggests recent cached match ids. Unknown ids report back
as unknown instance ids.
Team Chat¶
Hunters and speedrunners in a match can talk privately by prefixing a
line with @team or @t. See Team Chat for prefixes,
settings, and lobby scoping.
Settings¶
| Command | What it does | Permission |
|---|---|---|
/manhunt config <category> <key...> [value] |
Lists, views, or changes settings by category. | jmanhunt.command.config |
/manhunt override <lobby> settings <get|set|clear> <key...> [value] |
Views, changes, or removes one lobby's setting overrides. | jmanhunt.command.override |
/manhunt override <lobby> modifiers <get|set|clear> [id] [true|false] |
Views, changes, or removes one lobby's modifier overrides. | jmanhunt.command.override |
/manhunt override <lobby> values <get|set|clear> <mod> [path] [value] |
Views, changes, or removes one lobby's modifier setting values. | jmanhunt.command.override |
/manhunt override <lobby> clear |
Removes every override of one lobby. | jmanhunt.command.override |
Editing Settings In-Game¶
/manhunt config browses and changes settings in-game, one category at a time
(same settings as the admin GUI); tab completion only suggests children.
/manhunt config settings match autostart enabled true
/manhunt config settings compass actions auto interval 5
/manhunt config world-engine general cell-size 20000
Every value is validated before it is stored. String lists drill by
index (... 0, ... 0 <words>, ... add <words>, ... remove 0, ... reset).
With no category the command lists categories; setting names match
case-insensitively. When settings.server.announce.config-changes is enabled,
every change is announced to online admins (jmanhunt.admin) except the one
who made it.
Per-Lobby Overrides¶
/manhunt override stores per-lobby setting, modifier, and modifier-value overrides
(matches read the override first); also editable in the admin GUI.
/manhunt override 1 settings get settings match autostart enabled
/manhunt override 1 settings set settings match autostart enabled false
/manhunt override 1 modifiers set gapple true
/manhunt override 1 values set flood base-y 69
/manhunt override 1 values get flood
/manhunt override 1 clear
get shows the effective value plus its layer: (override) for the lobby,
(global) for GLOBAL, (default) for the file. Values validate against the
setting's type before they store. Every clear asks once and deletes on an
identical rerun within 10 seconds; emptied lobbies are pruned. See
Operator values
for the full layer model.
World Engine¶
| Command | What it does | Permission |
|---|---|---|
/manhunt worldengine lobbyconfig pos1|pos2 |
Records a lobby-bounds corner at your feet block. | jmanhunt.command.worldengine (jmanhunt.command.worldengine.lobbyconfig) |
/manhunt worldengine lobbyconfig setbounds <lobby-id> |
Stores the recorded corners as a lobby's bounds. | jmanhunt.command.worldengine (jmanhunt.command.worldengine.lobbyconfig) |
/manhunt worldengine lobbyconfig setlobbytp <lobby-id> [coords] |
Sets a lobby's teleport (your position, or x y z yaw pitch). |
jmanhunt.command.worldengine (jmanhunt.command.worldengine.lobbyconfig) |
/manhunt worldengine lobbyconfig deletelobby <lobby-id> |
Deletes a lobby's stored entry. | jmanhunt.command.worldengine (jmanhunt.command.worldengine.lobbyconfig) |
/manhunt worldengine lobbyconfig setpropagation <lobby-id> <true|false> [child-id...] |
Arms dummy-lobby propagation: matches from the lobby ignore its overrides and read one random child's instead. | jmanhunt.command.worldengine (jmanhunt.command.worldengine.lobbyconfig) |
/manhunt worldengine tpto lobbyworld|gameworld [selector] [preset] |
Teleports to the lobby world (generating it on a confirmed second run) or the game world spawn. | jmanhunt.command.worldengine (jmanhunt.command.worldengine.tpto) |
/manhunt worldengine cellindex get |
Shows the current world-engine cell index. | jmanhunt.command.worldengine (jmanhunt.command.worldengine.cellindex) |
/manhunt worldengine cellindex set <value> |
Sets the world-engine cell index, clamped to the addressable grid. | jmanhunt.command.worldengine (jmanhunt.command.worldengine.cellindex) |
/manhunt worldengine cellindex buffer |
Lists the buffered ready-cell ids. | jmanhunt.command.worldengine (jmanhunt.command.worldengine.cellindex) |
Lobby and Game Worlds¶
If the lobby world does not exist yet, the first tpto lobbyworld run asks
for a confirming second run within 10 seconds, which generates a void world,
pastes the DEFAULT preset, and points lobby 0 at the spawn. Pass a preset
(EMPTY, DEFAULT, ADVANCED) with a selector to generate with that preset
instead (ignored once the world exists). gameworld hops to the game world spawn
and never generates anything. Without a selector, both target you (console must pass one).
Mods and Admin¶
| Command | What it does | Permission |
|---|---|---|
/manhunt modifiers setmod <id> <true|false> |
Switches one modifier on or off. | jmanhunt.modifiers |
/manhunt modifiers setpreset <id> <true|false> |
Switches one preset on or off. | jmanhunt.modifiers |
/manhunt modifiers export modifier <id> |
Prints a click-to-copy share string. | jmanhunt.modifiers |
/manhunt modifiers import modifier <string> |
Takes a shared string in. | jmanhunt.modifiers |
/manhunt modifiers create ... |
Creates entries from chat or console (see below). | jmanhunt.modifiers |
/manhunt modifiers test <role> <commands> |
Dry-runs commands through the tag pipeline (players only). | jmanhunt.modifiers |
/manhunt modifiers config <id> <setting|reset|define|icon|color|broadcast> ... |
Reads or edits one modifier's config settings and visibility (see below). | jmanhunt.modifiers |
/manhunt reload |
Reloads the engine and mods, then reports new/removed ids (plus schematic counts when those change) and file problems. | jmanhunt.command.reload |
/manhunt debug [TRACE|INFO|WARN|SEVERE] |
Sets lifecycle debug output level; bare command toggles. Bounds draw as particles while on. | jmanhunt.command.debug |
/manhunt dev schem <pos1|pos2|save|load|list> |
Saves and loads .jmhlobby bundles for authoring presets. Only list works from console. |
jmanhunt.command.dev.schem |
/manhunt playlists |
Opens the playlist admin list (players only). | jmanhunt.admin |
/manhunt playlists weights |
Opens the ranked weights panel: per-playlist samples, fitted weight, and confidence; clicking a playlist resets it (players only). | jmanhunt.admin |
/manhunt playlists mode <id> <ranked|standard> |
Flips one playlist's ranked flag, same as the admin GUI mode field (console and players). | jmanhunt.admin |
/manhunt party <create|invite|join|leave|kick|setmode|setleader|list> |
Manages your party (players only, /mh p works too). |
jmanhunt.command.party |
/manhunt ranked <enable|disable|status|resetweights <playlist>> |
Flips the ranked master switch, reports the live season, or clears one playlist's auto-weights samples (console and players). | jmanhunt.admin |
Playlists¶
Click the trailing stick to draft a playlist: the id dialog
opens, then the pad block dialog, and confirming redirects back
to the playlist list. Click a list entry to edit
its id, icon, block, mode, and composition; the composition entry
opens the twin side editor (speedrunners left, hunters right,
minimum 1 each). Renames redirect to the list. Every edit saves
advanced/playlists.yml at once. See Quick Match and
Playlists.
Party¶
create starts a solo private party; invite <player> asks an online
player in (and creates a solo party first when the inviter has none),
and join <leader> takes a public party directly or a
private one with an invite. leave steps out (the leader's exit
promotes the longest-standing member, the last exit disbands),
kick <name> removes a member, setmode <public|private> flips
who may join, setleader <name> hands over leadership, and list
shows the members. Parties share one Quick Match queue: only the
leader steps pads or queues (every route), the whole party lands
on one side, oversized parties get a pad error, and ranked queues
require every member within one rank step of the leader. A non-leader
leaving or kicked mid-queue evicts just that member, while the leader
leaving drops the whole party attempt so no ghosts stay queued;
joining is refused while either side queues. Parties cap at 4
(parties.max-size). Parties are private by default.
See Playlists.
Ranked¶
enable and disable flip the ranked master switch at once and
persist it to playlists.yml: disabling stops every ranked queue
with a notice and cancels running ranked matches immediately,
enabling touches the season clock. status reports the switch
plus the live season number (or that the ladder is unwired when
statistics are off). resetweights <playlist> clears that playlist's
auto-weights samples (survives seasons otherwise), with tab
completion over the playlist ids;
/manhunt playlists weights offers the same reset per playlist
from the admin GUI.
Once a ranked match begins it is closed:
participant joins and leaves are refused, while spectators keep
moving both ways. See Playlists.
Modifiers¶
Browse and toggle mods with setmod and setpreset, through the admin GUI,
or by editing files under mods/ and running /manhunt reload. Share one with
export, take one in with import (see Creating Modifiers):
Create entries without touching YAML (values run until the next flag, so no quoting needed):
/manhunt modifiers create modifier Beef Party --trigger ON_START --player give <p> cooked_beef 8
/manhunt modifiers create preset Chaos --member beef-party --member gear-dice
All create flags: Creating Modifiers and Presets. Edit a modifier's exposed settings and visibility without touching YAML:
/manhunt modifiers config flood setting base-y 69
/manhunt modifiers config flood reset base-y
/manhunt modifiers config flood define palette.accent COLOR
/manhunt modifiers config flood color ff00aa
/manhunt modifiers config flood broadcast false
setting and reset read and write GLOBAL (never the mod file); per-lobby
values go through override ... values. See
Config Settings for
setting, reset, define, icon, color, and broadcast; the complete
modifier reference lives in Modifiers.
Challenges¶
Play built-in challenges through our companion plugin
JManhunt-Challenges
(/jmhchallenges toggle <challenge>).
Developer Tools¶
/manhunt dev schem saves and loads .jmhlobby bundles (structure
plus lobby bounds and teleports) for authoring lobby presets. See
Developer Tools; only list works from the console.