Skip to main content
sh-reports gives your players a structured, in-game way to submit Player Reports, Bug Reports, and Suggestions without leaving the server. Opening the /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

Start screenshot-basic before sh-reports in your server.cfg. If screenshot-basic is not running when sh-reports loads, no screenshots will be captured and the Discord embeds will be sent without images.

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 in shared/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

When Config.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.
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.
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.
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.

Admin Commands

Disable reports temporarily during maintenance windows using /togglereports so players are not confused by missing feedback when staff are unavailable to act on submissions.