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
groupcolumn 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.includeAdminsinconfig.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
/creatorlike 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"
| Option | Type | Description |
|---|---|---|
Webhook | string | Target webhook URL. Create it in Discord under Channel → Edit Channel → Integrations → Webhooks. Leave it empty ("") to disable logging completely |
WebhookTitle | string | Title shown at the top of the embed |
WebhookLogo | string | Direct URL to an image used as the embed thumbnail — leave empty for none |
WebhookColour | number | Colour of the embed bar as a decimal value, not a hex string |
WebhookName | string | Name the bot posts under |
Common colour values:
| Colour | Hex | Decimal |
|---|---|---|
| Blue | #3498DB | 3447003 |
| Green | #2ECC71 | 3066993 |
| Red | #E74C3C | 15158332 |
| Yellow | #F1C40F | 15844367 |
| Purple | #9B59B6 | 10181046 |
| White | #FFFFFF | 16777215 |
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.
| Key | Default | Logged event |
|---|---|---|
Aduty | true | Creator goes on or off admin duty |
noclip | true | Noclip enabled or disabled |
killfeed | true | Killfeed toggled or its radius changed |
nametags | true | Nametags toggled |
revive | true | Self revive |
killme | true | Self kill |
teleport | true | Teleport to a player |
creators | true | Creator added, edited or removed via /creator |
open | false | Panel 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",
}
Recommended setup
- Log to a staff-only channel. The entries contain player names and identifiers.
- Keep
creators = trueat all times — it is the audit trail of who granted access to whom. - Leave
open = falseunless 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.