Server Config

sv_config.lua stays on the server and is never sent to clients. It decides who counts as an admin and what gets logged to Discord.

Everything in this file is security relevant. Never post its contents in a ticket or on Discord without removing the webhook URL first.

Admin groups

SV_CreatorPanel.AdminGroups = {
    ["pl"]         = true,
    ["admin"]      = true,
    ["superadmin"] = true,
}

Every group listed with true may open the creator management with /creator and add, edit or remove creators. Players outside these groups get Locales.notify.notAdmin when they try.

  • The keys are your framework's group names, exactly as they are stored on the player (ESX: the group column on the user, e.g. user, mod, admin, superadmin).
  • Add your own ranks the same way — ["projektleitung"] = true, ["support"] = true.
  • To revoke a group, delete the line or set it to false.
  • These groups also decide who is treated as an admin by CreatorPanel.LiveCheck.includeAdmins in config.lua.

Being an admin is not the same as being a creator. Admins hand out creator access; whether they also get the panel themselves depends on whether they have a creator entry. If your staff should be able to use the panel too, add them with /creator like anyone else.

Discord webhook

SV_CreatorPanel.Webhook = "https://discord.com/api/webhooks/…"

SV_CreatorPanel.WebhookTitle  = "Creator Panel"
SV_CreatorPanel.WebhookLogo   = ""
SV_CreatorPanel.WebhookColour = 3447003
SV_CreatorPanel.WebhookName   = "Creator Panel"
OptionTypeDescription
WebhookstringTarget webhook URL. Create it in Discord under Channel → Edit Channel → Integrations → Webhooks. Leave it empty ("") to disable logging completely
WebhookTitlestringTitle shown at the top of the embed
WebhookLogostringDirect URL to an image used as the embed thumbnail — leave empty for none
WebhookColournumberColour of the embed bar as a decimal value, not a hex string
WebhookNamestringName the bot posts under

Common colour values:

ColourHexDecimal
Blue#3498DB3447003
Green#2ECC713066993
Red#E74C3C15158332
Yellow#F1C40F15844367
Purple#9B59B610181046
White#FFFFFF16777215

To convert your own colour, drop the # and read the remaining hex number as decimal (3498DB → 3447003).

A webhook URL is a password. Anyone who has it can post into that channel. Keep it out of screenshots and public repositories, and if it leaks, delete the webhook in Discord and create a new one.

What gets logged

SV_CreatorPanel.Log = {
    Aduty    = true,
    noclip   = true,
    killfeed = true,
    nametags = true,
    revive   = true,
    killme   = true,
    teleport = true,
    creators = true,
    open     = false,
}

Each key is a separate switch — set it to false to stop logging that action.

KeyDefaultLogged event
AdutytrueCreator goes on or off admin duty
nocliptrueNoclip enabled or disabled
killfeedtrueKillfeed toggled or its radius changed
nametagstrueNametags toggled
revivetrueSelf revive
killmetrueSelf kill
teleporttrueTeleport to a player
creatorstrueCreator added, edited or removed via /creator
openfalsePanel opened. Off by default because it is noisy — turn it on only while investigating something

Log labels

SV_CreatorPanel.LogLabels = {
    Aduty    = "Aduty",
    noclip   = "Noclip",
    killfeed = "Killfeed",
    nametags = "Nametags",
    revive   = "Wiederbeleben",
    killme   = "Kill Me",
    teleport = "Teleport",
    creators = "Creator-Verwaltung",
    open     = "Panel geöffnet",
}

These are the headings that appear in the Discord embed for each action. The keys must stay exactly as they are — only change the text on the right. An English set:

SV_CreatorPanel.LogLabels = {
    Aduty    = "Aduty",
    noclip   = "Noclip",
    killfeed = "Killfeed",
    nametags = "Nametags",
    revive   = "Revive",
    killme   = "Kill Me",
    teleport = "Teleport",
    creators = "Creator management",
    open     = "Panel opened",
}
  • Log to a staff-only channel. The entries contain player names and identifiers.
  • Keep creators = true at all times — it is the audit trail of who granted access to whom.
  • Leave open = false unless you are actively looking into a specific case.
  • Give the webhook its own channel rather than mixing it into a general log channel; the killfeed and noclip entries can add up quickly.