Skip to content

Search the store

Find products and categories.

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

FileSyncs
messages.ymlYes
menus.ymlYes
scoreboard.ymlYes
common-messages.ymlYes
common-menus.ymlYes
settings.yml and every other fileNo

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.

CommandWhat it does
/kernel config sourceMakes this server the config source and sends its files to every server.
/kernel config publishSends the source's files to every server again. Only works on the source.
/kernel config pullReplaces this server's synced files with the source's.
/kernel config pull-allMakes 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.

NoticeMeaning
[Watcher] plugins/Toolkit/messages.yml reloadedA file changed on this server. On the source, a synced file is also sent to every server.
[Watcher] plugins/Toolkit/messages.yml reloaded from lobby-1The file came from another server, here lobby-1.
[Watcher] plugins/Toolkit/messages.yml reloaded on this server only (source: lobby-1)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.yml. 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.yml, 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.