## Features
**Framework auto-detection**
- ESX, QBCore, QBox, ox_core and standalone. Set `Config.Framework = 'auto'` and forget it.
- Database auto-detection: oxmysql, mysql-async, ghmattimysql or in-memory (`'none'`).
- Notifications auto-detected: ox_lib, QBCore, ESX, okokNotify, mythic_notify, chat fallback or a custom function.
**Players**
- Categories with icons, colours, default priority and optional "target player" requirement.
- Attach current location, report another player by server ID.
- Live chat with the claiming staff member, typing indicator, unread badges.
- Queue position, number of staff on duty, cooldown / max-open limits, duplicate and blacklist filters.
- Close their own report, reopen within a configurable window, rate the staff member after close.
- Command `/report [text]` or key (default `F7`, rebindable in GTA settings).
**Staff**
- Dashboard with live tiles, open queue sorted by priority, category breakdown.
- Claim / unclaim / transfer / force-close / delete / reopen, priority changes, internal notes (never shown to the player).
- Reply as yourself or anonymously as "Staff", one-click quick replies with `{name}` placeholder.
- Actions from inside the report: goto, bring, return, TP to attached location, goto reported player, spectate (BACKSPACE to stop), freeze, revive (framework-aware), heal, warn, screenshot (screenshot-basic → Discord), identifiers, kick, ban (hook into your own ban system).
- On/off duty with persistence, staff list with claimed counts, statistics with top staff and average rating / response time.
- Rank-based capabilities: every button is gated by `Config.Permissions.ranks`.
- Commands: `/reports`, `/claim id`, `/closereport id reason`, `/rr id message`, `/rgoto id`, `/rbring id`, `/reportduty`, `/admins`.
**Logging**
- Every event in `silent_reports_logs` and per-channel Discord webhooks (created / claimed / closed / chat / actions / ratings) with role mentions and a chat transcript on close.
- Webhook queue with rate-limit protection.
**Housekeeping**
- Auto-close idle reports, optional auto-close on disconnect, purge closed reports after N days, reports survive restarts (claimed ones go back to the queue).
- When a staff member disconnects their reports are released automatically and the player is informed.