Network config sync
Keep messages, menus and scoreboards the same on every server by picking one Kernel config source, with the commands and the Watcher notice.
How it works
Kernel, which comes with Bridge, keeps the text files of every Scala plugin the same across your servers. One server is the config source. Its files are the ones every server uses.
- Editing a synced file on the source sends it to every server. Each server reloads it straight away.
- Editing a synced file on any other server only changes that server.
- When a server starts, the source sends its files and every other server pulls them.
The source is stored in Redis, so every server sharing the Stash Redis sees the same one.
What syncs
| File | Syncs |
|---|---|
messages.yml | Yes |
menus.yml | Yes |
scoreboard.yml | Yes |
common-messages. | Yes |
common-menus. | Yes |
settings.yml and every other file | No |
This applies to every plugin built on Kernel, such as Toolkit, Sentry and the minigames. A plugin can mark another file to sync too. Settings never sync, so each server keeps its own.
Pick a source
Run /kernel config source on the server whose files are right. It becomes the source and sends its files to every server.
Running /kernel config source on another server later moves the source there and sends that server's files to everyone.
Commands
All four need kernel.admin.
| Command | What it does |
|---|---|
/kernel config source | Makes this server the config source and sends its files to every server. |
/kernel config publish | Sends the source's files to every server again. Only works on the source. |
/kernel config pull | Replaces this server's synced files with the source's. |
/kernel config pull-all | Makes every server replace its synced files with the source's. |
Use pull to undo local edits on one server. Use pull-all to undo them everywhere.
The Watcher notice
Each time a config file reloads, Kernel prints a line to the console and to online players with kernel.watcher.
| Notice | Meaning |
|---|---|
[Watcher] plugins/Toolkit/messages. | A file changed on this server. On the source, a synced file is also sent to every server. |
[Watcher] plugins/Toolkit/messages. | The file came from another server, here lobby-1. |
[Watcher] plugins/Toolkit/messages. | A synced file was edited on a server that isn't the source. The change stays here. |
The wording is configReloaded, configReloadedFrom and configReloadedLocal under kernel in plugins/Kernel/messages.. That file syncs too, so change it on the source.
Edit a message for the whole network
Find the source
Run /kernel config publish. On any server but the source, the reply names the source. On the source, it sends the files again, which is harmless.
Edit the file on the source
Open the plugin's file on the source server, for example plugins/Toolkit/messages., change the message and save.
Check it reached every server
The source shows reloaded. Every other server shows reloaded from <source> and uses the new message straight away. No restart or reload command is needed.
If you edited the file on the wrong server, copy the change to the source, then run /kernel config pull on the server you edited.
Network colours
<primary> and <secondary> in messages are the network colours. Set them with /networkmetadata, not in Kernel's files. See Proxy and network.