BetterReplay icon

BetterReplay -----

Packet Based Player Recorder



BetterReplay allows for recording players and later playing back that recording.

Requires PacketEvents to be installed on the server

[​IMG]

Features:
Folia Support
Record player movements
Record player inventories
Record player animations
Record mobs
Record block changes caused by a recorded player
Teleport to recorded players inside of a recording
Start/Pause/Stop replays
Skip forward or backward during replays
Right click a recorded player to view their inventory
MySQL or Flat file storage

Commands:
/replay start <name> <players> [Duration In Seconds]
- Start a recording
/replay stop <name> - Stop recording a replay
/replay play <name> - View a replay
/replay list - List all recordings
/replay delete <name> - Delete a recording

Permissions:
replay.*:
description: Gives access to all replay commands
children:
replay.start: true
replay.stop: true
replay.list: true
replay.delete: true
replay.start:
description: Allows starting a new recording
default: op
replay.stop:
description: Allows stopping an active recording
default: op
replay.list:
description: Allows listing saved replays
default: op
replay.delete:
description: Allows deleting saved replays
default: op



Developer API:

Code (Java):
RecordingSaveEvent
RecordingStartEvent
RecordingStopEvent
ReplayStartEvent
ReplayStopEvent


Code (Java):
ReplayManager replay = ReplayAPI. get ( ) ;

public interface ReplayManager {

    /**
     * Starts recording a new replay session.
     *
     * @param name The session name
     * @param players The players to record
     * @param durationSeconds Duration in seconds (-1 for infinite)
     * @return The active ReplaySession
     */

    void startRecording ( String name, Collection <Player > players, int durationSeconds ) ;

    /**
     * Stops a running recording
     *
     * @param name The session name
     * @param save Whether to save the recording
     * @return true if successfully stopped
     */

    boolean stopRecording ( String name, boolean save ) ;

    /**
     * Get all currently running recording sessions.
     */

    Collection <?> getActiveRecordings ( ) ;

    /**
     * Start a replay
     * @param viewer
     * @return
     */

    CompletableFuture <Optional <ReplaySession >> startReplay ( String replayName, Player viewer ) ;

    /**
     * Stop a replay
     * @param replaySession
     * @return
     */

    boolean stopReplay ( Object replaySession ) ;

    /**
     * Collection of all active replays
     * @return
     */

    Collection <?> getActiveReplays ( ) ;

    /**
     * List of all saved replays
     * @return
     */

    CompletableFuture <List <String >> listSavedReplays ( ) ;

    /**
     * Get a replay file
     * @param name
     * @return
     */

    CompletableFuture <Optional <File >> getSavedReplayFile ( String name ) ;

}
 


More documentation to follow

For support, join the discord





Resource Information
Author:
----------
Total Downloads: 59
First Release: Mar 14, 2026
Last Update: Mar 18, 2026
Category: ---------------
All-Time Rating:
2 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings