Scripts 2026-04-15

Agency-Reports: The FiveM Admin Reporting Tool That Actually Gets Used

TDYSKY

TDYSKY

Founder & Lead Developer at Agency Scripts

The State of FiveM Reports in 2026

Most servers still use Discord tickets or an in-game chat command for player reports. Both are broken. Discord has no player context; a chat command loses everything the moment the reporting player disconnects. Admins end up playing detective when they should be playing referee. Agency-Reports is the tool we wished existed when we were staffing our own server.

Context Captured Automatically

When a player files a report, we automatically capture their coordinates, nearby player IDs, equipped weapon, vehicle, and the last 60 seconds of chat. Admins see the scene, not just the accusation. This alone cuts investigation time in half.

Smart Routing

Reports route to staff based on type, priority, and current online staff. Cheating goes to tech admins, RP disputes to RP admins, harassment to whoever's on duty. Offline reports queue and alert on Discord. No more "is anyone handling this?" in staff chat.

Resolution Tracking

Every report has a status: open, claimed, investigating, resolved, closed. Admins write resolution notes that stay with the report forever. Six months later when the same player files another report, their history is one click away. This is how professional moderation teams operate in MMOs — it's overdue in FiveM.

Player Feedback Loop

When a report is resolved, the reporter gets a short message explaining what happened. Even if the answer is "reviewed, no action needed," players feel heard instead of ghosted. Communities that feel listened-to stay loyal; that's the actual retention mechanic behind good moderation tooling.

Installation & Setup

Agency-Reports requires oxmysql for report history persistence. Import reports.sql, drop the resource folder, and add ensure agency-reports to server.cfg. Connect your Discord webhook in config.lua for offline alert forwarding. On first start, the routing rules initialize from your config — no further database setup required.

The in-game report UI is opened by players with a configurable keybind (default: F9 or a chat command). The admin dashboard is a separate panel accessible only to players with admin permission flags.

Configuration Options

The config.lua controls routing, retention, and UI behavior:

  • Report categories — define as many categories as you want (cheating, harassment, RP dispute, bug report, etc.) with per-category routing rules.
  • Staff routing — each category routes to specific permission tiers. Cheating to tech admins, RP disputes to RP moderators, etc.
  • Auto-capture list — which context fields are captured automatically (coordinates, nearby players, last 60s chat, vehicle, weapon). Toggle per-field.
  • Discord webhook — URL for offline report forwarding. Reports that have no online admin matching the route go to Discord.
  • Resolution message templates — customize the message players receive when their report is closed.
  • Anonymous reporting — toggle whether reporters can submit without revealing their identity to other players (admins always see the reporter).

Framework Compatibility

Agency-Reports works on QBCore, ESX, and standalone. The only framework-touching component is the permission check for admin dashboard access. For standalone setups, implement Config.IsAdmin(src, level) in config.lua. All report storage, routing, and UI is framework-agnostic.

Why This Matters for Roleplay

Every unresolved player report is a trust deficit. When a player files a report and never hears back, they either take matters into their own hands (escalating the situation) or disengage from the server entirely. Agency-Reports closes that feedback loop through the resolution message system — players know their report was received and processed even if the outcome wasn't what they hoped for.

The context capture system is the practical moderation multiplier. Admins who join a scene five minutes after the fact to investigate have complete situational context: where everyone was standing, what was said, what the accused was carrying. They spend time making decisions, not reconstructing events. That compression in investigation time directly increases the number of reports an admin team can handle per hour.

The six-month history access is the often-overlooked feature that protects communities long-term. Pattern recognition across months of report history catches players who abuse the rules slowly rather than blatantly — the moderate rule-bender who files three reports per month and has three against them, always skirting the action threshold. The history makes that pattern visible.

Frequently Asked Questions

Can players attach screenshots or video evidence to a report?

Players can attach a URL to external evidence (Imgur, YouTube, Medal.tv). Direct file upload to the server isn't supported for security and storage reasons. Discord-linked reports include the evidence URL in the Discord notification for easy review.

What happens to reports when the reporting player disconnects?

Reports persist in the database regardless of player connection status. All context captured at report time (coordinates, chat, etc.) is stored. Admins can investigate and resolve reports after the reporter has left, and the resolution message is delivered the next time the player joins.

Can we integrate Agency-Reports with our existing ticket bot?

Yes, via Discord webhook forwarding. If your ticket bot reads from a Discord channel, point the webhook at that channel and reports appear as Discord messages your bot can process. For tighter integration, the resource fires a server-side event agency-reports:onNewReport that any server-side script can listen to.

Is there a bulk-close feature for mass-report events?

Yes. The admin dashboard includes a multi-select on the report list. Senior admins can select multiple reports, apply a single resolution note, and close them as a batch. Useful after server events that generate duplicate reports about the same incident.

Requirements

  • FiveM server (QBCore, ESX, or standalone)
  • oxmysql
  • cfx.re account with valid Agency-Reports license
  • Discord webhook URL (for offline alerting)

Staff Onboarding With Agency-Reports

New moderators benefit particularly from Agency-Reports' structured workflow. The system guides them through the investigation process without requiring extensive training. A new mod who claims their first report gets full context automatically — they don't need to ask "what happened?" because the pre-captured data answers most of that before they type a word.

The resolution note requirement (optional, but encouraged via config) is a training tool. Writing "reviewed footage, player was clearly violating rule 3.2, issued 24h ban" as a resolution note forces the moderator to articulate their reasoning. That articulation improves decision quality over time and creates a paper trail for escalation or appeals.

For communities transitioning from Discord-ticket-based moderation to Agency-Reports, run both systems in parallel for two to four weeks. Let staff use whichever they prefer while tracking resolution time and reporter satisfaction. The data typically shows Agency-Reports resolving tickets faster; use that evidence to drive voluntary adoption rather than mandating the switch.

Share this article

Ready to upgrade your server?

Check out our premium FiveM scripts in the Agency Scripts store or join our Discord community for support and updates.