ETPUB shrubbot commands
Shrubbot
shrubbot is an invention of Ryan Mannion. etpub tries to clone shubbot as accurately as possible, both in user interface and in the shrubbot configuration file (usually called "shrubbot.cfg").
Below are the shrubbot commands that etpub currently supports and the corresponding flag to be used in the shrubbot config file to give permission to the command:
COMMAND FLAG g_tyranny USAGE DESCRIPTION
!readconfig G - !readconfig read g_shrubbot file
!time C - !time prints out localtime of the server in global chat
!setlevel s - !setlevel (NAME|SLOT) LEVEL sets the connected player in slot number SLOT or with name containing NAME to the level indicated by LEVEL. A player cannot !setlevel another player to a lever higher than him/herself.
!kick k - !kick (NAME|SLOT) REASON kicks the player in slot number SLOT or with name containing NAME off off the server. REASON is given to the client as the drop message. The client will be banned for 2 minutes.
!ban b - !ban (NAME|SLOT)
(SECONDS|TIME_WITH_MODIFIER) REASON Kicks the player in slot number SLOT or with name containing NAME off the server and will not let them connect again for SECONDS seconds, or, if a modifier (m, h, d, or w) is used, a given amount of time. For example:
90 = 90 seconds
15m = 15 minutes
3h = 3 hours
5d = 5 days
1w = 1 week
!unban b - !unban BAN_NUMBER removes the ban that !showbans lists as BAN_NUMBER
!putteam p - !putteam (NAME|SLOT) (r|b|s) puts the player in slot number SLOT or with name containing NAME on the indicated team.
r - AXIS
b - ALLIES
s - SPECTATORS
!pause Z - !pause pauses the match
!unpause Z - !unpause unpauses the match
!listplayers i - !listplayers prints out a list of information about the connected players. the columns are: slot number
team R=axis B=allies S=spectator C=connecting
first letter of fireteam name
admin level (and level name)
last 8 digits of guid
M if muted
W if warned
name
stored name (if different)
!mute m - !mute (NAME|SLOT) [SECONDS|TIME_WITH_MODIFIER] REASON mutes the player in slot number SLOT or with name containing NAME. TIME and REASON are optional. See !ban 6 lines above for more information on modifiers
!unmute m - !unmute (NAME|SLOT) unmutes the player in slot number SLOT or with name containing NAME
!showbans B - !showbans [SKIP] lists up to 30 shrubbot bans currently in effect. columns are ban number
banned player's name
date of the ban
name of the banning admin
when the ban will expire
reason for the ban
If SKIP is provided, that number of bans are skipped before printing starts. SKIP can also be negative (e.g. '!showbans -10' would display the last 10 bans.
!help h - !help lists all available shrubbot commands.
!admintest a - !admintest [NAME|SLOT] prints out player's current shrubbot admin level in global chat. When the NAME or SLOT are added and the user has the right shrubbot permission, the level of another player will be shown
!cancelvote c - !cancelvote makes a vote in progress fail
!passvote V - !passvote makes a vote in progress pass
!spec999 P - !spec999 moves all players with ping of 999 (as of etpub 0.7.1, these players are labeled "ZOMBIE") to the spectators team.
!shuffle S - !shuffle Shuffles teams (based on XP), but does NOT restart (see !restart)
!balance S - !balance Runs one iteration of ATB balance (regardless of whether or not you have ATB turned on or off). Useful for doing a one-time team balance that is smarter than !shuffle.
In order for !balance to move players, These conditions apply: 1) There must be atl least g_playerRating_minPlayers players playing, 2) If moving one player will not make things fair, no players will be moved at all, and 3) if it is near the end of the match, !balance might not move anyone because it is unlikely that it will help. If !balance does not help, run the !shuffle command.
NOTE: Players balanced with the !balance command cannot switch teams until either the map changes or the odds of the team winning swing the other way. This is to make auto-balanced teams stay fair since some players switch teams immediately after being !balanced/!shuffled.
!rename N YES !rename (NAME|SLOT) NEWNAME sets the player in slot number SLOT or with name containing NAME to NEWNAME.
!gib g YES !gib (NAME|SLOT) kills and gibs the player in slot number SLOT or with name containing NAME
!slap A YES !slap (NAME|SLOT) [DAMAGE] [REASON] does DAMAGE (default 20) damage to player in slot SLOT or with name containing NAME. If REASON is specified it's center-printed to the victim.
!burn U YES !burn (NAME|SLOT) [REASON] sets the player in slot number SLOT or with name containing NAME on fire. REASON will be center-printed to the victim.
!warn R - !warn (NAME|SLOT) [WARNING] plays the whistle sound and center-prints WARNING to the player in slot number SLOT or with name containing NAME.
!news W - !news plays the map specific news audio to all players if it is available.
!lock K - !lock (r|b|s|all) locks the team specified. recognized values are r=AXIS b=ALLIES s=SPECTATORS all=ALL
!unlock K - !unlock (r|b|s|all) unlocks the team specified. recognized values are r=AXIS b=ALLIES s=SPECTATORS all=ALL
!lol x YES !lol [NAME|SLOT] [GRENADES] makes all players drop grenades. If NAME or SLOT is provided only that player will drop grenades. GRENADES is the number of grenades to be dropped (default is 1, maximum is 16).
!restart r - !restart restarts the match
!reset r - !reset resets the match
!swap w - !swap swaps the players to the opposite team
!pip z YES !pip [NAME|SLOT] draws sparks (pixie dust) around the player in slot number SLOT or with name containing NAME. does it to all players if no NAME/SLOT is not providied.
!pop z YES !pop [NAME|SLOT] pops the helmet off of player in slot number SLOT or with name containing NAME. If no paramter is provided it pops the helmets off of all players.
!fling
!launch
!throw l YES !fling (NAME|SLOT) send the player in slot number SLOT or with name containing NAME flying.
!flinga
!launcha
!throwa L YES !flinga sends all players flying
!listteams I - !listteams prints out a list of statistical information about each team. This lists ends with ratings information based on how likely each team is to win the current map. The team with more points is LESS likely to win, therefore a good way to balance the teams is to join the team with more points, or move people to that team, until the points are about even.
!disorient d YES !disorient (NAME|SLOT) [REASON] turns the view upside down for the client in slot number SLOT or with name containing NAME. If REASON is specified it is printed to the client.
!orient d YES !orient (NAME|SLOT) reverses the action of !disorient for the client in slot number SLOT or with name containing NAME.
!resetxp X YES !resetxp (NAME|SLOT) [REASON] clears all XP and skillpoints for player in slot number SLOT or with name containing NAME. If reason is provided it is printed to the client.
!nextmap n - !nextmap moves to the next map in campaign or in the objective cycle end game intermission is skipped
!resetmyxp M - !resetmyxp clears all XP and skillpoints for the player who runs this command.
!howfair I - !howfair Prints a simple summary to everyone on the chat of team fairness based on player rating. The !howfair command measures team evenness based on the values of g_teamForceBalance_playerRating and g_ATB_diff (if either of these settings is zero then default values are used, so !howfair is useful even if you do not use any etpub autobalance features)
!uptime u - !uptime Show how long the server has been up and running
!userinfo e - !userinfo (NAME|SLOT) Display the slot, partial guid, ip and clientversion of a player.
NOTE: this command should only be available to the highest server admins!
!stats t - !stats Displays the thompson and mp40 accuracy, headshotratio and headshot distance of all players
!dewarn R - !dewarn (NAME|SLOT) [WARNING#] Shows all the warnings of a user. When warning# is added, the warning with that number will be removed
!spreerecord t - !spreerecord Displays the map and overall spreerecord
The following flags are also supported:
1
cannot be vote kicked, vote muted, or complained against.
2
cannot be censored
3
Can run commands silently with /!COMMAND in the console
4
Can see Axis/Allies team chats as a spectator
5
can switch teams any time, regardless of balance
6
does not need to specify a reason for !kick or !ban
7
Can call a vote at any time (regardless of disabled voting or voting limitations)
8
does not need to specify a duration for a ban (defaults to PERMANENT)
9
Can do shrubbot commands via team and fireteam chats
0
is immune to g_inactivity and g_spectatorInactivity settings
!
is immune to all shrubbot commands (useful for server admins). NOTE: this flag must be specified explicitly the * flag does not grant it.
@
"incognito" flag shows the admin as level 0 with no a.k.a info in the output of !listplayers. NOTE: this flag must be specified explicitly the * flag does not grant it.
$
Can do !admintest on other players
~
Can read and write the adminchat with the /ma command. All referees and all other players with the ~ flag will be able to read this chat
The following operators are supported in the flags field:
*
This means all all available flags are granted (except ! and @). Any flags that come after the * are negated. So for example:
[level]
level = 5
name =
flags = *xU
greeting =
would give level 5 admins all commands except !lol and !burn.
-
This subtracts the flags that follow it from the allowed flags. Example:
[admin]
name = tjw
guid = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
level = 5
flags = -bs
greeting =
would give tjw all of the commands a level 5 admin has except !ban and !setlevel.
NOTE: this operator is for admin flags only.
+
This is pretty useless since it is implied that any flags will be appended anyway unless they follow '-'. Therefore, the only use for this operator is for use after the '-' operator. Example:
[admin]
name = tjw
guid = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
level = 5
flags = -bs+U
greeting =
would give tjw all of the commands a level 5 user has except !ban and !setlevel, but he also gets the !burn command which typical level 5 admins do not have.
NOTE: this operator is for admin flags only.
The configuration file itself is layed out in blocks serpated by blank lines. The three types of blocks supported are [level], [admin], and [ban]. If you ever need to edit the shrubbot.cfg file by hand, you need to run the !readconfig command (or restart etded) to load it.
When setting up a new shrubbot.cfg file, simply set the g_shrubbot cvar to the name you want to use for the configuration file, then connect to the server with your et, and run the following command in the server console:
!setlevel ETPlayer 5
(where ETPlayer is your name). This will create the shrubbot.cfg file with default levels and your guid set to level 5 admin (the highest default level). You can then edit the level definitions in this file to match your preferences and run the !readconfig command to load them up.
Starting with etpub 0.7.1, the new element [command] has been added to the shrubbot file format. This allows server admins to create their own shrubbot commands for executing server commands. Here are some examples:
[command]
command = hello
exec = cp "hello world"
desc = Center Print the text "hello world" to all connected clients
levels = 0 1 2 3 4 5
[command]
command = panzeroff
exec = set team_maxPanzers 0
desc = Turn off panzers
levels = 5
[command]
command = havefun
exec = exec fun.cfg
desc = Load up some crazy settings/commands
levels = 5
[command]
command = unlimitedpanzers
exec = cp "^1Unlimited panzers!"; set team_maxPanzers -1
desc = Everyone can have a panzerfaust!
levels = 5
This would create 4 new commands, !hello, !panzeroff, !havefun, and !unlimitedpanzers. !hello can be run by any user with an admin level 0 through 5. !panzeroff, !havefun, and !unlimitedpanzers would be executable by only level 5 users. You must name each level in the space seperated level string (a higher level does not grant authority). As shown in !unlimitedpanzers, you can separate commands with a semicolon (;).
Starting with etpub 0.8.1 [command] elements can use shortcut characters as described in g_shortcuts. Shortcuts will work with [command] elements regardless of the g_shortcuts settings. Here are some samples:
[command]
command = spec
exec = !putteam [n] s
desc = Become a spectator
levels = 0 1 2 3 4 5
[command]
command = pizza
exec = cp "[n] ^7orders a big pizza for everyone except [d]^7!"
desc = Some message
levels = 3 4 5
Also starting with etpub 0.8.1 [command] elements can use up to 9 parameter placeholders (from [1] to [9]) in the commands. For example, given the following definition:
[command]
command = mynameis
exec = cp "[n]'s ^7real-life name is [1]^7!"
desc = Print real name
levels = 0 1 2 3 4 5
When a user types the command like this:
!mynameis bartholomew
Will print out something like:
[JJJJ]zuxx0r's real-life name is bartholomew
Parameters that the user does not type in are left blank in your command. You can use the parameters in any order (so the user types the parameters in a different order than they are used).
These commands will show up like any other shrubbot command in the output of !help and the !help command will also provide detailed info for the command using the 'desc' paramter (e.g. '!help hello')
Starting with etpub 0.8.1 you can also add a greeting to [admin] and [level] blocks. This greeting will be displayed when a shrubbot admin connects to the server. Adding a greeting to a [level] block will show that greeting for every admin with that level, while adding a greeting to an [admin] block will only show the greeting when that particular admin connects. When both [level] and [admin] blocks contain a greeting, the [admin] greeting is used. When you type [n] in a greeting, it will be replaced by the name of the connecting admin. Example:
[level]
level = 5
name = Admin
flags = *
greeting = Level 5 admin [n] is on the floor
If TJW is the connecting admin, all players will see: "Level 5 admin TJW is on the floor".
These are the limits on the shrubbot file:
Maximum number of levels: 31
Maximum length of shrubbot level name: 35 (includes color codes)
Maximum number of users with a set level: 32767
Maximum number of player bans: 1023
Maximum length of ban reason: 1023
Maximum number of admin-defined commands: 63
Maximum admin-defined command name length: 63 characters
Maximum admin-defined command length (executable part): 1023 characters
Maximum admin-defined command length (help string): 1023 characters
Maximum number of warnings: 1023
|