RX Reports V1 Configuration
RX Reports V1 keeps its behaviour in config.lua and its admin access rules in permission.lua. The defaults are tuned for a normal production server; change only the sections that need to match yours.
Restart
ripex-reportsystemafter changing the configuration so the server and every connected client receive the same values.
Framework and locale
These settings decide which framework integration is loaded and which language the interface uses.
| Setting | Default | Behaviour |
|---|---|---|
Framework | 'qb' | Selects QBCore ('qb') or ESX ('esx') integrations. |
Locale | 'en' | Active interface locale. |
Config.Framework = 'qb' -- 'qb' or 'esx'
Config.Locale = 'en' The selected framework must already be started before RX Reports. Do not use a framework value outside of qb or esx. The resource ships with English as the supported runtime locale.
Report form
Categories and priorities control the choices a player sees while filling in a report.
| Array | Default choices |
|---|---|
Categories | Cheating/Hacking, Harassment, Bug Abuse, Other |
Priorities | Low, Medium, High |
Config.Categories = {
{ label = 'Cheating/Hacking', value = 'cheating' },
{ label = 'Harassment', value = 'harassment' },
{ label = 'Bug Abuse', value = 'bug' },
{ label = 'Other', value = 'other' }
}
Config.Priorities = {
{ label = 'Low', value = 'low' },
{ label = 'Medium', value = 'medium' },
{ label = 'High', value = 'high' }
} The value keys are stored and used internally, so change the labels freely but keep the values stable once the system is live. For example, you can rename Cheating/Hacking to Rule breach while preserving the cheating value. This prevents old reports and UI filters from becoming inconsistent.
Commands
Two commands are configurable. The remaining player commands are provided by the resource and cannot be renamed.
| Command | Who uses it | Purpose |
|---|---|---|
/<OpenReport> | Every player | Opens the report form. |
/<OpenAdmin> | Authorized staff | Opens the staff dashboard. |
/feedback | Reporting player | Opens their pending rating after a report is closed. |
/acceptchat, /declinechat | Reporting player | Responds to a staff live-chat request. |
Config.Commands = {
OpenReport = 'report',
OpenAdmin = 'reports'
} Pick command names that do not already exist on your server. A duplicate command silently overrides the other resource and makes the conflict hard to trace.
Staff notifications
Each notification can be switched off independently without disabling the rest of the workflow.
| Setting | Default | Behaviour |
|---|---|---|
newReport | true | Notifies staff when a new report is submitted. |
reportClaimed | true | Notifies staff when a report is claimed. |
reportClosed | true | Notifies staff when a report is closed. |
Config.Notifications = {
newReport = true,
reportClaimed = true,
reportClosed = true
} Turn off a notification only if your staff already receives the same status from another reliable channel; otherwise report ownership can become unclear during busy periods.
Admin permission model
Admin access is resolved differently for each framework, so configure the list that matches yours.
| Framework | Permission check | File |
|---|---|---|
| QBCore | Matches the player’s Rockstar license against Config.AdminLicenses. | permission.lua |
| ESX | Matches the player’s ESX group against Config.AdminGroups. | config.lua |
Config.AdminGroups = {
'god',
'admin',
'mod',
'administrator',
'superadmin'
}
Config.AdminLicenses = {
'license:replace-with-your-admin-license'
} Config.PreventAdminBlock = true prevents staff from blocking themselves or other staff. Keep this enabled on normal production servers.
Config.Permissions.Admin and Config.Permissions.Mod are labels used by the resource’s permission layer. Keep them aligned with your staff naming, but do not treat them as a replacement for the framework-specific checks above.
Screenshot evidence
Screenshots are captured on the player’s side and uploaded before the report is stored.
| Setting | Default | Behaviour |
|---|---|---|
MaxPerReport | 3 | Maximum screenshots a player can attach to one report. |
MaxFileSize | 2 | Interface-side size limit in MB. |
Quality | 0.8 | Capture quality from 0.1 to 1.0. |
Format | 'jpg' | Screenshot format: 'jpg' or 'png'. |
Config.Screenshots = {
MaxPerReport = 3,
MaxFileSize = 2,
Quality = 0.8,
Format = 'jpg'
} The resource uploads captures through screenshot-basic to the screenshot_webhook convar from server.cfg. JPG at 0.7 to 0.8 is the practical default; PNG files are larger and should only be used when image clarity matters more than upload size.
Notification integration
type selects which notification resource receives the messages RX Reports sends.
| Type | Integration |
|---|---|
default | QBCore or ESX notifications, based on Config.Framework. |
custom | Triggers customEvent with the field names from format. |
okok | okokNotify export. |
mythic | mythic_notify export. |
codem | codem-notification export. |
qs | qs-notify export. |
Config.NotificationSystem = {
type = 'default', -- default, custom, okok, mythic, codem, qs
customEvent = 'custom:notification',
format = {
title = 'title',
message = 'message',
type = 'type'
}
} Choose custom only when the named event already exists on your server. For every other non-default option, make sure that notification resource starts before RX Reports.
Report limits and feedback
These sections protect staff from spam and collect a rating once a report is resolved.
Report limits
| Setting | Default | Behaviour |
|---|---|---|
Enabled | true | Enables per-player report limits. |
MaxReportsPerDay | 5 | Maximum reports a player can submit per day. |
MaxReportsPerHour | 2 | Maximum reports a player can submit per hour. |
ExemptAdmins | true | Excludes authorized staff from both limits. |
Config.ReportLimits = {
Enabled = true,
MaxReportsPerDay = 5,
MaxReportsPerHour = 2,
ExemptAdmins = true
} Use a daily limit that fits your player count. Low hourly limits can block legitimate players during a large incident, so 2 per hour and 5 per day are sensible starting values.
Feedback
| Setting | Default | Behaviour |
|---|---|---|
enabled | true | Offers a rating after a report is closed. |
timeout | 300 | Time the pending rating stays available, in seconds. |
minRating | 1 | Lowest accepted score. |
maxRating | 5 | Highest accepted score. |
Config.Feedback = {
enabled = true,
timeout = 300,
minRating = 1,
maxRating = 5
} Feedback becomes available only after a report is closed. Keep the timeout long enough that a player who was mid-roleplay can still reach /feedback before it expires.
Data retention and admin notes
Cleanup and note retention decide how long report data stays in the database.
Database cleanup
| Setting | Default | Behaviour |
|---|---|---|
AutomaticCleanup | true | Enables scheduled data cleanup. |
CleanupInterval | 24 | Frequency of the cleanup task in hours. |
DefaultDays | 30 | Age threshold used when no day count is supplied to a cleanup command. |
Config.DatabaseCleanup = {
AutomaticCleanup = true,
CleanupInterval = 24,
DefaultDays = 30,
Commands = {
Reports = 'cleanreports',
History = 'cleanhistory'
}
} | Command | Behaviour |
|---|---|
cleanreports [days] | Removes old report data; console or authorized staff only. |
cleanhistory [days] | Removes old player history; console or authorized staff only. |
Cleanup commands permanently remove data, so test them on a development database first.
Admin notes
| Setting | Default | Behaviour |
|---|---|---|
Enabled | true | Shows private staff notes on report records. |
MaxLength | 500 | Maximum characters per note. |
DeleteAfterDays | 30 | Removes notes after this many days; set 0 to keep them indefinitely. |
Config.AdminNotes = {
Enabled = true,
MaxLength = 500,
DeleteAfterDays = 30
} Start with 30 days and adjust only after considering your moderation, privacy, and storage policy.
Debug mode
Debug output is disabled by default and is only useful while diagnosing a specific problem.
Config.Debug = false Enable it temporarily while diagnosing a missing permission, webhook, notification, or framework event, then turn it off again to keep console output useful.