Configure Reverse
Reverse generates a full, commented template the first time it starts. Pick the file for the plugin you are configuring:
Each role also reads a separate
license.yml in its own data folder. Its license-key is used during startup, not refreshed by reload. See activation.
Merge examples into the generated file. The snippets below show individual sections, not complete replacement configurations. Keep the other generated sections.
<...>, :, #, or other YAML-sensitive characters.
Shared storage section
Every role hasstorage in config.yml:
Recorder settings
adapterselects a protocol capture backend shipped with this build. The current built-in id ispacketevents. An unknown id fails startup with the known ids; installing another plugin does not register an adapter. Changing it requires restart.chunk-capture-radiuscontrols the loaded-chunk capture radius around active players. Radius 4 describes a 9×9 horizontal area. It does not mean Reverse will load or generate every chunk within that square. See recorder capture.
Player settings
adapterselects a protocol playback backend shipped with this build. The current built-in id ispacketevents. Selection is case-sensitive, and an unknown id fails startup with the known ids. Changing it requires restart. See protocol adapters for the implementation boundary.playback-world-namenames the shared void playback world. Use a dedicated name, not a gameplay world you expect Reverse to reconstruct.hide-real-playerscontrols extra cross-world player hiding. Same-world players outside a viewer’s replay session are already hidden. Changing it requires restart.open-accessgives every viewer the catalog’s administrative access policy. This includes management operations, not just viewing. Keep it false for owner-private recordings.guiconfigures standalone catalog/details menus. These are initialized only when availability is disabled at startup.
Network settings: player and lobby
lobby-1 instead. Recorder does not have this network section.
Backend and node identifiers accept 1–64 characters from
A–Z, a–z, 0–9, _, ., and -.
Redis coordinates nodes; it does not replace SQL or disk replay storage. See the complete network setup.
Availability is opened once at startup from the built-in SQL/Redis backends. Installing a third-party plugin does not inject another configured backend. The player and lobby still expose their existing availability service through the API; integrations borrow that service rather than reopen or replace the running backend.
Lobby settings
The lobby keepsstorage, network, and open-access in config.yml. Text lives in messages.yml, and menus live in gui.yml. Its open-access policy has the same administrative implications as the player’s. It does not have a player playback-world or recorder capture-radius section.
Messages, menus, and display
- Menus documents
cataloganddetailsingui.yml, item fields, actions, visibility states, and placeholders. - Display documents
layout.yml, HUD, sidebar, and MiniMessage. - Every role’s messages live in
messages.yml. Player/recorder retain their role sections; lobby message keys are at the root.
gui into gui.yml without the gui: wrapper. For lobby messages, copy the contents of messages into messages.yml without the messages: wrapper. Embedded sections in config.yml are no longer read.
Which changes need a restart?
Reload handlers update selected runtime settings. Do not assume a changed YAML value recreated an existing database pool or network backend. See operations.
Changing
storage.recordings-folder does not move or import recordings. Stop the affected servers and transfer the complete dataset yourself before restarting with the new path; see storage and backups.
The configuration generated by your installed release is the full, authoritative list of available settings.
Customize the experience
- Style the playback screen in Hotbar, HUD, and messages.
- Restyle the catalog and details menus in Catalog menus.

