Configuration File
Main Files
SS-Admin is configured mainly from these files:
config.lua: Main configuration — shipped to clients, so it contains no secrets: general settings, ticket settings, admin jail, noclip keys, the permissions catalog (Command+Label),PowerAdminAce, and the whitelist on / off switch.s/config.lua: Server-only secrets — Discord bot token, guild ID, ticket / admin-log webhooks, and whitelist Discord role IDs. Never sent to clients.l/l.lua: Lua translations.config.js: NUI / interface translations.EXTRA/ss_admin.sql: Reference schema only — the script creates and verifies the tables automatically at startup.
config.lua
Config = {
Language = "EN",
AdminVoice = true,
RoleplayNameList = false,
OpenMenu = 0x3C3DD371,
ActiveCommands = true,
MaxWarns = 3,
BanWarns = 3,
MaxWarnsBanReason = "Reached max warns",
Notify = true,
PrintUnauthorizedAccess = true,
Debug = false,
NoclipSpeed = 0xB2F377E8,
NoclipStop = 0x760A9C6F,
NoclipUp = 0xD9D0E1C0,
NoclipDown = 0x8FFC75D6,
NoclipPlayersDistance = 20,
SpectateStop = 0x760A9C6F,
ModelTicket = "cs_crackpotrobot",
TicketSystem = true,
TpBack = true,
ReportCommand = "report",
TicketSolved = "TICKET SOLVED",
TicketTaken = "TICKET TAKEN",
TicketNew = "NEW TICKET",
AdminJail = {2369.5132, -1492.2881, 45.9974},
JailRadius = 13.0,
ReleaseJail = {2680.5466, -1449.5090, 46.3672},
BlipsUseSteamName = true,
BlipsRefresh = 2000,
AdminChat = true,
AdminChatHistoryLimit = 60,
TpEffects = true,
VolumeEffects = 0.1,
TimeToCheckBans = 6000 * 60 * 60,
PowerAdminAce = "ssadmin.power",
WhiteList = true,
}Debug: Settrueonly while testing — prints permission / connect / Discord diagnostics to the server console. Keepfalsein production.Webhooks are no longer in
config.lua— they moved tos/config.luaso clients can never read them.
Server Secrets (s/config.lua)
This file is loaded only on the server — nothing in it is ever sent to players.
Keep the Discord bot token private. If the token is leaked, regenerate it in the Discord developer portal before starting the server again.
Roles & Access — Managed From The Panel
Staff roles are no longer configured in config.lua. The old DiscordPermissions / SteamPermissions tables were removed — they exposed steam ids and Discord role ids to every client and required a restart to change.
Everything is now managed live from the panel and stored in the database (ss_admin_roles), so changes apply instantly with no restart:
Open the panel as Power Admin → Roles & Access (sidebar).
New Role → name it and tick the accesses it should grant.
Optionally link it to a Discord role (automatic access on join), or leave it manual and use Give Admin on a player's profile.
See Admins lists every admin — manual ones are removable, Discord ones are managed from Discord.
Power Admin (ACE)
The Power Admin can always open the panel, use every action, and manage roles. It is tied to your server ACE setup, so it can never be locked out:
The script automatically grants the ssadmin.power ACE to group.admin, group.superadmin and group.mod at startup. If your admins use a different group, add one line to server.cfg:
The ACE object checked is set by Config.PowerAdminAce (default ssadmin.power).
Whitelist
The on / off switch stays in config.lua:
The allowed Discord role IDs live server-side in s/config.lua → Config.WhiteListRoles (never sent to clients).
Fail-open safety: if Discord is unreachable (e.g. rate-limited during a mass restart), players are allowed in instead of being wrongly kicked.
Permissions Catalog
Every action is controlled by a numeric permission index. Each entry now only holds the Command and a Label (shown in the Roles editor). Who can use each access is decided per role from the panel.
Command: Chat command for that action, orfalsefor panel-button only.Label: Name shown for this access in the panel Roles editor.
Do not change the numeric indexes. Change only Command and Label.
Important indexes:
[1]: Open admin panel.[13]: Unban.[14]: Spectate.[19]: Give money.[20]: Give gold.[21]: Give item.[22]: Give weapon.[26]: Kick.[27]: Warn.[28]: Ban.[34]: Admin jail.[35]: New world / instance.[36]: Admin stash.[37]: Open player inventory.[50]: See nearby players.
Ticket System
TicketSystem: Enables player reports and ticket handling.ReportCommand: Command used by players to open the report form.TpBack: Sends staff back after solving a ticket.ModelTicket: Temporary model used during the ticket flow, orfalse.The ticket webhook is set in
s/config.lua(Config.Webhook).
Admin Chat
Admin chat is shown inside the admin panel for staff members with permission to open the panel — WhatsApp style, with your messages on the right and other admins on the left. History is stored in memory while the resource is running.
Database
You do not need to import any SQL. On first start SS-Admin automatically:
creates the
ss_adminandss_admin_rolestables if they do not exist,adds any missing column on older installs (self-healing migration).
The reference schema is still in EXTRA/ss_admin.sql if you want to inspect it. Stored data includes identifiers, Discord ID, license, warning count, ban state, playtime, last join / leave timestamps, ban details, admin jail time, and the panel-managed roles.
Last updated