Skip to content

Replay viewer config (replay.yml)

The Strux Mason

About This Documentation

These docs were generated with AI assistance and are continuously improved.

The in-world replay viewer is its own plugin (StruxReplay). All of its settings live in one file, replay.yml. This page lists every key, what it does, and its default.


Where is it?

After the replay plugin runs once:

plugins/StruxReplay/replay.yml

Edit it, then restart the server to apply changes. Delete a key to use its default. Delete the whole file to reset everything — a fresh copy is written on the next start.


Every key

recordings-dir

Where the viewer looks for recordings. By default this points at the strux plugin's own recordings/ folder, so the two plugins share files out of the box.

Default: plugins/StructuralIntegrity/recordings

stage.origin-x / stage.origin-y / stage.origin-z

Where in the world a replay is rebuilt. Each replay is anchored on the recording's lowest corner and shifted to this spot. Pick an empty, flat area away from real builds so a replay never paints over something you care about.

Defaults: 0, 100, 0

stage.origin-strategy

How the stage is placed.

  • fixed — always at the origin above (the default). Several replays stand side by side automatically.
  • near-viewer — reserved for a future "build it where I'm standing" mode. For now it behaves exactly like fixed.

Default: fixed

max-concurrent-viewers

How many people can open their own replay at the same time. Each one builds a stage in the world side by side, so this limits how many stages exist at once. People who join someone else's replay (see Watch together) do not count — they share a stage. Lower it on small servers to save world space.

Default: 8

timeline-cache-size

How many recently-opened replays to keep ready in memory. Opening a recording re-runs the whole physics simulation, which is the slow part. Once built, the result is kept so opening the same recording again is instant. Raise this if your team reviews the same handful of matches over and over; lower it to save memory.

Default: 4

sidecar-enabled

Save the built replay next to the recording as a .strxt file. Building a replay means re-running all the physics, which is slow for a big match. With this on, that work is done once ever per recording: the next time anyone opens it — even after a server restart — the saved .strxt is read instead of rebuilding. It is thrown away automatically if the recording changes or strux is upgraded, so it never shows stale physics. Turn it off if your recordings folder must stay read-only or tidy.

Default: true

capture-stress

Record extra stress numbers while building a replay, so the visual debugger can show how load moved through the structure before it fell. This costs a little extra build time and saved-file size. Turn it off if you only want plain block playback and never use the stress/flow debug overlays.

Default: true

seek-mutations-per-tick

How many stage blocks a seek may change in a single tick. Jumping across a big collapse can mean thousands of blocks appear or vanish; doing that all at once would freeze the server for a moment. Instead the change is spread over several ticks (a brief "seeking…" shows on the boss bar). Lower this for weaker servers; raise it for snappier seeks on strong hardware.

Default: 2000

smoothing.max-changes-per-tick

How many block changes playback may show per tick. At high speed (say 8×) a single tick can cover a whole explosion whose hundreds of blocks would all pop at once and stutter. This caps how many of those block changes are shown per tick and lets the rest catch up over the next few ticks, so fast-forward animates smoothly. The clock still keeps perfect time — only the picture is spread out. Raise it for snappier fast-forward on strong hardware; lower it to be gentler on weak clients.

Default: 256

captions-enabled

Whether the always-on playback caption (the plain-words line on the action bar that says "what is happening now") starts on for a viewer. Each viewer can still flip it with the Captions button in the control menu; this only sets the starting state.

Default: true

tour-hold-seconds

How long the guided tour waits on each moment before moving to the next. Higher means a slower, more relaxed tour; lower means a brisk flythrough. Clamped to a minimum of 0.5 seconds.

Default: 4.0

auto-teleport

Whether the person who loads a replay is automatically teleported to a viewing spot overlooking the rebuilt structure when loading finishes. Turn it off if you would rather players walk to the stage themselves. Only the loader is moved — people who join someone else's replay are placed by the join, not by this.

Default: true

debug.max-displays

The most coloured overlay blocks the visual engine debugger shows at once (the 🔬 hotbar tool, which needs the struxreplay.debug permission). A heat map on a huge keep could want thousands of glowing overlays, which would lag the client — so the debugger shows only the ones nearest you, up to this many. Lower it on weak hardware. The same cap also limits how many blocks a highlight (the glow on a clicked moment's blocks) lights up at once.

Default: 512


Faster loading with FastAsyncWorldEdit

Loading a replay rebuilds the whole structure into the stage. For a big keep that is a lot of blocks to place at once.

If you have FastAsyncWorldEdit (FAWE) — or plain WorldEdit — installed, the replay viewer uses it automatically. It places the whole structure in one fast, off-the-main-thread batch instead of one block at a time. On a big build this turns a multi-second freeze when you run /replay load into a near-instant load, and the server does not stutter for everyone else while it happens.

You do not have to turn anything on. The viewer checks for WorldEdit/FAWE when it starts and picks the fast path on its own. The server log says which one it chose, for example:

Replay stage writer: FastAsyncWorldEdit / WorldEdit (async bulk EditSession)

If you have no WorldEdit/FAWE, the viewer falls back to placing blocks one at a time (the log says vanilla (per-block, main thread)). Everything still works the same — it is just slower to load big builds. Installing FAWE is the easy fix.


Permissions

Permission What it allows Default
struxreplay.use Open and watch replays op
struxreplay.driver Host a shared replay others can join and watch op
struxreplay.debug Use the visual engine debugger overlays/inspector op