Docs · Settings

In STYGION Keystone

Settings

Four ways to change the same thing, one file per module, and no restart.

Updated

Settings

Four doors, one room

Every setting can be changed four ways, and they all write through the same door:

  • the editor — /keystone panel, the Settings screen,
  • the console — /keystone set <name> <value>,
  • the file — config/keystone/<module>.toml,
  • the local API — for your own tooling.

Saving applies immediately. Nothing here needs a restart and nobody gets kicked.

Where they live

One file per module, under config/keystone/:

File What it holds
keystone.toml The mod itself: debug logging, masked commands, and the local API's address and port.
discord.toml The bridge: token, server, channels, linking, bans, console mirror, alerts.
operations.toml Restarts, backups, cleanups, notices, the screens people see when they are kicked or the server is closed.
progress.toml Ranks earned by playtime.
votes.toml The vote listener, rewards, streaks and party goals.
tickets.toml Kinds of ticket, how many at once, cooldown.
accounts.toml How somebody proves an account is theirs on an offline server.
skins.toml Real skins on an offline server.
moderation.toml Bans, and whether the game's own /ban and /kick write here.
tablist.toml What the tab list shows.
bench.toml The load test and what it shares.
assistant.toml The in-game assistant's model.

Every file is written with its own comments in it. The file is the reference — what a setting means is written next to the setting, not in a table somebody has to keep in step.

A name is the whole path

/keystone set bench.radius 512 — the module, then the setting, with dots for sections. discord.link.required-to-join, operations.restart.when, operations.clean.over-entities, bench.share-live. A short name without the module is not something the console knows, and it answers with the nearest things that do exist. The editor shows the same names, so a thing somebody tells you to change is a thing you can type.

/keystone set <name> with no value says what it is now; /keystone set on its own lists everything.

The trap: a default that moved

A changed default does not reach a server that already stored the old value. Once a setting is written into the file it is that server's answer, and a later version of Keystone shipping a better default changes nothing for it. That cost us two bad measurements on 6 September 2026: bench.radius stayed at 256 on a server whose default had moved, and nobody noticed until the numbers came back wrong.

If you are following advice that says "the default is now X", check what your own file says before believing it.

Putting one back

keystone set history
keystone set undo <number>

Every change is recorded with who made it, from where, and what the value was before. A secret's old value is never kept — the history says it was replaced.

What is never written down

Secrets are values like any other and go in the same files, which is why config/keystone/ belongs in your backups and not in a public repository. Keystone masks its own sensitive commands out of logs, consoles and audit lines; keystone.mask-commands adds another mod's, if it has one that takes a password.

Did this page help?

Opens the feedback panel with this page attached, and lands in the same queue as everything else.