This is a listing of all of the server configuration variables (cvars) specific to
Admin Mod.  You set these like any other server cvar (such as mp_timelimit, etc),
can place them in your server.cfg, and the like.

This list is complete as of Admin Mod v2.50d.

NOTE: This is not a list of Admin Mod commands. Rather, this is a list of all the
server-side configuration variables you can use when you are configuring your Half-Life
server.

Please note that a 'dedicated' server will, unless told otherwise, read it's initial
settings from 'server.cfg'.  A 'listen' server, on the other hand, reads them from
'listenserver.cfg'  Setting variables in server.cfg when you're running a listen
server, and vice versa, does nothing.  A listen server is one that you start from
within Half-Life itself: it starts when you join, it ends when you quit, and you
have a 0 ping.  A dedicated server is started from the HLDS program, and appears
on the server machine as just lots of text information in a DOS-like console window.

Document notation standards
A cvar can either accept numeric ('123') or string ('abc') data.  If it can accept
string data, it will look like this in this document:

cvar_name "<data>"

If it can accept numeric data, it will look like this:

cvar_name <#>

In most cases, numeric data will either be '0' (for no or disable), or anything else
(for yes or enable).  If the description of a cvar talks about it being 'enabled',
that means non-zero.  Exceptions are noted. Note that if a cvar is not explicitly
set, it defaults to 0 (usually disabled).

In the descriptions below, examples of how to write the cvar are provided. reading
this entire document is a good idea if you are planning to do much at all with the
Admin Mod.

About "relative directories" and files
Cvars that represent files are said to be 'relative' to a directory (usually the
<mod> directory).  This means the file name should be treated as if looking from
the specified 'relative' directory.  As an example, admin_plugin_file is relative
to the   directory; if I'm running a TFC server, my   directory might be C:\HLServer\TFC.

If I wanted my plugin file to be at 'C:\HLServer\TFC\plugin.ini', I would simply
set admin_plugin_file to 'plugin.ini'.  If I wanted my plugin file to be at 
'C:\HLServer\TFC\AdminMod\plugin.ini', I would set admin_plugin_file to 
'AdminMod\plugin.ini'.


Miscellaneous Notes

If vote_freq is not defined voting will be disabled. 

If map_ratio is not defined map voting is disabled.

If kick_ratio is not defined kicking will be disabled. 

If models_file is not defined model passwords will be disabled. 

If nicks_file is not defined nick reservation will be disabled.

If maps_file is not defined then users can vote for any map in the mapcycle.txt file.
If it is defined, all votable maps must be included in the file indicate by the maps_file
cvar (typically this file would be named maps.ini )

You can un-define or make null any variable by setting to 0 like this: nicks_file 0

--------------------------------------------------------------------------------

admin_balance_teams <#>
        Used by the TFC plugin.  If enabled, an attempt to switch
        teams will be rejected if it would unbalance the teams (unless
        the team being switched to, or the team being switched from,
        has less than two people).  If disabled, people can switch
        teams freely.
        
admin_bot_protection  <#>
When running bots on the server, setting this variable to "1"
will protect bots from exec_client commands in Admin Mod, and
thus prevent server crashing problems.

admin_connect_msg "<data>"
admin_connect_msg "All your base are belong to Jaguar."
        Used by the message plugin.  This is the message that will be
        displayed to everyone thirty seconds after connecting to the
        server. Setting admin_connect_msg to "0" will not display a 
        connect message, although the timer is run.
        
admin_cs_restrict <#>
        Used by the CS plugin.  If enabled, the CS plugin's weapon
        restrictions go into effect (if any are set, that is).  If
        disabled, the CS weapon restrictions are ignored (if any are
        set).
        
admin_debug <#>
        If enabled, your logs will be filled with lots and lots of
        debugging messages related to Admin Mod.  Not recommended for
        general use.

admin_fun_mode <#> 
  Used by the Fun plugin.  Determines whether or not the fun 
  commands are allowed.

admin_fx <#> 
  Enables special effects to accompany certain commands, such as teleport 
  and slap.
        
admin_gag_name <#>
        Used by the retribution plugin.  If enabled, people who are
        gagged will be unable to change their name while gagged.  If
        disabled, people who are gagged will be able to change their
        names as normal.
        
admin_gag_sayteam <#>
        Used by the retribution plugin.  If enabled, people who are
        gagged will not be able to use the say_team command.  If
        disabled, people who are gagged will be able to use the
        say_team command as normal.
        
admin_highlander <#>
        There can be only one!  Normally (when disabled), everyone
        gets the access assigned to them.  If admin_highlander is
        enabled, only the person with the highest access actually gets
        their's; everyone else gets the default.  Thus, only one admin
        (the one with the highest access level)will be able to execute 
        commands at any given time.

admin_ignore_immunity <#>
        This is referenced by CheckImmunity() in adminlib.inc.
        Normally (when disabled), people with ACCESS_IMMUNITY (4096)
        become immune to many of the other admin commands (though not
        to straight rcon).  If admin_ignore_immunity is enabled,
        ACCESS_IMMUNITY is ignored and does nothing.

admin_plugin_file "<data>"
admin_plugin_file "plugin.ini"
        This is the file to load plugins from.  It should be relative
        compared to the <mod> directory (e.g., for TFC, it should be
        relative compared to the 'half-life\tfc' directory).  If this
        cvar exists, the plugin-style of scripting will be used.  If
        it does not exist, the single-script style of scripting will
        be used (see script_file).  Note that, regardless of where
        this file is situated, the plugins it referenced are relative
        to the <mod> dir, _not_ the location of the plugin file
        (eg, if the admin_plugin_file is '<mod>\AdminMod\plugin.ini',
        the plugins referenced will still be relative to '<mod>',
        NOT '<mod>\AdminMod').
        
admin_reconnect_timeout <int>
admin_reconnect_timeout 300
        This is the time that a password is considered to stay valid
        after the player has disconnected from the server. If the
        player reconnects to the server within <int> seconds using the
        same name and the same IP, he does not have to reenter his
        password first. Don't set this value too high. 

admin_reject_msg "<data>"
admin_reject_msg "This is a restricted command which you cannot use."
        This message is displayed to users who try to execute
        commands that they don't have the appropriate access rights
        for.

admin_repeat_freq <int>
admin_repeat_freq 300
Used with the admin_repeat_message cvar.  This determines how often 
(in seconds) the "pretty say" repeat message appears on the screen. The 
repeat message frequency can be set with admin_repeat_freq. The units 
are seconds. The minimum value is 15 seconds. Setting it to 0 will not 
start the timer. The timer cannot be started by setting it to a different value 
during a map. It will only be started at a map change.

admin_repeat_msg "<data>"
admin_repeat_msg "Don't look now!  They're right behind you!"
        Used by the message plugin.  This is the message that is shown
        to everyone on the server in the center of the screen. Setting 
        admin_repeat_msg to "0" will not display a repeat message, but 
        the timer is not killed if it was started. It will continue to run, and 
        setting admin_repeat_msg to a different value will again display that string.
        
admin_quiet <#>
admin_quiet 0
admin_quiet 1
admin_quiet 2
        This is referenced by SayCommand() in adminlib.inc.  Here's how it functions
by default: 

Certain commands override admin_quiet (such as those found in the cheating plugin).
These over-riding commands, when used, will always show the message 'ADMIN Command:
<Player> used <command>" regardless of what value this cvar is set to.

If admin_quiet is 0, executing admin command on others will result in the command
being executed and the message 'ADMIN Command: <Player> used <command>' being displayed
to all players.

If admin_quiet is 1, the same effect occurs as with the "0" value: Amin Mod will
display the message 'ADMIN Command: Admin used <command>' but will not identify the
admin by name.

For any other value of admin_quiet (for example, "admin_quiet 2"), all commands will
not display a message at all, but will only get logged, with the exception of the
commands that over-ride the cvar as mentioned above (generally these are commands
that would be considered cheating if no one knew they were being executed).

admin_vault_file "<data>"
admin_vault_file "vault.cfg"
        This file will be used to store configuration data across maps
        and even across server incarnations.

admin_version "<data>"
        Returns the current Admin Mod version of the DLL.  Setting
        this does nothing.
        
admin_vote_autostart <#>
        Used by the HLFD map vote plugin.  If enabled, a
        HLFD-style map vote will automatically start five minutes
        before the end of a map.  If disabled, it won't.

admin_vote_echo <#>
        If set to 1, when a vote is in progress the option a user voted 
        for is echoed to all clients in the format:

        <player> voted for option #<option number>
        
admin_vote_freq <#>
        This is the number of seconds that must elapse after the start
        of the map, or the end of another vote, before another HLFD-
        style map vote can be called by someone without the 
        ACCESS_CONTROL_VOTE access. NOTE: If you don't have it explicitly 
        set in in your .cfg, it defaults to 600 (ten minutes).  If 0, 
        then _only_ those people with ACCESS_CONTROL_VOTE may call for 
        votes.  Note that this only controls the HLFD-style votes; 
        for the HL menu-style votes, see vote_freq.
        
admin_vote_maxextend <#>
        Used by the HLFD map vote plugin.  Controls how many times
        the current map can be extended for thirty minutes (e.g.,
        admin_vote_maxextend 2 would allow for, at most, two
        extensions).  If set to zero or a negative number, the current
        map can never be extended.
        
admin_vote_ratio <#>
        Used by the HLFD map vote plugin.  Controls the percent of
        the players who have to vote for a map to get it to win (note
        that this ratio applies only to the HLFD-style map vote.

        For the admin_vote_map, see map_ratio, below).  If zero or
        negative, whichever map gets the most votes wins.  Otherwise,
        a map must get at least (admin_vote_ratio * playercount / 100)
        votes to win (e.g., if the admin_vote_ratio is 60, and there are
        10 people on, a map must get at least (60 * 10 / 100) = 6
        votes to win.)
        
alarm_message "<data>"
        This cvar is no longer used.
        
alarm_time <#>
        This cvar is no longer used.

allow_client_exec <#>
        This controls whether or not the execclient() scripting
        function is enabled in the Admin Mod DLL.  If enabled,
        execclient() is enabled; if disabled, execclient() is
        disabled.  Enabling execclient() functionality allows scripts
        to execute commands remotely on players.

amv_autoban <#>
        If set to 1, players who try to crash the server with non-printable 
        characters (aka ~%?%?%?) in mid-game will be banned for 24 
        hours. In either case are they dropped from the server. 
        
default_access <#>
        This controls the default access that people get (aside from
        being granted special user privileges).  It works exactly like
        the user level access rights, but everyone gets it.
        
encrypt_password <#>
        LINUX ONLY.  NOTE: If you don't have it explicitly set in your
        .cfg, it is ENABLED.  This determines whether or not the
        passwords people enter for their user privileges are encrypted
        on the server or not.
        
file_access <#>
        This cvar is no longer used.  See file_access_read,
        file_access_write.

file_access_read <#>
        This controls whether or not the scripting functions are
        allowed to read files on the server.  If enabled, the
        scripting functions are; if disabled, they are not.
        
file_access_write <#>
        This controls whether or not the scripting functions are
        allowed to write to files on the server.  If enabled, the
        scripting functions are; if disabled, they are not.
        
help_file "<data>"
help_file "admin_help.cfg"
        This is not used for the plugin-style scripting; if you have
        admin_plugin_file defined, this cvar is ignored.  If you are
        using the old single-script style, this is the file to load
        the help information from.  It is relative to the <mod>
        directory.
        
ips_file "<data>"
ips_file "ips.ini"
        If you're using MySQL, this cvar is ignored (see
        mysql_dbtable_ips).  Otherwise, this is the file (relative to
        the <mod> dir) that priority IPs are loaded from. NOTE: If you
        don't have it explicitly set in your .cfg, it is 'ips.ini'.
        Priority IPs are those that are allowed to take a reserved
        spot (if any are set up) without a password.
        
kick_ratio <#>
        Used by admin_vote_kick.  This is the ratio of players who
        must vote 'yes' to a kick for it to be successful.  e.g. if the
        kick_ratio is 60, and there are 20 people on the server, 12 of
        them must vote 'yes' to a kick vote for it to be successful.
        
map_ratio <#>
        Used by admin_vote_map.  This is the ratio of players who must
        vote 'yes' to a map change for it to be successful.  e.g., if
        map_ratio is 40, and there are 20 people on the server, 8 of
        them must vote 'yes' to a map vote for it to be successful.
        Note that this cvar does not control the HLFD-style map
        vote; see admin_vote_ratio.
        
maps_file "<data>"
maps_file "maps.ini"
        A list of maps available during map votes. This list can contain
        maps not listed in your regular server map cycle, or it can contain
        a limited number of maps if you want to restrict voting to just a
        few maps. If you disable it (by setting the value to "0"), the list 
        of votable maps will instead be taken from your mapcycle.txt

models_file "<data>"
models_file "models.ini"
        If you're using MySQL, this cvar is ignored (see
        mysql_dbtable_models).  Otherwise, this is the file (relative
        to the <mod> dir) that reserved models are loaded from.
        
models_kick_msg "<data>"
models_kick_msg "This model is reserved."
        This is the message shown to someone who gets kicked for
        trying to use a reserved model.

mysql_dbtable_ips "<data>"
mysql_dbtable_ips "ips"
        If you're not using MySQL, this cvar is ignored (see
        ips_file).  Otherwise, this is the database table to get the
        priority IP information from.  Priority IPs are those that are
        allowed to take a reserved spot (if any are set up) without a
        password.
        
mysql_dbtable_models "<data>"
mysql_dbtable_models "models"
        If you're not using MySQL, this cvar is ignored (see
        models_file).  Otherwise, this is the database table to load
        the reserved model names from.

mysql_dbtable_plugins "<data>"
mysql_dbtable_plugins "plugins"
        If you're not using MySQL, this cvar is ignored (see
        users_file).  Otherwise, this is the database table to load
        the plugins from.

mysql_dbtable_users "<data>"
mysql_dbtable_users "users"
        If you're not using MySQL, this cvar is ignored (see
        users_file).  Otherwise, this is the database table to load
        the privileged names from.

mysql_dbtable_words "<data>"
mysql_dbtable_words "words"
        If you're not using MySQL, this cvar is ignored (see
        words_file).  Otherwise, this is the database table to load
        the swear words from.

mysql_host "<data>"
mysql_host "127.0.0.1"
        If you're not using MySQL, this cvar is ignored.  Otherwise,
        it's the address of the host the MySQL database exists on.

mysql_pass "<data>"
mysql_pass "milk"
        If you're not using MySQL, this cvar is ignored.  Otherwise,
        it's the password used to connect to the MySQL database.
        
mysql_user "<data>"
mysql_user "moocow"
        If you're not using MySQL, this cvar is ignored.  Otherwise,
        it's the username used to connect to the MySQL database.

nicks_kick_msg "<data>"
nicks_kick_msg "This name is reserved."
        This is the message shown to someone who gets kicked for
        trying to use a name that has reserved access (16384).
        
password_field "<data>"
password_field "pwd-home"
        This is the setinfo field that people need to enter their
        password into on the client before connecting to the server,
        if they wished to be authorized at connect time.  NOTE: If you
        don't have it explicitly set in your .cfg, it is 'pw'.  As an
        example, if the password_field is 'pw-home', and there is a
        user whose password is "milk", then the setinfo line in the
        user's adminpass.cfg would be 'setinfo "pw-home" "milk"'.

password_timeout <#>
        This cvar is no longer used.
      
pretty_say <#>
        This cvar controls how the centersay() script function works.
        NOTE: If you don't have it explicitly set in your .cfg, it
        is ENABLED.  If pretty_say is enabled, centersay() fades in
        and out and does some other tricks.  If it's disabled,
        centersay() just appears as normal text in the middle of the
        screen.
        
public_slots_free <#>
        Returns the number of slots free on the server (after taking
        into account reserved slots).  Setting this does nothing.
        
reserve_slots <#>
        Controls how many of the server's slots are reserved.  This is
        useful only if reserve_type, below, is either 0 or 2.
        
reserve_slots_msg "<data>"
reserve_slots_msg "There are no free slots available."
        This is the message shown to someone who gets kicked when
        there are only reserved slots left on the server, and they do
        not have reserved access.
        
reserve_type <#>
        This controls how reserve slots work on the server (the
        default is 0).  
    
        * reserve_type 0: Public slots are used in preference to
          reserved slots.  Reserved slots are freed before public
          slots.
        * reserve_type 1: One slot is always reserved (regardless of
          reserve_slots).  If someone with reserve access joins into
          that slot, the highest pinger without reserve access is
          kicked to make room.  Thus, one slot always remains free.
        * reserve_type 2: Reserve slots are used in preference to
          public slots.  Public slots are freed before reserved slots.
        
        The difference between reserve_type 0 and reserve_type 2 may
        not be immediately apparent.  Here's an example: Suppose there
        is a 16 player server, with 2 reserved slots.  Thus, with no
        one on, there are 14 public slots, and 2 reserved slots:

        * reserve_type 0: Someone with reserved access joins.  There
          are now 13 public slots, and 2 reserved slots (the person
          does not take a reserved slot, because those are used only
          when necessary).  The server later fills up, so there are 0
          public slots and 0 reserved slots.  If anyone leaves,
          whether they have reserved access or not, it is a reserved
          slot that is freed, not a public one.
        * reserve_type 2: Someone with reserved access joins.  There
          are now 14 public slots, and 1 reserved slot (the person
          takes a reserved slot).  The server later fills up, so there
          are 0 public slots and 0 reserved slots.  If someone with
          reserved access leaves, it frees up a reserved slot; if
          someone without reserved access leaves, it frees up a public
          slot.
        
script_file "<data>"
script_file "tfc\dlls\admin_win32.amx" 
        If you have admin_plugin_file set, this cvar is ignored, as it is used
        to set up the older-style single scripts used in versions of
        Admin Mod prior to v2.50.
        Otherwise, this is the file (note the path is relative to the <half-life>
        directory...NOT the <mod> directory) that the compiled script is loaded
        from.  If this cvar is disabled and admin_plugin_file is
        disabled, Admin Mod won't run.
        
use_regex <#>
        If enabled, names are compared to those who have privileges
        with regular expressions; otherwise, they are compared with a
        straight match.  Using regular expressions is useful for
        matching parts of names (such as clan tags), whereas, without
        use_regex, you would have to add each name with that tag you
        wanted to assign privileges to.
        
users_file "<data>"
users_file "users.ini"
        If you're using MySQL, this cvar is ignored (see
        mysql_dbtable_users).  Otherwise, this is the file (relative
        to the <mod> directory) that privileged names are loaded from.

vote_freq <#>
        This is the minimum number of seconds allowed between votes
        called with the vote() scripting function (such as
        admin_vote_kick and admin_vote_map).  If 0 or disabled, the
        vote() scripting function is disabled.  Note that this delay
        also applies to the beginning of the map; if vote_freq is 240
        (240 seconds = 4 minutes), admin_vote_kick and admin_vote_map
        won't work for the first four minutes of the map, as well as
        for the four minutes following any previous admin_vote_kick or
        admin_vote_map.  Note that this only applies to HL vote-style
        votes; for HLFD-style votes, see admin_vote_freq.
        
vote_freq_kick <#>
        This cvar is no longer used.  See vote_freq.

vote_freq_map <#>
        This cvar is no longer used.  See vote_freq.
        
words_file "<data>"
words_file "wordfile.txt"
        This is the file containing the list of words that will match
        the check_words() and censor_words() functions (useful for
        swear word detection).  Note that these words are
        case-insensitive.


