UltimateReport icon

UltimateReport 2.1.0

Ultimate Advanced Report for your server minecraft GUI, Discord Support, Multi Proxy Support, etc.

show1-1%20-%20Realizzato%20con%20Clipchamp%20(1).gif

show2-2%20-%20Realizzato%20con%20Clipchamp.gif

show3%20-%20Realizzato%20con%20Clipchamp.gif

show4%20-%20Realizzato%20con%20Clipchamp.gif

show5%20-%20Realizzato%20con%20Clipchamp.gif

show6-6%20-%20Realizzato%20con%20Clipchamp.gif

show7-7%20-%20Realizzato%20con%20Clipchamp.gif

show8%20-%20Realizzato%20con%20Clipchamp.gif
Ultimate Report Plugin
Ultimate Report is a sleek, modern, and highly configurable player report system for Minecraft servers.
With an intuitive GUI, Velocity/BungeeCord support, and real-time Discord integration, it's the ideal tool for staff to manage player behavior across any network.

Whether you're running a survival world or a PvP server network, Ultimate Report ensures efficient and scalable rule enforcement.

✨ Features
Submit player reports with a reason

Interactive GUI to review and manage reports

Discord webhook integration for real-time alerts

SQLite storage (external DB support planned)

Customizable messages, GUI elements, and Discord embeds

Supports Premium, Cracked, and Bedrock usernames

PlaceholderAPI support

Proxy support for Velocity and BungeeCord

Validated Reports system to track confirmed violations

Optimized configuration and database handling

Dedicated Proxy Reload Command for Velocity/Bungee setups

API integration with Maven dependency on jitpack.io

New Web Interface for real-time monitoring
New Web Interface!
Easily view and manage reports (including only valid ones) with a sleek, real-time dashboard.
Stay updated instantly and make smarter decisions faster.

Check out the new web interface: UlmateReportWeb

API Integration Support
Ultimate Report now includes a dedicated API for developers!
You can directly interact with the reporting system to create custom tools like plugins or moderation dashboards.

Adding to pom.xml

<repositories>
   <repository>
       <id>jitpack.io</id>
       <url>https://jitpack.io</url>
   </repository>
</repositories>


Adding the dependency

<dependency>
   <groupId>com.github.MonkeyMoon104</groupId>
   <artifactId>UltimateAPIReport</artifactId>
   <version>Tag</version>
</dependency>


Available API Methods
[SPOILER="API Methods"]

int createPendingReport(String reporter, String target, String reason, boolean silent);
int getValidReports(String playerName);
void incrementValidReports(String playerName);
void resetValidReports(String playerName);
void resetAllValidReports();
void decrementValidReports(String playerName, int amount);
int getMaxValidReports();
List getAllPendingReports();
List getAllReportsFor(String player);
List getValidSentReportsLeaderboard(int page, int rowsPerPage);
void resetPlayerValidSentReports(String playerName);
void resetAllValidSentReports();


[/SPOILER]

What Can You Do?
Create new reports programmatically

Check how many valid reports a player has

Get the maximum allowed reports before staff action

Retrieve all pending reports

View full report history for any player

Reset/Increment/Decrement valid reports

Manage "sent" reports leaderboard
Commands

/report          - Submit a report
/reports                         - View your own validated reports
/reportsee               - Open the report management GUI
/ultimatereportreload            - Reload the plugin configuration
/ultimatereportproxyreload       - Reload the proxy-side config
/validreport delete   - Delete a specific validated report
/validreport reset   - Reset all validated reports
/validreport show    - Show validated reports
/validreport sended   - Show top players by sent valid reports


Permissions

ultimatereport.use                 - Access to /report and /reports
ultimatereport.reportsee.use       - Use the report management GUI
ultimatereport.staffreport.view    - General staff viewing permission
ultimatereport.validreport         - Access to /validreport commands
ultimatereport.validreport.delete  - Delete a specific validated report
ultimatereport.validreport.reset   - Reset validated reports
ultimatereport.validreport.show    - View validated reports
ultimatereport.validreport.sended  - View top sent valid reports
ultimatereport.reload              - Reload the plugin
ultimatereport.cooldown.bypass     - Bypass report cooldown
ultimatereportproxy.reload         - Reload proxy config
ultimatereportproxy.staffreport.view - Staff permission for proxy-side reports


(Server Operators automatically bypass all restrictions.)

️ GUI System
Use /reportsee to open an interactive GUI where staff can:

View all reports against a player

Mark reports as valid or invalid

Track the number of validated reports

Customize GUI layout, items, and messages in config
PlaceholderAPI

%ultimatereport_valid_reports%        - Number of valid reports for a player
%ultimatereport_max_valid_reports%    - Max allowed before staff action
%ultimatereport_leaderboard_<p>_<r>% - Top valid reports leaderboard


️ Staff Guide
Use /reportsee to manage player reports

Follow Discord webhook alerts for immediate updates

Use /ultimatereportreload and /ultimatereportproxyreload after edits

Take action when validated reports exceed set thresholds
Player Guide
To report a player:
/report
Example: /report Notch Hacking in PvP

To view your reports:
/reports

⚙️ Configuration
Fully customizable messages, GUI, and Discord embeds

Define how many valid reports trigger staff actions

Multi-language and flexible configuration

Includes config.yml and proxy config examples

messages: #Messages for all function
  general:
    report_sent: "&aYou have reported {target} for: {reason}"
    reload_success: "&aUltimateReport successfully reloaded."
    report_deleted: "&cReport deleted."
    report_valid: "&aReport marked as valid. ({count}/{max})"
    player_banned: "&cPlayer {target} has been banned for {days}."
    report_not_found: "&cPlayer not have report."
    sended_report_not_found: "&cPlayer not have valid sended report."
    teleport_success: "&aTeleported to player &e{target}"
    silent_send: "&aSilent report sent!"

  permissions_messages:
    no_permission: "&cYou don't have permission to execute this command."
    only_op: "&cOnly OPs can execute this command."

  errors_messages:
    player_not_found: "&cPlayer not found."
    ban_error: "&cFailed to find UUID for player {target}."
    invalid_number: "&cInvalid number."
    no_valid_reports_found: "&cNo valid reports found for any player."
    no_valid_reports_sended_found: "&cNo valid reports sended found for any player."
    valid_reports_not_enough: "&c{player} has only {current} valid reports. Cannot remove {requested}."
    valid_reports_too_many: "&cYou cannot remove more than {max} valid reports."
    never_join: "&cError, &e{player} &cwas never in server!"

  valid_report_messages:
    delete_success: "&aValid report deleted."
    delete_fail: "&cValid report not found."
    reset_success: "&aAll valid reports have been reset."
    valid_reports_deleted: "&aRemoved {count} valid reports from player {player}."
    valid_report_player: "&6Valid reports for &e{player}&6: &a{count}"
    valid_report_sended_player: "&6Valid reports sended for &e{player}&6: &a{count}"
    template_allreport:
      header_all_valid_reports: "&6=== Valid Reports for all players ==="
      valid_report_line: "&e{player}: &a{count}"
      header_sended_valid_reports: "&6=== TOP Valid Reports Sended ==="
      valid_report_sended_line: "&6{position}. &e{player}: &a{count} valid reports sended"


  reportcooldown_messages:
    report_cooldown: "&cPlease wait {seconds}s before reporting again."
    report_target_cooldown: "&cYou have already reported {target}, wait {seconds}s."

  usages_messages:
    use_report: "&cUsage: /report  "
    use_reportsee: "&cUsage: /reportsee "
    validreport_usage: "&cUsage: /validreport delete   | /validreport reset all | /validreport show "
    validreport_sended_usage: "&cUse: /validreport sended "



gui: #The gui configuration
  all: #The gui to see all reports
    title: "ALL REPORTS"
    item_name: "§fReport #{id}" #Need contains to work "Report #"
    item_lore:
      - "§7Player reported: {target}"
      - "§7Reason: {reason}"
      - "§7Date: {date}"
  title: "Reports of {player}" #Need contains to work "Report"
  item_name: "§fReport #{id}" #Need contains to work "Report #"
  item_lore:
    - "§7Reported by: {reporter}"
    - "§7Reason: {reason}"
    - "§7Date: {date}"
  report_title_gui: "Report #" #Name of the report gui
  valid_report: #Valid report gui configuration
    title: "&8Valid Report Status"
    item_name: "&eValid Report #"
  items: #Items of normal gui
    reporter_head: "&bReporter: {reporter}"
    target_head: "&bTarget: {target}"
    reason: "&eReason: {reason}"
    date: "&aDate: {date}"
    back: "&6Back"
    exit: "&cExit"
    delete: "&4Delete Report"
    valid: "&aMark as Valid"
    invalid: "&cMark as Invalid"
    arrow_previous_name: "&cPrevious Page"
    arrow_next_name: "&aNext Page"
    page_viewer: "&6Page {page}"



report_broadcast: #Local broadcast for all staffer
  title: "&eNEW REPORT"
  lines:
    - ''
    - 'Player: &e{target}'
    - 'Reported by: &e{reporter}'
    - 'Reason: &a{reason}'
    - ''



max_valid_report: 3 #Maximum of report valid, when a player reaches the max he is automatically banned: configure ban_reports



ban_reports: #Ban configuration for valid report reach
  general: #The general information provide for external plugin or not external plugin
    duration: "3d" #Duration can be in seconds/hours/days: example. 3s/3h/3d. if wrong input is entered, the plugin will send an error to the console
    reason: "Maximum number of valid reports reached."
    proxy_ban_command: "tempban {player} {duration} {reason}" #Work only if proxy.enabled is set to true

  external_plugin_inserver: #Like advancedban, LiteBans etc.
    present: false
    command_execute: "tempban {player} {duration} {reason}"



cooldown: #Cooldown configuration, the numbers entered respect the values only in seconds
  report_cooldown_seconds: 30
  report_target_cooldown_seconds: 60



discord: #Discord configuration!
  enabled: false
  webhook: "https://discord.com/api/webhooks/xxxx/xxxx"
  username: "UltimateReport"
  embed:
    footer: "UltimateReport Bot"
    titles:
      title_created: " New Report Created"
      title_deleted: "️ Report Deleted"
      title_banned: "⛔ Player Banned"
      title_valid: "✅ Report Marked as Valid"
      title_invalid: "❌ Report Marked as Invalid"
    colors: #The colors will use for embed, only HEX color!
      color_created: "1abc9c"
      color_deleted: "e74c3c"
      color_banned: "992d22"
      color_valid: "2ecc71"
      color_invalid: "e74c3c"
  messages:
    report_created: " New Report Created\n**Player:** {target}\n**Reported by:** {reporter}\n**Reason:** {reason}\n**Report ID:** #{reportId}"
    report_deleted: "️ Report Deleted\nReport #{reportId} for player **{target}** has been deleted."
    player_banned: "⛔ Player Banned\n**Player:** {target}\n**Duration:** {duration}\n**Reason:** {reason}"
    report_valid: "✅ Report Marked as Valid\nReport for player **{target}** has been marked as valid.\nValid reports: {validCount}/{maxValid}"
    report_invalid: "❌ Report Marked as Invalid\nReport #{reportId} for player **{target}** has been marked as invalid."



mysql: #MySQL configuration
  enabled: false
  options:
    host: ""
    port:
    database: ""
    username: ""
    password: ""



proxy: #Enable only if you proxy network!
  enabled: false

messages:
  report_sent: "&aYou have reported {target} for: {reason}"
  no_permission: "&cYou don't have permission to execute this command."
  player_not_found: "&cPlayer not found."
  reload_success: "&aUltimateReportProxy successfully reloaded."
  only_op: "&cOnly OPs can execute this command."
  report_deleted: "&cReport deleted."
  report_valid: "&aReport marked as valid. ({count}/{max})"
  ban_error: "&cFailed to find UUID for player {target}."
  report_not_found: "&cReport not found."
  server_not_found: "&cServer not found."
  server_textcomponent: "&a[Click to teleport to player]"
  ban_message: "&cYou have been banned for {reason}"
  connect_failed: "&cFailed to connect to server"

report_proxy_broadcast:
  title: "&eNEW REPORT PROXY"
  lines:
    - ''
    - 'Player: &e{target}'
    - 'Reported by: &e{reporter}'
    - 'Reason: &a{reason}'
    - 'Server: &6{server}'
    - ''