> ## Documentation Index
> Fetch the complete documentation index at: https://docs.marioded.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Troubleshooting

> Start with what you see, narrow down the cause, and get your replays working again.

# Troubleshooting

Choose the symptom that matches your setup. Always start with the **first related error in the console**: later "command not found" messages often just mean the plugin did not finish starting.

> [!NOTE]
>
> **Keep these details handy:** Reverse build, Java/server version, installed roles, storage backend, and replay/session ID. They make a problem much easier to reproduce. Redact credentials and license-bearing data before sharing logs.

## What are you seeing?

Click the symptom that matches.

1. Read the first related error in the console, not just the later “command not found.”
2. Confirm Java 21 and a Minecraft/server version supported by your download.
3. Download the correct role from your marketplace purchase and remove any old duplicate jar.
4. Check internet access and permission to write to the plugin folders.
5. Follow the activation instructions included with your purchase.
6. If using SWM/ASP, confirm its installed version and dependencies are compatible.

If the console reports `NoClassDefFoundError` or a missing dependency, check the earlier download/startup errors. Re-download the plugin from your purchase if necessary, and send support the full error if it continues.

[Review installation →](https://docs.marioded.com/owners/installation.md)

* Wait for save completion, not just capture stop.
* Check the replay ID in the save log.
* Verify owner UUIDs and catalog admin permissions.
* Check `open-access` on the server being queried.
* Confirm recorder/lobby/player use the same dataset.
* Check the resolved `storage.recordings-folder` on each role. Blank defaults to `plugins/recordings`; relative paths resolve against the data folder's parent. A folder change requires restart and does not move old recordings or a relative SQLite database automatically.
* Look for SQL startup fallback to private local files.
* Reopen the menu after metadata changes or a newly completed save.

Missing and forbidden replays deliberately look alike through the catalog. This prevents the catalog from revealing unauthorized replay existence.

Use the full replay UUID, including hyphens, from the details menu or hover text. Prefer Watch/Prepare command buttons so you do not need to type it. Short IDs and prefix searches are no longer supported; a replay's display name is not an identifier.

Recorder session arguments use the full UUID from start/status hover text. Omit it to select your command-started recording. A saved clip has a different UUID and cannot identify its source session. Playback session UUIDs are separate from replay UUIDs too. If Watch is absent on a recorder-only server, use Prepare command on the replay server.

* Check for a degraded-terrain result at save time.
* Verify terrain indices and packs/database data were transferred along with events.
* For templates, verify the exact identifier and SWM loader on the player server.
* Confirm relevant chunks were loaded and captured when recording started.
* Try `/reverseplayer resend` to distinguish a delivery issue from missing stored terrain.

If this happens only with `spatial`, confirm recorder and player use the same resolved recordings folder and update both roles, followed by a full server restart. An earlier spatial implementation kept separate in-memory CAS indexes: a player started before capture could miss chunks that the recorder had already saved. The corrected implementation refreshes the published index and prevents an idle reader from overwriting it during shutdown.

Copying only `.rpl` files or an unrelated normal world folder does not restore captured terrain.

[Understand terrain storage →](https://docs.marioded.com/owners/terrain.md)

1. Update the role that owns the menu: standalone player or lobby, then restart that server fully.
2. With the default menu, check for Watch at slot 11, Information at 15, and Back at 22.
3. If you customized `gui.yml`, check item slots and `visible-in` conditions. Information and Back are always visible in the default configuration; Watch requires `ready` after the replay lookup completes.
4. Reopen details several times, including using Back to return to the catalog.

Earlier release builds could lose the framework callback that renders details, leaving the entire inventory empty without a console exception even while catalog cards worked. The corrected release preserves the GUI callbacks. A role's configuration reload does not replace its installed jar or repair a running older build.

If only Watch is missing, also check whether the selected replay is still accessible. Preserve any `Could not load replay details` warning when reporting a lookup failure.

[Review catalog menus →](https://docs.marioded.com/owners/menus.md)

Check that playback is running rather than paused. Then update recorder and player and perform a full server restart instead of Bukkit `/reload`. Make a new short recording that includes both walking and turning.

An earlier capture path relied on a connection-level entity ID that could remain unset after late packet injection or a reload. The initial player snapshot could be present while later movement, rotation, and animation packets were discarded. Capture now uses the same Bukkit player ID as the snapshot. Updating cannot recover events that were already discarded from an older recording.

Update the player role and restart it. An earlier legacy playback path wrote the leather color in the wrong item-data shape on servers before 1.17, so the client ignored it. The corrected path writes the RGB integer expected by those versions.

Try a short recording with an obviously dyed piece of leather armor. If the recording already contains the color, corrected playback can display it; a missing recorded value requires a new capture. Include both the recording and viewing server versions if the issue persists.

* Availability must be enabled on both lobby and player.
* Check matching backend selection and endpoint/database.
* For database availability, SQL storage must have actually opened.
* Check heartbeat errors and the configured timeout; timeout must exceed two ping intervals.
* Confirm each player node has its own safe node ID.

A success result means a transfer message was sent, not that the proxy accepted it. Check proxy server registration, exact node names, network reachability, and BungeeCord-channel compatibility. On Velocity, check its plugin-message compatibility setting.

If the player moves but playback does not start, check the player's storage access and pending-handoff processing. Handoffs expire after five minutes and are consumed once. A load failure on arrival can disconnect the viewer; keep that server's log.

[Review network setup →](https://docs.marioded.com/owners/network.md)

Standalone player menus are created only when availability is disabled at startup. In network mode, use the lobby catalog. Changing the YAML mode without restart does not create/remove the already constructed runtime components.

Reverse records supported gameplay, not a video of each player's screen. Seeking does not replay every earlier sound or animation.

Sounds are recorded only when your integration declares them through `recordWorldSound`/`recordSessionSound`; personal sounds sent to a single player are never recorded by the plugin. If an expected sound is missing, check that the emission point calls the recording API.

Try a short recording of the specific action. Custom plugin screens and resource-pack effects may behave differently from ordinary world activity.

An older Minecraft version cannot display every block added in a newer one. For the most predictable result, record and watch on the same supported Minecraft version. If a block is still missing, include the two server versions and replay ID in your support report.

Playback ends after the final tick carrying recordables, not after the wall-clock recording duration. A quiet tail can therefore disappear from playback. Use the HUD's timeline total rather than its recorded-duration field when diagnosing this.

Check that recorder, player, and any replay extensions use compatible releases. A recording created with a different version or a missing extension may not load. Do not manually edit the recording file; keep a copy and contact support with the error and the versions used to record and watch it.

* Use MiniMessage tags, not `&` color codes.
* Menu slots are zero-based; player hotbar slots are 1–9.
* Visibility lists require all listed states, not any one of them.
* Check materials supported by your server.
* Disable conflicting scoreboard/action-bar/inventory writers during diagnosis.
* Keep valid speed/interval lists and unique enabled hotbar slots.

[Review display settings →](https://docs.marioded.com/owners/display.md)

## Is the feature available?

Check the [command guide](https://docs.marioded.com/owners/commands.md) and your release notes for the available features. There is no video-export, automatic storage-migration, or retention-scheduling command. Arena bounds and participant selection are available to game plugins through the Java API.

Clips use `/reverserecorder clip`, with either a duration or `--from`/`--to`. No recording mode or rolling-buffer configuration is needed. For startup errors naming an unknown `storage.backend` or `adapter`, use the exact built-in ids in [configuration](https://docs.marioded.com/owners/configuration.md); installing an extra plugin does not register a factory for those selectors.

## Still stuck?

Use the [support checklist](https://docs.marioded.com/owners/operations.md) to collect a reproducible case. Include the exact command, expected result, observed result, and first relevant stack trace.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.