In-game settings
/meow config and /meow setup ship in the jar, with two structural limits:
every set is boot-only — the yml file is never touched, and every answer
says so — and the restart-time settings (the tick mode,
the web panel) belong to the panel, not to chat.
What "runtime-suitable" means
A key is runtime-suitable when something reads it repeatedly — per tick,
per event, per new connection — so a write to the live config takes effect on
the next read and is reversible with another write. A key read once at boot is
not that: /meow config set exec.mode regionized on a live server would
answer "done" and change nothing until reboot. The restart-time keys are not
merely restricted in-game, they are meaningless there.
| Class | Meaning | Appears in /meow config set |
| --- | --- | --- |
| live | Read per tick / per event. A write applies immediately. | Yes |
| new-conn | Read when a new connection, entity, player or world is constructed. Applies to everything created after the write. | Yes, and the answer names the window |
| restart | Read once at boot. An in-game flip changes nothing this boot. | No — the answer names the panel |
| no reader | Declared, but nothing reads it. | No — the answer says so |
/meow config
Everything hangs off the one root:
| Command | Purpose | Permission |
| --- | --- | --- |
| /meow config | The section index: which file, how many keys, which classes. | bukkit.command.meowmc.config (OP default) |
| /meow config list <section> [page] | Paged key list — key, live value, class badge. | same |
| /meow config get <key> | One key: value, file, reader location, class, effect window. | same |
| /meow config set <key> <value> | A validated live write, live and new-conn keys only. | same |
| /meow config diff | Live values that differ from this boot's startup snapshot. | same |
Four structural rules:
listshows only wired keys. The hand-typed unwired key gets the honest refusal: "that key is declared but nothing reads it — a value you set would change no behaviour."getnames the reader's file and cadence —ChunkMap#newTrackerTick, per world per tick. For arestartkey it appends: "takes effect at restart — set it in the web panel."setwrites against a fixed, compiled table, one record per writable key: dotted path, target, Java type, validator, effect-window text, caveat text. It cannot reach a key the table does not name.- The value is parsed and validated by the key's own typed validator —
enum membership, int range, boolean — before any field is touched. An
invalid value answers with the accepted set, e.g.
visibility-mode accepts poll | cached | event.
Writes are live-only
/meow config set writes the live config object for this boot and never
touches a yml file: "applied for this boot — the file is unchanged; set it
in the panel or edit the file to keep it." /meow config diff then shows
exactly what this boot has drifted from the startup snapshot, so an operator
never believes a toggle is persisted.
The reason is the shipped files: config/meowmc-*.yml are hand-curated —
explanatory comments, deliberately tuned values — and a save through the config
system's loader would strip the comments and re-alphabetize the keys. Rather
than ship a second, comment-preserving writer, the persisted write lives in the
panel, exactly once.
World-targeted keys write every loaded world's config object: "applied to all 3 loaded world(s); worlds loaded later read the file."
/meow setup
On a completed server, /meow setup re-opens the preset picker only — the
three-preset dialog from the first-run wizard, applied in memory, for this boot
alone, file untouched. Permission bukkit.command.meowmc.setup is OP-default
like every other subcommand.
The login gate is not re-armed — re-arming it would disconnect every non-operator: "Setup mode stays complete — this re-chooses the wizard preset only."
What stays out of in-game
| Setting | Why |
| --- | --- |
| The tick mode (exec.mode, region threads, the barrier, the grid exponent) | Restart-time and compatibility-carrying — tick modes, set in the panel. Not listed, not set-able. |
| Every restart key | Its readers run once at boot; an in-game flip is a lying command. |
| network.proxy-trusted-cidrs, compat.min/max-client-protocol | Runtime-class but security keys: spoofing is a ban bypass. Viewable with get and list, never set-able in-game. |
| setup.setup-mode | Read once at boot; the runtime authority is the setup state file, which the wizard alone writes. In-game status view only. |
Related
- The web admin panel — the only UI where the persisted write lives.
- In-game analytics — the read side of the same lane.
- Global keys and world keys — every key above with its wired/declared status.
- Permissions — the permission scheme these two subcommands follow.