Quick Actions
Quick action behavior and constraints for gcm-reports.
Quick actions are handled in server callback gcm_reports:admin:quickAction.
Supported actions
bringgotobringbackbackteleportinventorygiveitemsreviveropabucketscreenshot(quickAction reports success path; actual capture/upload is handled by modal callback)espectar
Permission checks
Most actions require member:hasPermission('<perm>') (unless staff has full access):
teleportinventorygiveitemsreviveropabucketspectatescreenshot
Staff access hierarchy
Staff bootstrap now follows this order:
- Config full access (
Config.StaffFullAccess) - Panel-managed staff/group assignment (
gcm_reports_staff.group_id) - Config basic access (
Config.StaffBasicAccess)
This means a player with basic config access who is assigned to a panel group will use the panel group permissions.
Basic access behavior
When staff resolves through Config.StaffBasicAccess and has no panel group assignment:
- Quick actions remain available except
giveitems. - Item-give permission is intentionally blocked (
giveitems = false), so item delivery must be granted via a dedicated panel group.
Side effects
- Most quick actions append a staff message to report chat.
SavedCoordsis used forbringbackandbackrestore flows.bucketupdates routing bucket withSetPlayerRoutingBucket.espectartriggerstxcl:spectate:starton staff client.inventory,revive, andropanow return backend failure when the detected integration is unsupported instead of always reporting success.- Each quick action can emit a dedicated Discord log type through
config/logs.luawebhooks (quick-*keys).
Backend support notes
Inventory quick action
- Native success path:
ox_inventory
- Custom adapter success path:
qb-inventoryps-inventoryorigen_inventorycore_inventorytgiann-inventoryjpr-inventory
- Detected but not currently openable through
gcm_reports:qs-inventorycodem-inventory
Clothing quick action
- Supported:
esx_skinqb-clothingillenium-appearancefivem-appearancercore_clothingorigen_clothing
Revive quick action
- Supported:
qb-ambulancejobqbx_medicalwasabi_ambulanceesx_ambulancejob
- Fallback:
- ESX uses
esx_ambulancejob:revive - QBCore/QBX uses
hospital:client:Revive
- ESX uses
Screenshot flow (modal)
- Staff calls
gcm_reports:admin:takeScreenshotForModal. - Server validates screenshot permission +
screenshot-uploadwebhook (config/logs.lua, with legacy fallback toConfig.discordWebhook). - Server requests capture from target client (
gcm_reports:client:takeScreenshot). - Client uploads with
screenshot-basicand returns image URL.