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.