ReportSystem Documentation
Professional report and moderation system for your Minecraft server
ReportSystem is a comprehensive player reporting and moderation plugin developed for Minecraft servers. Inspired by CS:GO's Overwatch system, it offers community-based review system, automatic replay recordings, and advanced punishment management features.
This documentation is constantly updated. Follow our Discord server for the latest information.
Features
All features offered by ReportSystem
Requirements
| Requirement | Minimum | Recommended | Note |
|---|---|---|---|
| Server Software | Spigot 1.18 | Paper 1.21 | Paper recommended for performance |
| Java Version | Java 17 | Java 21 | Java 21 required for MC 1.20.5+ |
| PacketEvents | 2.0+ | Latest version | Required |
| Punishment Plugin | - | LiteBans | Optional |
The plugin will not work without PacketEvents. The replay system depends on PacketEvents.
Version Compatibility
| MC Version | Status | Note |
|---|---|---|
| 1.21.x | ✅ Full Support | Recommended version |
| 1.20.x | ✅ Full Support | - |
| 1.19.x | ✅ Full Support | - |
| 1.18.x | ✅ Full Support | Minimum supported |
| 1.17 and below | ❌ Not Supported | Java 17 requirement |
Quick Installation (Standalone)
PacketEvents Installation
Download PacketEvents and put it in the plugins folder.
ReportSystem Installation
Put ReportSystem-Spigot.jar file in the plugins folder.
First Start
Start the server. Configuration files will be created automatically.
License Activation
Enter your license key in config.yml and restart the server.
license: license-key: "KB-XXXX-XXXX-XXXX"
You should see [ReportSystem] Plugin enabled successfully! message in console.
BungeeCord/Velocity Setup
Install ReportSystem-BungeeCord.jar on proxy server
Install ReportSystem-Spigot.jar on all backend servers
Use the same MySQL database on all servers
Set bungeecord.enabled: true on each server
bungeecord:
enabled: true
display-name: "Survival" # Server name
database:
type: mysql
mysql:
host: "localhost"
port: 3306
database: "reportsystem"
username: "root"
password: "password"
In network mode SQLite cannot be used. All servers must connect to the same MySQL database.
Database Settings
SQLite vs MySQL
| Feature | SQLite | MySQL |
|---|---|---|
| Setup | Automatic | Manual database creation |
| Network Support | ❌ No | ✅ Yes |
| Performance | Good for small servers | Recommended for high traffic |
| Backup | File copy | mysqldump |
database:
type: mysql
mysql:
host: "localhost"
port: 3306
database: "reportsystem"
username: "root"
password: "strong_password"
pool:
maximum-pool-size: 10
minimum-idle: 2
connection-timeout: 30000
idle-timeout: 600000
max-lifetime: 1800000
General Settings
Enables debug mode. Detailed logs are written to console. Use for troubleshooting.
Language file to use. Available: tr (Turkish), en (English)
Date format. Uses Java SimpleDateFormat format.
Report Settings
Time a player must wait between two reports. 0 = disabled.
Can be bypassed with reportsystem.cooldown.bypass permission.
Maximum reports per minute. For spam protection. -1 = unlimited.
How many times a player can report the same person. -1 = unlimited.
How many days until open reports are automatically closed. -1 = disabled.
Report categories. Shown as options in GUI.
categories: - "Cheating" - "Harassment" - "Spam" - "Griefing" - "Bug Abuse" - "Other"
Replay Settings
Duration of each replay recording. Longer durations mean more data.
How many days until replay recordings are deleted.
7= Recordings older than 7 days are deleted30= Keep for 30 days-1= Never delete (warning: disk may fill up!)
Recording quality. 20 = Full quality, 10 = Half quality (less data)
Distance at which nearby players will be recorded (blocks).
An average 45-second recording takes 50-200 KB. 100 reports per day ≈ 10-20 MB/day.
Overwatch Settings
Minimum number of reviews required before a decision is made on a report.
Percentage of "Guilty" votes required for automatic punishment. 70% = If 2 out of 3 vote guilty, punishment is applied.
Automatic ban duration when consensus is reached (days).
NPC hologram statistics update frequency (seconds).
Reward Settings
XP Settings
| Setting | Default | Description |
|---|---|---|
overwatch.xp.guilty-innocent-xp | 15 | XP for Guilty/Innocent vote |
overwatch.xp.skip-xp | 5 | XP for Skip vote |
overwatch.xp.bronze-xp | 0 | XP required for Bronze rank |
overwatch.xp.silver-xp | 500 | XP required for Silver rank |
overwatch.xp.gold-xp | 1000 | XP required for Gold rank |
overwatch.xp.diamond-xp | 2500 | XP required for Diamond rank |
overwatch.xp.xp-per-level | 100 | XP required per level |
Reward Commands
overwatch:
rewards:
enabled: true
# Her inceleme sonrası
on-review-complete:
- "give %player% diamond 1"
- "eco give %player% 100"
# Sadece Suçlu/Masum oyları için
on-guilty-innocent:
- "give %player% emerald 1"
# Seviye atlama ödülü
on-level-up:
- "broadcast &e%player% &7Overwatch seviye &e%level% &7oldu!"
- "give %player% diamond 5"
# Rütbe atlama ödülleri
on-rank-up:
bronze:
- "broadcast &c%player% &lBRONZE &7rütbesine ulaştı!"
silver:
- "give %player% iron_ingot 32"
gold:
- "give %player% gold_ingot 32"
diamond:
- "give %player% diamond 64"
%player% Player | %verdict% Verdict | %xp% XP | %level% Level | %rank% Rank
Player Commands
| Command | Description | Permission |
|---|---|---|
/report <player> |
Report a player (opens GUI) | reportsystem.report |
/report <player> <reason> |
Report with direct reason | reportsystem.report |
/reports |
View your own reports | reportsystem.view |
Aliases: /rapor, /raporla, /reportplayer
Staff Commands
| Command | Description | Permission |
|---|---|---|
/reports all | List all reports | reportsystem.view.all |
/reports <id> | View specific report | reportsystem.view.all |
/reports accept <id> | Accept report | reportsystem.manage |
/reports reject <id> | Reject report | reportsystem.manage |
/reports delete <id> | Delete report | reportsystem.delete |
Overwatch Commands
| Command | Description | Permission |
|---|---|---|
/overwatch | Open Overwatch main menu | reportsystem.overwatch |
/overwatch stats | View your statistics | reportsystem.overwatch |
/overwatch leaderboard | View leaderboard | reportsystem.overwatch |
/overwatch npc create <name> | Create Overwatch NPC | reportsystem.overwatch.admin |
/overwatch npc remove | Remove nearby NPC | reportsystem.overwatch.admin |
/overwatch npc list | List all NPCs | reportsystem.overwatch.admin |
/overwatch queue add <id> | Add report to queue | reportsystem.overwatch.admin |
Aliases: /ow, /overwatchsystem
Admin Commands
| Command | Description | Permission |
|---|---|---|
/reportsystem reload | Reload configuration | reportsystem.admin |
/reportsystem stats | View system statistics | reportsystem.admin |
/reportsystem info | View plugin information | reportsystem.admin |
/reportsystem debug | Toggle debug mode | reportsystem.admin |
Aliases: /rs, /rsystem
Basic Permissions
| Permission | Description | Default |
|---|---|---|
reportsystem.report | Permission to create reports | Everyone |
reportsystem.view | View own reports | Everyone |
reportsystem.cooldown.bypass | Bypass cooldown | OP |
reportsystem.exempt | Cannot be reported | OP |
Moderator Permissions
| Permission | Description |
|---|---|
reportsystem.view.all | View all reports |
reportsystem.notify | Receive new report notifications |
reportsystem.manage | Accept/reject reports |
reportsystem.punish | Give punishments (ban, mute, kick) |
reportsystem.overwatch | Use Overwatch system |
LuckPerms Example
/lp creategroup moderator /lp group moderator permission set reportsystem.view.all true /lp group moderator permission set reportsystem.notify true /lp group moderator permission set reportsystem.manage true /lp group moderator permission set reportsystem.overwatch true
Admin Permissions
| Permission | Description |
|---|---|
reportsystem.* | All permissions (wildcard) |
reportsystem.admin | Admin commands (reload, stats) |
reportsystem.delete | Permission to delete reports |
reportsystem.overwatch.admin | Overwatch admin (NPC, queue) |
Replay System
How It Works?
When a player is reported, the system records the last 45 seconds
Recording is compressed and saved to database
When staff reviews the report, replay is played as NPC
Viewer can see all movements
Recorded Data
- Player position and direction (every tick)
- Inventory changes
- Block breaking/placing
- Attack animations
- Riding (horse, boat, etc.)
- Nearby players (within 50 blocks)
- Chat messages
Replay Controls
| Item | Function |
|---|---|
| ⏸️ Pause | Pause/resume replay |
| ⏪ Rewind | Go back 10 seconds |
| ⏩ Fast Forward | Go forward 10 seconds |
| 🔴 Stop | End replay |
| 🏃 Speed | Change playback speed (0.5x - 2x) |
While watching replay, other players cannot see you and you cannot interact with the world.
Overwatch System
What is it?
Overwatch is a community-based report review system inspired by CS:GO. Trusted players review reports and vote. If enough "Guilty" votes are received, automatic punishment is applied.
Review Process
Player right-clicks Overwatch NPC
System assigns a random report from queue
Reviewer watches the replay
Makes decision: Guilty, Innocent or Skip
Earns XP and rank progresses
Rank System
| Rank | Required XP | Color |
|---|---|---|
| 🥉 Bronze | 0 XP | Bronze |
| 🥈 Silver | 500 XP | Silver |
| 🥇 Gold | 1000 XP | Gold |
| 💎 Diamond | 2500 XP | Diamond |
NPC System
Creating NPC
/overwatch npc create Overwatch-1
Creates an Overwatch NPC where you are looking.
NPC Features
- Appears with pirate captain head
- Shows hologram statistics
- Opens Overwatch menu when right-clicked
- Automatically restored on server restart
- Cannot be broken and items cannot be taken
NPC Management
/overwatch npc list # List all NPCs /overwatch npc remove # Remove nearby NPC
Punishment Plugins
ReportSystem works fully compatible with the following punishment plugins:
No configuration required. Plugin automatically detects installed punishment plugin.
PlaceholderAPI
If PlaceholderAPI is installed, the following placeholders can be used:
| Placeholder | Description |
|---|---|
%reportsystem_reports_total% | Total report count |
%reportsystem_reports_pending% | Pending report count |
%reportsystem_player_reports% | Reports received by player |
%reportsystem_overwatch_xp% | Overwatch XP |
%reportsystem_overwatch_rank% | Overwatch rank |
%reportsystem_overwatch_reviews% | Number of reviews made |
Frequently Asked Questions
No. Replay system depends on PacketEvents. Plugin will not start.
Average 45-second recording is 50-200 KB. 100 reports per day ≈ 10-20 MB.
According to replay.auto-delete-days setting. Default is 7 days.
Yes. Each viewer sees their own NPCs, they don't affect each other.
No. NPCs are saved to database and automatically recreated.
No. Replay projectiles are harmless and ineffective.
Troubleshooting
- Check if PacketEvents is installed
- Check Java version (minimum Java 17)
- Check console logs
- Check
replay.auto-record: true - Replay may have expired (
auto-delete-days) - Enable debug mode with
/rs debug
- Check MySQL credentials
- Make sure database exists
- Check firewall settings
Support
Thank you for choosing ReportSystem!