▶️ ЗАБЕРИ СВОИ 8 ПОДАРКОВ 🎁 ПРИ СОЗДАНИИ СВОЕГО МАЙНКРАФТ СЕРВЕРА
Моды/Report System
Report System

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.

18
1

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.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
  • 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
Permissions
/report | reportsystem.report
/reports | reportsystem.reports
/suspicious | reportsystem.suspicious
/rsreload | reportsystem.reload
reportsystem.bypass (cooldown bypass if applicable)

Commands

CommandDescription
/reportOpens the report form GUI
/reportsOpens the staff report management GUI
/suspiciousOpens the suspicious tracking GUI
/rsreloadReloads plugin config
config.yml
# Timezone for report timestamps.
# Use 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

# Cross-server sync 
# Share reports across multiple servers. All servers must point to the same MySQL instance.
sync:
  # Display name of THIS server shown in cross-server notifications (e.g. "NA", "EU", "US-East").
  server-name: "Server-1"

  # Database backend.
  #   sqlite  local file (default, no sharing)
  #   mysql   shared database (required for cross-server reports)
  database:
    type: sqlite
    mysql:
      host: localhost
      port: 3306
      database: reportsystem
      username: root
      password: ""
      # Number of connections in the pool (raise for many concurrent moderators)
      pool-size: 5

  # Redis pub/sub - live notifications to online staff when a report is filed
  # or updated on ANY server in the network.
  # Only useful when database.type is mysql so all servers share the same data.
  redis:
    enabled: false
    host: localhost
    port: 6379
    password: ""
    # Channel name - must be identical on every server in the network.
    channel: reportsystem-sync

# Server IP tagging.
# When enabled, the IP of THIS server is silently attached to every report so
# staff can see which physical server the report originated from.
# Useful for networks running multiple servers against a shared MySQL database.
server-ip:
  enabled: false
  # Leave blank to auto-detect. Set this if auto-detection returns the wrong IP
  # (e.g. a container private IP instead of the public address).
  ip-override: ""
  # Map raw IPs to friendly display names shown in the report detail GUI and
  # in Discord embeds. If an IP is not listed here the raw IP is shown instead.
  # Add as many entries as you have servers.
  server-names:
    "192.168.1.100": "Survival"
    "192.168.1.101": "Creative"
    "192.168.1.102": "Skyblock"
  # Whether to include the origin server as a field in Discord webhook embeds.
  show-in-discord: true
  # Label used for the field in the report detail GUI and Discord embed.
  label: "Origin Server"


# Use & for color codes.
confirmation-message: "&aYour report has been submitted!"

# Discord webhook integration.
# A message is posted to this webhook every time a report is submitted.
# The message is automatically edited whenever the report is updated or closed.
discord-webhook:
  enabled: false
  url: ""
  # Embed colors (hex, e.g. #FF4444)
  # White (#FFFFFF) is the default — it looks clean and neutral in Discord.
  color-open: "#FFFFFF"
  color-closed: "#44BB44"
  color-priority: "#FFAA00"
  color-low-priority: "#AAAAAA"
  # Embed title — use {id} for the report ID
  title: "Report #{id}"
  # Footer text (leave blank to hide)
  footer: "ReportSystem"
  # Show an ISO-8601 timestamp in the embed footer
  show-timestamp: true
  # Show the reported player's Minecraft head as a thumbnail in the embed
  thumbnail-enabled: true
  # Toggle individual embed fields on or off
  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
  # Custom display labels for each field
  labels:
    reported-player: "Reported Player"
    reporter: "Reporter"
    reason: "Reason"
    discord: "Discord Contact"
    server: "Server"
    notes: "Notes"
    status: "Status"
    priority: "Priority"
    server-ip: "Origin Server"

# Automatic priority assignment based on LuckPerms groups.
# Disabled by default. Enable and set group names to activate.
# high-priority-groups: players in these groups will have their reports auto-marked as High Priority.
# low-priority-groups: players in these groups will have their reports auto-marked as Low Priority.
# If a player is in both, high priority takes precedence.
auto-priority:
  enabled: false
  high-priority-groups:
    - "vip"
    - "premium"
  low-priority-groups:
    - "new"
    - "trial"

# Reasons players can select when submitting a report.
# Use & for color codes. These also appear as filter options in /reports.
reasons:
  - "&cCheating / Hacking"
  - "&6Harassment / Toxicity"
  - "&eGriefing"
  - "&bSpamming"
  - "&dInappropriate Name / Skin"
  - "&aRule Breaking"
  - "&fExploiting Bugs"

# Server selector shown in the report form.
# Set enabled: true to allow reporters to specify which server the incident occurred on.
server-selector:
  enabled: false
  options:
    option-1:
      display: "&aSurvival"
    option-2:
      display: "&bCreative"
    option-3:
      display: "&cSkyblock"

# Suspicious player detection settings.
suspicious:
  fast-rejoin:
    enabled: true
    # Flag a player if they rejoin this many times...
    times: 4
    # ...within this many seconds.
    seconds: 60
  same-ip:
    enabled: true

# Sounds played on various GUI actions.
# Use Minecraft sound names (e.g. UI_BUTTON_CLICK, ENTITY_PLAYER_LEVELUP).
# You can use any valid MC sound key. Set to '' to disable a sound.
sounds:
  # Played when clicking a standard button
  button-click: UI_BUTTON_CLICK
  # Played when cycling through options (reason slider, sort mode, etc.)
  cycle: ITEM_BOOK_PAGE_TURN
  # Played when a report is successfully submitted
  submit: ENTITY_PLAYER_LEVELUP
  # Played when cancelling or going back
  cancel: BLOCK_NOTE_BLOCK_BASS
  # Played when toggling priority
  priority: BLOCK_ANVIL_USE
  # Played when deleting a report or dismissing a suspicious player
  delete: ENTITY_ITEM_BREAK
  # Played when opening a GUI via command
  open: BLOCK_CHEST_OPEN
Setting Up Cross Server ReportSystem

1. Shared MySQL Database

Every server must point to the same MySQL instance. In each server's config.yml:

sync:
  server-name: "US-East"   # unique name per server | shows in notifications

  database:
    type: mysql             # change from sqlite to mysql
    mysql:
      host: 192.168.1.50   # your MySQL server IP
      port: 3306
      database: reportsystem
      username: root
      password: "yourpassword"
      pool-size: 5

2.Redis (Live Staff Notifications)

Without Redis, staff only see reports when they manually open /reports. With Redis, staff get instant chat notifications when a report is filed or updated on any server.

sync:
  redis:
    enabled: true
    host: 192.168.1.50     # your Redis server IP
    port: 6379
    password: ""           # leave blank if no auth
    channel: reportsystem-sync   # must be IDENTICAL on every server

3. Server IP Tagging (Optional)

Shows which server a report came from in the GUI and Discord embeds:

server-ip:
  enabled: true
  server-names:
    "192.168.1.100": "Survival"
    "192.168.1.101": "Creative"
    "192.168.1.102": "Skyblock"
  show-in-discord: true
  label: "Origin Server"

4. Per-Server Config Summary

SettingServer 1Server 2Server 3
server-name"Survival""Creative""Skyblock"
database.mysql.hostsame IPsame IPsame IP
redis.enabledtruetruetrue
redis.channelreportsystem-syncreportsystem-syncreportsystem-sync

Совместимость

Minecraft: Java Edition

26.1.x1.21.x1.20.x1.19.x1.18.x1.17.x

Поддерживаемые окружения

Сервер

Создатели

Детали

Лицензия:LicenseRef-All-Rights-Reserved
Опубликован:1 неделю назад
Обновлён:2 дня назад
Главная