Skip to main content

Terrain and templates

A replay needs a starting scene as well as recorded actions. This guide explains where that scene comes from and how to make it available on your viewing server.
Only here because terrain is missing or you use SWM? For a normal Bukkit world, the recorder captures terrain automatically — you usually don’t need to do anything on this page.

Why terrain is separate

Replay events tell the player what changed, not what every unchanged chunk looked like. Reverse stores the base terrain out of band so recordings do not embed a complete world in each .rpl file. The replay’s terrain identifier locates this base scene:
  • Captured world: normally the recording session UUID as a string.
  • Template recording: the explicit template name.
  • Missing/degraded terrain: an empty identifier may indicate that no usable base terrain was retained.
The recorded Bukkit world UUID is a separate value. Do not rename terrain folders to match that UUID and expect routing to work. Clips are a separate case: each export gets a fresh replay UUID and copies available source terrain under that UUID, even if the source uses a template. On successful copy, the clip no longer needs the source session or template to provide its base scene. Terrain-copy failure is reported as degraded; it does not discard successfully saved events.

Ordinary Bukkit worlds

Without an explicit template, the recorder captures the terrain available when recording starts. Keep the relevant arena loaded before starting; Reverse does not generate missing parts of the world just to fill the recording. Block baselines and block-change events complement this terrain. Baselines describe the pre-replay block value for touched positions so backward seek does not consult a live world that may have changed since recording. For arena recording, ensure the arena is loaded before starting. API bounds can restrict relevant chunk columns, but payloads preserve their full vertical extent.

SWM and ASP-backed worlds

SlimeWorldManager/ASP support is optional. Use it when your arenas or templates are managed by that world manager. Ordinary worlds do not require it. Reverse does not install SWM/ASP, create SWM loader credentials, or export a template for you.

Setup checklist

  1. Install the world manager build compatible with your server and Reverse distribution.
  2. Configure the world’s storage loader in that world manager.
  3. Ensure the world/template exists and can be read through that loader.
  4. Set Reverse’s storage.slime.loaders to the loader names to probe, in order.
  5. Make the same template data available to every replay server that may receive the recording.
  6. Restart and run a short template replay test.
The first loader that reports the world wins. Put a local file loader first when appropriate to avoid unnecessary remote database probes. Loader names and credentials belong to SWM’s own configuration, not storage.database.

Recording against a template

The template is an explicit choice. The recorder does not infer it from the world name or a filename prefix. A bare .slime suffix may be normalized by SWM resolution, but use a plain canonical template name in operations. Because template mode skips live terrain capture, a wrong template may produce correct events over the wrong base scene. Confirm that the live arena was built from the same template version and that the replay server resolves the same asset.
Templates must exist on the viewing side too. A template available only to the recorder does not give a separate replay machine access to its terrain.
Bounds and an explicit template are mutually exclusive in the recording API. There are no command flags for bounds or participant filtering.

Make the complete scene available

The player server needs access to the recording’s saved terrain or the complete template it references. Sharing a replay ID or copying the event file alone does not provide that terrain.

What viewers see

Viewers see the saved terrain in the dedicated replay world. To fix missing ground, check the recording storage or selected template; copying an unrelated normal world folder onto the replay server will not repair it. If a recording is degraded, preserve its logs and event data. Fix the capture/backend/template cause for future recordings; restarting playback cannot recreate an initial snapshot that was never saved. Still seeing missing ground? Continue to Troubleshooting.