ETJump admin system

ETJump includes a simple admin system, with configurable levels and built-in authentication system. etkey is completely ignored by the mod, and client identities are tied to the GUID found in etjump/etguid.dat instead. This file is automatically generated when connecting to a server, if it doesn’t already exist.

Important

Keep this file safe! Never share it with others, and make sure it’s backed up in case you lose it.

Note

The GUID displayed as part of !userinfo and in the client’s userinfo string is a SHA-1 hashed version of your actual GUID stored in etguid.dat. It is not dangerous if other players see this - it cannot be used to determine your real GUID in order to impersonate you.

Admins can configure the levels and their commands, as well as some other additional parameters, using the levels config file. A sample configuration file will be automatically generated by the mod when starting a server, if one isn’t yet present.

User data is stored in the user database. The server generates a unique ETJump ID for each new player that visits the server, and stores it in this database. It also contains any bans issued on the server, and any custom, client-specific configurations, such as greeting and title.

Permission system

Access to admin commands is controlled by flags. The table below lists all available command flags, and the commands that they offer.

Note

The flags are case sensitive.


Admin chat

Any player with the S command flag has access to admin chat. This is a chat system which is isolated from the rest of the chat on the server. Anyone with the flag S can both see and send messages to the chat.

Players can send messages to admin chat via the chat window by selecting “Admin” as the destination. If the player does not have permissions to send messages to admin chat, the message is simply dropped entirely.

adminchat box

Tip

Messages to admin chat can also be sent from console with the following commands

Tip

Similar to team and fireteam chats, it’s possible to create a bind that opens the chat window with “Admin” selected as destination, using the adminChat command. This isn’t bound to anything by default.

bind <key> adminChat

An admin chat is colored orange, and prefixed with a >.

adminchat example

If desired, admin chat can be disabled on the server with the g_adminChat cvar.


List of admin commands

Below you’ll find a list of all the admin commands, with explanations on what they do and what flag is required to access them.

Note

The admin system was written a long time ago, and some of the more advanced functionality is not very well implemented. The admin system will be rewritten in the future to be more robust and better to use.

Tip

Admin commands support “auto-complete”, so you don’t have to type in the full name of each command. For example, !admin will execute !admintest. If you’re not writing the full command, you must provide enough characters from the command that it can resolve to a single command available for your level.


8ball

!8ball <question>

8ball answers all your questions with three possible answers: yes, no and maybe.

Flag: a


add-customvote

!add-customvote -n <name> -fn <callvote_text> -m <maps>
!add-customvote --name <name> --full-name <callvote_text> --maps <maps>

Adds a new custom map vote list. <maps> is a space separated list of maps to include in the list.

Flag: c

Note

This command does not perfrom any validation on the list of maps provided, it is up to the user to provide a valid map names.


add-season

!add-season -n <name> -sd <YYYY-MM-DD> [-ed <YYYY-MM-DD>]
!add-season --name <name> --start-date <YYYY-MM-DD> [--end-date-exclusive <YYYY-MM-DD>]

Adds a new timerun season. If [--end-date-exclusive] isn’t set, the season will be active until end date is added with !edit-season, or the season is deleted with delete-season.

Flag: T

Note

Season names are case insensitive.


addlevel

!addlevel <level> [-cmds <commands>] [-greeting <greeting>] [-title <title>]

Adds a new level. Optionally you can use -cmds, -greeting and -title switches to set commands, greeting and title for the level.

Flag: A


admintest

!admintest

Prints your admin level to everyone in the chat.

Flag: a


ban

!ban <name|clientnum> [time (seconds)] [reason]

Bans a player. Optionally you can set a [time] for ban duration in seconds. No [time] means a permanent ban. Optionally you can also give a [reason] for the ban that will be printed to the banned user. Setting a [reason] requires setting [time] as well.

Flag: b

Note

Temporary bans do not currently expire during a map. If a ban timeout has expired during current map on the server, the map must be changed for the banned client to be able to connect.


cancelvote

!cancelvote

Cancels currently active vote.

Flag: C


delete-customvote

!delete-customvote -n <name>
!delete-customvote --name <name>

Deletes a custom map vote list. Name must be an exact match.

Flag: c


delete-season

!delete-season -n <name>
!delete-season --name <name>

Deletes a timerun season. Name must be an exact match.

Flag: T

Caution

This will delete all timerun records associated with the season!

Note

Season names are case insensitive.


deletelevel

!deletelevel <level>

Deletes a level. Users who are currently set to deleted level will be set to level 0.

Flag: A


edit-customvote

!edit-customvote -l <list> [-n <name>] [-fn <callvote_text>] [-am <maps>] [-rm <maps>]
!edit-customvote --list <list> [--name <name>] [--full-name <callvote_text>] [--add-maps <maps>] [--remove-maps <maps>]

Edits an existing custom map vote list.

Flag: c


edit-season

!edit-season -n <name> [-sd <YYYY-MM-DD>] [-ed <YYYY-MM-DD>]
!edit-season --name <name> [--start-date <YYYY-MM-DD>] [--end-date <YYYY-MM-DD>]

Edits an existing timerun season.

Flag: T

Note

Season names are case insensitive.


editcommands

!editcommands <level> [+command] [-command]

Edits commands for a level. Adding a + before the command will add that command to the level, adding a - before the command will remove that command from the level. This does not use command flags, but rather explicit command names.

The following example adds kick and ban to level 5 and removes 8ball from the level 5

!editcommands 5 +kick +ban -8ball

Flag: A

Todo

Verify that this actually works as it should. It interacts weirdly with the Commands field in the level config.


editlevel

!editlevel <level> [-cmds <flags>] [-greeting <greeting>] [-title <title>] [-clear <cmds|greeting|title>]

Edits a level with given arguments.

Flag: A


edituser

!edituser <etjump ID> [-cmds <flags>] [-greeting <greeting>] [-title <title>] [-clear <cmds|greeting|title>]

Edits a user. These permissions and parameters override the regular permissions and parameters that the users’ level provides.

Flag: A

Tip

This works even if the user is not connected to the server


findmap

!findmap <mapname> [maps per row (1-5)]

Lists all maps on server matching <mapname>. If [maps per row] is set, will print the given amount of maps to each row (default 3).

Flag: a


finduser

!finduser <name>

Lists users that match the name.

Flag: A


finger

!finger <name|clientnum>

Prints name, original name, ETJump ID, level and title of the targeted player.

Flag: f


help

!help [command]

Prints all available admin commands. if [command] is given, prints the manual for the given command.

Flag: a


kick

!kick <name|clientnum> [timeout (seconds)] [reason]

Kicks target player. If [timeout] is given, the targeted player is unable to connect to the server for the duration. If [reason] is set, the kicked client will see this message when they get kicked.

Flag: k


leastplayed

!leastplayed [count (1-100)]

Lists the least played maps on the server. If [count] isn’t specified, defaults to 10 maps.

Flag: a


levelinfo

!levelinfo [level]

Lists all levels configured on the server. If [level] is specified, prints detailed information about the given level.

Flag: A


listbans

!listbans [page]

Lists all active bans on the server. A single page fits 10 bans.

Flag: L


listflags

!listflags

Lists command flags for each admin command.

Flag: A


listmaps

!listmaps [maps per row (1-5)]

Lists all maps on the server. If [maps per row] isn’t specified, defaults to 5.

Flag: a


listplayers

!listplayers

Lists all players connected to the server, including their clientnum, ETJump ID, level and name.

Flag: l


listusernames

!listusernames <etjump id>

Lists all usernames registered for the given <etjump id> on the server.

Flag: A


listusers

!listusers [page]

Lists users that are registered on servers user database. A single page fits 20 users.

Flag: A


loadcheckpoints

!loadcheckpoints <run name> [rank]
!loadcheckpoints -r <run name> [-rk <rank>]
!loadcheckpoints --run <run name> [--rank <rank>]

Loads timerun checkpoints for comparison for given timerun. If [rank] isn’t specified, defaults to rank 1 time. Loaded checkpoints can be cleared by specifying -1 as rank.

Flag: a

Tip

<run name> supports partial name matching, the exact run name isn’t required.


map

!map <map name>

Changes to the specified map.

Flag: M


mapinfo

!mapinfo [map]

Prints information about the current map. If [map] is specified, prints information about the specified map.

Flag: a


mostplayed

!mostplayed [count (1-100)]

Lists the most played maps on the server. If [count] isn’t specified, defaults to 10 maps.

Flag: a


moverscale

!moverscale <value (0.1-5.0)>

Scales movement speed of entities following spline paths (typically vehicles) by the given value.

Flag: v

See also

g_moverScale


mute

!mute <name|clientnum>

Mutes the targeted player.

Flag: m


newmaps

!newmaps [count (1-50)]

Displays the latest maps added to the server, sorted from oldest to newest. If [count] isnt’ specified, defaults to latest 5 maps.

Flag: a

Note

If a map has been on the server previously but later removed, it has already been registered to the servers map database and won’t be displayed as the newest map if re-added back.


noclip

!noclip [name|clientnum] [count]

Enables noclip. If [name|clientnum] is specified, targeted player can use noclip once. If [count] is specified, allows targeted player to use noclip for the given number of times. Value -1 allows unlimited use until the targeted player disconnects.

Flag: N

Note

This command has no effect if g_noclip is set to 1.


passvote

!passvote

Forces currently active vote to pass.

Flag: P

Note

Rock the Vote cannot be passed using this command.


rankings

!rankings [season]
!rankings [-s <season>] [-p <page>] [-ps <page size>]
!rankings [--season <season>] [--page <page>] [--page-size <page size>]

Prints timerun rankings. If no parameters are given, prints top 20 overall rankings.

Flag: a


ranks, records, times and top

!records [run name]
!records <map name> <run name>
!records <season> <map name> <run name>
!records [-s <season>] [-m <map name>] [-r <run name>] [-p <page>] [-ps <page size>]
!records [--season <season>] [--map <map name>] [--run <run name>] [--page <page>] [--page-size <page size>]

Prints timerun records with given parameters. If no arguments are given, prints top 3 records for each run in the current map. If [run name] is given, prints top 20 records for the given run. If [season] isn’t specifed, prints overall records.

Flag: a

Tip

<run name>, <map name> and <season> support partial name matching.

Note

ranks, reconds, times and top are all valid aliases for this command.


rename

!rename <name|clientnum> <new name>

Renames the targeted player

Flag: R

Note

This does not decrease the name change limit defined by g_nameChangeLimit, unless you’re targeting yourself.


restart

!restart

Restarts the current map.

Flag: r


rtv

!rtv [list]

Calls Rock the Vote. If [list] is given, calls Rock the Vote with maps only included in the specified custom map vote list.

Flag: a


seasons

!seasons

Lists all timerun seasons on the server.

Flag: a


setlevel

!setlevel <name|clientnum> <level>
!setlevel -id <etjump id> <level>

Sets adminlevel of the targeted player.

Flag: s

Tip

When using -id <etjump id>, the targeted player does not have to be connected to the server.


spectate

!spectate [name|clientnum]

Switches your team to spectators. If [name|clientnum] is specified, starts following the given player.

Flag: a


tokens

!tokens create <easy|e|medium|m|hard|h>
!tokens delete [easy|e|medium|m|hard|h <number (1-32)>]
!tokens move

Creates, deletes or moves a collectible token with given arguments.

  • !tokens create will create a token to your location with the given difficulty.

  • !tokens delete will delete a token closest to your location, or a specific token from given difficulty.

  • !tokens move will move the token closest to you to your current location.

Flag: V

Note

g_tokensMode must be set to 1 for these commands to work.


unban

!unban <ban id>

Removes a ban with the given <ban id>.

Flag: b

Note

The unbanned player won’t be able to connect to the server until the next time the map is changed.


unmute

!unmute <name|clientnum>

Unmutes the targeted player.

Flag: m


userinfo

!userinfo <etjump id>

Prints information about the given user.

Flag: A


Silent command execution

/!command

Allows clients to execute any admin commands available to them silently, without having the typed command appear in chat.

Flag: /

Note

Silent commands must be typed in console instead of chat. Any output that a command might produce for other players will still be visible.