Framework Support
sh-admin supports both VORP and RSG frameworks. Set the framework in your server-sideconfig.lua:
config.lua
Permission System
sh-admin uses two permission sources that work together. Discord role IDs are the primary source; ACE permissions are the secondary fallback. Both can be active simultaneously.Discord Role Permissions
Configure your Discord bot token, guild ID, and map role bucket names to Discord role IDs:config.lua
ACE Permission Fallback
Each action also maps to an ACE node inConfig.Permissions.Ace.Map. Add these to server.cfg to grant access when Discord role checks are unavailable or disabled:
server.cfg
sh-admin validates permissions server-side on every action. Editing client-side files does not bypass the permission checks — all sensitive operations are verified before execution.
Commands
| Command | Config key | Description |
|---|---|---|
/admin | Config.Commands.Admin | Open the admin panel |
/report | Config.Commands.Report | Submit a player report |
/requestadmin | Config.Commands.RequestAdmin | Request admin assistance |
/unstuck | Config.Commands.Unstuck | Self-teleport to nearby ground level |
/myplaytime | Config.Commands.MyPlaytime | View your account playtime and trust score |
/noclip | Config.Commands.NoClip | Toggle admin noclip |
/adminmode | Config.Commands.AdminMode | Toggle composite admin mode (ghost, god, IDs, STAFF tag) |
/tpm | Config.Commands.TeleportMarker | Teleport to map waypoint |
/invis | Config.Commands.Invisible | Toggle admin invisibility |
/kick | Config.Commands.Kick | Kick a player by server ID |
/warn | Config.Commands.Warn | Warn a player by server ID |
/ban | Config.Commands.Ban | Ban a player by server ID |
/goto | Config.Commands.GoTo | Teleport to a player |
/bring | Config.Commands.Bring | Bring a player to your position |
0x3C3DD371). NoClip defaults to F4 (0x1F6D95E5). Both are configurable in Config.Keys.
Feature Highlights
Player List & Actions
Player List & Actions
The NUI panel opens with a live list of all connected players showing server ID, character name, identifiers, ping, and current job. Click any player entry to access the full action menu: view inventory, teleport, spectate, freeze, give items, give weapons, adjust finances, set job, kick, warn, or ban.
Spectate
Spectate
Attach your camera to any connected player and observe their gameplay without being visible to them. Press the exit key to detach and return to your character.
God Mode & NoClip
God Mode & NoClip
Toggle invincibility and noclip individually or together via Admin Mode (
/adminmode). God mode is session-only and resets on disconnect. NoClip can be bound to a configurable hotkey.Bans & Punishment Templates
Bans & Punishment Templates
Ban a player with a mandatory reason and optional duration (0 = permanent). The Punishments tab provides configurable Ban QuickSet buttons for common infractions (e.g. RDM, toxicity, cheating) so staff can apply standard bans with one click. A Reason Catalog auto-suggests durations when staff type a known reason prefix.
Reports & Ticket Queue
Reports & Ticket Queue
Players submit reports via
/report. Staff see an in-panel report queue with the submitting player’s nearby context snapshot. Staff can claim, respond, teleport to, or bring the reporting player. Report status flows through open → claimed → resolved → closed.Offline Player Management
Offline Player Management
Search for offline players by name or identifier and perform actions such as adding notes, issuing offline bans, and adjusting queued finances — without the player needing to be online.
Dev Tools
Dev Tools
Developer utilities include item/weapon spawning pickers, a coordinate logger, entity browser, and zone cleaner. These are gated behind the
devtools.* action roles so they can be restricted to senior staff.Maintenance Mode
Maintenance Mode
Toggle server maintenance mode from the Operations tab. When active, new joins are blocked with a custom message. Staff with the
sh.admin.maintenance.bypass ACE can still join. A full-screen broadcast banner can be pushed to all online players.Trust Score System
sh-admin tracks a trust score per player account. Scores start at 80 (configurable) and gain +2 every 2 hours of playtime. Infractions reduce the score:| Infraction | Default score loss |
|---|---|
| Warn | −10 |
| Kick | −15 |
| Temp ban | −35 |
| Perm ban | −90 |
AutoBan.Threshold (default: 30), the player is automatically banned for AutoBan.DurationDays (default: 7 days). Players can view their own score with /myplaytime.
Join Whitelist
sh-admin includes a Discord role-based join whitelist. When enabled, only players holding at least one of theRequiredRoleIds Discord roles can connect:
config.lua
Discord Webhook Logging
Every admin action is logged to configurable per-channel webhooks:config.lua
sh-doctorjob Integration
When sh-doctorjob is running, admin revive and heal actions route through sh-doctorjob’s handlers for proper state sync. Configure this inConfig.Integrations:
config.lua
Installation
Add to server.cfg
Add ACE permission entries before the ensure line, then ensure sh-admin after your framework:
server.cfg
Import the SQL file
Run the SQL files from the
install/ folder against your database to create the ban records, reports, and trust score tables.Configure Discord permissions
Add your Discord
BotToken and GuildId to Config.DiscordRoles.Api. Map your Discord role IDs to AdminRoles buckets and configure ActionRoles to control which buckets can perform each action.Configure webhooks
Add your Discord webhook URLs to
Config.Webhooks.Channels for each log type you want to capture.