here is official installing help..
shrubbot
Version Added or Last Modified: 1.0
Documentation last modified: 11:36:50 PM Jul 20, 2003
--------------------------------------------------------------------------------
shrubbot is a system implemented in shrubmod that allows you to set any number of user levels with different capabilities for each level. For example, assuming there exists a set of commands that are available, they can be assigned in such a way that increasing user levels have access to more commands. g_shrubbot (blank) is initially blank and, when enabled, specifies the name of the config file for the bot. The config file contains config blocks specifying a level, an admin, or a ban.
In the config file, you must specify a number of levels and the commands each level has access to. The commands are identified by a flag - a single, case-sensitive alphanumeric character. These flags include:
a - admintest
b - ban/unban
c - cancelvote
d - disorient/orient
G - readconfig
h - help
k - kick
l - launch/throw/fling
L - launcha/throwa/flinga
i - listplayers
K - lock/unlock
m - mute/unmute
n - nextmap
N - rename
p - putteam
r - reset/restart
v - revive
s - setlevel
H - shake
B - showbans
S - shuffle
w - swap
C - time
u - uptime
The following flags are not commands but specify special privileges a level or user has:
1 - cannot be vote kicked, vote muted, dropped from inactivity, dropped due to high team damage ratio, or complained against
2 - cannot be censored or flood protected
3 - can run commands "silently" through the console (/!commandname parameters)
4 - can see Axis' and Allies' team chat as a spectator
5 - can switch teams any time, regardless of balance
6 - does not need to specify a reason for a kick/ban
7 - can call a vote at any time (regardless of a vote being disabled or voting limitations)
8 - does not need to specify a duration for a ban
A level config block is in the format:
[level]
level = 0
flags = ahC
name = Prole
Every player defaults to level 0, so it is important to specify flags for this level. The name of the level is optional and is displayed when a user uses the admintest command. What is important in the above block is that the flags indicate that a level 0 user has access to the admintest, help, and time commands.
You can specify the flags for any number of levels, but assigning a player to an undefined level means that a player will not have access to any commands. An asterisk (*) as a flag represents every command available.
Assigning a player to a level is largely automated through in-game commands, but for your reference, they come in the format:
[admin]
name = shrub
guid = ABCDEFGH123ABCDEFGH123ABCDEFGH12345
level = 5
flags = +wr-R
The flags specified for an admin block are optional and modify the base flags for the level specified. In this example, in addition to having the level 5 commands, shrub will be able to run swap (w), reset (r), and will not be able to run restart (R).
To assign a user to a level via the console (you will likely need to do this for the first high-level admin), use the command:
setlevel [clientnum] [level]
Naturally, this must be done while the desired player is connected to the server.
Commands are performed via the in-game chat using the format:
!commandname parameters
The function and syntax of each command can be seen through the
[command name] command. Messages from shrubbot that are private are colored blue. Public messages are light yellow.
First-Time Setup
It is recommended that you specify the flags for level 0 and a high level - say, 5 - whose flag is "*". Set yourself to level 5 via rcon, and you can then set others' levels in-game through the !setlevel [name] [level] command.
If PunkBuster is not enabled, it is likely that some players will not be assigned a GUID and shrubbot will not function as intended.
More on Level Flags
For convenience, you can use '*' as the first character of a level flag and subsequent characters will be removed from that level's privileges. For example, setting a level flag to "*k" will give that level all privileges and commands except for the ability to kick. Why you would do this, I do not know - but there it is for illustrative purposes. Note that these are level flags and not user flags.
Name Matching
Many commands require you to specify the player they target. You can do it in either two ways: use the player's client number or use a partial or full name. When specifying names, omit the color codes. shrubbot will warn you an abort a command if text you specify matches more than one name. If multiple matches are found, the client number of each match is displayed next to the name in parentheses. If you are unable to write text in such a way that it targets the specific client, then you should revert to using the client number. When a space is needed, either enclose the name in quotation marks or replace the space with a backslash (\).
Banning
Bans are based on both the player's current IP and his GUID. Asterisk wildcards are supported. If you would like to broaden the range of a banned IP, replace the appropriate quartile(s) with an '*'. For example, do not use "192.168.*", use "192.168.*.*".
When a player is kicked by the bot or denied a connection, the contents of g_dropMsg (blank) is appended to the message the player receives in the disconnect box. It is recommended that g_dropMsg be set to something along the lines of, "If you believe this kick or ban was undeserved, contact disputes@server.com with the details."
Other Console Commands
If you make changes to the config file externally, use the console command readconfig to reload the config file specified in g_shrubbot. Note that the admin status is checked on an !admintest and when first connecting. Note that if you deny !admintest to level 0 users, then you must reconnect to refresh your admin status if you are unable to !admintest.
Command Logging
You can log users' shrubbot actions and attempts to access shrubbot commands by setting g_logAdmin variable to the desired file name.