Compatibility
Minecraft: Java Edition
Platforms
Creators
Details
EasyPlayerReport
In-game player reports using Paper's native dialog API. No inventory GUIs, no chat spam: players fill out a real form, staff manage everything from a paginated panel, and the reported player can appeal.
Requires Paper 1.21.7 or newer. The Dialog API was introduced in Paper 1.21.7, so Spigot, CraftBukkit and Paper 1.21.6 or older are not supported — on those servers the plugin disables itself with a clear message instead of breaking.
For players
/reportaropens a native dialog: pick a reason, describe what happened, submit.- Cooldown, max active reports per player, duplicate detection and false-report blocking.
/reportes— every report you created or that is about you, with status and history./apelacion <id>— appeal a report where you are the reported player (once per report, with a configurable cooldown).
For staff
/reportesadmin— paginated panel with OPEN / TAKEN / CLOSED / ALL filters.- Take, release, reassign, close and reopen reports; teleport to the report location or to the player.
- Private report chat (
/reportechat <id>) between the reporter and the assigned staff. - Private staff notes and a complete action history on every report.
- Kick / warn / ban the reported player straight from the report detail, with flexible
durations (
7d,12h,1d12h30m,permanent). - Mark a report as false and temporarily block the reporter from filing more.
/reporteshistorial <player>— full history for a name or UUID./reportesestadisticas— statistics summary./reportestoggle— mute report alerts per staff member (saved across restarts).- Automatic auto-close of stale reports after a configurable period.
Requirements
- Paper 1.21.7 or newer (tested on 1.21.7, 1.21.11 and 26.3)
- Java 21 or newer
- Nothing else — SQLite and MySQL drivers are downloaded by Paper itself.
Commands
| Command | Description |
|---|---|
/reportar |
Open the report form |
/reportes |
Your related reports |
/reportesadmin |
Staff management panel |
/reportechat <id> |
Private chat for a report |
/reportestoggle |
Toggle report alerts |
/apelacion <id> |
Appeal a report you are reported in |
/reporteshistorial <player> |
Report history for a player |
/reportesestadisticas |
Statistics summary |
/easyplayerreport reload |
Reload config, messages and languages |
/easyplayerreport export <json|csv> |
Export all reports |
Permissions
| Permission | Default | Description |
|---|---|---|
easyplayerreport.use |
everyone | Create and view reports |
easyplayerreport.staff |
op | Manage reports and teleport |
easyplayerreport.moderate |
op | Kick, warn and ban the reported player |
easyplayerreport.falsereport |
op | Mark reports as false and block reporters |
easyplayerreport.admin |
op | Delete reports and admin features |
easyplayerreport.history |
op | View per-player history |
easyplayerreport.stats |
op | View statistics |
easyplayerreport.export |
op | Export reports |
easyplayerreport.reopen |
op | Reopen closed reports |
easyplayerreport.appeal |
everyone | Appeal reports about you |
Storage
database.type accepts sqlite (default, stored in plugins/EasyPlayerReport/reports.db)
or mysql. Existing reports.yml data is migrated automatically exactly once, the original
file is never deleted, and if the database fails the plugin falls back to YAML without
losing anything. Queries use prepared statements; passwords are never written to logs.
Localization
Messages ship in Spanish and English (lang/lang_es.yml, lang/lang_en.yml), and every
button, label and filter lives in menus.yml. All cooldowns, limits, sounds, potion effects,
reasons and retention rules are configurable in config.yml.


