Shrubbot

From Fearless Assassins Wiki

Shrubbot is an invention of Ryan Mannion, creator of Shrubmod and ShrubET. It offers an easy alternative to the Referee features of ET plus more. It also allows for admin levels to customize which commands are available to players granted with admin status. Shrubbot in No Quarter features many of the same commands as Shrub and ETPub, plus more.

Command and Flag Table

Command Flag Command Flag Command Flag
admintest a listteams l restart r
ammopack J lock k revive v
ban b medpack J setlevel s
banguid b mute m showbans B
banip b nade x shuffle S
burn U news W slap A
cancelvote c nextmap n spec999 P
disguise T oriten d swap w
disorient d pants t throw L
dw D passvote V time C
finger f pause Z unban b
fling L pip z unfreeze E
freeze E poison U unlock K
gib g pop z unmute m
give e putteam/put p unpause Z
glow o readconfig G uptime u
help h rename N warn R
kick k reset r resetxp X
launch L resetmyxp M
listplayers i resetxp X


Number-Based Flags

1 - Player cannot be vote-kicked, vote-muted, or complained against.

2 - Player will not be auto-censored or spam protected.

3 - Player can run commands silently in the console using /!command.

4 - Player can see Allied and Axis team chats as a spectator.

5 - Player can switch teams at any time, regardless of team balance.

6 - Player can !kick or !ban without a reason. The player still requires the k and/or b flags.

7 - Player can call vote at any time. Disabled voting or voting limits do not apply to the player.

8 - Player can !ban without a time limit, the ban is a perma-ban. The player still requires the b flag.

9 - Player can do the shrubbot commands via the team and fireteam chats.

0 - Player cannot be automatically kicked or put spec due to inactivity (see g_inactivity and g_spectatorInactivity).

! - Player is immune to all shrubbot commands. This must be given explicitly, * does not include it.

@ - Player is shown as a level 0 with no AKA output in !listplayers This must be given explicitly, * does not include it.

? ( since 1.2.3 ) - If an adminlevel has this flag, it is NOT allowed to call votes


Commands

!admintest

Description

Prints out level name and number of the current user.

Usage

!admintest

admintest: S.S.Meyerinchains is a level 9 user (Server God)


!ammopack / !medpack

Description

Gives ammo pack or medic pack to named user.

Usage

!ammopack [name|slot#] !medpack [name|slot#]

!ban / !banguid / !banip / !unban

Description of !ban

Bans a user from the server.

Usage

!ban [player|slot#] (amount of time) (reason)


Description of !banguid

Bans a user (online or offline) by guid, from the server. Note: If the user is online, his current data (netname, IP, etc.) will be stored in the ban as well.

Usage

!banguid [GUID] (amount of time) (reason)


Description of !banip

Bans a user (online or offline) by IP, from the server. Note: If the user is online, his current data (netname, GUID, etc.) will be stored in the ban as well.

Usage

!banip [IP address] (amount of time) (reason)


Description of !unban

Removes a userban from the server. Requires ban number to be removed (from !showbans).

Usage

!unban [ban#]


!burn / !gib / !nade / !poison / !slap

Description of !burn

Sets the target user on fire. They lose many hitpoints.

Usage

!burn [player|slot#]


Description of !gib

Gibs the target user or all players.

Usage

!gib [player|slot#]


Description of !nade

Drops nades around the target player or all players. This usually causes a gib.

Usage

!nade [player|slot#]


Description of !poison

Poisons the target player or all players.

Usage

!poison [player|slot#]


Description of !slap

Slaps the target player or all players by a certain amount. Default is 20hp. Will not bring player below 1hp.

Usage

!slap [player|slot#] (amount)


!disguise

Description

Disguises named player.

Usage !disguise [player|slot#]


!dw (since 1.2.5)

Description

Forces the targeted player to drop primary and secondary weapons.

Usage

!dw [player|slot#]


!finger

Description

Gives the current level, IP, and guid of the target player.

Usage !finger [player|slot#]


!fling / !launch / !throw

Description of !fling

Flings the named user.

Usage

!fling [player|slot#]


Description of !launch

Launches the named user.

Usage

!launch [player|slot#]


Description of !throw

Throws the named user.

Usage

!throw [player|slot#]


!freeze / !unfreeze

Description of !freeze

Freezes the target player in place. They cannot be shot while frozen. It's a quite useful feature to get the player's attention. Note: NQ 1.2.5 introduced a new g_slashkill CVAR setting. When activated, players are unable to leave/exit the freeze state until !unfreeze is called or the map ends.

Usage

!freeze [player|slot#]


Description of !unfreeze

Unfreezes the target player.

Usage

!unfreeze [player|slot#]


!give

Description

Gives something to target player. This replaces the old /give command/cheat.

Usage

!give [player|slot#] [item pickup name/skill/ammo/all] !give Meyer skill 6 !give Meyer Allied Covert Ops Uniform !give Meyer cold meal !give Meyer MP34 !give Meyer health 500


!glow

Description

Makes the target glow red (Axis) or blue (Allies)

Usage

!glow [player|slot#]


!help

Description

Shows available commands or shows description of each command.

Usage

!help (to view available commands) !help ban !help disorient


!kick

Description

Kicks target player off the server. Comes with a 2 minute ban.

Usage

!kick [player|slot#] (reason) !kick ez.max watch your tk'ing!


!listplayers / !listteams

Description of !listplayers

Lists all players and info about each. Including their team, admin level, mute status, player slot, fireteam letter, and guid stub.

Usage

!listplayers


!lock / !unlock

Description of !lock

Locks a team, allowing no one to join it.

Usage

!lock [r|b|s|all]


Description of !unlock

Unlocks a team, allowing people to join it.

Usage

!unlock [r|b|s|all]


!mute / !unmute

Description of !mute

Mutes a player for an amount of time. If no time is entered, the player is muted for g_defaultMute time.

Usage

!mute [player|slot#] (time in seconds) (reason)


Description of !unmute

Unmutes a player.

Usage

!unmute [player|slot#]


!news

Description

Plays the news audio file for the specified map. If no map is given, the current map is used.

Usage

!news [mapname|sound file]


!nextmap

Description

Moves to the next map in the cycle.

Usage

!nextmap


!orient / !disorient

Description of !orient

Orients a disoriented player.

Usage

!orient [player|slot#]


Description of !disorient

Disorient a player, by flipping their view upside down.

Usage

!disorient [player|slot#]


!passvote / !cancelvote

Description of !passvote

Passes the current vote

Usage

!passvote


Description of !cancelvote

Cancels the current vote

Usage

!cancelvote


!pause / !unpause

Description of !pause

Pauses the current match.

Usage

!pause


Description of !unpause

Unpauses the current match.

Usage

!unpause


!pants / !pip / !pop

Description of !pants

Removes the pants off target player. If no players are specified, it removes the pants off every player.

Usage

!pants [player|slot#]


Description of !pip

Sprinkles pixie dust around the target player. If no players are specified, it sprinkles pixie dust around everyone.

Usage

!pip [player|slot#]


Description of !pop

Pops off the helmet of the target player. If no players are specified, it pops off the helmet off of everyone.

Usage

!pop [player|slot#]


!putteam (since 1.2.0 !put) / !swap / !shuffle

Description of !putteam (!put)

Puts the named person on the specified team.

Usage

!putteam [player|slot#] [r/b/s] (!put [player|slot#] [r/b/s])


Description of !swap

Swaps the allied and axis teams.

Usage

!swap


Description of !shuffle

Shuffles the teams based on XP.

Usage

!shuffle


!readconfig

Description

Reloads the shrubbot config file to load any changed made manually to the file.

Usage !readconfig


!rename

Description

Changes the name of a player.

Usage

!rename [player|slot#] [new name]


!reset / !restart

Description of !reset

Resets the current match.

Usage

!reset


Description of !restart

Restarts the current match.

Usage

!restart


!resetmyxp

Description

Resets the XP of the player who executed the command.

Usage

!resetmyxp


!resetxp

Description

Reset the XP of the target player.

Usage

!resetxp [player|slot#]


!revive

Description

Revives a wounded (but not gibbed) user. If there is no target specified, it will be performed on the player who executed the command.

Usage

!revive [player|slot#]


!setlevel

Description

Sets the level of the named user to the given number.

Usage

!setlevel [player|slot#] [level number]


!showbans

Description

Lists current server bans in console. Expanded from old showbans, you can now search through bans. Below, will show some examples and what they do.

Usage

!showbans shows ban list starting at 0
!showbans 540 Shows the ban list starting at ban #540
!showbans -20 Shows the last 20 bans
!showbans find noob find [keyword] will search for banned player names
!showbans reason aimbot reason [keyword] will search for the reason players were banned for.
!showbans banner Meyer banner[keyword] will search for the admin that executed the ban.


!spec999

Description

Moves players with 999 ping to the spectator team.

Usage

!spec999


!time

Description

Show current local time to the player.

Usage !time


!uptime

Description

Shows uptime of the server.

Usage

!uptime


!warn

Description

Warns the named user for the given reason.

Usage

!warn [player|slot#] (reason)


Shrubbot Config

Level

Levels let you customize what privileges are available. This is done by adding flags to the flags line. The wildcard flag of * enables ALL privileges (except flags ! and @). A flag of * with other flags after it, allows all commands EXCEPT those.

Example of a level entry:

[level]

level = 1
name = ^fPrivileged Player
flags = ChaM9i25u

This gives Level 1 admins access to commands: time, help, admintest, resetmyxp, listplayers, uptime, and also special abilities to do commands from team and fireteam chats, they can't be censored, and they can switch teams any time regardless of balance.


Admin

This is the part of the config where it saves a player's info when they are given a level greater than 0. Custom flags can be added per admin that defy the general flags given for their set level.

Example of an admin entry:

[admin]
level = ^>S.S.Meyerinchains
guid = 1234567890abcedf1234567890abcedf
level = 3
flags = +n

This gives S.S.Meyerinchains all level 3 privileges plus the !nextmap command


Ban

Ban entries are created after using the !ban command on a player. Useful info on the ban is stored here.

Example of a ban entry:

[ban]
name = hackerzrule
guid = 1234567890ABCDEF1234567890ABCDEF
ip = 12.345.678.90
reason = aimbot/walhack
made = 09/10/06 08:07:50
expires = 0
banner = ^>S.S.Meyerinchains

This means S.S.Meyerinchains banned hackerzule permanently on 9/10/06 at 08:07:50 for aimbot/wallhacks.


Mute

A new feature to No Quarter, mutes are saved in the shrubbot config. This is done to expand mute features. New features include temp-muting, no name changing of muted players, no private messaging from muted players, and no vote calling from muted players.

Example of a mute entry:

[mute]
name = loudmouth
guid = 1234567890ABCDEF1234567890ABCDEF
ip = 12.345.678.90
reason = won't stfu
made = 09/10/06 08:07:50
expires = 900
banner = ^>S.S.Meyerinchains

This means loudmouth is muted for 15 minutes, after which, he will be auto-unmuted.


Command

This is a feature made popular by the etadmin_mod. Customizable shrubbot commands are now available through the shrubbot config. The command to execute accepts up to 9 arguments too, by using [1] - [9]. This requires g_shortcuts to be set to 1. Each level that should get the command must be specified. Setting it to just 0 will give it to level 0, but no other levels. You must set to 0 1 2 3 4 5.... to it give to all levels. Syntax is as follows:


Example of a command entry:

[command]
command = command
exec = command to execute
desc = description of the command for !help [command]
levels = 0 1 2 3 4 5

Command limits:

  • Do not define more than 64 commands
  • Do not use more than 17 letters for your custom command


Here are a few example custom commands that can be used:

[command]
command = maxpanzers
exec = team_maxPanzers [1]
desc = Sets maximum panzers per team
levels = 4 5
[command]
command = teamspeak
exec = say "^4|^3Teamspeak IP: 82.165.232.186:8767 password: ssts^4|^7"
desc = Show's Teamspeak Server info
levels = 0 1 2 3 4 5
[command]
command = insanity
exec = jp_insanity [1]
desc = Sets jp_insanity
levels = 5

[command]
command = headshot
exec = set g_headshot [1]
desc = Sets headshot mode
levels = 4 5
[command]
command = holyshit
exec = playsound sound/spree/holyshit.wav; cp "^4|^1!!!HOLY SHIT!!!^4|"
desc = Plays HOLY SHIT! sound
levels = 3 4 5
[command] 
command = endmap
exec = timelimit .05
desc = Ends current map and goes to intermission, (better than nextmap if map has been playing for a few minutes)
levels = 3 4 5
[command]
command = funmaps
exec = exec funmaps.cfg
desc = Loads fun map cycle
levels = 5
[command]
command = mainmaps
exec = exec objectivecycle.cfg
desc = Loads regular map cycle
levels = 5
[command]
command = be
exec = pb_sv_banempty; chat PB ban list (in memory) has been emptied.
desc = Cleans temp pb ban list. PB temp banned players can re-connect immediately.
levels = 5


Bot custom command examples that can be used:

[command]
command = addbot
exec = bot addbot [1] [2] [3]
desc = Adds bot to game. Syntax: !addbot <team> <class> <name>. Don't use whitespaces in <name>.
levels = 5
[command]
command = kickbot
exec = bot kickbot [1] [2] [3]
desc = Kicks a bot. Syntax: !kickbot <name>.
levels = 5
[command]
command = minbot
exec = bot minbots [1]
desc = Sets minimum count of bots in game.
levels = 5
[command]
command = maxbot
exec = bot maxbots [1]
desc = Sets maximum count of bots in game.
levels = 5
[command]
command = kickallbots
exec = bot minbots 0; bot maxbots 0; bot kickall
desc = Cleans server from bots.
levels = 5

Limits

The Shrubbot system is limited to; 31 levels, 32768 admins, 1024 bans and 64 commands.