/report command displays a multi-tab NUI form; when a player submits a report, sh-reports automatically captures a screenshot, formats a Discord embed, and sends everything to the appropriate webhook channel. Admins with the configured ACE permission receive an instant in-game alert so they can respond without monitoring Discord continuously. Role pings, image hosting via Fivemerr, and a server-wide toggle command are all configurable from a single config file.
Dependencies
Installation
1
Install screenshot-basic
Download screenshot-basic and place it in your
resources directory. Add ensure screenshot-basic to server.cfg above sh-reports.2
Add sh-reports to your server
Place the
sh-reports folder inside your resources directory.3
Configure sh-reports
Open
shared/config.lua and set your Discord webhooks, ACE permission, and any optional features. See the Configuration section below for the full reference.4
Start sh-reports in server.cfg
server.cfg
5
Add ACE permissions for admins
Grant the
admin ACE permission (or whichever permission you set in Config.Permission) to the groups that should receive in-game report alerts.server.cfg
Configuration
All options are contained inshared/config.lua.
shared/config.lua
General Options
string
default:"'report'"
The chat command players type to open the report UI. Change this to any single word without the leading slash.
string
default:"'togglereports'"
The admin command that enables or disables the report system server-wide. Admins with the configured ACE permission can run this from the chat or server console.
string
default:"'admin'"
The ACE permission node checked to determine who receives in-game report alerts and who can run the toggle command.
string
default:"'sh'"
The notification handler used for player-facing messages. Set to
'sh' to use sh-notify, or 'custom' if you have integrated your own notification resource.Alert Options
boolean
default:"false"
When
true, sh-reports pings the Discord roles defined in Config.Roles each time a report is submitted. Requires valid role IDs and a webhook with permission to mention roles.boolean
default:"true"
When
true, all in-game players holding the ACE permission defined in Config.Permission receive an instant notification whenever a report is submitted.Webhook and Embed Options
number
default:"15611494"
The accent colour of the Discord embed, expressed as a decimal integer. Use a colour converter such as convertingcolors.com to convert HEX or RGB values to the decimal format Discord requires.
string
required
The full Discord webhook URL for Player Report submissions. Each report type sends to its own channel to keep your Discord organised.
string
required
The full Discord webhook URL for Bug Report submissions.
string
required
The full Discord webhook URL for Suggestion submissions.
boolean
default:"false"
When
true, screenshots are uploaded to Fivemerr and the hosted URL is embedded in the Discord message. Requires a valid fivemerrApiKey.string
default:"''"
Your Fivemerr API key. Only required when
UseFivemerr is set to true.string
default:"''"
A fallback Discord webhook used to host screenshot attachments when Fivemerr is disabled. Discord’s CDN URL from this upload is then embedded in the report webhook message.
Discord Role Mentions
WhenConfig.Mention.Discord is true, sh-reports pings specific Discord roles depending on the report type. Set each role ID to the numeric Discord Role ID for the role you want pinged.
shared/config.lua
Suggestions do not have a dedicated role ping field. If you want pings for suggestions, assign the same role ID used for
BugReport or extend the config with a custom entry.Report Types
sh-reports organises all submissions into three tabs inside the NUI form. Each tab sends to its own configured Discord webhook.Player Report
Player Report
Players use this tab to report another player for rule-breaking behaviour. The submitted embed includes the reporter’s server ID, the reported player’s server ID, a reason field, and an automatic screenshot of the reporter’s current view.
Bug Report
Bug Report
Players use this tab to describe a technical issue or broken feature on the server. The embed includes the reporter’s details, a description of the bug, and a screenshot for visual context.
Suggestion
Suggestion
Players use this tab to submit ideas or feature requests. Suggestions are sent to the dedicated Suggestion webhook without a screenshot by default, keeping that channel free of image clutter.