GCMod

Reports System

gcm_reports is a complete staff report and ticket management system for FiveM servers.

It provides a structured workflow that allows players to submit reports and enables staff members to manage, respond to, and resolve support tickets directly in-game.



Overview

The Reports System streamlines staff support operations, allowing administrators and moderators to manage player reports efficiently through an integrated ticket workflow.

Core Features

  • Player Report Creation – Players can create reports through an in-game command.
  • Live Staff Chat – Real-time communication between staff and the reporting player.
  • Staff Ticket Queue – Staff members can view, claim, and manage pending reports.
  • Ticket Resolution Workflow – Tickets can be resolved and tracked through their lifecycle.
  • Staff Duty Mode – Allows staff to toggle availability for handling reports.
  • Staff Chat System – Internal communication channel for staff members.

Quick Staff Actions

Staff members can perform quick administrative actions directly from the report interface:

  • Teleport to player
  • Bring player / return player
  • Revive player
  • Open inventory
  • Give items
  • Change routing bucket
  • Spectate player
  • Screenshot modal

Quick actions now use internal adapters for multiple inventory, clothing, and ambulance stacks instead of relying only on ox_inventory, qb-clothing, and qb-ambulancejob.

Permission System

The resource includes a group-based permission system that allows administrators to configure:

  • Staff groups and ranks
  • Feature access restrictions
  • Per-action permissions for staff members

Admin Analytics

The system also exposes endpoints and internal data for administrative tools, including:

  • Report history
  • Staff activity statistics
  • Staff leaderboard tracking

Runtime Architecture

The system is designed to integrate seamlessly with common FiveM frameworks.

Framework Detection

The resource automatically detects the active framework during initialization in init.lua.

Supported frameworks:

  • qbx_core
  • qb-core
  • es_extended

Core Dependencies

Required libraries used by the system:

  • ox_lib
  • oxmysql

Auto-detected integrations

The resource detects one active backend per category during startup.

  • Inventory
    • ox_inventory
    • qs-inventory
    • origen_inventory
    • codem-inventory
    • qb-inventory
    • ps-inventory
    • core_inventory
    • tgiann-inventory
    • jpr-inventory
  • Clothing / appearance
    • origen_clothing
    • illenium-appearance
    • fivem-appearance
    • qb-clothing
    • esx_skin
    • rcore_clothing
  • Ambulance / revive
    • qb-ambulancejob
    • qbx_medical
    • wasabi_ambulance
    • esx_ambulancejob

Detection does not guarantee every quick action is available on every backend. Admin inventory opening still depends on a real adapter path for the detected inventory.

User Interface

The staff management interface is built using NUI, served from: web/dist/index.html

This interface provides the main staff panel, report management tools, and live chat system.

Database Persistence

The system stores runtime data in MySQL, including:

  • Ticket information
  • Report messages
  • Staff groups and permissions
  • Staff statistics
  • Dynamic configuration values

System Flow

The report lifecycle works as follows:

  1. A player opens the /greport command and creates a support ticket.
  2. Staff members open the /gadmin panel to view the report queue.
  3. A staff member claims a pending ticket and begins handling the report.
  4. Staff and player communicate through the live chat interface while actions can be executed.
  5. Once the issue is resolved, the ticket is closed and staff statistics are updated.
  6. Runtime configuration values are stored through ConfigManager, which persists settings using database-backed configuration keys.

The Reports System provides a structured workflow for handling player support requests efficiently.