
Report System
ReportSystem: One of your must haves for tracking reports in-game on Discord. Track all reports easily whilst keeping a easy ReportSystem for your members to use.
Report System
ReportSystem is a structured reporting framework designed to bridge the gap between players and the staff team. ReportSystem has a simple GUI, Discord webhook integration, and persistent database tracking. ReportSystem makes a simple reporting process all without cluttering your server.
ReportSystem also includes a suspicious player tracking system, giving staff a dedicated space to flag players based on same IP's or fast rejoining. Combined with user management tools, punishment history records (ReportSystem punishments. Not any third party punishment plugins), and per-player reports. This means it provides staff with the best possible context you can get from a in game simple report (another reporting system for proofs is recommended, this plugin is mostly for in game active staff.)
Made for 1.17-26.1.2 | Tested versions: 1.17, 1.19.2, 1.21.8, 1.21.11, 26.1.2.
Key Features
- Full GUI report submission with reason selection and extra fields (and options for custom fields)
- Full report management. Open, high/low prioritys, and closed states.
- Live Discord webhook embeds
- Suspicious player tracking system separate from the report queue. Marks same IP and fast rejoining as suspicious (Shared Local IP's such as 192 or 127 are not saved)
- Player report and punishment history viewers
- Staff tools like the report detail GUI with close reason categorization
- Timeout and block system for users who abuse /report
- Chat input capture for extra detail or note entry
- MySQL and SQLite storage with async database
- Configurable colors, titles, webhook appearance, and confirmation messages
- Sound and visual feedback throughout all GUI interactions
- Easy font changes in config
- Easy report reason changes in config
Permissions
/report | reportsystem.report
/reports | reportsystem.reports
/suspicious | reportsystem.suspicious
/rsreload | reportsystem.reload
reportsystem.advanced | General advanced access
reportsystem.moderate | ReportSystem moderation
reportsystem.report.exempt | Exempt from reporting
reportsystem.suspicious.exempt | Exempt from suspicious flagging
reportsystem.punishment.exempt | Exempt from plugin punishments
reportsystem.alert | Alerts for reports / suspicious flags
reportsystem.bypass | Cooldown bypass if applicable
reportsystem.updates | Notifications for plugin updates
Commands
| Command | Description |
|---|---|
| /report | Opens the report form GUI |
| /reports | Opens the staff report management GUI |
| /suspicious | Opens the suspicious tracking GUI |
| /rsreload | Reloads plugin config |
| /rs | ReportSystem help menu |
| /rs alerts | Enables notifications |
config.yml
# ------------------------------------------------------------------------------------
# ReportSystem Configuration
# /plugins/report_system (https://modrinth.com/project/UELBYZcj)
# Made by WhitlockLC
# ------------------------------------------------------------------------------------
# Reasons players pick when submitting a player report.
reasons:
- "&cCheating / Hacking"
- "&6Harassment / Toxicity"
- "&eGriefing"
- "&bSpamming"
- "&dInappropriate Name / Skin"
- "&aRule Breaking"
- "&fExploiting Bugs"
# Reasons players pick when submitting a bug report
bug-report-reasons:
- "&bClient / Visual Glitch"
- "&bItem Duplication / Exploit"
- "&bChunk / World Loading Issue"
- "&bPlugin Malfunction"
- "&bProgression Broken"
- "&bEconomy / Balance Issue"
- "&eOther"
# Staff report settings.
staff:
# LuckPerms group names that are considered staff
groups:
- "staff"
- "helper"
- "moderator"
- "admin"
# Custom reasons for staff reports. Falls back to the main reasons list if empty
report-reasons:
- "&cAbuse of Power"
- "&6Inappropriate Behaviour"
- "&eIncompetence / Negligence"
- "&bUnfair Treatment"
- "&dBribery / Favouritism"
# If true, the staff picker will also show offline staff members that
# have logged in recently (uses LuckPerms user cache, may miss some offline staff)
show-all-offline: false
# Message sent to players after they submit a report. Use & for color codes
confirmation-message: "&aYour report has been submitted!"
# Alert notification settings (for players with reportsystem.alerts permission)
alerts:
# Prefix shown before every alert message. Use & for color codes
prefix: "&6[ReportSystem]"
# Sounds played during GUI interactions
sounds:
button-click: UI_BUTTON_CLICK
cycle: ITEM_BOOK_PAGE_TURN
submit: ENTITY_PLAYER_LEVELUP
cancel: BLOCK_NOTE_BLOCK_BASS
priority: BLOCK_ANVIL_USE
delete: ENTITY_ITEM_BREAK
open: BLOCK_CHEST_OPEN
# Suspicious player detection
suspicious:
fast-rejoin:
enabled: true
times: 4
seconds: 60
same-ip:
enabled: true
# Flag players who submit an unusually high number of reports in a short window
frequent-reports:
enabled: true
# Flag if a player submits this many reports
count: 5
# within this many seconds
seconds: 300
# LuckPerms group names that are exempt from ALL suspicious detection
# Any player whose primary group (or any inherited group) is in this list
# will never appear in /suspicious regardless of their activity
exempt-groups:
- "developer"
- "owner"
# Auto-priority based on LuckPerms groups
auto-priority:
enabled: false
high-priority-groups:
- "vip"
- "premium"
low-priority-groups:
- "new"
- "trial"
# Server selector in the report form
server-selector:
enabled: false
options:
option-1:
display: "&aSurvival"
option-2:
display: "&bCreative"
option-3:
display: "&cSkyblock"
# Discord webhook integration
discord-webhook:
enabled: false
url: ""
color-open: "#FFFFFF"
color-closed: "#44BB44"
color-priority: "#FFAA00"
color-low-priority: "#AAAAAA"
# Color used for bug reports (when not priority/closed)
color-bug: "#00AAFF"
# Color used for staff reports (when not priority/closed)
color-staff: "#FF4444"
title: "Report #{id}"
footer: "ReportSystem"
show-timestamp: true
thumbnail-enabled: true
fields:
show-reported-player: true
show-reporter: true
show-reason: true
show-discord: true
show-server: false
show-notes: true
show-status: true
show-priority: true
show-server-ip: true
labels:
reported-player: "Reported Player"
reporter: "Reporter"
reason: "Reason"
discord: "Discord Contact"
server: "Server"
notes: "Notes"
status: "Status"
priority: "Priority"
server-ip: "Origin Server"
# Cross-server sync
sync:
server-name: "Server-1"
database:
type: sqlite
mysql:
host: localhost
port: 3306
database: reportsystem
username: root
password: ""
pool-size: 5
redis:
enabled: false
host: localhost
port: 6379
password: ""
channel: reportsystem-sync
# Server IP tagging
server-ip:
enabled: false
ip-override: ""
server-names:
"192.168.1.100": "Survival"
"192.168.1.101": "Creative"
"192.168.1.102": "Skyblock"
show-in-discord: true
label: "Origin Server"
# Timezone used for report timestamps
# Full zone IDs: America/New_York, America/Chicago, America/Denver,
# America/Los_Angeles, Europe/London, Europe/Paris, Asia/Tokyo, UTC, etc
timezone: America/New_York
# Update checker settings
update-checker:
# Set to false to disable all update notifications
enabled: true
# If true, online staff will be notified in-game on join
notify-in-game: true
