This plugin allows for you to record a player that your AntiCheat has punished from your server and watch the hack at a later time. The hacker could be the only person online and you would still have video evidence of them hacking.
Feel free to request other AntiCheats to be supported.
Videos:
With this you can have video proof of someone hacking on your server when they appeal and claim to be "hitting grass"
Features Discord Integration. Optionally send a message to a Discord Channel whenever a recording is created.
Requires a supported AntiCheat and AdvancedReplay to be installed and running on your server.
NOTE: Your AntiCheat has to be configured to punish someone in order to record. If players never get punished you will not get a recording.
Setup: Vulcan: Set "enable-api" in Vulcan's config to "true" Soaroma: Set "enableAPI" in Soaroma's config to "true" Sparky: Set "API.Events" in Sparky's config to "true"
For best results, follow this configuration guide for Advanced Replay:
1. Enable MySQL to store the files (This plugin can generate a lot of recordings if you have a lot of hackers. Depending on your recording length this can take up quite a bit of space.)
In AdvancedReplay config.yml change the following values:
Code (YAML):
cleanup_replays: 10
# This makes replays delete when they're 10 days old hide_players: true
replaying:
world:
reset_changes: true
recording:
blocks:
real_changes: false
chat:
enabled: true
Default Configuration:
Code (YAML):
Intave: #Configuration section for Intave Punish-Commands: #What command should we listen to in Intave's config? - ban
- kick
- intave
General:
Report-Cooldown: 3
# Cooldown in minutes before reporting again. Always-Save-Recording: false
# Save a recording even if a player wasn't punished by the anticheat Save-Recording-On-Disconnect: false
# Save a recording if a player disconnects before being punished (Useful if a staff member bans them before the anticheat does) Overwrite: false
#Should we overwrite a recording if a player did the same hack on the same date? Check-Update: true
#Be notified when this plugin updates Nearby-Range: 30
#How far to look for nearby players to include in the recording? NOTE: The formula is 1/2 of what you put here in each. So it will be 15 blocks in each +x and -x for a total of 30 blocks, etc. Recording-Length: 2
#Length in minutes of a recording. Recording will not be created until this time has passed from the start of a recording. Notify-Staff: true
#Send a message to staff when a replay is saved. Vulcan:
Disabled-Recordings: #Any checks you do not want to record. These are examples, replace/add as many as you want NOTE: Must be lowercase - timer
- strafe
Themis:
Disabled-Actions: #Themis Actions to disable, refer to Themis config.yml - notify
Grim:
Punish-Commands: - ban
- kick
Discord: # Send a recording notification to a Discord Channel Enabled: true
Red: 0
Green: 255
Blue: 0
Webhook: Enter webhook here
Avatar: https://i.imgur.com/JPG1Kwk.png
#Default Vulcan avatar, feel free to change this Username: VulcanReplay
Server-Name: Server
Usage:
Most commands and permissions are handled by AdvancedReplay The only commands AntiCheatReplay adds are a reload command and report command
Basic usage: /replay list Will print a list of recordings /replay play <recording> Play a recording /replay delete <recording> Deletes a recording /replayreload vulcanreplay.reload Reload AntiCheatReplay /report <player>AntiCheatReplay.report Report a player and create a recording.
Recording does not show any mobs/entities other than Players. You may see a player take damage in a recording from what appears to be nothing, but it could be a mob. Again, this is an issue that the AdvancedReplay developer has to fix.
Discord: Please join my Discord to report any bugs.
Disclaimer: This plugin should be used in conjunction with the logs that are provided by your AntiCheat. This should not be your only proof that a player is hacking
Developer API:
AntiCheatReplay has multiple events that can be listened to and cancelled
RecordingStartEvent RecordingSaveEvent
both have the methods:
Code (Java):
public Player getPlayer
(){} publicString getReplayName
(){}
PlayerReportEvent
Code (Java):
public Player getReporter
(){} public Player getTarget
(){} publicString getReason
(){}