Report System
Velocity proxy reports powered by Discord and MariaDB.
A powerful, high-performance reporting solution for Velocity proxy servers. This plugin bridges the gap between your Minecraft server and staff team by creating dedicated Discord channels for every report, complete with automated web transcripts.
Features
Automatically creates a unique text channel in your Discord server for every new report.
Generate and host professional chat transcripts (including media) when a report is closed.
Optional settings to prevent players from maliciously reporting administrators.
Prevent spam with an advanced 'Greedy Token' system to rate limit report creation.
As a Velocity proxy plugin, it seamlessly handles reports across your entire network.
Persistent, high-performance data storage for all report logs and statuses.
Compatibility
Commands & Permissions
| Command | Description | Permission |
|---|---|---|
/report <player> <reason> | Submit a new report | reports.report |
/reports | Open the report management list | — |
/reports view-open | View your own open reports | — |
/reports reload | Reload config and language files | reports.reload |
/reports info <id> | View detailed report data | reports.info |
/reports close <id> | Close an active report | reports.close |
/reports delete <id> | Remove report from database | reports.delete |
/reports admin view-open | View all open reports on the network | reports.admin.view |
/reports admin view-closed | View all closed reports on the network | reports.admin.view |
/reports admin view-player sent <p> [status] | View reports a specific player has sent | reports.admin.view |
/reports admin view-player received <p> [status] | View reports filed against a specific player | reports.admin.view |
/reports admin ban-session <p> | Block a player from using /report | reports.admin.ban |
/reports admin unban-session <p> | Restore a player's ability to report | reports.admin.ban |
Documentation & Setup
1Pre-requisites
You must have a MariaDB database for persistent data storage. You also need to register a new application on the Discord Developer Portal to obtain a Bot Token and Application ID. Ensure your Discord server has a specific Category prepared where the bot can spawn the report channels.
2Bot Configuration
Place the plugin in your Velocity plugins folder and start the server once to generate the config.yml. Fill in your MariaDB credentials, and populate the discord-bot section with your Bot Token, Guild ID, Category ID, and Audit Log Channel ID.
3Transcripts Setup
To enable web-based transcripts when reports are closed, generate an API key at space.xap3y.eu. In your config, set discord-bot.transcripts.enabled to true and paste your generated key. You can also optionally archive media files (images/videos) sent directly in Discord!
Default Config
prefix: "&7[&cReports&7] &r"
require-permission: false # Permission: reports.report
notify-sound: "entity.experience_orb.pickup"
notify-sound-source: "MASTER"
notify-on-join: true
notify-delay-seconds: 5
announce-solved: false # Reply to reporter when their report is closed
max-open-reports: 10 # Max open reports per player, set to 0 for unlimited
reports-per-page: 5 # Number of reports to show per page in the /reports
protect-staff: true # Prevent players from reporting staff members
protect-permission: "reports.protect" # Permission to bypass staff protection
close-comment-required: false # Require a comment when closing a report
min-close-comment-length: 10 # Minimum length for close comment
# Rate limit /report command?
rate-limit: # refillGreedy
enabled: true
time-seconds: 180 # Time to refill in seconds
tokens: 5 # Max reports allowed in the time above
refill-tokens: 5 # Number of tokens to refill after each time
can-bypass: true
bypass-permission: "reports.bypassratelimit"
discord-bot:
log-startup: true # Log startup to discord audit log channel
token: "EXAMPLE_TOKEN"
channel-id: 1111111111111111111 # Audit log channel
app-id: 1111111111111111111 # Discord app ID
guild-id: 1111111111111111111 # Discord server ID
category-id: 1111111111111111111 # Category for report channels
activity: "ReportSystem v{version}" # Discord presence
channel-template: "report-{reporter}" # Channel name template. Vars: {reporter}, {target}, {id}
channel-message: "|| <@&ROLE_ID> ||" # Message to be sent in the report channel
suppress_notifications: false # Send with @silent
transcripts:
enabled: false
url: "https://call.xap3y.eu/v1/discord/transcript/upload"
url-get: "https://space.xap3y.eu/mc/report/"
key: "example_key" # Generate here: https://space.xap3y.eu/mc/report/get-key
media-save-api-key: "example_key" # Same key as above
file-save: false # Save a local copy of the transcript file
save-media: false # Save media files (images,videos,gifs)
media-save-api: "https://call.xap3y.eu/v1/image/upload/url"
user-agent: "ReportSystem/1.0"
media-timeout: 5 # http timeout in seconds for media upload
res-json-template: "/message/urlSet/rawUrl" # Json template to extract url from space api, dont change