OrigenNetwork
Docs

Configuration · origen_reports

Shared configuration lives in config.lua. Discord webhooks are server-only and live in svconfig.lua.

Config.Framework, Config.Inventory, Config.Clothing and Config.Ambulance are auto-detected in init.lua. Do not set them in the config file.


General

VariableDefaultDescription
Config.DebugfalsePrints debug output to the console
Config.Language'en'Resource language — 'es' or 'en'
Config.maxActiveReports1Maximum number of open reports a player can have at the same time
Config.anonymousStaffMessagestrueHides the staff member's name in the messages the player receives
Config.notificationPosition'top-right'Position of the in-UI notifications. top-left, top-center, top-right, center-left, center, center-right, bottom-left, bottom-center, bottom-right
Config.uiSoundstrueHover, click and transition sounds in the interface

maxActiveReports and anonymousStaffMessages are only seed values. On the first start they are written to the origen_reports_config table, and from then on the database wins. Change them from the admin panel, or delete their rows in origen_reports_config to re-seed from config.lua.


Commands

KeyDefault commandDescription
userpannel/reportOpens the player panel to create and follow reports
adminpannel/adminreportOpens the staff panel. Only staff members get a response
lua
Config.Commands = {
    ['userpannel'] = {
        name = 'report',
        helpKey = 'commands.user_help',
    },
    ['adminpannel'] = {
        name = 'adminreport',
        helpKey = 'commands.admin_help',
    },
}
FieldTypeDescription
namestringChat command name, without the slash
helpKeystringLocale key used as the command suggestion text

Staff access

Permissions that grant staff access. See Installation for how each entry is resolved against ACE and the framework.

lua
Config.StaffFullAccess = {
    'superadmin',
    'admin',
    'god'
}
 
Config.StaffBasicAccess = {
    'mod',
    'moderator',
}
VariableDescription
Config.StaffFullAccessPermissions that grant full access: every quick action and the admin panel
Config.StaffBasicAccessPermissions that grant basic access: the default basic permission set

If a player matches both lists, full access wins.


Report types

Categories the player picks when creating a report.

lua
Config.reportTypes = {
    { id = 1, labelKey = 'report_types.support_general', icon = 'help' },
    { id = 2, labelKey = 'report_types.report_player',   icon = 'user' },
    { id = 3, labelKey = 'report_types.report_bug',      icon = 'bug'  },
}
FieldTypeDescription
idnumberUnique identifier of the type
labelKeystringLocale key of the label. Use label instead to set a literal text
iconstringIcon shown in the UI. Default 'help'

Report types are seeded into origen_reports_types on the first start, only when the table is empty. Afterwards they are managed from the admin panel and changes to config.lua are ignored.


Teleport points

Destinations available in the teleport quick action.

lua
Config.teleportPoints = {
    { id = 1, nameKey = 'teleports.mrpd',             coords = { x = 425.2, y = -980.5, z = 30.7 } },
    { id = 2, nameKey = 'teleports.hospital_pillbox', coords = { x = 295.8, y = -584.3, z = 43.3 } },
    { id = 3, nameKey = 'teleports.legion_square',    coords = { x = 192.4, y = -939.2, z = 30.7 } },
}
FieldTypeDescription
idnumberUnique identifier of the point
nameKeystringLocale key of the name. Use name instead to set a literal text
coordstable{ x, y, z } destination coordinates

Same as report types: they are seeded into origen_reports_teleports only when the table is empty, and managed from the admin panel afterwards.


Live screen sharing

Settings of the video quick action. The reported player streams their screen to the staff member handling the ticket over WebRTC.

lua
Config.videoStream = {
    frameRate   = 24,
    width       = 1280,
    height      = 720,
    bitrateKbps = 1500,
 
    notifyTarget = false,
 
    maxStaffPerTarget = 1,
 
    iceServers = {
        { urls = 'stun:stun.l.google.com:19302' },
    },
}
FieldDefaultDescription
frameRate24Frames per second (5-60). Higher values cost more CPU/GPU on the streaming player
width1280Max width of the video track (320-3840)
height720Max height of the video track (180-2160)
bitrateKbps1500Max bitrate per stream in kbps (250-12000)
notifyTargetfalseNotifies the player when a staff member starts watching their screen
maxStaffPerTarget1Max number of staff members watching the same player at once
iceServersGoogle STUNICE servers used to negotiate the peer connection

STUN alone fails behind symmetric NAT, so some players will never connect. For full coverage add your own TURN server:

lua
iceServers = {
    { urls = 'stun:stun.l.google.com:19302' },
    { urls = 'turn:turn.example.com:3478', username = 'user', credential = 'pass' },
},

Nearby players

List of players shown under the quick actions of a claimed ticket.

lua
Config.nearbyPlayers = {
    radius          = 30.0,
    maxResults      = 20,
    refreshInterval = 0,
    showIp          = false,
}
FieldDefaultDescription
radius30.0Meters around the reported player, not the staff member (1-500)
maxResults20Max players returned per query
refreshInterval0Auto refresh while the section is open, in milliseconds. 0 disables it and leaves only the manual refresh button
showIpfalseIncludes the connection endpoint (IP) in the identifiers. Only staff with full access ever receives it

Webhooks

svconfig.lua holds every Discord webhook. Set enabled = false to disable all logs.

KeyLogged when
report-createdA player creates a report
report-claimedA staff member claims a report
report-resolvedA report is resolved
report-releasedA staff member releases a claimed report
staff-dutyA staff member goes on or off duty
admin-config-generalGeneral settings change from the admin panel
admin-config-tp-add / -update / -deleteA teleport point is created, edited or removed
admin-config-type-add / -update / -deleteA report type is created, edited or removed
admin-group-add / -update / -deleteA staff group is created, edited or removed
admin-add-staff / admin-remove-staff / admin-update-staffA staff member is added, removed or edited
quick-bring · quick-goto · quick-bringback · quick-back · quick-teleportTeleport quick actions
quick-inventory · quick-giveitemsInventory quick actions
quick-revive · quick-ropa · quick-bucketRevive, clothing and routing bucket quick actions
quick-espectar · quick-video · quick-nearbySpectate, live screen sharing and nearby players
quick-screenshot-request · quick-screenshot-resultA screenshot is requested and its result
screenshot-uploadNot a log: the webhook screenshot-basic uploads captures to

Any key left as YOUR_WEBHOOK_URL or empty is skipped silently.