RedM Reports Installation
Requirements
| Required | Notes |
|---|---|
| RedM server | fx_version 'cerulean' |
oxmysql | Must start before this resource |
assetpacks | Required |
| A framework | VORP, RSG Core, RedEM:RP — or standalone |
| Optional | Enables |
|---|---|
screenshot-basic (RedM fork) | All media capture. Auto-disables silently if absent |
vorp_admin | Only if you set Config.Spectate.Mode = 'vorp_admin' |
Use the RedM fork of screenshot-basic
The standard FiveM build will not work. Media features disable themselves cleanly — no errors — if screenshot-basic is missing or started too late, which makes this an easy problem to miss.
Folder name
The resource folder is pc_report. The manifest name is pc_reports. These are deliberately different, and it matters:
ensureuses the folder name →ensure pc_report- Exports use the folder name →
exports.pc_report:...
If you would rather they matched, rename the folder to pc_reports and update your ensure line and any exports you have written.
5-minute setup
1. Dependencies first
ensure oxmysql
ensure assetpacks
# your framework
ensure vorp_core
# optional
ensure screenshot-basic
ensure pc_reportLoad order is not optional. The framework must start before pc_report, or the bridge falls back to standalone and staff detection silently stops working.
2. Database
Nothing to import. Tables auto-create and migrate on first start:
Config.Database = {
enabled = true,
tableChecker = true,
}If you prefer to import manually, set tableChecker = false and run install/schema.sql.
With enabled = false the resource runs in memory only and everything is lost on restart — useful for testing, never for a live server.
3. Framework
Leave auto-detection on, or pin it explicitly:
Config.Framework = {
auto = true,
force = nil, -- 'vorp' | 'rsg' | 'redp' | 'standalone'
resourceNames = { vorp = 'vorp_core', rsg = 'rsg-core', redp = 'redem_roleplay' },
}Detection order is vorp → rsg → redp, falling back to standalone.
The console prints Framework bridge: <name> on start — check this line. If it says standalone and you run VORP, your framework started too late or its folder name differs from resourceNames.
4. Permissions
- VORP uses its own user groups — no ACE needed
- RSG checks rsg-core permissions first, then ACE
- RedEM:RP / Standalone use ACE via
install/permissions.cfg
For the ACE frameworks, exec that file from your server.cfg. Full detail: Permissions.
5. Discord (optional)
Webhook URLs live in two places:
server/webhook.lua— per-action URLs and embed coloursConfig.Media.Webhook.url— media uploads, separate from the rest
Replace the placeholder URLs in both. Config.WebhookRouting adds per-category and per-priority overrides for report creation.
6. Start and test
ensure pc_reportThen run /report in game.
First test checklist
- [ ] Console shows the correct
Framework bridge: <name> - [ ]
/reportopens the menu and creates a ticket - [ ] The ticket appears for a staff account instantly
- [ ] Claim it, and send a chat message in both directions
- [ ] Open the Dashboard as staff and confirm stats load
- [ ] Close it — the reporter is prompted to leave a review
- [ ] A Discord webhook fires, if configured
- [ ] A screenshot is captured on report open, if
screenshot-basicis running
Anything failing here is covered in Troubleshooting.
Updating
- Stop the resource.
- Replace the folder — keep your edited
config.luaand your webhook URLs inserver/webhook.lua. - Start it again. Database migrations run automatically; your tickets, notes and statistics are untouched.
Merge your settings into the new config.lua rather than copying the old file over it — see Updating Scripts. An old config missing newly added keys causes nil errors that look like bugs in the update.