Bug Report Manifest
Manifest entry centralizing every configuration knob for the bug report system. Each manifest runs its own isolated report system with its own command, storage and categories.
Commands
The command is registered through the engine's command system and follows reloads automatically.
| Command | Permission | Description |
|---|---|---|
/{commandName} | — | Opens the category selection dialog |
/{commandName} mine | — | Lists the player's own reports |
/{commandName} list [player] | adminPermission | Lists recent reports, optionally filtered by player |
/{commandName} status <id> <statusId> | adminPermission | Moves a report to another status |
/{commandName} delete <id> | adminPermission | Deletes a report |
Configuration
| Field | Type | Default | Description |
|---|---|---|---|
commandName | String | "" | Command name to open this bug report system (e.g. report, bugreport, ticket) |
serverName | String | "" | Name displayed when referencing this server in reports |
sequenceStorage | Ref<Artifact> | — | Artifact storing the reports and the ID sequence |
selectMenuTitle | String | "Select Category" | Title of the category selection dialog |
selectMenuBody | String | "Choose a category for your report:" | Body text of the selection dialog |
submitButtonText | String | "Submit" | Text on the submit button |
categoryLayoutLines | Int | 1 | Lines of categories in the selection menu |
maxReportsPerPlayer | Int | 0 | Maximum reports each player may keep (0 = unlimited) |
submissionCooldown | Int | 0 | Cooldown in seconds between two submissions |
notifyPermission | String | "bugreport.notify" | Permission receiving staff notifications on new reports |
adminPermission | String | "bugreport.admin" | Permission for the list/status/delete subcommands |
statuses | List<BugReportStatus> | open, in_progress, resolved, closed | Statuses a report can be moved through |
categories | List<BugReportCategory> | [] | Categories shown to players, each with its own form inputs |
messages | BugReportMessages | — | Player facing messages |
webhook | BugReportWebhookSettings | — | Discord webhook delivery configuration |
discordCommands | Boolean | false | Register Discord slash commands (list/status/delete) for this system |
discordAdminRoleIds | List<String> | [] | Discord role IDs allowed to use the slash commands (empty = server administrators only) |
Statuses
Each status has an id, a displayName, a description and a sendNotification flag — when true, the reporter is notified in game when their report enters this status. The first status of the list is the default for new reports.
Validation
Submissions are refused with the corresponding configurable message when the cooldown is active, the per-player limit is reached, or a text input is shorter than its minLength.
Discord Slash Commands
When discordCommands is enabled and the bot (from the Discord link manifest) is connected, /{commandName} list|status|delete become available in Discord with ephemeral replies, restricted to discordAdminRoleIds (or server administrators when the list is empty).