A Bot for the Half-Life Modification Counter-Strike
by
Count Floyd

"Official" POD-Bot Pages: http://www.nuclearbox.com/podbot/ http://www.botepidemic.com/podbot/ Forum: http://www.nuclearbox.com/ubb/cgi-bin/ultimatebb.cgi?ubb=forum&f=15 My Personal Homepage (abandoned for some time now): http://www.geocities.com/countfloyd_1999/ This Bot has been started based on code from the Half-Life HPB-Bot by Botman. It has evolved over the time and this is the result...anyway, thanks again Botman ! ### Credits Bot Coding: Count Floyd Installer: Polymorph & Count Floyd (using the Vise Installer) Waypoints: TAZ (most), Bot_Guy, Count Floyd GFX: runab0ut & Fade1 ### Copyright and Distribution Permissions The Bot included in this archive is Copyright © 2000,2001 Markus Klinge aka Count Floyd. The Bot may only be distributed if this file and all the other files that came with it are included in the redistribution, and no money is charged for the product being distributed. This excludes such things as video game magazines which include a CD and things such as that, which are permitted to include this bot (provided they meet the requirements above) as long as they notify me before doing so and get my permission through e-mail or some other form. ### Disclaimer Software under this agreement is under no kind of warranty. Software under this agreement is provided as is, and isn't guaranteed in any way by the Bot author. Use this software at your own risk ! ### Requirements: The Bot currently works with Counter-Strike Beta 6.5 - 7.1 and CS 1.0 to newest version (with both Retail & normal version). If you're not using the CounterStrike Retail Version, Half-Life version 1.1.0.0 or higher is required to use this bot. If you haven't updated your Half-Life version to 1.1.0.0 (or higher) you will HAVE to do so before using it. #### Windows Installation: The installation process is now handled by the supplied Installer. #### Linux Installation: Linux Version not available yet. If you want to use translated versions of the Botchat, these files are available right now: BotChat.txt (default english version) BotChatBulgarian.txt BotChatCroatian.txt BotChatCzech.txt BotChatDanish.txt BotChatDutch.txt BotChatEnglish.txt BotChatFinnish.txt BotChatFrench.txt BotChatGerman.txt BotChatHungarian.txt BotChatIceland.txt BotChatIndonesian.txt BotChatItalian.txt BotChatNorwegian.txt BotChatPolish.txt BotChatPortuguese.txt BotChatRomanian.txt BotChatRussian.txt BotChatSerbian.txt BotChatSpanish.txt BotChatSwedish.txt BotChatTagalog.txt BotChatTurkish.txt all located in the Podbot\Botchats Folder where you installed the Bot. Rename and copy one of these to "botchat.txt" in the main podbot folder to have your localized Bot Talk... Note that the translated versions (except the german & english ones) don't use the new Text replacements and the dynamic keyword chat is still in english language. Also located in the main folder is a File called botskill.cfg were you can tweak most skill settings for the Bots if you find them too easy/too hard, to change the Names Bots use just edit Botnames.txt and some useful settings can be changed in podbot.cfg. Now you're ready to play! #### Removing the Bot from your system (Windows) Just use the 'Remove POD-Bot' ShortCut in your Start-Menu. After that you have to rename the file 'csold.gam' to 'liblist.gam' in your cstrike Game Folder to have a full working CS again. ### How to start a Game with Bots: Create a Game with a map that has waypoints for POD-Bot (take a look into the "cstrike\podbot\WPTDefault" folder - all files with the extension ".pwf" should be valid waypoint files. Bots will automatically be added to the game using the "podbot.cfg" file found in the /cstrike/podbot directory. If you wish to change the number of bots that are created automatically you can edit the podbot.cfg file using any text editor. Since V1.4 a helpful User Menu is available for performing the most used actions. It's bound by default (you can change it in podbot.cfg) to the "=" key. If you're pressing the "=" key a Menu with the following options should appear on your Screen: 1. Quick Add Bot This does what it says. It quickly adds a Bot giving him a random name, team, skill and model. Skill will be chosen randomly between your minbotskill/maxbotskill values specified in podbot.cfg.. 2. Add specific Bot Allows you specify all things for adding a single Bot. 3. Kill all Bots Kills all Bots in all Teams. You can use this to end Rounds faster if there aren't any humans alive and you don't like watching Bots playing better than you :) 4. Newround Same as above, but kills every Client including human players. 5. Fill Server with Bots Fills all free Server Entries with Bots. After selecting this option you can specify the team or to auto-assign them. If you especially select a team for the Bots the Server Variables "mp_autoteambalance" and "mp_limitteams" will be set to 0 (thus not caring about balancing teams anymore) and all Bots will only join 1 Team. You can use for example this to play alone or with your friends against all Bots. 6. Kick Random Bot Kicks the first Bot in the List. 7. Remove all Bots Kicks all Bots off the Server. 8. Select Weapon Mode Opens another Sub-Menu where you can select the Weapons Bots will buy (and use in combat). Selecting Knife Mode will also turn on Jason-Mode. Selecting Standard Weapons will turn it off again. #### #### Using Commands besides the in-game menu (using the console): If a map has loaded, press the key below "Esc" (the ~ key) and the console screen scrolls down. Now you're able to type in commands like the ones used to control POD-Bot. Some examples: Just type "addbot" and a new Bot will be connected... If the Bots are stuck or you just want to start a new round type in "killbots" which will force all bots to be dead instantly. If you're sick of playing with Bots type "removebots" which will kick all Bots from the Server. NOTE that this will also set the min_bots & max_bots settings from the podbot.cfg to zero, so you have to add Bots manually if you want them back in your game. Of course you can always use "kick" to remove single bots. To manually change maps, use the substitution for the map command. Type "newmap mapname" to change to another map. So for example to load "DE_DUST" you type "newmap DE_DUST". Bots present will join the Game if the map is loaded. For all console commands please read the summary below... Summary of Console Commands: Most of the time you will only need the POD-Bot User Menu which is by default bound to the "=" key. You can change this easily with any text-editor in 'podbot.cfg'. All commands in square [] brackets are optional and don't need to be specified. Most of these commands will also work in podbot.cfg. Again, PLEASE TAKE A LOOK INTO THE FILE "podbot.cfg" ! addbot [skill] [team] [name] Adds a new Bot with skill (0-100) to team (0-1 or use 5 to auto-assign) with the specified name. If you don't use the name argument it will be filled randomly from "podbot\botnames.txt". You can edit this file to use other names ! botchat on|off Turns chatting Bots on or off botsvotemap x Orders all dead Bots to vote for Map x, where x is a valid number of a map in your mapcycle. imaborg on|off Let's the Bot AI take care about the (Host) Player. Doesn't work perfectly yet, use with caution ! jasonmode on|off Turns on/off "JasonMode". In this Mode, Bots are only allowed to use a Knife and they won't buy any weapons at all. Use this for example in cs_estate or cs_office to have a scary blood-feast ! This is a Fun Mode and not to be taken serious ! Kids, don't try this at home :) killbots Does what it says. newmap mapname Substitution for the "map" command you're used to. Loads a new map. This will work 100% with Bots and no client shouldl get disconnected. podbotmenu Displays the User-Menu by default bound to the "=" key. removebots Kicks all Bots of the Server. Note that this also changes the min_bots and max_bots variables to 0. wptfolder foldername Specifies the Folder for loading waypoints. No special chars like Spaces or quotation marks are allowed. Also note that the Folder must be inside the Podbot Directory and thus the name ONLY consists of the folder name. There are also some additional Fun-Modes which can be activated with these commands: omg imonmars Halfs the normal CS Gravity, meaning you can jump a lot higher than normally and you don't get much damage when falling. Try this if you like John Woo Movies ! omg imhaunted Bots are a bit translucent, making them look like ghosts and they are much harder to detect. omg itstoodark Every Bot has a bright lightsource Aura. Quite useful on very dark maps to spot Bots easier. omg itsnewyear Bots celebrate New Year ! :) omg tronisback Adds a shiny hull over each Player which reminded me of the old movie "Tron". T Bots are Red, CT Bots are blue. omg imstoned You don't want to know... ;) omg imsober Turns off all Fun-Modes. NOTE: These Fun Modes weren't fully tested out by me and it might be that this or that isn't working properly with them. They are just leftovers of my HL Engine tests and were left in to give you (hopefully) a good laugh. If something doesn't work with them I honestly don't care that much. There are some more commands which are only used in "podbot\podbot.cfg". Please have a look there, too ! A lot of additional console commands are only used for waypointing. These are explained in a separate File called WaypointsHowToDo.html ### Running POD-Bot on Win32 Dedicated servers: Install POD-Bot as described above and create a game the way you normally would. When running a dedicated server the POD-Bot commands that are normally available in the client console are disabled. To create a bot you must set the CVAR "pb" to the command you desire.. To use the "pb" CVAR you would use one of the following commands on the dedicated server command line... pb "addbot" pb "addbot 100 5" pb "addbot 20 1 DumbAss" In addition these commands are supported: pb "fillserver 5" (Fills server with auto-assigned Bots) pb "fillserver 1" (Fills server with Terrorist Bots) pb "fillserver 2" (Fills server with Counter Bots) pb "removebots" (Disconnects all Bots from the Game) pb "killbots" (Kills all Bots in the current round) pb "newmap mapname" (Changes the Map) When using the dedicated server, bot will also be automatically spawned using the podbot.cfg file. You can also use the min_bots/max_bots settings or the addbot command explained in that file. ### Playing with the Bots: The Bots will automatically know the goals of the map. Counter might go for hostages, Terrorists may want to plant the bomb. VIP Bots will try to reach the Rescue Points. The goal selection is done dynamically and will be affected by several factors like Personality, Health, Team-mates near & Items the Bot is carrying. The Bots will also try to support team-mates and take cover when they think it's needed. Ordering Bots through Radio Commands: You can use some of the Radio Commands to get more support from your Bots. The first is "Follow Me" which commands Bots in the near to follow you. You can specify the maximum of following Bots in the podbot.cfg File (defaults to 3). If a Bot is following you, you can use "Hold this Position" to make a pause at that Place and look around for enemies. You can use "Go,go,go!" to stop him from following you again. Note that they won't follow you in 3 cases: They don't want to ! The Bots have their own will and they issue a "Negative" if they don't want to follow you. They don't see you. They see an enemy and engage the target. A Terrorist Bot carrying the C4 or picking it up, will also issue a "Follow Me" sometimes to have some assistance with him. Note that they have problems following on ladders at the moment because the movement is unwaypointed. They also do some other Radio Commands like "Need Backup","Enemy down", "Enemy spotted","I'm in Position" (to tell you he's camping) but not very often, otherwise it would surely get on your nerves... Summary of Bot Reactions to Radio Commands: Follow me - Forces Bots in the near to follow you Hold this Position - Makes a Bot who's following you, stay awhile at that position Taking Fire, need assistance - Makes all living Bots (not engaged in a Fight) run to your position to assist you. Need Backup - Basically the same as above, but limited to distance and also the Bots use it sometimes to get some support. Storm the Front! - Mighty command! Forces all Bots in the near to rush in the direction you're pointing to when using that command. Basically their level of agression is increased so a pathetic frightened Bot could also turn around and flee. Get in position... - Bots in the near will try to take a covered position and stay there until they either encounter an enemy, you order them to leave, or they waited too long. Go,go,go - If a Bot follows you, this commands stops him from following. If there are other Bots in the near, they will stop camping and going to roam the map again (normally used in combination with "Get in position...") Team, Fall Back! - Opposite of "Storm the Front". Increases Fear and decreases agression of Bots in the near so that they are more likely to fall back and stay covered for a short period. Bot Skill differences: First, Bots with low skills will pause/camp longer and more often. Bots with low skills have a bigger surprise time and they shoot slower. Bots with low skill are lucky if they hit something. Then there are minor behaviour differences. For example Bots with a skill above 80 use the knife more often if you're near them. If you want to get headshots all the time (and really fast) add some Bots with a skill of 100. You can easily change a lot of skill parameters by editing the file 'botskill.cfg' with any text-editor. Also take a look into 'podbot.cfg' to adjust some more things to your liking... Bot Personalities: There are 3 different Personalities in POD now, if you have detailnames turned on they can are shown through the Prefixes like this: [P*D] - Agressive [POD] - Normal [P0D] - Defensive Right now the Personality is randomly chosen if a new Bot gets created. I want to extend a lot of stuff around Personalities so there's no sense in a specific selection and it can't be done. ### Version History: V2.5 Release Date: 19/08/2001 + FIXED: Ignoring of the BotSpray Variable + FIXED: Wrong Gravity after turning off Fun-Modes + FIXED: Having 2 skills when minbotskill = maxbotskill + FIXED: Getting the Enemy instantly when being shot + FIXED: Nasty Bug in the firing Routine which messed up Reaction Times & kept Bots from shooting sometimes + FIXED: Resetting time to reach when being stuck causing Bots remaining stuck & doing unnecessary jumps + FIXED: CT Bomb Spot Selection when using Experience Files + FIXED: Bugs & Problems with linked Lists, causing Memory Leaks and random crashes + FIXED: Bots tracking Enemies through Obstacles when camping/hiding + FIXED: All Turns/Movements Frame Independant + FIXED: Bugs in weapon buying on AS Maps + FIXED: First Bot on dedicated Server not moving properly + FIXED: Team mismatch when collecting experience + FIXED: Para/SG550 buying Bug when weapon restriction on + FIXED: Not dropping primary weapon for new one on the ground in extreme situations + Optimized Player Avoidance a bit + Major Rewrite of the debugging core + Complete rewritten Burst Firing, now includes non-automatic weapons and distance to target + Extended Hearing code to include Sounds like Opening Doors, Ladders and a lot more (thanks killaruna!) + Added some more dynamic Symbols to the Chatsystem and a 'Name Humanizer' + Extended Chatsystem to have Bots Reply to user customizeable Keywords + Bots chat with each other when spectating (heavily inspired by ParaBot from killaruna again!) + Smarter Grenade Usage. Bots try to surprise enemies and cancel grenading if they think it won't succeed + Movement now pretty much point precise + Changed Bot DS CVAR and some other stuff to be more compatible to Botmaster5000 + Ladder climbing should now handle even difficult stuff + Added Bot Weapon Mode Menu + Removed Bugs in the Aiming Code + Added "waypoint teleport" + Redid Bot Task/Schedule System resulting in more careful Bots etc. + All Radios Commands from 1.4x work again like "GetInPosition..." + Bots defend the planted Bomb and the guy who's defusing + CT Bots "hear" the planted Bomb + Increased Shooting Precision when using zoomed Sniper Weapon + Each Team selects a Leader Bot which issues some basic Radio Orders V2.0 Release Date: 05/06/2001 + FIXED: Bots trying to pickup things already picked up before + FIXED: Ignoring of the MAXFOLLOW Variable + FIXED: Radio Commands not working in dedicated Server Mode + FIXED: Crash when deleting Waypoint Nr. 0 + FIXED: Waypoints & Path Connections not displayed after Map Change + FIXED: Dedicated Server Commands not working after Mapchange + FIXED: Previously broken Covered Movement + FIXED: Previously broken hearing of Shoot & Usage Noises + FIXED: Freezetime 100% working + FIXED: Correct Movement Speeds also in zoomed Mode + FIXED: Weapon Buying in AS Maps + FIXED: Low/High Angles Aiming Bug + FIXED: Included up/down looking at campwaypoints, which was present since V1.0 but overseen + FIXED: Better Detection of Killer Entity + FIXED: Diving Problems when swimming + FIXED: Stupid Angle Bug which messed up movement sometimes + FIXED: Bots try to avoid shooting TeamMates (doesn't apply for bad Grenading) + FIXED: Bots can't be added if Waypoints not initialised Redid all the find routines Better Edge Avoidance Added Bots picking up weapons on the ground (adjustable through BotWeapons.cfg) Buying can be customised & personalized in BotWeapons.cfg Added some Teamchat Messages (Bots using Hostages etc.) Optimized Waypoint Selection Code (much faster!) Made Waypoint Selection more Team and Map dependant Bots use SmokeGrenades and are primitively affected Redid the whole Movement Code. Bots are now able to move backwards/sidewards while moving to a goal and still check for obstacles in their way Smarter Combat Strafing/Jumping Bots now have a small Task-driven Memory Bots buy all Items (except senseless Nightvision Goggles) Better enemy detection (more CPU consuming) Added 3 basic Bot Personalities with adjustable Weapon Preferences Bots above Skill 80 try to shoot seen/heard Enemies through Obstacles if possible and enabled in Config Counter Bots share a global memory of visited Bombspots Bots on same Team share Enemy Knowledge if they see each other Bots collect Map Experience about Danger Spots (can be turned off) Bots primitively use Buttons of all types (except cameras) Changed Inner Workings of Decision Logic Hearing Sensibility now affected by Movement Speed & own Noises Bots shoot back (randomly) at teammates who tried shooting them Added some Performance Settings to podbot.cfg Added some more useful console commands for configuring and helping when waypointing/debugging Again better Player Avoidance & Unstuck Code Using the original HL Engine Speech Synthesis to speak to the Host Added custom Compress/Decompress Routines for those otherwise much too big Experience Files Better blinded (Flashbang) Bevahiour Bots don't loose their leader when seeing Enemies Improved ladder climbing Bots shoot at dying enemies (Time based on Agression) if they don't have a new opponent CT Bots communicate about visited Bombspots. Humans can use "Sector clear" to tell them about a visited Bombspot too. Bots pickup things like Bomb or Weapons while following User Some improvements & fixes to the waypoint editor Added Bot Model Selection Added preemptive Firing (based on Agression & skill) to Fleeing/Hunting States Bots can be allowed to vote against disruptive Players Bots can be ordered (by the host) to vote for a map Bots Emotions/Desires are also affected by number of teammates near and current weapon Some additional Fun-Modes included Bot Agressions are affected by Roundtime & Team Goals Waypoint Type Selection now bound to Personality + Agression/Fear + Team Failed/Succesful Plans are remembered for each Team and stored in the experience files (if not turned off by User) Bots mostly try to get away from Grenades thrown at them Bots spray Logos (can be customized & turned off) Bots now use the correct PVS & PAS V1.4x Release Date: 23/12/2000 + FIXED: Dedicated Server commands not working after "newmap" + FIXED: Bots not shooting when enemy elevation </> than 45 degree + FIXED: Bots responding too fast to Radio Commands + Added fillserver command to DS commands + Recoded the Radio Capturing/Usage (faster & more reliable) + Bots react on many radio commands + Added much better Player Avoidance Code + Bots don't pause until they've seen an enemy + Updated FAQ & Readme (make sure to read them!) + Added the previously missing de_foption wpt file + Added some more localized Botchat translations + New podbot.cfg command "botsfollowuser" V1.4c Release Date: 12/12/2000 + FIXED: Bots don't going mad anymore when flashbanged + FIXED: Hearing Bug when hiding + FIXED: Fixed some Issues with Weapon Kickback + FIXED: Bots keep ducking when seeing an enemy + Added Minimum Turn Amount + Added Noclip Option for Waypoint Editing + Added Terrorist Bots use Hostages under certain conditions + Implemented Proper Sniper Zooming + Increased number of "special" waypoints from 32 to 64 + Added some more dedicated Server Commands + Added option to turn on old (1.2) combat behaviour + Added botskill.cfg to tweak all skills to your needs V1.4 Release Date: 9/12/2000 + FIXED: Bunny Hopping of Snipers + FIXED: Crash when adding Bots + FIXED: BotChat Freeze on Win2K (Couldn't test this!) + FIXED: Humanlike Combat Turning Speed + FIXED: Several Bugs in Waypoint Editor + FIXED: Living Bots talking to the Dead + FIXED: Only Host can issue commands + FIXED: Freezetime (first Round) Bug + FIXED: Knife being used when Enemy out of range + FIXED: Bot Chat Spamming + FIXED: Bug in detecting Hostages + Rewrote/optimized the Hearing Code + Bots now hear Shots and Button Usage within their range + Bots randomly use secondary knife mode + Changed Waypoint Movement + Changes in Basic Movement + Changed Waypoint Format + Added some stuff to the waypoint editor + Added Camp Flags to the Editor + Bots above Skill 60 try to stay more covered when moving + Improved Ladder climbing up + Added Bot User Menu + Tweaked Reaction Time again + Improved Enemy Detection Handling + Bots use Zoom Mode when sniping most of the time + Bots Hiding Behaviour improved + Added a bunch of new commands to the Config File + Added Randomness to Reaction Times + Bots are able to swim now + Updated/Replaced all Waypoint Files V1.2 Release Date: 10/11/2000 + Fully compatible to CounterStrike 1.0 final + Bots buy/use all new weapons + Recoded all Reaction Routines + Burst Fire implemented + Smarter Grenade Use/Throwing + Tweaked Hunting/Fleeing AI + Bots try to hide (not fully implemented) V1.1 Release Date: 4/11/2000 + Fixed Weapon dependent Player speeds + Fixed VIP Speed + Changed Damage Detection Code + Fixed Weapon Kickback + Implemented hearing Footsteps + Modified Sniper Combat behaviour + Added Menu-driven Waypoint setting for Users who want to support own maps + Added "Jason-Mode" for people who like to fight only with knifes + Added new Radio Command Reaction: "Taking Fire..." + Bots above Skill 70 sneak if a near Enemy is suspected + some minor bug fixes V1.0 Release Date: 27/10/2000 * First public Release * ### Known Limitations/Bugs/Problems still present: Bots sometimes fall from high places Sometimes stuck in other Bots (but should unstuck after less than 5 secs) Sometimes stuck in corners (see above) Counter Bots sometimes fail to detect the bomb (but happens to humans also, so what?) "map" command causes crashes sometimes (use "newmap" instead) Due to missing waypoint files only some maps (but all official ones for CS 1.1!) supported. You can add your own by making waypoint files yourself! Bots don't know how to reason about Buttons/Lifts (but they use them randomly) Bots lack advanced teamplay (very basic team-play and affection is present) Bad covering of Bots sometimes because of no real visibility information yet Bots are too easy to snipe, see above No tactical/terrain based pathfinding yet Bots aren't affected by darkness Bots don't drive Vehicles Due to HL Engine Limitations Bots can see through func_illusionaries (e.g. curtains in cs_747, doors in cs_backalley) Bots don't cheat :) ### Planned for future Releases: Pathfinding which reasons about teams, tactical positions and terrain Refining Combat Behaviours and Weapon Choices Customisation of Personalities incorporated into a Clan-System Advanced Team Behaviour Reasoning about Triggered Targets like Doors & Lifts Automating the waypointing process Vehicle support (hmm, not really!) Elimination of most remaining Bugs & Limitations of the above list I would like to thank & send out greetings to the following people: Botman (for all his Information, Sources & Templates, without them, this Bot probably wouldn't exist). Visit his Site: http://www.planethalflife.com/botman/ William van der Sterren (for being always helpful, all the collected info in Botman's Forum & his own WebSite and interesting e-mail discussions. Check out his CGF Bots for Action Quake 2, they are awesome! Tobias Heimann (killaruna) for interesting discussions & ideas and for coding the best Deathmatch Bot so far to my knowledge - the brilliant ParaBot My brother Polymorph for his beta-testing, patience with me and now doing the Setup for POD. Have a look at his MOD for Half-Life called 'Kriegshammer' Auxois & Smok3 for hosting/supporting me as much as they can Bluesman for being a good moderator & betatester and being always helpful all in one TAZ for supporting me with good waypoints and beta-testing Bot_Guy for caring about waypointing too runab0ut for investing so much time in doing the Design & GFX for the 2nd POD Page Fairus for running the Community Site zeO of BotEpidemic for hosting me Another1 for a short but interesting mail a long time ago and for allowing me to have a look at his KyBot Chris for Betatesting all other Bot Authors for inspiring me & being such a nice Community (mostly) All people who sent contributions for the POD Logo-Contest, especially runab0ut, Fade1, God and Fairus. Kangaroo for being the first one who ever posted into the POD forum and helping out many people The Half-Life & Counter-Strike Developers for creating such great games ! YOU! (for trying out Pod-Bot and reading through the whole readme) everybody else I missed in this list ... If you still have questions, be sure to read FAQ.html. Your question might already be answered there. If not please use the POD-Bot forum here: http://www.nuclearbox.com/ubb/cgi-bin/ultimatebb.cgi?ubb=forum&f=15 If this still doesn't help you you can mail me at podbot@yahoo.com (please don't mail me suggestions or your personal wishlist, use the Forum instead !) AND DON'T ASK ME FOR RELEASE DATES OF FUTURE VERSIONS, SUCH E-MAILS WILL BE DELETED AT ONCE! ### And now don't waste time reading, waste some Bots instead ! Enjoy !