The Admin System is a collection of commands used to aid in server administration. The mechanism allows for a user to issue text-based commands from a variety of sources which are then executed on the game server. The system has been influenced by ET mod community's comfort level with Shrubmod, to which we have attempted to maintain some cosmetic familiarity.
Over time the system has grown to include more than just administrative commands; some commands have been added to make game play more enjoyable.
An access control list (ACL) based security system is in place to allow for fine-grained grants or denials of various privileges.
![]() | Note |
|---|---|
| After installing Jaymod the only user which has full access to all commands is the server console. Thus one must send commands through rcon or server console. Once users begin connecting and known to the server, privileges can be granted to online or offline users as per server policy. |
![]() | Caution |
|---|---|
| The person responsible for managing the game server is ultimately responsible for making sure commands are locked down and granted only to other responsible users. Please do not assume that Jaymod offers any kinds of guarantees. This is a free project, so we do not guarantee anything! |
Commands may be issued from any of the following sources:
General command syntax is as follows. Note that commands are case-insensitive.
!command [OPTION]...
Use the !help command to obtain a list of all available commands. Optionally, a detailed synopsis and description for a specific command is also available.
!help [COMMAND]
The admin system is controlled using cvars and are effective immediately upon changing the value.
Table 7.1. Admin System Operation
| CVAR | DESCRIPTION |
|---|---|
| g_admin(cvar) | enable or disables admin system |
| g_adminLog(cvar) | sets the filename used for admin command logging |
Most admins installing a new version of Jaymod just want to know how to get it up and running as fast as possible. The following is a simple checklist of steps to go through to grant yourself full access after connecting.
[server-console] rconPassword PASSWORD
[client-console] /rconPassword PASSWORD
[client-console] /rcon g_admin 1[client-console] /rcon !help[client-console] /rcon !levadd 9[client-console] /rcon !levedit 9 -acl +@commands[client-console] /players[client-console] /rcon !setlevel SLOT 9
[client-console] !admintest [client-console] !help [client-console] !levlist
Access control lists (ACL) are used to grant or deny privileges to an admin level or user. Generally, each admin level is different and by convention more privileges are granted to higher levels. Privilege naming is important and to help keep things clean the naming is a clear indicator of the type of privilege as follows:
Table 7.2. Behavior Privileges
| PRIVILEGE | DESCRIPTION |
|---|---|
| @all | all privileges |
| @behaviors | all behavior privileges |
| @commands | all command privileges |
Table 7.3. Behavior Privileges
| PRIVILEGE | DESCRIPTION |
|---|---|
| B/balanceImmunity | can switch to any team regardless of balance |
| B/banPermanent | does not need to specify the duration of a ban (permanent ban) |
| B/censorImmunity | cannot be censored or flood protected |
| B/commandChat | can run commands from team or fireteam chat |
| B/commandSilent | can run commands silently from console (/!command) |
| B/reasonNone | does not need to specify a reason for kick/ban |
| B/specChat | can see all team, fireteam and PM chat as spectator |
| B/voteAny | can call a vote anytime (even if disabled) |
| B/voteImmunity | cannot be kicked, vote-muted, dropped for inactivity or complained against |
ACL management is how we grant or deny a privilege to an admin level or user. Basically, an ACL is a list of intermixed granted or denied privileges, and our goal is to manage that list. In cases of logical conflict, a DENIED privilege takes precedence over a GRANTED privilege. Note ACL lists are reduced to their canonical value automatically by removing superfluous or conflicting entries.
Level manipulation is accomplished with !levedit and effects all users at the level being edited immediately. User manipulation is accomplished with !useredit but only effects the specific user being edited.
For the purposes of this documentation we'll be editing an admin level and assume it already exists. The examples will use level 5 and privilege C/news which corresponds to the popular !news command. Substitute these values according to your particular needs.
!levedit 5 -acl +C/news!levedit 5 -acl -C/news!levedit 5 -acl !C/newsThe following are various examples of how the commands may be used for some of the more complex tasks typical for a server admin.
!levadd 500 !levedit 500 -name Donators !levedit 500 -gtext ^3Greetings donator! Thanks for your contribution. !levedit 500 -gsound sound/osp/goat.wav !levedit 500 -acl +C/pants !levedit 500 -acl +C/pip !levedit 500 -acl +C/pop !levinfo 500 !setlevel JohnSmith 500 !setlevel MarthaKent 500 !finger JohnSmith !finger MarthKent
A nasty user has come and gone from your server, but not without first creating a huge disruption. Maybe it's time to ban the player even though they already disconnected. The two pieces of information we have to go on is that the player's name was Jerry and he was connected within the last hour.
!userlist -name jerry -since 60m
According to the results, the offending user has been identified with ID 1fea4ad9. Now let's ban the user for 30 days.
!banuser 1fea4ad9 30d offensive behavior is not tolerated
And finally lets take a look at our ban list. As luck would have it, the list shows bans in order of newest bans to oldest so he should be right at the top of the list.
!banlist
But we've had a change of heart! Let's review his ban details and unban him.
!baninfo 1fea4ad9 !unban 1fea4ad9