Dota 2
383 ratings
Open Hyper AI
2
   
Award
Favorite
Favorited
Unfavorite
Custom Games and Bot Scripts: Bot Script
File Size
Posted
Updated
4.647 MB
May 14 @ 12:38am
May 21 @ 7:11pm
4 Change Notes ( view )

Subscribe to download
Open Hyper AI

Description
We love bot games!

Thanks and kudos to all that contributed to make bot games fun and exciting.
The goal of this script is to share the most up to date functionalities that we've implemented or fixed to keep the bot games challenging.

This script is based on Valve's default bot script and many other people's work and their scripts. That being said, this is a partial override not completely take over bot script. It takes the advantages of some other existing bot scripts and aims to be a better off script than the existing ones. We hope the bot's decision making and team strategies are more effective and brings more joy to you.

Github: https://github.com/forest0xia/dota2bot-OpenHyperAI

Why It's Enjoyable
1. Support 115+ heroes. (I personally don't take much of the credit for this because it's many peoples work to make this possible). Kudos to Tinkering ABout (by ryndrb) for making a lot of improvements on recent hero supporting.
2. All supported heroes can play any position roles. Heroes will go to any lane they are assigned. The laning or pos of the heroes is random and irrelevant to the pick order.
3. If you ever feel all existing bot scripts lack excitement. This script boosts bots with huge unfair advantages to make bot games a lot more challenging. You will need to copy the script into your local vscripts folder and then enable the Fretbots mode for this feature. See instructions below.
3. Improved code structure general logic for decision making for ability and item usages as well as roaming and farming.
4. Fixed tons of bugs that can cause bots to stay idle or cancel it's own channeling spells or stuck on weird state.

Bot roles, lanings and positioning
1. In local lobby, the positions of the bots are the same as the order of the slots: 1, 2, 3, 4, 5 from top to bottom in the lobby.
2. During hero selection phase, you can type: !pick XXX to pick a hero. For example: "!pick puck" to pick puck as ally.
3. You can type: /all !pick XXX to pick hero for enemy. For example: "/all !pick puck" to pick puck as enemy.
4. You can type: !pos X to swap the position with a bot. For example: "!pos 2" to swap role and lane with the bot that's going to mid.
4. Pos1 and Pos5 bots go to safe lane. Pos3 and Pos4 bots go offlane. Pos2 bot goes to mid lane.

How to Install This Script?
There is currently a bug where subscribing to recent bot scripts will NOT work when selecting them in the custom game lobby. They will revert back to default bots when you close out of the settings menu. In order to fix this, you must manually install this script, please follow the instruction here: https://steamcommunity.com/workshop/filedetails/discussion/3246316298/6197594023017709799/

What's Next
0. List of things to be updated: https://github.com/forest0xia/dota2bot-OpenHyperAI?tab=readme-ov-file#things-to-be-updated-not-ranked-by-priority
1. This is a script mainly based on the code from Tinkering About (by ryndrb). But the code has diverged significantly due to some roles and item selection support, as well as the local support with Fretbots. So the future maintenance will keep diverging.
2. More heroes support.
3. Better decision making on pushing and ganking.
4. Better spell casting for certain heroes like Invoker, Rubick, etc.
5. More code bug fixes.
6. Better laning logic to avoid bots feeding too much in the early game.

Some Recent Fixes
1. Bots are now more flexible with different laning or roles. They were not able to purchase items if they were assigned with different role or laning.
2. Added/Improved a bunch of hero support so bots can have better performance on more heroes with better strategy of the ability usage, item purchase, etc, such as Invoker casting abilities and making combos.
3. Added a canary logic to keep checking if any bot gets stuck or stays idle for some time. If such a bot is detected, it's current action or all queued actions will get cleaned and it will be forced to push.
4. When Fretbots is enabled. A list of unfair settings get applied in addition to what was provided by Fretbots originally:
4.1 The bots get bonus mana/hp regens and provide less exp on death.
4.2 When a player kills a bot, the player who made the kill receives a reduction in gold. This does not affect assisting players.
5. Bots with refresher won't directly use refresher immediately, this is to prevent e.g. Void, Enigma using ult immediately twice. The logic is now also overridable in each bot files.
6. Enigma will keep casting ult instead of stopping casting it immediately by itself doing something else.
7. Don't kill couriers if bot is targeting a dying hero or is retreating.
8. Don't focus on some minions over heroes.
9. Bots won't stay on some ability effects for lone. e.g. jakiro_macropyre_burn, dark_seer_wall, sandking_sand_storm, warlock_upheaval, etc. Bots have the intension to run away from those effects.
10. Carry large HP and mana potions. Swap slots.
11. Swap slots to use moonshard
12. Bots should have regens in laning phase. Don't stay in lane if ph is too low. e.g. not calling in regen like omni would have 1400 hp and sit in lane on 200 till they tp back and take a free kill
13. Better Tormentor strategy with human players. [Partially improved]
14. Randomly selected warding locations from good warding locations. [Improved for game start warding]
15. Use item_force_staff to break through trees from furion_sprout. Note that GetNearbyTrees api does not work for furion_sprout trees as of 5/12/2024.

Credits To
New beginner ai (by dota2jmz@163.com).
Tinkering About (by ryndrb: https://github.com/ryndrb/dota2bot or https://steamcommunity.com/sharedfiles/filedetails/?id=3139791706)
Ranked Matchmaking AI (by adamqqq)
Fretbots (by fretmute)
BOT Experiment (credit: FURIOUSPUPPY)
ExtremePush (https://github.com/insraq/dota2bots)
All other bot script authors/contributors that had made bot scripts interesting.
Popular Discussions View All (4)
31
May 27 @ 6:35am
PINNED: Thread - General feedback
Yggdrasil
18
May 31 @ 5:25am
PINNED: Thread - Bug report
Yggdrasil
2
May 26 @ 7:11pm
PINNED: How to install this script & how to enable the additonal challenging mode
Yggdrasil
33 Comments
Harry Sak May 29 @ 6:54pm 
Hello. Just found this today. Thank you very much for all the work.

It is quite fun to be able to play against more of the heroes.

Here is some feedback:
1. Abaddon did nothing for 5 to 10 seconds when being attacked by Lycan. This happened a few times. One of the times when Abaddon's health was low enough his ulti triggered. Then after about a second, he started behaving normally.
2. The game took a long time because my team spent so much time on their own. It was the exception when at least three were together.
3. I, as Warlock, was laning with Abaddon and Spirit Breaker. I cast Fatal Bonds and Upheaval. The enemy heroes spent a lot of time in that while attacking creeps. One died, and the other was very low. During this, my allies just moved back and forth, so the nearly dead one escaped eventually.

Again, tyvm.
Yggdrasil  [author] May 28 @ 12:50pm 
Ally bots can perform better if you group up with them and contribute together to get the kills. Sometimes I didn’t need to play at all but looking at logs, allies could still win the game.
icebearfeelssadAF May 28 @ 6:57am 
will the ally bots perform worse than enemy boys, just like every other bot scripts? For example, enemy bots gather to mid push in a group of 5 after level 7, while ally bots go to feed one by one.
Yggdrasil  [author] May 27 @ 9:05pm 
@Sky, it surely possible. But I’d like to know how you think this can be achieved in a way you like? For example I’d like to keep this by default, and I don’t know what is a good UX to disable it. Like type -allowcheat?

Also, you can first typing cheats commands and then enable fretbots mode. This way it won’t punish you
Sky May 27 @ 1:49am 
Hello @Yggdrasil, thank you for making this bot. It's been a wonderful experience so far. I do have to ask if it is possible to remove the consequences for typing cheats such as -refresh or -gold xx when fretbots is activated. Thanks again
Yggdrasil  [author] May 26 @ 7:01pm 
@Baldy, okay i will check it once I have the chance. if possible, please give more details on what exactly you did so i can try to reproduce. or the heroes on your side and the laning
Multi-talented Baldy May 24 @ 3:46am 
22 May 2024*. I tried slot 2 Dire again; bots on Dire typed their respective pos (no pos 2) and even went to their designated lane. However, one of them went back to lane mid with me again. I deleted the bots folder and re-copied the re-downloaded version but to no avail. Is it because of my hero choice?
Multi-talented Baldy May 24 @ 1:20am 
I have redownloaded (22 May 2025 version), created a lobby and started on the 2nd slot on Dire, used "!pos 2" command and it still doesn't work. The bot will tp to another lane, but walk back to mid. Perhaps because I was ping-ing the bots to go to the river for 1st blood.
Yggdrasil  [author] May 23 @ 8:52am 
Baldy, make sure you are using the latest version of this bot. I can confirm the !pos command works like charm. And this had been confirmed working by other players as well
Multi-talented Baldy May 23 @ 2:11am 
I can confirm that the !pos command and lobby slot does not affect which lane and role you want to on dire. This happens in both before and during patch 7.36 (facets and innate abilities)