How do dota 2 bots pick their heroes?

Solution 1:

The reason bots only select a limited set of heroes is because the AI hasn't been scripted for every hero in the game yet. Assuming you pick before them, the bots will then try to counterpick any heroes you or your allies have.

You can also 'suggest' heroes which will cause allied bots to choose those heroes, if AI exists for them.

As far as I can tell, the only AI scripted heroes currently are:

  • Axe
  • Bane
  • Bloodseeker
  • Bounty Hunter
  • Bristleback
  • Chaos Knight
  • Crystal Maiden
  • Dazzle
  • Death Prophet
  • Dragon Knight
  • Drow
  • Earthshaker
  • Jakiro
  • Juggernaut
  • Kunkka
  • Lich
  • Lina
  • Lion
  • Luna
  • Necrophos
  • Omniknight
  • Oracle
  • Pudge
  • Razor
  • Riki
  • Sand King
  • Shadow Fiend
  • Skywrath Mage
  • Sniper
  • Sven
  • Tidehunter
  • Tiny
  • Vengeful Spirit
  • Viper
  • Warlock
  • Windranger
  • Witch Doctor
  • Wraith King
  • Zeus

Valve periodically adds new bots in their weekly updates, but as of late they have been focusing primarily on AI enhancements instead of adding more heroes.