Skip to content

Admin System

Claude edited this page Apr 15, 2026 · 1 revision

Admin System

Jaymod includes a built-in admin system with fine-grained privilege levels, per-command ACLs, banning, muting, greeting, and a persistent user database.

Enable with:

set g_admin 1

Commands

Admin commands are prefixed with ! and can be issued from:

  • In-game chat (all-chat, team-chat, fireteam-chat)
  • Server console
  • rcon (remote console from an ET client)
  • Say-bindings configured on the server

Syntax

!command [arguments]

{} = required, [] = optional, ... = repeatable, | = choice.


Quick-start: granting admin access

  1. Start the server with g_admin 1
  2. Connect with your player account
  3. From the server console, run:
!useredit <yourname> level 100
  1. Reconnect — you now have full admin privileges.

Privilege model

There are three categories of privilege:

Pseudo-privileges (built-in groups)

Privilege Applies to
@all Every connected player
@behaviors All behavior-type privileges
@commands All command-type privileges

Behavior privileges (prefix B/)

These control how a player interacts with the admin system:

Privilege Description
B/balanceImmunity Immune to team-balance forced switches
B/banPermanent Can issue permanent bans
B/censorImmunity Not subject to chat censorship
B/commandChat Admin commands visible in chat
B/commandSilent Admin commands produce no output
B/reasonNone Can execute commands without giving a reason
B/specChat Can chat while spectating
B/voteAny Can call any vote regardless of vote_allow_* settings
B/voteImmunity Immune to kick/mute votes

Command privileges (prefix C/)

Each admin command has a corresponding C/command privilege. A player must have the privilege granted (and not denied) to use the command.

Examples: C/ban, C/kick, C/mute, C/warn, C/useredit, C/levedit, C/lol


Admin levels

Levels are defined in level.db and managed with !levedit. Each level has a set of granted and denied privileges.

Viewing and editing levels

!levedit                     ← list all levels
!levedit <level>             ← show a specific level
!levedit <level> +C/kick     ← grant the kick command to this level
!levedit <level> -C/ban      ← deny the ban command
!levedit <level> !C/mute     ← clear (remove grant/deny) for mute
!levedit <level> name "Mod"  ← set the display name for this level

ACL notation

Symbol Meaning
+privilege Grant
-privilege Deny
!privilege Clear (remove grant or deny)

User management

Users are stored in user.db and managed with !useredit.

!useredit <name>                  ← show user info
!useredit <name> level <n>        ← assign admin level
!useredit <name> greeting "Hello" ← set a greeting message
!useredit <name> +C/kick          ← grant kick directly on this user
!useredit <name> -B/voteImmunity  ← deny a behavior

User records are identified by a combination of GUID and IP. XP-save data is also stored per user.


Banning

!ban <name> [duration] [reason]
  • Duration uses the standard format: 10d, 2h, 30m, 0 = permanent
  • Permanent bans require the B/banPermanent privilege
  • Without B/reasonNone, a reason must be given
!unban <name|ip>
!banlist

Muting

!mute <name> [duration] [reason]
!unmute <name>

Muted players cannot use chat. Duration follows the same format as bans.


Other useful commands

Command Description
!kick <name> [reason] Kick a player
!warn <name> <reason> Issue a warning (accumulates toward auto-mute/ban)
!slap <name> Push a player
!noclip <name> Toggle noclip for a player
!rename <name> <newname> Rename a player
!putteam <name> <team> Move player to a team (a/b/s)
!spec <name> Force player to spectator
!pause Pause the match
!unpause Unpause the match
!reload Reload databases from disk
!status Show server resource usage
!lol Rain grenades on all players

Database files

File Contents
level.db Admin level definitions and their privileges
user.db Player accounts, levels, bans, mutes, greetings, XP
map.db Per-map data (killing-spree records, etc.)
censor.db Censored word list (when g_censor 1)

Important: The server loads databases at startup and saves them on shutdown. Manual edits to database files while the server is running will be overwritten. Use !useredit / !levedit in-game, or edit files offline and then !reload.


Configuration cvars

Cvar Default Description
g_admin 0 Enable the admin system
g_adminLog "" Log file for admin actions
g_disableComplaints 0 Bitmask disabling complaint types
g_complaintlimit 6 Complaints before auto-kick

Clone this wiki locally