Announcement

Collapse
No announcement yet.

Adding bots to MP via console

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Adding bots to MP via console

    Alrighty folks, I've noticed a lot of talk about bot support in multiplayer. I myself was a bit disappointed you couldn't use them in MP, so I did a bit of digging around and found that you can, amazingly, add them with minimal issues.

    It's pretty clear proper AS2k4-style bot support was originally intended, since they work very well in-game (with a few minor issues that I'll outline in a second) and have proper UI support as well (all active marines are properly listed next to your name in the F8 player list, for example). Bots seem to handle all the levels just fine, even including parts like the Deima bridge crossing (they hold fire formations well).

    So, to add a bot to your game:
    cl_selectm (marinenum) (slot)
    (marinenum) being numbers 0-7 for Sarge, Wildcat, etc. through Vegas, respectively.
    (slot) being 0-3, for players 1-4, respectively. Slot number -1 can also be used to add to the first available slot.
    Alternatively, see below for a config that adds "addbot_<name>" commands to make this easier.

    To remove a bot from your game:
    cl_dselectm (marinenum)
    (marinenum) again being numbers 0-7 for Sarge, Wildcat, etc. through Vegas, respectively.
    Alternatively, see below for a config that adds "removebot_<name>" and "removebots" commands to make this easier.

    These commands must be used directly from the lobby menu. Using them anywhere else will result in invalid command errors from the console.

    For those suspicious of the ability to add bots to a game, let me clarify some points:
    -- You do not gain any EXP from bot kills and bots simply share your level.
    -- Bots can, unfortunately, be added by public game joiners. However, new players can still join, and once the lobby fills up, all bots will be automatically kicked and none will be able to be added.
    -- When a player leaves (or is kicked from) a lobby, his/her bots will leave as well.

    There are, of course, some issues with MP bots as well. Anyone giving a "hold" or "go" order will order all bots, regardless of rather he/she "owns" them or not - however, equipment orders and marine switching work as intended. Also, bots sometimes do not leave correctly when new players join until the lobby fills up to 4 players, as mentioned above - this is being looked into, but in the meantime, use the cl_dselectm command to remove bots if you don't have a full lobby joining.

    I have taken the liberty of creating a config file that adds "addbot_<name>" and "removebot_<name>" commands, as well as keybinds for these commands to keypad keys, to make bot usage easier. It also includes some useful tips if you're never used bots much before. All of the stuff I've noted above can also be found in this file, as follows:

    http://www.memes.no/88flak/AlienSwarmStuff/foxBot.cfg
    //foxBot.cfg - Sets up bot-adding/removing commands and also binds functions to keypad keys
    //Type addbot_<name> to add the bots you'd like. removebot_<name> will remove a bot, removebots wil remove all bots
    //Keypad 1-8 adds bots (in order of Sarge, Wildcat, etc. through Vegas) and also selects your marine if none is selected
    //Keypad . (DEL) removes all bots
    //To use, simply place this in your swarm\cfg folder and do "exec foxBot.cfg"

    //Useful tips:
    //-- Should you switch to another marine, the bot will hold position and cover the angle you left them facing when you switched. Thus, to have a marine cover, say, a doorway, simply move him to a good position facing the door, and switch to another marine. (this is classic AS2k4 behavior)
    //-- Bots must be ordered manually to use equipment like medical satchels, turrets, etc. Get familiar with giving equipment orders and switching marines on-the-fly if you are going to use them effectively. The Offline Practice level is, actually, great practice for this.
    //-- It should be noted that bots DO use the Medical Gun automatically, but giving manual equipment orders is more reliable. I personally prefer the med satchel when commanding a bot medic.
    //-- Also, make sure bots have ammo for their weapons. If they run out of ammo, they will run around punching aliens, which gets them killed damned quick on Hard or Insane.

    //Notes:
    //-- Bots seem to handle all the levels just fine, even including parts like the Deima bridge crossing (they hold fire formations well).
    //-- When a player leaves (or is kicked from) a lobby, his/her bots will leave as well.
    //-- Bots can be added by game joiners. However, new players can still join, and once the lobby fills up, all bots will be automatically kicked and none will be able to be added.
    //-- You do not gain any EXP from bot kills and bots simply share your level.

    //Known MP bot bugs:
    //-- Bots sometimes do not leave correctly when new players join until the lobby fills up to 4 players, as mentioned above - if you don't have a full lobby joining, use Keypad . (DEL) to remove them and make room (this is being looked into)
    //-- Anyone giving a "hold" or "go" order will order all bots, regardless of rather he/she "owns" them or not - however, equipment orders and marine switching work as intended
    //-- Attempting to change marines ends up changing one of your bots instead - just remove all bots and then add the marine bots you want via the keypad

    //Keypad Shortcuts - Please change (or remove) these to fit your liking
    bind "KP_END" "addbot_Sarge"
    bind "KP_DOWNARROW" "addbot_Wildcat"
    bind "KP_PGDN" "addbot_Faith"
    bind "KP_LEFTARROW" "addbot_Crash"
    bind "KP_5" "addbot_Jaeger"
    bind "KP_RIGHTARROW" "addbot_Wolfe"
    bind "KP_HOME" "addbot_Bastille"
    bind "KP_UPARROW" "addbot_Vegas"
    bind "KP_DEL" "removebots"

    //Setup - Console Commands
    alias "addbot" "echo Invalid bot! Usage: addbot_<name>; echo For example, addbot_Sarge will select Sarge."
    alias "addbot_Sarge" "cl_selectm 0 -1"
    alias "addbot_Wildcat" "cl_selectm 1 -1"
    alias "addbot_Faith" "cl_selectm 2 -1"
    alias "addbot_Crash" "cl_selectm 3 -1"
    alias "addbot_Jaeger" "cl_selectm 4 -1"
    alias "addbot_Wolfe" "cl_selectm 5 -1"
    alias "addbot_Bastille" "cl_selectm 6 -1"
    alias "addbot_Vegas" "cl_selectm 7 -1"
    alias "removebot" "echo Invalid bot! Usage: removebot_<name>; echo For example, removebot_Sarge will remove Sarge.; echo Alternatively, use removebots to remove all bots."
    alias "removebot_Sarge" "cl_dselectm 0"
    alias "removebot_Wildcat" "cl_dselectm 1"
    alias "removebot_Faith" "cl_dselectm 2"
    alias "removebot_Crash" "cl_dselectm 3"
    alias "removebot_Jaeger" "cl_dselectm 4"
    alias "removebot_Wolfe" "cl_dselectm 5"
    alias "removebot_Bastille" "cl_dselectm 6"
    alias "removebot_Vegas" "cl_dselectm 7"
    alias "removebots" "cl_dselectm 0; cl_dselectm 1; cl_dselectm 2; cl_dselectm 3; cl_dselectm 4; cl_dselectm 5; cl_dselectm 6; cl_dselectm 7"

    //Setup - Console Readout
    echo "Bot Config v1.1 Loaded"
    echo "Please be courteous about adding bots into public games!"
    echo "To add bots, type 'addbot_<name>' into console"
    echo "To remove bots, type 'removebot_<name>' into console"
    echo "To remove all bots, type 'removebots' into console"
    echo "These commands will ONLY work from the lobby screen!"
    echo "Keypad shortcuts:"
    echo "Keypad 1 - Sarge"
    echo "Keypad 2 - Wildcat"
    echo "Keypad 3 - Faith"
    echo "Keypad 4 - Crash"
    echo "Keypad 5 - Jaeger"
    echo "Keypad 6 - Wolfe"
    echo "Keypad 7 - Bastille"
    echo "Keypad 8 - Vegas"
    echo "Keypad . - Remove all bots"
    echo "Please see foxBot.cfg for more info or to re-bind key shortcuts."
    echo "Thanks and have fun! ~fox"
    I hope folks find this information useful. We've used bots in several private 2P and 3P co-op games to great success - I personally think it's a lot more fun than just having 2 or 3 marines on dumbed down difficulty (assuming asw_adjust_difficulty_by_number_of_marines, on by default, actually works - maybe I'm wrong). Have fun!
    Last edited by fox Unit 01; 26th Jul 2010, 01:45 PM. Reason: New config

  • #2
    In your script there is an useless "cl_dselectm 8" which does nothing. Anyway I have something similar in my autoexec.cfg based on yours. Thanks!

    Comment


    • #3
      Oops, my bad, didn't even notice. It's harmless anyways, but I uploaded a new config for correctness.

      Edit: Uploaded a new version that adds "addbot_<name>" and "removebot_<name>" commands for easier bot management.
      Last edited by fox Unit 01; 26th Jul 2010, 01:46 PM.

      Comment


      • #4
        here my part of the autoexec.cfg

        toggle
        PHP Code:
        //toggel the 9er block by press "PageDown"
        //toggle 1 Bots
        //toggle 2 chatter voices
        ///default voices (ihope)
        //hf dYZER

        bind "PGDN" "toggle_kp"
        alias "toggle_kp" "toogle_kp1"
        alias "toggle_kp1" "alias KP_1 Sarge;alias KP_2 Wildcat;alias KP_3 Faith;alias KP_4 Crash;alias KP_5 Jaeger;alias KP_6 Wolfe;alias KP_7 Bastille;alias KP_8 Vegas;alias KP_9 remove-botz;alias toggle_kp toggle_kp2;echo Botz 9er"
        alias "toggle_kp2" "alias KP_1 chatter_1;alias KP_2 chatter_2;alias KP_3 chatter_3;alias KP_4 chatter_4;alias KP_5 chatter_5o;alias KP_6 chatter_6;alias KP_7 chatter_7;alias KP_8 chatter_8;alias KP_9 chatter_9;alias toggle_kp toggle_kp1; echo Voice 9er"

        //botz thnx fox 4start

        alias "Sarge" "sarge_on"
        alias "sarge_on" "cl_selectm 0 -1; alias Sarge sarge_off"
        alias "sarge_off" "cl_dselectm 0; alias Sarge sarge_on"


        alias "Wildcat" "wildcat_on"
        alias "wildcat_on" "cl_selectm 1 -1; alias Wildcat wildcat_off"
        alias "wildcat_off" "cl_dselectm 1; alias Wildcat wildcat_on"


        alias "Faith" "faith_on"
        alias "faith_on" "cl_selectm 2 -1; alias Faith faith_off"
        alias "faith_off" "cl_dselectm 2; alias Faith faith_on"


        alias "Crash" "crash_on"
        alias "crash_on" "cl_selectm 3 -1; alias Crash crash_off"
        alias "crash_off" "cl_dselectm 3; alias Crash crash_on"


        alias "Jaeger" "jaeger_on"
        alias "jaeger_on" "cl_selectm 4 -1; alias Jaeger jaeger_off"
        alias "jaeger_off" "cl_dselectm 4; alias Jaeger jaeger_on"


        alias "Wolfe" "wolfe_on"
        alias "wolfe_on" "cl_selectm 5 -1; alias Wolfe wolfe_off"
        alias "wolfe_off" "cl_dselectm 5; alias Wolfe wolfe_on"


        alias "Bastille" "bastille_on"
        alias "bastille_on" "cl_selectm 6 -1; alias Bastille bastille_off"
        alias "bastille_off" "cl_dselectm 6; alias Bastille bastille_on"


        alias "Vegas" "vegas_on"
        alias "vegas_on" "cl_selectm 7 -1; alias Vegas vegas_off"
        alias "vegas_off" "cl_dselectm 7; alias Vegas vegas_on"

        alias "remove-botz" "cl_dselectm 0;cl_dselectm 1;cl_dselectm 2;cl_dselectm 3;cl_dselectm 4;cl_dselectm 5;cl_dselectm 6;cl_dselectm 7;"

        //voices http://files.definebyte.co.uk/alienswarm_chatter.txt

        alias "chatter_1" "cl_chatter 9" //no ammo1
        alias "chatter_2" "cl_chatter 34"//south Covered
        alias "chatter_3" "cl_chatter 10" //no heal
        alias "chatter_4" "cl_chatter 36"//west Covered
        alias "chatter_5o" "cl_chatter 5"// incomming
        alias "chatter_6" "cl_chatter 35"//east Covered
        alias "chatter_7" "cl_chatter 13" //ammo here
        alias "chatter_8" "cl_chatter 33" //north Covered
        alias "chatter_9" "cl_chatter 14" //here medic

        alias "scream" "scream_1"
        alias "scream_1" "cl_chatter 57; alias scream scream_2" //arg1
        alias "scream_2" "cl_chatter 58; alias scream scream_3" //arg2
        alias "scream_3" "cl_chatter 59; alias scream scream_4" //arg3
        alias "scream_4" "cl_chatter 60; alias scream scream_1" //firescreem

        //alias needed 2b change (req)

        alias "KP_1" "chatter_1"
        alias "KP_2" "chatter_2"
        alias "KP_3" "chatter_3"
        alias "KP_4" "chatter_4"
        alias "KP_5o" "chatter_5o"
        alias "KP_6" "chatter_6"
        alias "KP_7" "chatter_7"
        alias "KP_8" "chatter_8"
        alias "KP_9" "chatter_9"

        //setup the toggle engine (not changeabel)
        bind "KP_END" "KP_1"
        bind "KP_DOWNARROW" "KP_2"
        bind "KP_PGDN" "KP_3"
        bind "KP_LEFTARROW" "KP_4"
        bind "KP_5" "KP_5"
        bind "KP_RIGHTARROW" "KP_6"
        bind "KP_home" "KP_7"
        bind "KP_uparrow" "KP_8"
        bind "KP_pgup" "KP_9"


        //more voices not toggle
        bind "KP_PLUS" "cl_chatter 37"// 37 i take the front/ taking lead
        bind "KP_ENTER" "cl_chatter 15" // 15 thanks 
        bind "KP_INS" "scream" //random scream the alias
        bind "KP_minus" "cl_chatter 38"// 38 take the front
        bind "KP_del" "cl_chatter 54"//taunt Swarm
        bind "KP_Multiply" "cl_chatter 16" // 16 what !?
        bind "KP_SLASH" "cl_chatter 26"// just what we need. (BuG KP_SLASH= - wtf) 
        hopes it help

        Comment


        • #5
          Very nice things, I used parts of both. ^^
          Big thanks.

          Do you know a command to restart map?

          Comment

          Working...
          X