Bot system 1.0

Bot system for maps that are not bot-friendly

  1. Grubzer
    You have a map that needs some action, but you have nobody to play with? With new bot system that's not a problem!
    I introduce to you - Bot system V1.0!
    Botsystem explanation.png
    In order to use it, follow simple steps to set up bots in your map:

    *Step 1*
    Download and paste prefab into your map

    *Step 2*
    Determine, where bots should run in your map. In order to create a new path:

    Create a bot_action_point entity
    Place it at the beginning of your path (Should be near spawn doors)
    Name it, set action that bot should do when reaching this point, set time to stay on this point, and radius in which point counts as reached

    Now copy-paste nodes along bot path, and set next action point properly. It won't do it automatically (Tip: loop your paths so bots don't stack up at the end)

    Now go to team's bot generator located in spawn module, and set action point parameter to first action point of your path

    If you need multiple paths, add new bot_generator for each path, and connect it to botsystem_bot_spawn_timer

    *Step 3*
    Setting up path blockers

    Sometimes, there are multiple paths a bot can reach certain nodes.
    By randomly blocking them, you can randomize bot flow

    Place one func_nav_avoid across path that you want to block, and set it to be disabled by default. It will act as a gate to open and close some areas of your map

    Now add an output to botsystem_blocker_randomizer to enable it, and botsystem_unblocker_randomizer to disable it

    *Step 4*
    Setting up bot controls room

    Create a room somewhere in your map, add buttons to enable, disable, pause and reset bot system, and connect them to proper relays

    Bot system is off by default. Its not recommended to enabling it from the start, due to bots occupying slots for players

    Note: mp_disable_respawn_times 1 breaks the system. Use a plugin, or reset bot system every n minutes, otherwise bots will get stuck

    Now, generate (And preferably hand-edit) navigation mesh, and everything should work

    Report any bugs to discussion section