Configuration
Use Customization for instructions on categories, language files, theme changes, and editable bridges. See the User Guide for duty and ticket workflows.
The configuration below is a reference to the supplied defaults. See the customization page for category keys, translation coverage, and notification behavior.
lua
--[[
set leno:discord_webhook "https://discord.com/api/webhooks/..."
set leno:discord_images_webhook "https://discord.com/api/webhooks/..."
add_ace group.admin reports.admin allow
]]
Config = {}
-- 'auto' | 'esx' | 'qbcore'
Config.Framework = 'auto'
-- 'auto' | 'ox_inventory' | 'qb-inventory' | 'qs-inventory' | 'codem-inventory'
-- | 'tgiann-inventory' | 'core_inventory' | 'one_inventory' | 'hex_4_inventory' | 'custom'
Config.Inventory = 'auto'
-- 'default' | 'ox_lib' | 'okokNotify' | 'qb' | 'esx' | 'custom'
Config.Notify = 'default'
-- Locale file in locales/{locale}.json
Config.Locale = 'en'
-- Add to server.cfg:
-- add_ace group.admin reports.admin allow
-- add_principal identifier.license:YOUR_LICENSE group.admin
Config.Permissions = {
admin = 'reports.admin',
}
Config.Debug = {
enabled = false,
verboseSql = false,
}
-- Per-player report limits (by author_id / citizenid).
Config.Reports = {
cooldownSeconds = 60,
maxActivePerPlayer = 3,
minDescriptionLength = 10,
maxDescriptionLength = 500,
maxSubjectLength = 30,
}
-- Report categories shown in UI. DB stores `key` only. Colors must be hex (#rrggbb).
Config.Categories = {
{ key = 'player_report', label = 'Player Report', color = '#c4b5fd' },
{ key = 'bug_report', label = 'Bug Report', color = '#fdba74' },
{ key = 'other', label = 'Other', color = '#a1a1a1' },
}
-- Discord webhooks: server.cfg only (never put URLs here).
-- set leno:discord_webhook "https://discord.com/api/webhooks/..." -- action logs
-- set leno:discord_images_webhook "https://discord.com/api/webhooks/..." -- screenshots
Config.Discord = {
enabled = true,
botName = 'Leno Reports',
avatarUrl = '',
mentionRoleId = '',
colors = {
created = 65280,
claimed = 16127,
unclaimed = 16776960,
closed = 16711680,
['goto'] = 3447003,
bring = 10181046,
freeze = 16753920,
unfreeze = 9807270,
},
events = {
created = true,
claimed = true,
unclaimed = false,
closed = true,
playerMessage = false,
staffMessage = false,
['goto'] = true,
bring = true,
freeze = true,
unfreeze = true,
},
}
Config.Screenshots = {
enabled = true,
showPlayerIds = true,
playerIdDistance = 50.0,
includeSelf = true,
quality = 0.85,
encoding = 'jpg',
cooldownMs = 8000,
maxPerReport = 0, -- 0 or -1 = unlimited
}
Config.Nearby = {
radius = 50.0,
maxPlayers = 10,
}
Config.UI = {
playerCommand = 'report',
staffCommand = 'reports',
playerKey = 'F6',
staffKey = 'F7',
playerKeyDescription = 'Open player report menu',
staffKeyDescription = 'Open staff reports menu',
}
Config.StaffNotify = {
enabled = true,
onlyOnDuty = true,
notifyOnNewReport = true,
notifyOnPlayerReply = true,
notifyOnClaim = false,
notifyOnUnclaim = true,
durationMs = 8500,
openKey = 'G',
}
Config.StaffChat = {
historyLimit = 100,
defaultOnDuty = false,
persistDuty = true,
}
-- Staff ticket actions (goto / bring / freeze).
-- Anti-cheat: whitelist `leno_reports` in your AC panel; teleports are server-validated only.
-- See plan docs for ElectronAC / WaveShield / FiveGuard notes.
Config.Actions = {
['goto'] = true,
bring = true,
freeze = true,
}