BeetleFart's Minimum Admin mod for CS:Source

Document updated 5/9/2006 9:53PM CT for Version 1.0.1.55BetaS, which was released on 8/1/2005.
Post suggestions & corrections on the BeetlesMod.com forums. Documentation by Rabid [QODA] http://qoda.net/

  1. Introduction
  2. Download
  3. Upgrading an exisiting Windows installation
  4. Installation on Windows CS:Source Server
  5. Configuration (files and variables)
  6. Verify it's working
  7. Usage: Player commands and Admin commands
  8. Frequently Asked Questions (FAQ)
  9. Documentation Change Log

This document is one HTML page. Use your browser's Find command to look for specific text, (Ctrl-F in Internet Explorer, for example.)
1. Introduction

BeetleFart's Minimum Admin mod for CS:Source is a modification to Valve's CS:Source Server which allows server admins to perform administrative functions more easily, while playing the game. The intent of this mod is to hold people over until a full version of the AdminMod DLL is available.
Features of BeetleFart's Minimum Admin mod include kicking, banning, map voting, reserved slots, weapon restrictions and more.
See the Configuration and Usage sections for details.
Note: These instructions are for installing & using BeetleFart's Minimum Admin mod for CS:Source on a dedicated Windows server. "Listen" servers are not supported.
See the Frequently Asked Questions (FAQ) section for information about support for dedicated Linux servers.


2. Download

The current version of BeetleFart's Minimum Admin mod for CS:Source is available for download from the BeetlesMod.com forums.
Membership in the forums is required to get the latest version.

     After registering in the forums, you can download any of the following releases:
Latest Windows stable release Latest Windows beta release
Latest Linux stable release Latest Linux beta release


3. Upgrading an exisiting Windows installation

(If you are installing BeetleFart's Minimum Admin mod for the first time, skip to the section, Installation on Windows CS:Source Server.)

To upgrade an existing Windows installation of BeetleFart's Minimum Admin mod:

  1. Shut down the CS:Source Server program. (This is required.)
  2. Unzip MinimumAdminDll.zip into a temporary directory. Three directories will be created after unzipping:
    sound\
    cfg\
    addons\
  3. Determine the location of your CS:Source Server directory. Here are a couple of examples, yours will probably be different:
    C:\Program Files\Steam\SteamApps\myemail@yahoo.com\counter-strike source\cstrike\
    C:\HLServer\source\cstrike\
  4. Read the file addons\readme.txt to determine if you need to add or change anything in your configuration file, cstrike\cfg\defaults.cfg
  5. Install the new version of the Minimum Admin mod DLL:
    1. Back up the current plugin DLL file, (in case you want to go back to it later), as follows:
      Copy the existing file addons\serverplugin_empty.dll to addons\serverplugin_empty-old.dll .
    2. Copy the file you unzipped, addons\serverplugin_empty.dll , to your cstrike\addons\ directory.
    3. Edit cstrike\cfg\defaults.cfg to make any changes or additions as described in the addons\readme.txt file.
  6. Browse the directories you unzipped to determine if any other new or changed files need to be copied to directories under your cstrike\ directory.
  7. Start your CS:Source Server.
  8. Go to the section, Verify it's working, to verify that the upgrade worked.


4. Installation on Windows CS:Source Server

Installation of BeetleFart's Minimum Admin mod for CS:Source requires access to the Windows CS:Source server, including the ability to create directories, upload, copy & modify files, and restart the CS:Source Server.
Note: You should back up any files before overwriting them, in case you need to go back to the pre-installation state.

  1. Shut down the CS:Source Server program. (This is required.)
  2. Unzip MinimumAdminDll.zip into a temporary directory. Three directories will be created after unzipping:
    sound\
    cfg\
    addons\
  3. Determine the location of your CS:Source Server directory. Here are a couple of examples, yours will probably be different:
    C:\Program Files\Steam\SteamApps\myemail@yahoo.com\counter-strike source\cstrike\
    C:\HLServer\source\cstrike\
  4. Copy the directories you unzipped, above, to subdirectories beneath your CS:Source Server directory:
    1. Copy the sound\ directory to your cstrike\ directory.
    2. Copy the cfg\ directory to your cstrike\ directory.
    3. Copy the addons\ directory to your cstrike\ directory.
  5. If you want players to hear the .wav (sound) files when Admins use sound-playing commands, or when "kill events" occur, edit the file, cstrike\addons\sounds.txt to include all of your .wav (sound) files. This ensures that your sound files are pre-cached for download to clients.
  6. Configure BeetleFart's Minimum Admin mod to your preference, as described in the Configuration section.
  7. Start your CS:Source Server.
  8. Go to the section, Verify it's working, to verify that the installation worked.


5. Configuration
To Configure BeetleFart's Minimum Admin mod, edit one or more of the following text files to meet your preferences.
To edit these text files, use a text editor, like Windows Notepad, (do not use Microsoft Word or Wordpad.)
If you want to place these files somewhere other than their default directories, (for example, if you are running multiple game servers on the same machine), create a PathInfo entry in the file, cstrike\cfg\defaults.cfg.

.cfg Files, automatically executed:
Files with names ending in .cfg are configuration files that reside in the cstrike\cfg\ directory.
The following .cfg files are executed in the order presented here, at every map change, (and upon server startup).
Note: Any command executed in a .cfg file will be overridden by execution of that same command in a subsequent .cfg file. What this means is that if a command isn't executing the way you expect, make sure that it doesn't also exist in a subsequent .cfg file.

  1. cstrike\cfg\defaults.cfg
    Your Minimum Admin mod configuration preferences.
  2. cstrike\cfg\[DayOfWeek].cfg
    One or more configuration files named after each day of the week, which are executed at 12:01AM on that day of the week, if the file exists. For example, cstrike\cfg\sunday.cfg, cstrike\cfg\monday.cfg, cstrike\cfg\tuesday.cfg, etc.
  3. cstrike\cfg\[MapType].cfg
    One or more configuration files named after each map "type" in CS:Source. The type of map about be played determines which of these .cfg files execute, if the file exists. Valid filenames are cstrike\cfg\csmaps.cfg, cstrike\cfg\fymaps.cfg, cstrike\cfg\demaps.cfg, cstrike\cfg\hemaps.cfg, and cstrike\cfg\aimmaps.cfg.
  4. cstrike\cfg\[MapName].cfg
    One or more configuration files named after each map in CS:Source. The name of the map about be played determines which of these .cfg files execute, if the file exists. Examples include cstrike\cfg\de_dust.cfg, cstrike\cfg\de_dust2.cfg, etc.
    Execution of these .cfg files is done by the CS:Source dedicated server, not BeetleFart's Minimum Admin mod.
    It is cited here only so you can see where the [MapName].cfg file executes in relation to BeetleFart's .cfg files.
  5. cstrike\cfg\daytime.cfg
    A configuration file which will be executed the first time a map changes during the hour of the day specified by the DayTimeCfgHour variable.
  6. cstrike\cfg\nighttime.cfg
    A configuration file which will be executed the first time a map changes during the hour of the day specified by the NightTimeCfgHour variable.

.cfg Files, other:
Some .cfg files are executed at other times, by one or more commands within one of the above-mentioned .cfg files, or by an Admin command.
These .cfg files also reside in the cstrike\cfg\ directory, and are described here:
.txt Files:
.txt files reside in the cstrike\addons\ directory, and are described here: Other Files: Here are the details for each of the files listed above:
 
File: cstrike\cfg\defaults.cfg
Format: Variable Value
or
ServerCommand Arguments
Example: autobuying 1
AddGhostStop "STEAM_0:0:123459"
This file contains your Minimum Admin mod configuration preferences.
Your preferences are defined by setting values for variables. This file can also contain certain server commands.
Related variables are grouped together below. Server commands are also grouped together.
Variables that don't belong to a specific group are listed alphabetically in the Miscellaneous section.

Admin permissions can be defined using the "AdminXPassWord" variables. Admin levels one through four can be granted by setting a password for each level.
You must tell each Admin the password for their level, and instruct them to use the  setinfo _password PASSWORD client console command to gain Admin access, (or they can add that command to their client's autoexec.cfg file.)
This is an alternate method, instead of defining Admins by Steam ID in one of the files, cstrike\addons\admins.txt, or cstrike\addons\tempadmins.txt.

An advantage of the AdminXPassWord method is that you do not have to specify each Admin's Steam ID or IP address in a file on the server.
(This is useful for LAN servers, where everybody's Steam IDs are the same.)

A disadvantage of this method is that your Admin clients must know the password, and must enter it in their console, (or their autoexec.cfg file) to become Admin.
Another disadvantage of this method is that regular players could guess Admin-level passwords and become Admins.
If you use this method, make sure that you specify passwords that are difficult to guess for each Admin level.
See bm_KickForBadPassword for instructions on automatically kicking a player who issues an invalid password via the AdminXPassWord method.

Admin1PassWord "PASSWORD"
Grant Level 1 Admin access to players who use the console command,
setinfo _password PASSWORD
Set PASSWORD to "" to disable Level 1 access using this method.

Admin2PassWord "PASSWORD"
Grant Level 2 Admin access to players who use the console command,
setinfo _password PASSWORD
Set PASSWORD to "" to disable Level 2 access using this method.

Admin3PassWord "PASSWORD"
Grant Level 3 Admin access to players who use the console command,
setinfo _password PASSWORD
Set PASSWORD to "" to disable Level 3 access using this method.

Admin4PassWord "PASSWORD"
Grant Level 4 Admin access to players who use the console command,
setinfo _password PASSWORD
Set PASSWORD to "" to disable Level 4 access using this method.

AdminPasswordRequiresNick VALUE
VALUE = 1: Require that player names be checked against the list of allowed player names added via AddAdminName to gain Admin access when using the AdminXPassWord method.
VALUE = 0: Do not require player names to be checked when using the AdminXPassWord method, (default).
See AddAdminName for instructions on adding player names to the allowed list of Admins who can use the AdminXPassWord method.
See bm_KickForBadPassword for instructions on automatically kicking a player who issues an invalid password via the AdminXPassWord method.


Weapon restrictions are configured using the Restrict(weapon-name) variables.
These variables can also be placed into map-specific config files, (like cstrike\cfg\de_dust.cfg), to restrict weapons differently on each map.
Note: the cstrike\cfg\defaults.cfg file is executed before the cstrike\cfg\<mapname>.cfg files.
Also, the cstrike\cfg\<mapname>.cfg file will only be executed when there are one or more players in the server.
Note: Weapon restrictions won't work on bots because they don't execute client commands.

Restrict(weapon-name) 1
Restrict this weapon so that neither team can buy it.

Restrict(weapon-name) 2
Restrict this weapon so that Terrorists cannot buy it.

Restrict(weapon-name) 3
Restrict this weapon so that Counter-Terrorists cannot buy it.

Here is the full list of weapon-names:

Restrictglock
RestrictUsp
RestrictP228
RestrictDeagle
RestrictElite
RestrictM3
Restrictxm1014
Restrictmac10
Restrictmp5navy
Restrictump45
Restrictp90
Restricttmp
Restrictgalil
Restrictak47
Restrictsg552
Restrictg3sg1 (this is the auto-sniper for Terrorists)
Restrictawp
Restrictfamis
Restrictaug
Restrictsg550 (this is the auto-sniper for Counter-Terrorists)
Restrictnightvision
Restricthegrenade
Restrictsmoke
Restrictflash
Restrictdefuser
Restrictvest
Restrictvesthelm
Restrictscout
Restrictm4a1
RestrictPrimAmmo
RestrictSecAmmo
Restrictm249
Restrictfiveseven

autobuying 0
Disable auto-buying and re-buying of weapons completely.

autobuying 1
Enable auto-buying and re-buying of weapons, (default).


DropRestrictedWeapons 0
Any player can pick up and use a restricted weapon, (default).

DropRestrictedWeapons 1
Whenever any player picks up a restricted weapon, they will immediately drop it, and thus be unable to use it.

DropRestrictedWeapons 2
Whenever a terrorist picks up a restricted weapon, they will immediately drop it, (counter-terrorists will still be able to pick up and use restricted weapons.)

DropRestrictedWeapons 3
Whenever a counter-terrorist picks up a restricted weapon, they will immediately drop it, (terrorists will still be able to pick up and use restricted weapons.)


LimitSnipersPerPersonPerMap VALUE
Limit the number of times that a player can buy a sniper rifle to VALUE times per map.
VALUE = 0: Do not limit the number of times a player can buy a sniper rifle per map, (default).
Note: The LimitSniper... checks are made before the other weapon restriction checks.
   So if you set LimitSnipersPerPersonPerMap to zero, then the other weapon restriction settings will still apply.
Note: See also IncludeScoutInSnipers.
Note: If players are still able to buy and/or pick up restricted weapons, set the DropRestrictedWeapons variable to a non-zero value.


LimitSnipersPerTeam VALUE
Limit the number of sniper rifles that can be purchased by a team to VALUE sniper rifles per team, per map.
VALUE = 0: Do not limit the number of sniper rifles allowed per team, per map, (default).
Note: The LimitSniper... checks are made before the other weapon restriction checks.
   So if you set LimitSnipersPerTeam to zero, then the other weapon restriction settings will still apply.
Note: See also IncludeScoutInSnipers.
Note: If players are still able to buy and/or pick up restricted weapons, set the DropRestrictedWeapons variable to a non-zero value.


IncludeScoutInSnipers 1
Include the Scout weapon when counting Snipers if either LimitSnipersPerPersonPerMap or LimitSnipersPerTeam are non-zero.

IncludeScoutInSnipers 0
Do not include the Scout weapon when counting Snipers if either LimitSnipersPerPersonPerMap or LimitSnipersPerTeam are non-zero, (default).


Map, kick and ban voting are configured using the following variables.
For map voting, create the list of maps for which players can vote in the file, cstrike\addons\mapvotes.ini.
The winning map will be loaded seven seconds after the current round ends, allowing players to see the final scores for the current map.
Bots are not counted when determining the vote winner.

AllowBanVoting VALUE
VALUE = 0: Disable voting using admin_ban.
VALUE = 1: Only Admins can initiate a vote using admin_ban, (default).
VALUE = 2: If one or more Admins are present, only an Admin can initiate a vote using admin_ban. If no Admins are present, anyone can initiate a vote using admin_ban.
VALUE = 3: Anyone can initiate a vote using admin_ban even if one or more Admins are present.

AllowKickVoting VALUE
VALUE = 0: Disable voting using admin_kick.
VALUE = 1: Only Admins can initiate a vote using admin_kick, (default).
VALUE = 2: If one or more Admins are present, only an Admin can initiate a vote using admin_kick. If no Admins are present, anyone can initiate a vote using admin_kick.
VALUE = 3: Anyone can initiate a vote using admin_kick even if one or more Admins are present.

AllowVoting VALUE
VALUE = 0: Disable voting using admin_vote, admin_votemap, and admin_votemaps.
VALUE = 1: Only Admins can initiate a vote using admin_vote, admin_votemap, and admin_votemaps, (default).
VALUE = 2: If one or more Admins are present, only an Admin can initiate a vote using admin_vote, admin_votemap, and admin_votemaps. If no Admins are present, anyone can initiate a vote using admin_vote, admin_votemap, and admin_votemaps.
VALUE = 3: Anyone can initiate a vote using admin_vote, admin_votemap, and admin_votemaps even if one or more Admins are present.

AutoMapVotes 0
Disable the automatic execution of admin_votemaps before map-end.
Note: AutoMapVotes 0 disables automatic map-end voting when you are using either mp_timelimit or mp_winlimit.
If you are using only mp_timelimit, see the AutoVoteMapTime variable.

AutoMapVotes 1
Enable the automatic execution of admin_votemaps before map-end.
Note: AutoMapVotes 1 enables automatic map-end voting when you are using mp_winlimit to specify the maximum number of wins for one team before the map changes. If you are using mp_timelimit, see the AutoVoteMapTime variable.
When you are using mp_winlimit, and AutoMapVotes is set to 1, then admin_votemaps will be automatically executed two rounds before the number of rounds specified by your mp_winlimit setting.

AutoVoteMapTime 0
Disable the automatic execution of admin_votemaps before map-end.
Note: AutoVoteMapTime works only when you are using mp_timelimit to set the maximum time for a map. If you are using mp_winlimit, see the AutoMapVotes variable.

AutoVoteMapTime MINUTES
Number of minutes before map-end that an admin_votemaps is automatically executed, (default = 3 minutes).
Note: AutoVoteMapTime works only when you are using mp_timelimit to set the maximum time for a map. If you are using mp_winlimit, see the AutoMapVotes variable.
Do not set AutoVoteMapTime to a value less than 3, (except when setting it to zero to disable.)
When this feature is enabled, you must also have mp_timelimit set in the file, cstrike\cfg\defaults.cfg.
If the AutoVoteMapTime feature still doesn't work after adding mp_timelimit to the cstrike\cfg\defaults.cfg file, then add another mp_timelimit entry before your desired time limit. For example:
mp_timelimit 10
mp_timelimit 22
The first entry has a dummy value, (10 minutes, in this example.) The second entry has your desired time limit value, (22 minutes, in this example.)

DontIncludeLastMaps VALUE
Exclude the last VALUE played maps from the list of maps to be voted for during an admin_votemaps command. VALUE can be any number from 0 to 10.
VALUE = 0: Any map listed in the cstrike\addons\mapvotes.ini file is eligible to be included in the randomly-generated map-vote list.
VALUE = 5: The last five maps played will be excluded from the randomly-generated map-vote list, (default).

ExtendRoundWinLimit ROUNDS
Number of rounds that an Extend Map vote win increases the current map's round limit, (default = 8 rounds).

ExtendTimeLimit MINUTES
Length of time in minutes that an Extend Map vote win increases the current map's timelimit, (default = 20 minutes).

LoadMapsFromFile VALUE
VALUE = 0: The admin_mapmenu command will search the cstrike\maps directory for all .bsp files, and use the list of found map files, (default).
VALUE = 1: The admin_mapmenu command will only list the maps in the file, cstrike\addons\maplist.txt.

MaintainMapCycle VALUE
VALUE = 0: Load the first map in the cstrike\mapcycle.txt file after a non-mapcycle.txt map is voted in and played.
VALUE = 1: After a non-mapcycle.txt map is voted in and played, resume play with the next map in the cstrike\mapcycle.txt file, (default).

MapVotesShowDeadOnly VALUE
VALUE = 0: When the @votemaps command is used, or during end-of-map voting, the Vote menu appears to all players, living and dead.
VALUE = 1: When the @votemaps command is used, or during end-of-map voting, the Vote menu only appears to dead players, (default). Living players must say vote to see the Voting menu.

PercentOfVotesToEndVote VALUE
VALUE = 0.75: When the @votemaps command is used, or during end-of-map voting, VALUE percent of players are required to vote in order to end the vote, (default).
Otherwise, voting will end about 1-1/2 minutes after the vote is initiated.

ShowVotes VALUE
VALUE = 0: Do not show voters the voting choices made.
VALUE = 1: Show voters the voting choices made, (default).

StartVoteDelay SECONDS
Number of seconds after the start of a map to allow voting, (default = 180 seconds).

UseEscMenus VALUE
VALUE = 0: Do not set voting menus to Radio-Command-like menus, (default).
VALUE = 1: Set voting menus to Radio-Command-like menus.

VoteBanPercent VALUE
Minimum ratio of votes needed for a successful ban vote via the admin_voteban command.
The default VALUE is 0.35, which means 35 percent of players plus 1 player must vote "Yes" for the proposed player to be banned.
Set to a lower number to allow fewer votes to ban.
Do not set to zero to disable, instead, set AllowBanVoting to zero to disable ban voting.

VoteFrequency SECONDS
Number of seconds until another map or kick vote is allowed, (default = 180 seconds).

VoteKickPercent VALUE
Minimum ratio of votes needed for a successful kick vote via the admin_votekick command.
The default VALUE is 0.35, which means 35 percent of players plus 1 player must vote "Yes" for the proposed player to be kicked.
Set to a lower number to allow fewer votes to kick.
Do not set to zero to disable, instead, set AllowKickVoting to zero to disable kick voting.

VoteMapPercent VALUE
Minimum ratio of votes needed for a successful map vote via the admin_votemap command.
The default VALUE is 0.35, which means 35 percent of players plus 1 player must vote "Yes" for the proposed map to win the vote.
Set to a lower number to allow fewer votes to win.
Do not set to zero to disable, instead, set AllowVoting to zero to disable map voting.

VoteMapsPercent VALUE
Minimum ratio of votes needed for a successful map vote via the admin_votemaps command.
The default VALUE is 0.35, which means 35 percent of players plus 1 player must vote for the same map for it to win the vote.
Set to a lower number to allow fewer votes to win.
If 2 maps get 4 votes and the required votes to win was 4, then the first winning map in the list will be selected.
Do not set to zero to disable, instead, set AllowVoting to zero to disable map voting.


Name restrictions are configured using the following variables.
AllowUniNames 0
Do not allow players to join if their name contains more than three Unicode characters.

AllowUniNames 1
Allow players to join if their name contains more than three Unicode characters, (default).


AllowPercentName 0
Do not allow players to join if their name contains the percent sign, (%), the backtick character, (`), or the tilde character, (~).

AllowPercentName 1
Allow players to join if their name contains the percent sign, (%), the backtick character, (`), or the tilde character, (~), (default).


ChangeNames 0
When set to 0, joining players will be kicked if all of the following are true:
1. AllowUniNames is zero.
2. SwearKick is non-zero.
3. The joining player's name contains one of the words in the file, cstrike\addons\wordlist.txt.

ChangeNames 1
When set to 1, joining players' names will be changed if all of the following are true:
1. AllowUniNames is zero.
2. SwearKick is non-zero.
3. The joining player's name contains one of the words in the file, cstrike\addons\wordlist.txt.


NameChangePunishment VALUE
Punish players who change their name frequently during a round. NameChangesToKick must be non-zero for this to work.
VALUE = 1: Kick players who change their name more than NameChangesToKick times per round.
VALUE = 2: Auto-ban players for AutoBanTime minutes if they change their name more than NameChangesToKick times per round, (default).
VALUE = 3: Permanently ban players who change their name more than NameChangesToKick times per round.

NameChangesToKick CHANGES
If a player changes their name more than CHANGES time per round, they will be kicked, (default = 7 name-changes).
The player may also be banned depending on the value of the NameChangePunishment variable.
CHANGES = 0: Disable kicking players who change their name.

NameMinimumLength LENGTH
Require player names to be at least LENGTH characters in length to join or stay connected to the server, (default = 0).

NamesWithUniSpacePunish VALUE
VALUE = 1: Kick players who change their name to be the same as another player with an additional invisible (unicode) character, (default).
VALUE = 2: Auto-ban players who change their name to be the same as another player with an additional invisible (unicode) character.
VALUE = 3: Permanently ban players who change their name to be the same as another player with an additional invisible (unicode) character.
VALUE = 0: Do not kick players who change their name to be the same as another player with an additional invisible (unicode) character.


Player ranking is based on number of kills minus number of deaths, compared to everybody else.
Headshot tracking is also included in player ranking.
To view your rank, use the in-game command, /rank.
To see the top 5 players, use the in-game command, /top5.
To see the top 15 players, use the in-game command, /top15.

Player rankings are saved to a binary data file on the server, cstrike\addons\BeetleStats.dat.
If you want to display your player rankings in a formatted HTML table on your web site, you can download and install Rabid's BeetleStats Utility on your web server.
It is a Perl script that reads the BeetleStats.dat file and produces player rankings in an HTML table.
An example of the output from this Perl script can be seen here.

At the end of each map, player rankings are also saved to a plain text file, cstrike\addons\BeetleStats.txt.
You can also use this plain text file to display your server's player rankings on a web site.

To reset player rankings back to zero, issue the command,
rcon RankingsTotal 0
or
rcon EnableRanks 0
Player rankings will be reset to zero at the start of the next map.
You can also reset player rankings by stopping the CS:Source server, deleting the file, cstrike\addons\BeetleStats.dat, and restarting the CS:Source server.

Player ranking is configured using the following variables:

bm_displayranks VALUE
VALUE = 1: Display /rank chat commands normally: the player's chat command, /rank, is displayed to all players, but their rank is displayed only to the requesting player, (default).
VALUE = 2: Display neither the player's chat command, /rank, nor their rank to all players. Display ranking only to the requesting player.
VALUE = 3: Do not display the player's chat command, /rank, but display their rank to all players.
VALUE = 4: Display ranks in the top left corner.

DisplayTop15 VALUE
VALUE = 0: Disable the /top15 display.
VALUE = 1: Enable the /top15 display in a message-of-the-day (MOTD) window, (default).
VALUE = 2: Enable the /top5 display in chat text.
VALUE = 3: Enable the /top15 display in an unformatted message-of-the-day (MOTD) window.

EnableRanks VALUE
VALUE = 0: Disable the in-game ranking system.
VALUE = 1: Enable the in-game ranking system, (default).

RankingsTotal 2000
Maximum number of players ranked by the in-game ranking system, (default).
It is recommended that this value be no greater than 10000.

CalculateRanksEachRound VALUE
VALUE = 0: Recalulates ranks at the end of each map.
VALUE = 1: Recalulates ranks at the end of each round, (default).

RankByName VALUE
VALUE = 0: Rankings are based on Steam ID, (default).
VALUE = 1: Rankings are based on player name, instead of Steam ID.


Player statistics (similar to the StatsMe plugin for CS 1.6), can be captured and reported in-game.
It shows weapon, accuracy, shots fired, damage done, kills, headshots, hits, team-kills and round for the last round or two.
Statistics are displayed in a window similar to the message-of-the-day (MOTD) window.
To display your statistics, use the stats command.
To enable or disable collection of statistics, use the following variable:

EnableStatsMe VALUE
VALUE = 1: Enable saving and reporting of StatsMe-like weapon statistics, (default).
VALUE = 0: Disable saving and reporting of StatsMe-like weapon statistics.


bm_DisplayDeathStats VALUE
VALUE = 1: Enable display of damage report upon death, (default). This requires that EnableStatsMe is also set to 1. This damage report will also be displayed when players type stats in chat text.
VALUE = 0: Disable display of damage report upon death.


Friendly fire setting
Friendly-fire can be turned on or off with the level-2 Admin command, admin_ff.
Friendly fire status can be displayed by any player with the command, /ff.

If this command displays an incorrect friendly fire status, add
mp_friendlyfire 0
or
mp_friendlyfire 1
to the cstrike\cfg\defaults.cfg file to specify your server's friendly fire setting:

mp_friendlyfire 0
Turn off friendly fire.

mp_friendlyfire 1
Turn on friendly fire.


Team-killing punishment is configured using the following variables. Note: Friendly fire must be on for these to work.
Also, if the server variables, mp_spawnprotectiontime (default = 5), and mp_autokick are turned on, the game engine will still kick and ban someone for spawn-killing.

ForgiveTkMenu VALUE
VALUE = 1: Enable display of the "forgive" menu to a victim of a team-killing, (default).
VALUE = 2: Enable display of the "forgive" menu to a victim of a team-killing, however, only victims who have admin_slay admin permission will see the Slay options in the menu.
VALUE = 0: Disable display of the "forgive" menu.
When a player is killed by a teammate, if the team-killer is not kicked because of SpawnKillSeconds or GetTkKick, then a menu is displayed to the victim, giving them the following options to act upon their team-killer: Note: You must have mp_tkpunish 0 in your server's configuration file, cstrike\cfg\server.cfg, for the ForgiveTkMenu menu to work.
Note: If GetTkKick is set to zero, then the ForgiveTkMenu menu will not display. Set GetTkKick to a non-zero value if you also want to display the ForgiveTkMenu menu.
(Thanks to deadduck for discovering this dependency.)

GetTkKick VALUE
Number of team-kills allowed per map before offender is kicked, (default = 4).
Note: If GetTkKick is set to zero, then the ForgiveTkMenu menu will not display. Set GetTkKick to a non-zero value if you also want to display the ForgiveTkMenu menu.
(Thanks to deadduck for discovering this dependency.)

HurtSpawnAttackers VALUE
VALUE = 1 or greater: During the SpawnKillSeconds period, automatically slap spawn-attackers with this amount of damage plus the damage inflicted to the teammate victim.
VALUE = 0: Do not automatically slap spawn-attackers with additional damage during the SpawnKillSeconds period, (default).

MoneyOffset VALUE
Specify the address in memory where a player's money value is stored. This variable is used by all functions that give or take away cash to/from players.
Note: Effective July 30, 2005, in version 1.0.0.55Beta0, Beetlefart removed the MoneyOffset cvar and added code to make the server search for the correct value automatically. You can still override the value, (not recommended), using the server command, bm_setmoneyoffset
The MoneyOffset variable exists so that it can be modified by you if Valve releases a Steam update that changes the memory address. BeetleFart will post the new value in the BeetlesMod.com forums if a Steam update requires this variable to be changed. You should then change this variable to the new value, and BeetleFart will not have to release a new version of his plugin to correct the memory address.
Note: Specifying an incorrect value for this variable can cause unwanted results, including crashing your server.
Effective July 6, 2005, for Windows servers, set VALUE to 875 (this is the default value in defaults.cfg).
For Linux servers, set VALUE to 880
To see the VALUE of MoneyOffset currently defined on your server, execute @rcon moneyoffset while in the game, or rcon moneyoffset from the server's console, or in HLSW.

ReflectDamagePlus DAMAGE
When a team-attacker hurts a teammate, inflict on the team-attacker DAMAGE plus the amount of damage inflicted upon the victim. This occurs only after TeamAttackIncidents is reached, and after SpawnKillSeconds is reached, (default = 0 damage, which disables this feature).

SetMpAutoKick VALUE
VALUE = 1: If an Admin joins spectate, set mp_autokick off, to allow Admins to spectate without getting kicked. The mod then sets mp_autokick back on when no Admins are spectating, (default).
VALUE = 0: Do not change the setting of mp_autokick.

ShowAllTeamDamage VALUE
VALUE = 1: Show opposing team members and spectators the team-attack messages, (default).
This allows Admins and other players to see team-killing players' offending actions.
VALUE = 0: Do not show opposing team members and spectators the team-attack messages.

SpawnKillSeconds SECONDS
Number of seconds after spawning that a single team-kill offense will cause the offender to be kicked, (default = 8 seconds).
The timer starts at the end of mp_freezetime, not at round-start.

TeamAttackIncidents VALUE
After VALUE occurrences of team-attacking, start inflicting damage to team-attackers using ReflectDamagePlus, (default = 15). Set VALUE to zero to disable.

TKBlindTime SECONDS
A team-killer will be blind for SECONDS seconds if the Blind option is selected by the victim from the ForgiveTkMenu menu, (default is 30 seconds).
SECONDS = 0: Remove the Blind option from the ForgiveTkMenu menu.

TKFart SECONDS
A team-killer will fart for SECONDS seconds if the Fart option is selected by the victim from the ForgiveTkMenu menu, (default is 30 seconds).
SECONDS = 0: Remove the Fart option from the ForgiveTkMenu menu.

TKFines DOLLARS
A victim of a team-killing will collect DOLLARS dollars of "fine" money from the offending team-killer player if the Collect option is selected by the victim from the ForgiveTkMenu menu, (default = 2500 dollars). See also the variable, MoneyOffset.

TKShakeTime SECONDS
A team-killer will shake for SECONDS seconds if the Shake option is selected by the victim from the ForgiveTkMenu menu, (default is 30 seconds).
SECONDS = 0: Remove the Shake option from the ForgiveTkMenu menu.


Match setup is configured using the following variables:

MatchPassword PASSWORD
Set server password to PASSWORD, requiring players to know the password to join the server during match play.

MatchConfig FILENAME
Specify the name of the file containing the server settings to be loaded when an Admin executes the admin_startmatch command. Typically, this is the file, match.cfg.

MatchRounds ROUNDS
During match play, each match-half will consist of ROUNDS rounds, (default is 15 rounds.)

MatchAutoSwitch VALUE
VALUE = 1: During match play, auto-switch players at half-time of the match, (default).
VALUE = 0: Disable auto-switching players at half-time of the match.

MatchCheckRoster VALUE
This variable is checked upon execution of the command, admin_matchroster.
VALUE = 1: During match play, check the roster list when the admin_startmatch command is executed. Prevent the match from starting if players are connected who are not listed in the roster list.
See also cstrike\cfg\matchroster.cfg and AddMatchPlayer.
VALUE = 0: During match play, do not check the roster list when the admin_startmatch command is executed, (default).

MatchRestart1 SECONDS
During match play, the first restart for the match occurs in SECONDS seconds, (default = 3 seconds).

MatchRestart2 SECONDS
During match play, the second restart for the match occurs in SECONDS seconds, (default = 2 seconds).

MatchRestart3 SECONDS
During match play, the third restart for the match occurs in SECONDS seconds, (default = 10 seconds).

MatchStopDemos VALUE
VALUE = 1: During match play, auto-execute StopDemo on all clients at half-time and match end, (default).
VALUE = 0: Disable auto-executing StopDemo on all clients at half-time and match end.

MatchBlind VALUE
VALUE = 1: During match play, players who die will immediately see fade-to-black. This is intended to work around a fadetoblack bug on some maps, (default).
VALUE = 0: Disable fading to black.

DisableOverHead VALUE
VALUE = 0: During match play, disable overhead viewing, (default). If a player tries to turn on overhead viewing when it's disabled, their attempt will be logged.
VALUE = 1: Always disable overhead viewing, during match play and non-match play.

AutoLoadTempAdminsDay VALUE
Specify VALUE for the day of the week when Temporary Admins are allowed to be Admins. VALUE can be one of 0 through 6, where Sunday = 0.

AutoLoadTempAdminsStartHour VALUE
Specify VALUE for the starting hour of the day when Temporary Admins are allowed to be Admins.

AutoLoadTempAdminsEndHour VALUE
Specify VALUE for the ending hour of the day when Temporary Admins are disallowed to be Admins.

LoadTemporaryAdmins VALUE
VALUE = 1: Load Temporary Admins from the file, cstrike\addons\tempadmins.txt according to the day, start-hour, and end-hour values specified above.
VALUE = 0: Disable loading Temporary Admins from the file, cstrike\addons\tempadmins.txt, (default).


Advertisements are configured using the following variables:

AdDisplayFreq SECONDS
Automatically display your "advertisement" message text every SECONDS seconds, (default is 180).
Note: The minimum acceptable value for SECONDS is 30 seconds.
Messages are automatically printed to the top left corner of the screen, or to the lower left corner of the screen if the console option is used with the addadvertisement command.
The text of the message is defined in the file, cstrike\cfg\advertisements.cfg.
Note: This file will load only if cstrike\addons\advertisements.txt does not exist.
Note: Advertisement text will block part of the player's radar in the upper left corner, especially if multiple lines of advertisement text are defined in the file, cstrike\cfg\advertisements.cfg.
This can be avoided by setting AdvertiseDeadOnly to 2, as described, below.

AdvertiseDeadOnly 0
Display advertisement text to all players.

AdvertiseDeadOnly 1
Display advertisement text only to dead players, (default).

AdvertiseDeadOnly 2
Display advertisement text to players as Console "say" messages in the lower left corner.
This prevents the advertisement text from blocking the player's radar, but the text is not as prominent.


Blow-out games are one-sided affairs where one team is dominating another team. To even things up during a blow-out map, you can set the following variables:

BlowOutLimit ROUNDS
End the current map if a team has ROUNDS victories more than the other team. For example, when set to 12, if one team gets 12 round-victories more than the other team, the admin_votemaps command will automatically be executed. If no map wins the vote, the current map will end, and the next map in rotation will load.
ROUNDS = 0: Disable automatically ending the map if one team has a large number of victories over the other team, (default).

LosersBonus DOLLARS
Award DOLLARS dollars to a team losing by more than (BlowOutLimit divided by 2) victories, (default = 0 dollars, where no cash is awarded).
When DOLARS is -1, some players from the winning team are switched to the losing team if TeamSwitchPercent is non-zero. See also the variable, MoneyOffset.

TeamSwitchPercent PERCENT
When LosersBonus is set to -1, and the losing team is losing by more than (BlowOutLimit divided by 2) victories, then PERCENT percent of the players from each team are switched to the other team. The players with the most kills from the winning team are switched with an equal number of the players with the least kills from the losing team, (default = 0.20, which is 20%).
For example, if BlowOutLimit is 10, and LosersBonus is -1, and TeamSwitchPercent is 0.20, then when one team is ahead by 5 rounds over the losing team, 20 percent of the players from each team will be switched to the other team. The "best" players from the winning team will be switched with the "worst" players from the losing team.


Kill event sounds can be enabled by setting the following variables.
Note: In order for players to hear these sounds, UseNonResFileSoundDownloads must be set to one. If not, then each .wav (sound) file must have been previously downloaded to each player's PC using the .res (resource) file mechanism.
Note: By default, these sounds are disabled in cstrike\cfg\defaults.cfg. To enable them, you must remove the comment characters, (//) from the beginning of each line, starting with
//KnifeKillSound "misc/humiliation.wav"
and place comment characters in front of each line, starting with
KnifeKillSound ""

PlayQuakeSoundsToAll VALUE
VALUE = 0: Only players involved in the kill event will hear these event sounds when they occur, (default).
VALUE = 1: All players will hear these kill event sounds when they occur.

KickSound "FILENAME"
Play the .wav (sound) file specified by FILENAME whenever a player is kicked.
FILENAME must be specified with a path relative to the cstrike\sound directory. For example:
KickSound "misc/kicked.wav"
In this example, whenever a player is kicked, the server will play the .wav (sound) file, cstrike\sound\misc\kicked.wav
on all players' PCs.

KnifeKillSound "FILENAME"
Play the .wav (sound) file specified by FILENAME whenever a player is killed by knifing.
FILENAME must be specified with a path relative to the cstrike\sound directory. For example:
KnifeKillSound "misc/humiliation.wav"
In this example, whenever a player is killed by knifing, the server will play the .wav (sound) file, cstrike\sound\misc\humiliation.wav
on all players' PCs.

MonsterKillSound "FILENAME"
Play the .wav (sound) file specified by FILENAME whenever a player kills five opponents without being killed.
FILENAME must be specified with a path relative to the cstrike\sound directory. For example:
MonsterKillSound "misc/monsterkill.wav"
In this example, whenever a player kills five opponents without being killed, the server will play the .wav (sound) file, cstrike\sound\misc\monsterkill.wav
on all players' PCs.
The number of kills which trigger this sound is five, by default. This can be changed by using the server command, setKillCount "monsterkills" "VALUE".

UltraKillSound "FILENAME"
Play the .wav (sound) file specified by FILENAME whenever a player kills seven opponents without being killed.
FILENAME must be specified with a path relative to the cstrike\sound directory. For example:
UltraKillSound "misc/ultrakill.wav"
In this example, whenever a player kills seven opponents without being killed, the server will play the .wav (sound) file, cstrike\sound\misc\ultrakill.wav
on all players' PCs.
The number of kills which trigger this sound is seven, by default. This can be changed by using the server command, setKillCount "UltraKillKills" "VALUE".

GodLikeSound "FILENAME"
Play the .wav (sound) file specified by FILENAME whenever a player kills eleven opponents without being killed.
FILENAME must be specified with a path relative to the cstrike\sound directory. For example:
GodLikeSound "misc/godlike.wav"
In this example, whenever a player kills eleven opponents without being killed, the server will play the .wav (sound) file, cstrike\sound\misc\godlike.wav
on all players' PCs.
The number of kills which trigger this sound is eleven, by default. This can be changed by using the server command, setKillCount "GodLikeKills" "VALUE".

RampageKillsSound "FILENAME"
Play the .wav (sound) file specified by FILENAME whenever a player kills fifteen opponents without being killed.
FILENAME must be specified with a path relative to the cstrike\sound directory. For example:
RampageKillsSound "misc/rampage.wav"
In this example, whenever a player kills fifteen opponents without being killed, the server will play the .wav (sound) file, cstrike\sound\misc\rampage.wav
on all players' PCs.
The number of kills which trigger this sound is fifteen, by default. This can be changed by using the server command, setKillCount "RampageKills" "VALUE".

LudicrousKillsSound "FILENAME"
Play the .wav (sound) file specified by FILENAME whenever a player kills twenty opponents without being killed.
FILENAME must be specified with a path relative to the cstrike\sound directory. For example:
RampageKillsSound "misc/ludicrous.wav"
In this example, whenever a player kills twenty opponents without being killed, the server will play the .wav (sound) file, cstrike\sound\misc\ludicrous.wav
on all players' PCs.
The number of kills which trigger this sound is twenty, by default. This can be changed by using the server command, setKillCount "LudicrousKills" "VALUE".

HeadShotSound "FILENAME"
Play the .wav (sound) file specified by FILENAME whenever a player kills an opponent with a headshot.
FILENAME must be specified with a path relative to the cstrike\sound directory. For example:
HeadShotSound "misc/headshot.wav"
In this example, whenever a player kills an opponent with a headshot, the server will play the .wav (sound) file, cstrike\sound\misc\headshot.wav
on all players' PCs.

FirstBloodSound "FILENAME"
Play the .wav (sound) file specified by FILENAME when first blood is drawn, (the first player to hit an opponent).
FILENAME must be specified with a path relative to the cstrike\sound directory. For example:
FirstBloodSound "misc/firstblood.wav"
In this example, when first blood is drawn, (the first player to hit an opponent), the server will play the .wav (sound) file, cstrike\sound\misc\firstblood.wav
on all players' PCs.

ResetKillCountOnRoundStart VALUE
VALUE = 0: Do not reset the Kills counter for sound events at the beginning of each round.
VALUE = 1: Reset the Kills counter for sound events at the beginning of each round, (default).

ShowKillTextMessages VALUE
VALUE = 0: Do not show text chat messages to all players when kill events occur.
VALUE = 1: Show text chat messages to all players when kill events occur, (default).
The text messages displayed can be changed by modifying the setstring entries in the file, cstrike\cfg\replacetext.cfg, for example:
setstring "FirstBloodText" "First Blood!!!!"
setstring "MonsterKillText" "Is A Monster!!!"
setstring "UltraKillText" "UltraKill!!!!"
setstring "GodLikeText" "Is GodLike!!!!"
setstring "RampageKillsText" "RAMPAGE!!!!!!!!!!!"
setstring "LudicrousKillsText" "LUDICROUS!!!!!"
setstring "HeadShotText" "HeadShot!!!!"


Reserved slots are player slots kept available so that Admins with the Reserved Slot privilege can join the server when the server is full.
Slot reservation is managed using the following variables:

ReservedSlot PLAYERS
Enable the reserved slot mechanism, reserving spots for PLAYERS number of Admin players with reserved-slot privileges.
This is not really a "reserved slot" mechanism, rather, it's an "auto-kicker".
When the server is full it will first kick a spectator, if any are found, to free up slots. If not, it will kick the first-found non-Admin.
The kicked player is not technically kicked, rather they are disconnected from the server. This ensures that their removal will not be counted as a "kick" if the KicksForAutoBan feature is enabled.
If the Redirect feature is enabled, the player will be redirected to another server, rather than being kicked/disconnected.
It takes 10 to 15 seconds after someone joins to disconnect (or redirect) the "victim", thus opening the free slot.
PLAYERS = 0: Disable the reserved slot mechanism, (default).

ReservedMode VALUE
VALUE = 1: When the ReservedSlot mechanism is enabled (not zero), the server will continuously disconnect players to open up a free slot, (or redirect them, if the Redirect feature is enabled). ReservedMode is set to one, by default.
VALUE = 0: Disconnect, (or redirect), a connecting player only if they are not an Admin.

SetMaxVisible VALUE
VALUE = 1: Set the server's sv_visiblemaxplayers variable to (maxplayers minus ReservedSlot).
The server variable, sv_visiblemaxplayers, is the value seen by observers in the Steam server-browser list.
If SetMaxVisible is 1 (one), and ReservedSlot is non-zero, then sv_visiblemaxplayers will be set to (maxplayers minus ReservedSlot).
VALUE = 0: Do not change the server's sv_visiblemaxplayers variable, (default).

ReservedKickMenu VALUE
VALUE = 1: When the ReservedSlot mechanism is enabled (not zero), an Admin joining a full server will see a Kick menu allowing them to select a player to kick, opening a free slot so that the Admin can join.
VALUE = 0: Disable the reserved kick menu feature, (default).


Timed configurations are executed the first time a map change occurs during a specified hour of the day. Timed configurations execute if one or both of the following variables are non-zero:

DayTimeCfgHour HOUR
The file, cstrike\cfg\daytime.cfg, will be executed the first time a map changes during the HOUR hour of the day, (in military time with HoursOffset added to HOUR).
HOUR = 0: Disable execution of the Day-time configuration file.
Note: If your server is empty during the entire HOUR hour, then a map-change will not occur, and the file, cstrike\cfg\daytime.cfg, will not be executed. To force execution of this file, you can enable at least one bot all the time, or enable SRCTV. To enable SRCTV, set tv_enable to 1, and change the map.

NightTimeCfgHour HOUR
The file, cstrike\cfg\nighttime.cfg, will be executed the first time a map changes during the HOUR hour of the day, (in military time with HoursOffset added to HOUR).
HOUR = 0: Disable execution of the Night-time configuration file.
Note: If your server is empty during the entire HOUR hour, then a map-change will not occur, and the file, cstrike\cfg\nighttime.cfg, will not be executed. To force execution of this file, you can enable at least one bot all the time, or enable SRCTV. To enable SRCTV, set tv_enable to 1, and change the map.


Server commands are commands that are executed by the server when it reads the .cfg files. These commands can also be issued at the server's console, or via HLSW.
Unlike variables, server commands execute a command instead of setting the value of a variable.
Server commands may appear multiple times in a .cfg file, with a different argument passed to each instance of the server command.

AddAdmin "TARGETNAME" "ACCESSLEVELS"
Add player named "TARGETNAME" as an Admin with "ACCESSLEVELS" rights, effective until the next map-change.
TARGETNAME can be the player's full name, or part of their name (if it's a unique part).
ACCESSLEVELS are the abbreviations defined in the Admin commands section.

AddAdminID "STEAM_ID" "ACCESSLEVELS"
Add player with Steam ID "STEAM_ID" as an Admin with "ACCESSLEVELS" rights, effective until the next map-change.
STEAM_ID is the Steam ID of the player to be granted Admin rights.
ACCESSLEVELS are the abbreviations defined in the Admin commands section.

AddAdminName "PLAYERNAME" "PASSWORD" "ACCESSLEVELS"
Add player named "PLAYERNAME" to list of players allowed to use the AdminXPassWord method of gaining Admin access.
The player named "PLAYERNAME" must execute the command,
setinfo _password PASSWORD
to gain Admin access. They will be granted the Admin access levels defined by "ACCESSLEVELS"
Note: This requires that AdminPasswordRequiresNick be set to 1.

AddAdminLogFilenamePrefix "LOGPREFIX"
By default, BeetleFart's Admin mod will log Admin commands to daily log files in the cstrike\addons\adminlogs\ folder.
Log files will be named AdminMMDD.log, where MM is the month number, and DD is the day number.
You can specify a custom prefix for the Admin log file names by uncommenting this Server Command in cstrike\cfg\defaults.cfg, and setting "LOGPREFIX" to a meaningful value.
For example,
AddAdminLogFilenamePrefix "Server1"
Admin commands will be logged to files with this prefix in their name, such as:
cstrike\addons\adminlogs\Server1Admin0515.log

AddAdminLogPathInfo "LOGPATH"
By default, BeetleFart's Admin mod will log Admin commands to daily log files in the cstrike\addons\adminlogs\ folder.
Log files will be named AdminMMDD.log, where MM is the month number, and DD is the day number.
You can specify a custom folder name where Admin log files will be written by uncommenting this Server Command in cstrike\cfg\defaults.cfg, and setting "LOGPATH" to a meaningful value.
For example,
AddAdminLogPathInfo "MyServer"
Admin commands will be logged to files in a subdirectory with this name, such as:
cstrike\addons\adminlogs\MyServer\Admin0515.log

AddAutoJoin "STEAM_ID"
Force player with STEAM_ID to auto-join a team. The player cannot spectate, and this command overrides AutoJoinImmunity.

AddForcedTag "STEAM_ID" "TAG"
Force player with STEAM_ID to have TAG appended to their name.

AddGhostStop "SteamID"
Make player with SteamID fadetoblack after each death. This prevents the affected player from spectating the remaining living players while he is dead.
Specify multiple players by repeating this line in cstrike\cfg\defaults.cfg, once for each SteamID. Each SteamID must be enclosed in quotes.
To only temporarily afflict a player with fadetoblack, use the in-game command, admin_ghostkill.

AddJoinTrigger "STEAMID_OR_NAME_OR_ALL" "admin_csay #NAME# is in da house!" "2"
Add a "trigger" which will announce the name of a player joining the server as centered-text.
(This command uses syntax similar to AddSayTrigger.)

AddMatchPlayer "STEAM_ID"
Add player with STEAM_ID to the match roster list. See also the following: MatchCheckRoster, matchroster.cfg, and admin_startmatch.
This command can be used in the file, matchroster.cfg.

AddPermaGag "SteamID" "PLAYERNAME"
Add the player with SteamID, "SteamID", and name, "PLAYERNAME", to the list of players gagged for the duration specified by the PermaGagDuration variable.
This server command will automatically be appended to the cstrike/cfg/clanmembers.cfg file each time the admin_permagag command is executed, if the PermaGagDuration variable is set to 2, (permanent).

AddPermaMute "SteamID" "PLAYERNAME"
Add the player with SteamID, "SteamID", and name, "PLAYERNAME", to the list of players muted for the duration specified by the PermaMuteDuration variable.
This server command will automatically be appended to the cstrike/cfg/clanmembers.cfg file each time the admin_permamute command is executed, if the PermaMuteDuration variable is set to 2, (permanent).


AddSayTrigger "TRIGGERTEXT" "RESPONSE" "ACTION"
Add a "trigger" which will cause the server to respond when any player types the "TRIGGERTEXT" as chat text.
This feature can be used to provide custom shorthand commands for all players, or to punish players for saying forbidden text.

Examples are included in the file, cstrike\cfg\defaults.cfg.
Examples are prefixed with // which comments-out the example.
Remove the // comment-characters, and modify the example to enable it, or add your own custom lines to that file using the following syntax:

"TRIGGERTEXT" can be any text string that you want the server to watch for in player chat text.
The server's "RESPONSE" upon seeing "TRIGGERTEXT" in chat text depends on the value of the "ACTION" argument:
"ACTION" = 0: Show all players the "TRIGGERTEXT" text and the "RESPONSE" text when a player types "TRIGGERTEXT" in chat.
"ACTION" = 1: Show all players only the "RESPONSE" text when a player types "TRIGGERTEXT" in chat.
"ACTION" = 2: Execute the command defined in "RESPONSE" when a player types "TRIGGERTEXT" text in chat. The command defined in "RESPONSE" can contain one percent-s (%s) argument which will be replaced by the name of the player who typed the "TRIGGERTEXT" text in chat.
If  "RESPONSE"  requires embedded quotation marks, use ^ as a replacement character for " .
The command defined in "RESPONSE" can also contain one or more of these special tags:
   #TEXT#  will be replaced by the text the player typed following the "TRIGGERTEXT".
   #NAME#  will be replaced by the name of the player that typed "TRIGGERTEXT" in chat.
   #STEAMID#  will be replaced by the Steam ID of the player that typed "TRIGGERTEXT" in chat.
   #TICKRATE#  will be replaced by the current tick rate setting of the server.
   dummy  will prevent "TRIGGERTEXT" typed in chat from being processed by the plugin. Useful for overriding commands like "stats".
"ACTION" = 5: Execute multiple commands defined in "RESPONSE" when a living player types "TRIGGERTEXT" text in chat. Each command defined in "RESPONSE" must be prefixed by a number: 1 = client command, 2 = server command, or 3 = server team command. The "RESPONSE" text string must be 128 characters or less in length.
"ACTION" = 6: Execute multiple commands defined in "RESPONSE" when any player, living or dead, types "TRIGGERTEXT" text in chat. Each command defined in "RESPONSE" must be prefixed by a number: 1 = client command, 2 = server command, or 3 = server team command. The "RESPONSE" text string must be 128 characters or less in length.

Here are some examples of uses of AddSayTrigger:
addsaytrigger "BD" "Bomb Down" "0"
Any player who types "BD" in chat text will cause the server to say to all players,
"PlayerName: BD - Bomb Down"

addsaytrigger "BD" "Bomb Down" "1"
Any player who types "BD" in chat text will cause the server to say to all players,
"PlayerName: Bomb Down"

addsaytrigger "msg" "admin_tsay #TEXT#" "2"
Any player who types "msg This Is My Message" in chat text will cause the server to execute
admin_tsay This Is My Message

addsaytrigger "psay" "admin_psay #TEXT#" "2"
Any player who types "psay mybuddy This is my private message" in chat text will cause the server to execute
admin_psay mybuddy This is my private message

addsaytrigger "slap me" "admin_slap %s" "2"
Any player who types "slap me" in chat text will cause the server to admin_slap that player.

addsaytrigger "I hack" "admin_kick %s" "2"
Any player who types "I hack" in chat text will cause the server to admin_kick that player.

addsaytrigger "ban me" "admin_ban %s" "2"
Any player who types "ban me" in chat text will cause the server to admin_ban that player.

addsaytrigger "rndback" "3 admin_playteamsound misc/goaroundback.wav;1  say Go Around Back" "5"
Any living player who types "rndback" in chat text will cause the server to play the misc/goaroundback.wav sound file to teammates, only, followed by the player saying "Go Around Back" in chat text.

addsaytrigger "crap" "3 admin_playteamsound misc/blower.wav;1 say Oops!!" "6"
Any player who types "crap" in chat text will cause the server to play the misc/blower.wav sound file to teammates, only, followed by the player saying "Oops!!" in chat text.

addsaytrigger "stats" "1 dummy;" "5"
Any player who types "stats" in chat text will see nothing in response, effectively overriding the default behavior of players typing "stats" in chat text.

addsaytrigger "stats" "1 dummy;" "6"
Any dead player who types "stats" in chat text will see nothing in response, effectively overriding the default behavior of players typing "stats" in chat text.

NOTE: If you use browse in an AddSayTrigger command, do NOT include the "http://" prefix, as it does not get parsed correctly. Instead, use this format:
addsaytrigger "serverstats" "browse 69.90.34.10/hlserver7/" "1"
or
addsaytrigger "beetlesmod" "browse www.beetlesmod.com" "1"


AddTempAdmins
Load temporary admins from the cstrike\addons\tempadmins.txt file, effective until the next map-change.

admin_godall
Give all players 10,000 health and heal them when they take damage, (intended for use on surf maps).

admin_heal TARGETNAME HEALTH
Heal player specified by TARGETNAME by giving them HEALTH health points.
TARGETNAME can be the player's full name, or part of their name (if it's a unique part).

admin_healct HEALTH
Heal all Counter-terrorist players by giving them HEALTH health points.

admin_healt HEALTH
Heal all Terrorist players by giving them HEALTH health points.

admin_stopgodall
Stop healing players when they take damage, (turns off admin_godall).

admin_playsound "misc/soundfile.wav"
Play a sound to all players.

admin_playteamsound "misc/soundfile.wav"
Play a sound to all members of your current team.

bm_addremoteserver "IP_ADDRESS:PORT" "RCONPASSWORD"
When the variable, SendBansToAllServers, is set to 1, this command will send the list of all bans from your server to another server at the IP address and port number specified by "IP_ADDRESS:PORT".
(The port used by CS:Source is 27015 unless a different port number has been set up on the target server.)
You must specify the "RCONPASSWORD" of the other server so that your server can connect to the target server to copy the ban list.
The ban list will be copied to the target server upon each map change.
If you manage multiple servers, you can add multiple bm_addremoteserver commands to specify each target server's IP address, port and rcon password.
If you want to specify all of your servers with multiple bm_addremoteserver commands, you can also set the ServersIpAddress variable on each server to prevent a server from attempting to send a ban list to itself.
When this variable is set, the bm_addremoteserver server command will not attempt to send a ban list to the server that initiated the bm_addremoteserver server command.

bm_AllowModelsInMatch VALUE
VALUE = 1: Allow models to be used during matches started with admin_startmatch.
VALUE = 0: Prevent models from being used during matches started with admin_startmatch.

bm_BackUpBans VALUE
VALUE = 1: Back up the banned users files every map change, (default).
The files, cstrike\cfg\banned_user.cfg and cstrike\cfg\banned_ip.cfg are copied to the files, cstrike\cfg\bu_banned_user.cfg and cstrike\cfg\bu_banned_ip.cfg, respectively.
VALUE = 0: Do not back up the banned users files every map change.

bm_cleartasks
Clear all scheduled tasks.
You should use this command before using the first bm_task command to clear any previously-scheduled tasks from memory.
You can also execute this command in the server's console, or in HLSW.

bm_DisplayHackBans VALUE
VALUE = 1: Display to all players via admin_csay when a cheater/hacker has been detected by BeetleFart's Admin mod, (default).
VALUE = 0: Do not display to all players when a cheater/hacker has been detected by BeetleFart's Admin mod.

bm_forceadminmodels VALUE
VALUE = 1: Force Admins to use ADMINCT or ADMINTERRORIST models.
VALUE = 0: Allow Admins to choose ADMINCT or ADMINTERRORIST models or other models in the model list.

bm_KickForBadPassword VALUE
VALUE = 0: Do not kick an Admin player if they use an invalid password via the AdminXPassWord method, (default).
VALUE = 1: Kick an Admin player who uses an invalid password via the AdminXPassWord method.

bm_managebots VALUE
VALUE = 1: Let Beetlefart's Admin Mod manage the number of bots using Bot_Max.
VALUE = 0: Maintain bots yourself using  bot_quota  or  bot_add  commands that you execute, (default).

bm_maxhealth VALUE
Set the starting health of all players to VALUE health points. VALUE should be greater than 100.

bm_menu TARGET TITLE MENUITEM1 MENUITEM2 ... MENUITEM10
Create custom menus, for example, to communicate server rules to players upon joining:
addjointrigger "all" "2 bm_menu %s ^NO Premeditated TK/TD^ ^No Cheating or buguse^ ^No Ghosting^ ^No spawn camping^ ^Follow team objectives^ ^NO WHINER/WINNER joining^" "5"
Use bm_SetMenuTime to set the duration in seconds that custom menus will remain on-screen.

bm_motdmessage VALUE
VALUE = 12: Use this value if your server is an HL2 Deathmatch server to correctly display the message-of-the-day (MOTD) window.
VALUE = 13 (or bm_motdmessage not specified): For correctly displaying the message-of-the-day (MOTD) window on a CS:Source server, (default, not required).

bm_msay TIME TARGETNAME MESSAGE
For HLStatsX users, this command uses a menu for stats messages.
Specify TIME in seconds.
TARGETNAME can be the player's full name, or part of their name (if it's a unique part).
Specify the message text in MESSAGE.

bm_SetMenuTime VALUE
Set the duration in seconds for menus created using the bm_menu command to remain on-screen.
VALUE = -1: Require a number key to be pressed before closing the menu.

bm_setmoneyoffset VALUE
Set VALUE to override the money offset value detected by the mod, (usually not necessary.).

bm_startBots VALUE
Set VALUE to the number that bot_max should be set to. For example, add bm_startBots 4 to server.cfg to jump-start four bots.

bm_task "HH:MM" "SERVERCOMMAND"
Add a scheduled task to the server. At the time specified by "HH:MM", the command specified by "SERVERCOMMAND" will execute.
If  "SERVERCOMMAND"  requires embedded quotation marks, use ^ as a replacement character for " . For example:
   bm_task "07:00" "redirect ^192.168.1.100:27015^" will become redirect "192.168.1.100:27015"
Commands can be executed with  bm_task  only once per minute.
If you use bm_task, you should place a bm_cleartasks before your first bm_task command to clear any previously-scheduled tasks from memory.
You can add one or more bm_task commands to the bottom of the file, cstrike\cfg\defaults.cfg, or execute this command in the server's console, or in HLSW.
Note: If your server is empty when the time specified by "HH:MM" occurs, then bm_task will not execute. To force execution of bm_task when the server is empty, you can enable at least one bot all the time, or enable SRCTV. To enable SRCTV, set tv_enable to 1, and change the map.

bm_task "round_start" "SERVERCOMMAND"
Define a task that will be executed at the start of a round.
For example, to play your custom .wav (sound) file called preparetofight.wav at the start of every round:
bm_task "round_start" "say @playsound misc/preparetofight.wav"

bm_task "round_freeze_end" "SERVERCOMMAND"
Define a task that will be executed at the end of the mp_freezetime delay, after the beginning of each round.
For example:
bm_task "round_freeze_end" "admin_tsay Now you can move."

bm_task "round_end" "SERVERCOMMAND"
Define a task that will be executed at the end of a round.

CheckTickCount
Check the server's tickrate and recalculate it at the end of each map.

getplayersinfo "playername"
Writes information about the player named "playername" to the server's current log file.
Logged information looks like this example:
L 04/20/2005 - 21:38:33: [BeetlesMod] [BotS]Derek: SteamId:BOT Uid:6 Team:CT Health:100 Money:10370 Frags:0 Deaths:0 Dead:0

getallplayersinfo
Writes information about all players to the server's current log file.
Logged information looks like this example:
L 04/20/2005 - 21:38:33: [BeetlesMod] [BotS]Derek: SteamId:BOT Uid:6 Team:CT Health:100 Money:10370 Frags:0 Deaths:0 Dead:0
L 04/20/2005 - 21:38:33: [BeetlesMod] [BotS]Wyatt: SteamId:BOT Uid:7 Team:TERRORIST Health:100 Money:11900 Frags:0 Deaths:0 Dead:0
L 04/20/2005 - 21:38:33: [BeetlesMod] [BotS]Norm: SteamId:BOT Uid:8 Team:CT Health:100 Money:11220 Frags:0 Deaths:0 Dead:0


hlx_msay
For HLStatsX users, this command allows hlx_msay.

hlx_psay
For HLStatsX users, this command allows hlx_psay.

hlx_exec
For HLStatsX users, this command allows hlx_exec.

LoadTeleportLocation "x" "y" "z"
Load a saved teleport location for use by the admin_teleport command.

setadminhelp "admin_kick" "@kick or admin_kick <partialtarget>"
You can add one or more setadminhelp commands to the bottom of the file, cstrike\cfg\replacetext.cfg, or execute this command in the server's console, or in HLSW.

setadminhelp "admin_command" "Help-string text"
Set the help message text displayed for a specified Admin command.
This command allows you to override the default help message text for specific Admin commands.
For example:
setadminhelp "admin_kick" "@kick or admin_kick <partialtarget>"
You can add one or more setadminhelp commands to the bottom of the file, cstrike\cfg\replacetext.cfg, or execute this command in the server's console, or in HLSW.

setadminlevel COMMAND ABBREVIATION
Set the Admin level, (ABBREVIATION), for a specific Admin COMMAND.
This command allows you to override the default ABBREVIATION for a specific Admin COMMAND.
For example:
setadminlevel admin_list N
You can add one or more setadminlevel commands to the bottom of the file, cstrike\cfg\defaults.cfg, or execute this command in the server's console, or in HLSW.

setKillCount "monsterkills" "VALUE"
Set the number of kills at which the MonsterKillSound sound file plays. For example:
setKillCount "monsterkills" "5"
You can add (or uncomment) this setKillCount command in the file, cstrike\cfg\defaults.cfg, or execute this command in the server's console, or in HLSW.

setKillCount "UltraKillKills" "VALUE"
Set the number of kills at which the UltraKillSound sound file plays. For example:
setKillCount "UltraKillKills" "7"
You can add (or uncomment) this setKillCount command in the file, cstrike\cfg\defaults.cfg, or execute this command in the server's console, or in HLSW.

setKillCount "GodLikeKills" "VALUE"
Set the number of kills at which the GodLikeSound sound file plays. For example:
setKillCount "GodLikeKills" "11"
You can add (or uncomment) this setKillCount command in the file, cstrike\cfg\defaults.cfg, or execute this command in the server's console, or in HLSW.

setKillCount "RampageKills" "VALUE"
Set the number of kills at which the RampageKillsSound sound file plays. For example:
setKillCount "RampageKills" "15"
You can add (or uncomment) this setKillCount command in the file, cstrike\cfg\defaults.cfg, or execute this command in the server's console, or in HLSW.

setKillCount "LudicrousKills" "VALUE"
Set the number of kills at which the LudicrousKillsSound sound file plays. For example:
setKillCount "LudicrousKills" "20"
You can add (or uncomment) this setKillCount command in the file, cstrike\cfg\defaults.cfg, or execute this command in the server's console, or in HLSW.

setstring "event-name" "Text to be displayed"
Set the text to be displayed when certain mod events occur. See cstrike\cfg\replacetext.cfg for more information.
You can also execute this command in the server's console, or in HLSW.

timeleft
Display the amount of time left before the next map starts. You can also execute this command in the server's console, or in HLSW.

tsay COLOR MESSAGE TEXT
Execute the admin_tsay command to display MESSAGE TEXT in the color specified by COLOR to all clients.
You can add one or more tsay commands to any .cfg file, or execute this command in the server's console, or in HLSW.


Betting on Last Man Standing allows dead players to optionally bet some of their cash on the last two remaining living players.
This "game within the game" is configured using the following variables:

LastManStandingBets VALUE
VALUE = 0: Disable betting on a team by dead players, (default).
VALUE = 1 or greater: Limit bet amounts to no more than VALUE dollars per bet.
VALUE = -1: Allow betting up to the bettor's available amount of cash, up to $7,500, maximum.
If LastManStandingBets is not zero, then when one player remains alive on each team, dead players will be prompted with a menu to optionally place a bet on either the Terrorists or Counter-terrorists team to win the round.
The betting menu will not be displayed during the first round.
The betting menu will not be displayed if the bomb has already been planted.
To display the odds for each remaining player, set LastmanStandingUseOdds to 1.
The amounts on the betting menu are: 10, 100, 250, 500, 1000, 2500, 5000 and 7500 dollars.
Players can also double their bet, if they have the required cash, by typing doubledown in chat text during the betting period.
Each player who wins the bet will be awarded the amount of cash they bet.
Each player who loses the bet will lose the amount of cash they bet.
Players cannot bet more money than they have.
Four or more players must be present in the game for the betting menu to appear.
Betting is open until the bomb is planted, (on bomb defusal maps).
To cap the maximum bet, set LastManStandingBets to that dollar amount.
To allow betting up to the maximum amount, ($7,500), set LastManStandingBets to -1.

LastmanStandingUseOdds VALUE
VALUE = 1: Display odds for each of the two remaining players, (based on their ranking and/or current health), to dead players who are betting via LastManStandingBets, (default).
VALUE = 0: Disable display of odds to dead players who are betting via LastManStandingBets.


Roll The Dice allows players to optionally roll virtual dice to win or lose money, health points, indestructibility, free healing or slaying.
This "game within the game" is configured using the following variables:

AllowRollthedice VALUE
VALUE = 0: Disable Roll The Dice feature, (default).
VALUE = 1: Enable Roll The Dice feature. Players who type rollthedice in chat will randomly win or lose money, health points, indestructibility, free healing or slaying.

RollTheDiceFrequency VALUE
Each player can roll the dice only once every VALUE seconds, (default = 90 seconds.)

RolltheDiceIndestructibilityTime VALUE
Players who win indestructibility via Roll The Dice will be indestructible for VALUE seconds, (default = 30 seconds.)

WinnerRollDelay VALUE
No player can roll the dice until VALUE seconds plus RollTheDiceFrequency seconds pass, (default = 90 seconds.)

The text messages displayed by the Roll The Dice feature can be changed by modifying the setstring entries in the file, cstrike\cfg\replacetext.cfg, for example:
setstring "RollTheDice" "Too Soon to Roll The Dice."
setstring "RollTheDiceDrawText" "Rolling the Dice rolled a 7 - Draw"
setstring "RollTheDiceLoseText" "You Lost!!! You Get %s "
setstring "RollTheDiceWinText" "You WON!!! You Get %s"
setstring "RollTheDicePerson" "Too Soon For You to Roll The Dice."



Announce on join can be configured to announce when each player joins the server:
AnnouncePlayers "MESSAGETEXT"
VALUE = "" : Disable display to all players of an automatic announcement (as chat text) whenever a player joins the server, (default).
VALUE = "rank" : Automatically display to all players an announcement (as chat text) showing the ranking of each player who joins the server.
VALUE = "MESSAGETEXT" : Automatically display to all players a custom announcement (as chat text) when each player joins the server.
Note: To prevent message-spamming, announcements are suppressed during the first half-minute after a map change.

When VALUE = "rank" , the player's rank on this server will be announced to all players (as chat text) when each player joins the server.
If a player is not ranked, the message will say that the player is not ranked.
Note: Ranking must be enabled with EnableRanks to display each player's ranking info when they join the server.

When VALUE = "MESSAGETEXT" , the custom message, "MESSAGETEXT", will be announced to all players (as chat text) when each player joins the server.
"MESSAGETEXT"  must be 127 characters or less, and can contain an optional percent-s argument, (%s), which will be replaced by the name of the player joining the server.
For example:
AnnouncePlayers "%s has entered the building."
This example will display the following chat text message to all players when Joe joins the game:
Joe has entered the building.
Note: Do not use more than one %s argument in "MESSAGETEXT", or you may crash your server.


Cheat detection catches and bans players who appear to be using cheats or hacks to gain an unfair advantage over opponents.
Note: BeetleFart's cheat detection is unrelated to Valve's Anti-Cheat solution, (VAC), and neither is dependent on the other.
BeetleFart's cheat detection in this mod can be configured using the following variables:

CheckForCheats VALUE
Specify the interval in number of seconds that BeetleFart's cheat detection should check for cheats.
The lower the VALUE, the more frequently it will check for cheats.
Any VALUE less than 7 will be set to 7, except 0, which will disable checking completely.
VALUE = 0: Disable BeetleFart's cheat detection, (default).
VALUE = 7: Enable BeetleFart's cheat detection. Any player who trips the cheat detection bm_DetectCount times is automatically permanently banned.
Each of the bm_DetectCount "strikes" is logged to the server logs, as is the ban action.
If your server does not have -tickrate configured, then leave CheckForCheats set to 7.
If your server is configured with -tickrate 66  try setting CheckForCheats to 10 or 11.
If your server is configured with -tickrate 100  try setting CheckForCheats to 14.
These values are only suggestions. You should experiment to find the best setting for your server.

bm_AutoBanHacks VALUE
VALUE = 0: Do not automatically ban a player upon detection of player cheats/hacks.
VALUE = 1: Upon detection of a cheating/hacking player, if no Admins are present, the suspected player is permanently banned.
   If one or more Admins are present, a menu is displayed to the Admins asking if the suspected player is spinning.
   If any Admin selects "Yes" from the menu, the suspected player is permanently banned.
   If one or more Admins select "No", the suspected player is kicked, because it's assumed that player has a faulty Internet connection.
   If one or more Admins select "I don't know", the cheat-detection counter is reset for the suspected player, and they remain connected.
VALUE = 2: Upon detection of a cheating/hacking player, the player is kicked from the server.
VALUE = 3: Upon detecting bm_detectcount strikes, the suspected player is permanently banned from the server.
VALUE = 4: Upon detection of a cheating/hacking player, the player is banned for AutoBanTime minutes.
VALUE = 5, (default): Upon detection of a cheating/hacking player, if no Admins are present, the suspected player is banned for AutoBanTime minutes.
   If one or more Admins are present, a menu is displayed to the Admins asking if the suspected player is spinning.
   If any Admin selects "Yes" from the menu, the suspected player is banned for AutoBanTime minutes.
   If one or more Admins select "No", the suspected player is kicked, because it's assumed that player has a faulty Internet connection.
   If one or more Admins select "I don't know", the cheat-detection counter is reset for the suspected player, and they remain connected.

bm_DetectCount VALUE
After a player trips the cheat detection VALUE times, take action against the suspected player.
If bm_AutoBanHacks is 1, the player is permanently banned.
The default VALUE is 5. You can specify a VALUE of 3 or higher.
To require more "strikes" before taking action, set VALUE to a higher number.

bm_NotifyAdminsOfHack VALUE
VALUE