Dota 2
509 ratings
Open Hyper AI
2
2
3
2
   
Award
Favorite
Favorited
Unfavorite
Custom Games and Bot Scripts: Bot Script
File Size
Posted
Updated
4.748 MB
14 May @ 12:38am
8 Jun @ 1:46am
14 Change Notes ( view )

Subscribe to download
Open Hyper AI

Description
We love bot games! Please follow steps in the Workshop page content to install this script.

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
0. Support 7.36
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 bot heroes will seem random in the game, but it's deterministic - check the Bot roles section below.
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.
4. Support multiple modes: All Pick, Turbo, Captain Mode, Random Draft, Single Draft, All Random, Mid Only, Least Played, and 1V1 mid. Note for 1V1 mid, other bots (if you have any other empty slots filled with bots) all go to top.
5. Improved code structure general logic for decision making for ability and item usages as well as roaming and farming.
6. Fixed tons of bugs that can cause bots to stay idle or cancel it's own channeling spells or stuck on weird state.
7. You can chat with bots in the game as if they were real and optimistic players. [You need to enable Fretbot mode for this, check out How to Install section below.]

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://steamproxy.net/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.
7. Figure out how to support the Not-Yet-Supported-Heroes: Dark Willow, Elder Titan, Hoodwink, Lone Druid, Marci, Muerta, Primal Beast. Note that they are buggy due to problems on the Valves side, not script developers.

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://steamproxy.net/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)
36
6 Jun @ 6:22pm
PINNED: Thread - General feedback
Yggdrasil
26
12 hours ago
PINNED: Thread - Bug report
Yggdrasil
4
10 hours ago
PINNED: How to install this script & how to enable the additonal challenging mode
Yggdrasil
55 Comments
Yggdrasil  [author] 6 Jun @ 10:35pm 
@Perninha de Ferro Bot. Fixed. it was a bug introduced to quickly figure the solution to give ally bots bonus. but there were some issues like role conflicts etc that caused bots not receiving correct bonus.
Perninha de Ferro Bot 6 Jun @ 8:58pm 
@Yggdrasil I played some matches with friends today after the update earlier. The bots are very fun! <3

We play 3 games in Turbo mode, and another in Captain mode. I activated Fretbots, but I don't know if the cheats were activated, because in none of these 4 matches the bots had neutral items.

Does Cheat work in game modes beyond All Pick?
I was also the only one to choose a difficulty in chat before starting the game, this influences something in the activation of Cheats?
Yggdrasil  [author] 6 Jun @ 2:10am 
@Perninha de Ferro Bot, actually updated that in the recent version.

@16505. now bots take more time (from ~2-3s to ~4-6s) to pick heroes.
Yggdrasil  [author] 5 Jun @ 9:21pm 
@Perninha de Ferro Bot, i think what you said makes sense. you will have it in the next revision I raise. maybe in just a couple of days
Perninha de Ferro Bot 5 Jun @ 6:57pm 
@Yggdrasil Hello!

Is there any way for allied bots to gain the fretbots' cheats?

The behavior of allied bots is already significantly nerfed on purpose, without the cheats it is impossible to play alone. And, if you leave all the bots without cheats, the game becomes relatively easy again. It becomes a paradox. hahahaha

And thank you for helping to keep the game's bots alive. I discovered this script today while browsing the community pages and I was drawn to it by the last update date of this script.

I really liked the new features, especially the cheats - these existed in Dota 1 bots and helped a lot to keep the games interesting without forcing human players to play badly on purpose.
Hendrix213 5 Jun @ 4:45pm 
@Yggdrasil sure. Say for example you want to take a tower, if you could do an attack ping on their tower and get them to come and take it, that would be cool. Likewise a ping for them to back off if you havent arrived at a fight yet. It seems like they kind of respond to pings but with not much consistency. They do respond to you doing roshan which is nice.
Yggdrasil  [author] 5 Jun @ 1:28pm 
@16505. multiple ways to slow down picking phase for enemy:
1. pause the game by using command `dota_pause` in console.
2. use captain mode
3. i can update to slow it down for all modes, but i do not want to make it too slow. however people have different typing skills so I dont know how slow is slow, and too slow will impact players that dont want to pick heroes for bots, this makes me stop making it slower. what do you suggest in this case
Yggdrasil  [author] 5 Jun @ 1:25pm 
@Hendrix213 thanks. new versions should have fixed the item buying issue you saw.

> could you add in the ability to ping bot to get them to group, push, back away, etc.? thanks

I can. but I think bot currently support part of it already. can you elaborate on your requests with the actual scenarios.
1650S 5 Jun @ 9:24am 
How do you slow down picking phase for enemy? Choosing enemy heroes is nice but kinda useless when they can pick before you finish typing
Hendrix213 5 Jun @ 12:43am 
@Yggdrasil thank you for responding. I am certain fretbots was enabled, as again, they had the tier 3-4 neutral items equipped on the enemy heroes. This does not happen too frequently, maybe one every 5-6 games. I love what you do, and would be willing to financially support you, as this is still the best script by far, even accounting for the errors. by the way, could you add in the ability to ping bot to get them to group, push, back away, etc.? thanks