;
; This is the config file for the q2admin dll.
; (c) 1998 Shane Powell 
;
; The q2admin.txt is first read from the quake2 directory and then from the mod 
; directory.
;


;
; Enable/disable main zbot detection.
;
zbotdetect  "Yes"

;
; Quake2 Client Admin password.
; To enable uncomment and change the password to something else.
;
;adminpassword "secret"

;
; Only for use in windows.
; This tells the q2admin dll that it is running in the quake2 directory (or the release 
; directory for v3.20+).  When set to 'No' the dll is being loaded from the mod directory
; like the linux / solaris versions. For win32 the old mod dll must be called 
; 'gamex86.real.dll' for this to work.
;
;quake2dirsupport "Yes"

;
; MOTD file to display at client connect (and also happens on level changed as well) 
; For the console versions of the command, if you don't supply
; a filename, the MOTD is cleared. If you do the MOTD is loaded.
; NOTE: by default the MOTD is read from the quake2 directory.
; If you want to use a mod motd you must supply the directory 
; name. e.g. sv !setmotd "ctf/mymotd.txt"
;
setmotd ""

;
; Once a zbot is detected, how long to wait before actioning it.
; -1 will generate a random timeout between 5 seconds to 5 seconds + randomwaitreporttime seconds.
;
zbotdetectactivetimeout "0"

;
; When zbotdetectactivetimeout is -1 this value is used to genterate a random time between 
; 5 seconds to 5 seconds + randomwaitreporttime seconds.
; e.g. 55 means 5 seconds to 60 seconds
;
randomwaitreporttime "55"

;
; ZBOT backup detector timeout in seconds. 5 is the min but 60 seconds is good for the internet.
; You shouldn't need to touch this value at all. Mainly used for internal development testing.
;
clientsidetimeout "30"

;
; Disconnect a zbot user when detected.
;
disconnectuser "Yes"


;
; Display user is a zbot to the rest of the server
;
displayzbotuser "Yes"

;
; Number of times to display the user is using a zbot?
;
numofdisplays "5"

;
; Message to display that the using is using a zbot.
; NOTE: must have 1 and only 1 '%s' in the line
; %s will print the users name
;
zbotuserdisplay "[Q2Admin] %s is using a client side proxy!!!"

;
; Custom server console command to run on zbot bot detect.
; (run after the log file update)
;
customservercmd ""


;
; Custom client console command to run on zbot bot detect.
; (run after the client messages and before the disconnect)
;
customclientcmd ""


;
; Display when impulses are generated / used 
; This is a future-proof thing that will display messages when impulses are used.  The reason is if
; the zbot person has a zbot hack to get around the "normal" detect this will display when he is 
; sending commands.  Sort of like a back-up method of detecting zbot users.  The only problem is that
; normal clients can generate impulses as well and I don't know if this is for commanding the zbot
; or something that a normal q2 mod uses.  Only 1 q2 mod that I know off uses impulses tho so chances 
; are that it's a abot user.
; 
; zbot impulses:
; - Impulse 169 : toggle menu
; - Impulse 170 : move up (menu)
; - Impulse 171 : move down (menu)
; - Impulse 172 : increase item (menu)
; - Impulse 173 : decrease item (menu)
; - Impulse 174 : toggles bot on/off 
; - Impulse 175 : toggles scanner display
;
; Note: I display a message when ANY impulse is used just to be safe...
;
displayimpulses "Yes"


;
; Disconnect user if generating a impulse.
;
disconnectuserimpulse "No"


;
; What impulses do we want to kick people on??  disconnectuserimpulse must be set to
; 'Yes' for this to take action.  Commenting this command out will select all impulses.
;
impulsestokickon "169, 170, 171, 172, 173, 174, 175"


;
; Max number of impulses to detect before kicking.
;
maximpulses "1"


;
; Custom client console command that is run when clients 
; connect.
;
customclientcmdconnect ""


;
; Custom server console command that is run when clients 
; connect.  '%c's are replaced by the client number.
; e.g. "sv !stuff cl %c file clientconnect.txt"
;
customservercmdconnect ""

;
; Display name changes so everybody knows someones changed there name...
;
displaynamechange "Yes"

;
; Enable play_team command (may not work %100 with each mod, depends on how the mod teams are implemented).
; Plays a wav file on each person that is in your team.
;
play_team_enable "No"

;
; Enable play_all command.
; Plays a wav file for each person in the game.
;
play_all_enable "No"

;
; Enable play_person command.
; Plays a wav file for 1 person in the game.
;
play_person_enable "No"

;
; Enable say_person command.
; Send a message to 1 person in the game.
;
say_person_enable "No"


;
; Enable say_group_enable command.
; Send a message to a group of people in the game.
;
say_group_enable "No"


;
; Enable the extended say commands.
;
extendedsay_enable "No"


;
; Sets Q2Admin's version number in a cvar on the server. This way
; programs like Gamespy will show Q2Admin's version number as part
; of the server info. If you're getting "Info string length exceeded"
; on the server console, change this value to "No".
;
serverinfoenable "Yes"

;
; The default ban message for logging and displaying when someone 
; is banned.
;
defaultbanmsg "[Q2Admin] You are banned from this server!!!"

;
; The default chat ban message for logging and displaying when someone 
; has typed in a banned word.
;
defaultchatbanmsg "[Q2Admin] Message banned."

;
; Enable ip banning.  For bans that use both IP and Name, it then just uses the name.
;
ipbanning_enable "No"

;
; Enable nick banning.  For bans that use both IP and Name, it then just uses the IP.
;
nickbanning_enable "No"


;
; Enable chat banning.
;
chatbanning_enable "No"


;
; Message to display when a player gets kicked for using a hacked
; quake2.exe to get around (some of) the protection methods of Q2Admin.
;
hackuserdisplay "[Q2Admin] %s is using a hacked quake2.exe!!!"


;
; Sets the maximum cl_maxfps that a client may have.  See readme.txt for how this works and 
; IF you should use it.  Uncomment to enable.
; 
;maxfps "31"

;
; Sets the minimum cl_maxfps that a client may have.  
; 
;minfps "10"

;
; Sets the maximum rate that a client may have.  See readme.txt for how this works and 
; IF you should use it.  Uncomment to enable.
; 
;maxrate "5000"

;
; Sets the minimum rate that a client may have.  See readme.txt for how this works and 
; IF you should use it.  Uncomment to enable.
; 
;minrate "1000"

;
; ban on client connect (YES) or ban on client begin (NO).  When banning on client
; connect the banned player will not use up a client position at all BUT no ban 
; message is displayed.  Ban on client begin will use a player position for the length 
; of the client map load then be kicked.  But client will get a BAN message before
; getting kicked.
;
banonconnect "Yes"


;
; Name changing flood protection so that a name change macro does not flood the server and
; other clients.
; namechangefloodprotect "<number of messages> <in x seconds> <silence in seconds>"
; if <silence in seconds> is 0 then the person is kicked.
; to disable change to:
; namechangefloodprotect "disable"
;
namechangefloodprotect "5 2 10"

;
; Name change flood protection message.
;
namechangefloodprotectmsg "[Q2Admin] %s changes names too many times!"

;
; Kick uses for changing to banned names.  If No the name is not allowed to change.
;
kickonnamechange "No"


;
; Chat flood protection so that a chat macro does not flood the server and
; other clients.
; chatfloodprotect "<number of messages> <in x seconds> <silence in seconds>"
; if <silence in seconds> is 0 then the person is kicked.
;
; e.g. chatfloodprotect "5 2 10"
;
; to disable change to:
; chatfloodprotect "disable"
;
chatfloodprotect "disable"

;
; Name change flood protection message.
;
chatfloodprotectmsg "[Q2Admin] %s is making too much noise!"


;
; Converts the mod gamemap commands to map commands for when it changes levels.  This forces the
; mod dll to unload / reload.
;
gamemaptomap "No"


;
; Enable the disable of spawn map entities. (q2adminspawn.txt)
;
spawnentities_enable "No"


;
; Enable q2admin vote features (q2adminvote.txt).
;
vote_enable "No"

;
; The client vote command name.
;
clientvotecommand "vote"

;
; Vote timeout in seconds.
;
clientvotetimeout "60"

;
; Count non vote's in the percent calculation.
;
votecountnovotes "Yes"

;
; Percent required for the vote to pass. (1 - 99)
;
votepasspercent "50"

;
; Minimum number of people in the game before allowed to vote on a command.
;
voteminclients "0"

;
; Maximum number of votes allowed in <voteclientmaxvotetimeout> time for one player.
;
; 0 = disabled, i.e. unlimited.
;
voteclientmaxvotes "0"

;
;	Time in seconds allowed for <voteclientmaxvotes> to be cast for one player.
;
; 0 = for whole level.
;
voteclientmaxvotetimeout "0"

;
; The vote remind message time, i.e. every clientremindtimeout seconds the 
; clients are reminded to vote or the stat's of the vote is displayed.
;
clientremindtimeout "10"

;
; Linux ONLY:
;
; Load the linux game so in lazy mod.  The default is NOW which can cause some mod's
; not to load.  The mod's the don't load is because of a problem with the mod itself 
; not q2admin. This switch is meant to be a workaround only...  
; Mod's which don't load under the default switch can crash. (with or without q2admin)
;
soloadlazy "No"


;
; Three variables that control zbotcheck code (zbot movement checking code by
; WhiteFang)
;
zbc_enable "Yes"
zbc_jittermax "4"
zbc_jittertime "10"
zbc_jittermove " 500"


;
; Controls the detection of BW-Proxy and Nitro2/Xania proxies.
;
; 0 - No Detection.  This means they will be detected as zbots.
; 1 - Normal Detection.  This is the most secure method but with some mods 
;     this may not work.
; 2 - Insecure Detection.  This will allow the proxies to connect but
;     it may also allow some types of modified zbot to connect as well.
;     Also settings either proxy_bwproxy or proxy_nitro2 to '2' will 
;     automatically set the other one to '2' as well.
;
proxy_bwproxy "1"
proxy_nitro2 "1"

;
; Determines whether Q2Admin will send a "p_version"-string to a player
; on connect. If the player is using a proxy it will respond with its
; name and version number.
;
dopversion "Yes"


;
; Controls if clients are allowed to use the console to generate chat messages without the 
; use of a command.  
;
consolechat_disable "No"


;
; Internal q2admin run mode.  Used for debuging / testing.  Please leave at 100 for normal use.
;
; 0    - Pass through layer only.
; 1-99 - Unused for now.
; 100  - Fully featured q2admin.
;
q2adminrunmode "100"


;
; Maximum clients that q2admin can process per frame.
; This is a debugging/internal  value that should not be 
; changed unless told to.
;
maxclientsperframe "100"


;
; q2admin processes messages every x frames.  This is a internal
; testing value and it is not a good idea to change it.
;
framesperprocess "0"


;
; Detects if the client has a hacked timescale quake2.exe
;
timescaledetect "Yes"

;
;	Message that is displayed if the user is detected with a
; hacked timescale exe.
;
timescaleuserdisplay "[Q2Admin] %s is using a speed cheat quake2!!!"

;
; Skin changing flood protection so that a skin change macro does not flood the server and
; other clients.
; skinchangefloodprotect "<number of skin changes> <in x seconds> <silence in seconds>"
; if <silence in seconds> is 0 then the person is kicked.
; to disable change to:
; skinchangefloodprotect "disable"
;
skinchangefloodprotect "5 2 10"

;
; Skin change flood protection message.
;
skinchangefloodprotectmsg "[Q2Admin] %s changes skins too many times!"


;
; Message to display when a player gets kicked for trying to change
; his skin to a very large value which would crash the server.
;
skincrashmsg "[Q2Admin] %s tried to crash the server!!!"


;
; Enable the disable client commands. (q2admindisable.txt)
;
disablecmds_enable "No"


;
; Enable the cl_pitchspeed change detect
;
cl_pitchspeed_enable "No"

;
; What to do with cl_pitchspeed detect changes?
;
cl_pitchspeed_kick "No"

;
; Display when someone changes the cl_pitchspeed.
;
cl_pitchspeed_display "Yes"


;
; The kick display message.
;
cl_pitchspeed_kickmsg "[Q2Admin] cl_pitchspeed changes not allowed on this server."


;
; Enable the cl_anglespeedkey change detect
;
cl_anglespeedkey_enable "No"

;
; What to do with cl_anglespeedkey detect changes?
;
cl_anglespeedkey_kick "No"

;
; Display when someone changes the cl_anglespeedkey.
;
cl_anglespeedkey_display "Yes"


;
; The kick display message.
;
cl_anglespeedkey_kickmsg "[Q2Admin] cl_anglespeedkey changes not allowed on this server."


;
; Force client to reconnect to inital connection, bepasses any proxies that may be runnning.
; Please put in the ip address/name and port (if needed) of the server.
;
; e.g. reconnect_address "quake2.games.org.nz:27920"
; or
; e.g. reconnect_address "192.168.1.10"
;
; No address means the feature is disabled.
;
reconnect_address ""


;
; Client must reconnect in X time from the inital connect.  Time in seconds.
;
reconnect_time "20"


;
; This controls how strict the reconnect feature is.
; 0 - very strict (most secure but is the most likely to cause multiple reconnections)
; 1 - less strict (not so secure, this should allow NAT router / internet software proxy
;                  to connect more easily) 
;
reconnect_checklevel "0"


;
; Message to display while a player is reconnecting to the Quake2 server.
; If you want to include newlines in this message, use the "\n"-characters
; like the way it is done inside the default message below.
;
defaultreconnectmessage "Please wait to be reconnected to the server - this is normal for this level of bot protection.\nThe fastest way to do this is not to change any client info e.g. your name or skin."


;
; Enables the internal disabling of spawning entities.  For this feature to
; work entity_classname_offset must be set also to the correct value for the
; mod that you are running.  "spawnentities_enable" must also be set to "Yes"
; for this figure to work.
;
spawnentities_internal_enable "No"

;
; The byte offset to the classname pointer in the entity structure. 
; This is required for the internal disable spawn entities feature.
;
; If this figure is wrong q2admin may crash and the internal disable 
; entities feature will not work or the entity create/delete logging 
; feature to work.
;
; Email killerbee to check what the offset is for the mod that you are 
; running.
;
entity_classname_offset "280"


;
; Filters out any non-printable characters from any text being said/printed.
; It only allows characters in the range of 0x20 to 0x7E.
; This may upset some mods printing.
;
filternonprintabletext "No"


;
; Swaps the use of +attack and +use.  This can be useful as if the players have 
; to use +use to fire instead of +attack then it renders the auto-aim proxy 
; unsable. 
;
;  Side Note Proz (aka Black Monk) sent me:
;
;    BTW, for Macintosh users, !swap_attack_use is painful.  They need to use 
;    their Q2 mouse controls to set the fire button to be, "ALT24".  I think.  
;    They can't just "bind mouse1 +use" like PC users can, the mice act 
;    differently due to InputSprockets.  And if a Mac user is using, say, USB 
;    OverDrive to get the Razor Boomslang mouse to work, popular for Mac gamers 
;    but not a supported Mac product, then they won't be able to bind to ALT24 at 
;    all meaning they are screwed or they have to bind a keyboard key to get it 
;    working.  Just an FYI in case you update the docs.
;
swap_attack_use "No"


;
; The server lockdown message that connecting users see.
;
lockoutmsg "[Q2Admin] This server is currently locked."


;
; Enables the polling of client side variables listed in the q2admincheckvar.txt file.
;
checkvarcmds_enable "No"

;
; The number of seconds between before each variable for each client is checked when 
; check client side variables is enabled.
; e.g. if there are 5 variables listed in q2admincheckvar.txt, the first variables is 
; checked first, x seconds later the next line is checked and so on until there are no
; more variables to check.  It then loops back to checking the first variable again.
; So if checkvar_poll_time is 60 seconds and there are 5 variables listed, each 
; variable will be checked one every 5 minutes.  Reducing this variable will increase 
; the traffic between the client and the server.
;
checkvar_poll_time  "60"



;
; Changes the rcon password to some random string for the lrcon command.  This prevents
; people from discovering the real rcon password through dumpping packets.
;
rcon_random_password "Yes"


;
; Timeout, when rcon_random_password is set to "Yes", for how long lrcon command is
; timed out before the rcon password is set back to the orginal value.
;
lrcon_timeout "2"


;
; Enables the feature to exec the mapcfg/<mapname>-pre.cfg, 
; mapcfg/<mapname>-post.cfg and mapcfg/<mapname>-end.cfg files.
;
mapcfgexec "No"

;
; Print messages when clients use the play sound commands.  It tells who is playing the sound and to whom. 
; (all/team/private)
;
printmessageonplaycmds "Yes"

;
; Max client msg level to be allowed on the server.
;
maxmsglevel "3"


;
; Check the clients IP Address is valid when the client is connecting.
;
checkclientipaddress "Yes"
