Store

Features

Report types, admin features, and chat system in legacy-reports

Report Lifecycle#

Player Creates Report (open)
       |
       |--> Admin Claims (claimed)
       |         |
       |         |--> In Progress (in_progress)
       |         |         |
       |         |         |--> Resolved (resolved)
       |         |         |--> Closed (closed)
       |         |
       |         |--> Resolved (resolved)
       |         |--> Closed (closed)
       |
       |--> Admin Deletes Report

Player Features#

Creating Reports#

Players open the reports panel with /reports and can submit a new report by providing:

  • Report Type -- Select from available report types (Player Report, Bug Report, etc.)
  • Title -- Short summary (minimum 3 characters, maximum 200)
  • Description -- Detailed description of the issue (minimum 10 characters, maximum 2000)
  • Priority -- Low, Medium, High, or Critical
  • Images -- Up to 5 image URLs as attachments

A configurable cooldown (default 60 seconds) prevents spam between submissions.

Viewing Reports#

Players can view all of their own reports and see:

  • Report status, priority, and type
  • Message count
  • Creation and update timestamps
  • Full chat history with admins

Chat#

Players can send messages in their own reports, including up to 3 image URLs per message. Closed reports cannot receive player messages (admins can still message closed reports).

Admin Features#

Report Management#

Admins see all reports from all players, sorted by status (open first) and then by priority (critical first). They can:

  • Claim -- Take ownership of an open report, changing its status to "Claimed"
  • Change Status -- Update the report status to any valid state (open, claimed, in_progress, resolved, closed)
  • Assign -- Assign a report to another online admin
  • Delete -- Permanently delete a report and all its messages

Admin Notes#

Admins can add private notes to any report (up to 5000 characters). These notes are only visible to other admins and are not shown to the reporting player.

Quick Replies#

Pre-configured reply templates allow admins to respond quickly to common scenarios. Quick replies are categorized and can be managed through the admin panel.

Default quick replies:

TitleCategoryPurpose
InvestigatinggeneralAcknowledge receipt and investigation
Need More InfogeneralRequest additional details from the player
ResolvedclosingConfirm the issue is resolved
DuplicateclosingMark as a duplicate of another report
Action TakengeneralConfirm action has been taken

Admins can create, edit, and delete quick replies. Each quick reply has:

  • Title -- Display name (minimum 2 characters)
  • Message -- The reply text (minimum 5 characters)
  • Category -- Organizational category (e.g. general, closing)

Report Type Management#

Admins can manage report types through the admin panel:

  • Create -- Add new report types with a name, icon (Lucide icon name), and color
  • Edit -- Update the name, icon, color, or active state of existing types
  • Deactivate -- Types with existing reports are soft-deleted (set to inactive) rather than fully removed
  • Delete -- Types with no reports are permanently deleted

Statistics Dashboard#

The admin statistics view provides:

  • Total reports, broken down by status (open, claimed, in_progress, resolved, closed)
  • Average resolution time in hours
  • Reports grouped by type and priority
  • 10 most recent reports
  • Top 5 reporters by submission count

Real-Time Notifications#

For Admins#

  • New report notifications when any player submits a report
  • Report status update notifications
  • New message notifications for reports they are viewing

For Players#

  • Status change notifications when an admin updates their report
  • New message notifications when an admin replies to their report

All notifications are delivered via lib.notify from ox_lib and also update the UI in real-time if the reports panel is open.

Image Support#

Images in reports and chat messages are validated server-side:

  • Must be valid HTTP/HTTPS URLs
  • Maximum URL length of 500 characters
  • Reports support up to Config.MaxImages attachments (default 5)
  • Chat messages support up to Config.MaxChatImages attachments (default 3)