Dota 2
Open Hyper AI [7.38]
 This topic has been pinned, so it's probably important
Yggdrasil  [developer] Aug 18, 2024 @ 4:55pm
A note to Valve official regarding bot scripts
Hi,

This is a letter to the Valve official about Dota2 bot scripts. If you are not interested in dota2 bots please feel free to stop reading.

As you know the bots supports in terms of default bots and APIs are out of date for a long time. As far as I can tell, no more new api support was introduced for bot scripts since 2018. And new patch updates for Dota2 kept breaking the experience for bot scripts. Below are the major issues with the current bot experience:

  1. Most bot scripts can not be played in any remote servers. Only some specific scripts, seems only a few Valve selected scripts, can be played with remote servers, all other scripts can only work with local server.
    1. For example this script , doesn't work in remote server, it gets reverted to default bot script when played against remote server. The same happen to (almost) all other script that's created in the past few years, and old scripts that weren't so popular.
  2. Lack of APIs for a set of new features:
    1. API for neutral item token options selection. Bot for now can only pick up neutral items but there is no way for bots to choose a specific neutral item out of the token.
    2. Facet selection. There is no way for bots to pick a facet.
      1. Some bots, in patch 7.37 and 7.37b even lost some their abilities due to the facet change where if no facet was selected, the relative ability won't exist in the bot's ability slot. Faceless void and life stealer need a hot fix for this bug.
  3. Broken APIs from official website. Please update the docs as well! The website ( https://developer.valvesoftware.com/wiki/Dota_Bot_Scripting ) is just with too little info and even missing some APIs that are actually supported.
    1. GetAvoidanceZones. This api is too broken such that whenever it's called, the dota2 client directly crashed! There much be an fatal error in the game engine. This api is crucial to the bots ability to react on so many AOE damages. Can we improve the logic such that it's at least returning the visible zones?
    2. GetNearbyTrees doesn't return the trees created by heros like Nature's Prophet. In fact there is no way to get the trees created by heroes, so the bots cannot escape or do propery actions.
    3. Wisdom rune or any other new runes in future.
    4. Use Twin gates. The api simply doesn't work to use the hidden Twin gates ability.
    5. Use Lotus pools
    6. Visage Summon Familiars Ultimate is broken. The api `bot:Action_UseAbility` is making it alt-cast the spell instead of using it to spawn summons.
  4. Some heroes do not inherit default functionality of the bot behavior/modes. I think what happened to those heroes was the official devs from Valve didn't add the layer of default modes for those heroes. This should be as simple as adding the hero names to a hero list or something. But those heroes didn't have that layer of modes added so they fallback to the real basic stub methods, which are just retuning really basic mechanics like go directly to a dumb target point.
    1. 'npc_dota_hero_muerta',
    2. 'npc_dota_hero_marci',
    3. 'npc_dota_hero_lone_druid',
    4. 'npc_dota_hero_primal_beast',
    5. 'npc_dota_hero_dark_willow',
    6. 'npc_dota_hero_elder_titan',
    7. 'npc_dota_hero_hoodwink',
    8. 'npc_dota_hero_wisp',
  5. Missing modes
    1. we have a mode for going outpost or side shop, etc. but we do not have a mode for doing Tormentor.
  6. Item stats do not apply properly. Sometimes when any heroes get a new item, the stats won't get added to the hero, and only gets added after the hero drops the item and pick up again. This might be a display issue but is annoying and can be problematic in some cases such as for Morphling's ability to shift properly.

In fact, we are looking for a better support for the scripts in all aspects. And want to know if Valve is ever going to improve the bot performance again.

The OpenAI-Five ( https://openai.com/index/openai-five/ ) was completed so many years ago, is there a date we will be able to play with similar ML AIs again? Or will there be a time Valve improves the default script empowered by the ML AIs and other developers can do further improvement later.
Last edited by Yggdrasil; Aug 21, 2024 @ 8:39pm
Showing 1-15 of 15 comments
Best Bot I ever played , I hope you develop consistently. I am very enjoy with insane bot. What if you can develop harder and harder-> super carry insane farm. I think it would be legend script. :steamthumbsup:
Yggdrasil  [developer] Aug 20, 2024 @ 8:56am 
Originally posted by KIMIMARO 君麻呂:
Best Bot I ever played , I hope you develop consistently. I am very enjoy with insane bot. What if you can develop harder and harder-> super carry insane farm. I think it would be legend script. :steamthumbsup:

Thanks, I’m glad you like it. Unfortunately nothing can be developed consistently without it bringing actual value to the developer. This is why no current bot scripts can be developed consistently, and never will.

Bot script dev work takes a lot of effort and brings no income or any support from community. Even Valve seems to have given up working on bot scripts in the past 6 years and in future. That’s why I wrote this letter to get their attention for their support.
There are people like me who had spent fair amount of money in dota2 every year for buying items in each TI or for Dota 2 plus, and are willing to pay for good bot AIs something like with subscription fee to play against ML AIs, but we need more their official help for better bots.
두부 Aug 20, 2024 @ 9:08am 
Did you think about posting this on their github ( ValveSoftware/Dota2-Gameplay ) or /r/DotA2/ reddit for more visibility?
ГОВНО
Yggdrasil  [developer] Aug 23, 2024 @ 5:37pm 
Originally posted by 두부:
Did you think about posting this on their github ( ValveSoftware/Dota2-Gameplay ) or /r/DotA2/ reddit for more visibility?


I have not, but planned to. I would appreciate if you can re-post this to anywhere you think can bring more visibility
Yggdrasil  [developer] Aug 24, 2024 @ 9:21am 
Can someone please help?
Yesterday I played with a friend and everything was fine, everything worked. Today we launch the host according to the same rules, but the bots are standard and the names are missing (OHA). We re-subscribed to the mod, restarted the game - nothing. Surprisingly, everything worked yesterday, which is the funniest thing.
Картошка Sep 9, 2024 @ 12:37pm 
Originally posted by YKUY:
Can someone please help?
Yesterday I played with a friend and everything was fine, everything worked. Today we launch the host according to the same rules, but the bots are standard and the names are missing (OHA). We re-subscribed to the mod, restarted the game - nothing. Surprisingly, everything worked yesterday, which is the funniest thing.
Currently bots only work through a local script, not a workshop sub
Last edited by Картошка; Sep 9, 2024 @ 12:38pm
Yggdrasil  [developer] Dec 1, 2024 @ 1:48pm 
A few general features:
1. Localization support for bots to chat with players
2. generic modes should have beforeStart() and afterStart() settings for devs to further customizing the settings after generic processing
SunderX Dec 4, 2024 @ 11:58am 
I cross posted your complaint on GitHub for Valve Bug Fix/Improvements. I hope it helps.
https://github.com/ValveSoftware/Dota2-Gameplay/issues/23152

Honestly, I just want a 3rd menu in the script once we have voted for difficulty and friendly bot scaling where we can choose from the Casters in the Soundboard.lua file and it only use the sounds from the selected option. (E.g. 1) English, 2) Asian, 3) CIS, etc.)

But other than that, the FretBots are damn near perfect. I've sent you, Yggdrasil, several kudos for your excellent work.

Keep it up, you have many fans!
Last edited by SunderX; Dec 9, 2024 @ 4:58pm
Yggdrasil  [developer] Dec 4, 2024 @ 1:02pm 
Originally posted by SunderX:
I cross posted your complaint on GitHub for Valve Bug Fix/Improvements. I hope it helps.

Honestly, I just want a 3rd menu in the script once we have voted for difficulty and friendly bot scaling where we can choose from the Casters in the Soundboard.lua file and it only use the sounds from the selected option. (E.g. 1) English, 2) Asian, 3) CIS, etc.)

But other than that, the FretBots are damn near perfect. I've sent you, Yggdrasil, several kudos for your excellent work.

Keep it up, you have many fans!

Good point, and it should indeed be the first option to choose text/voice language. Maybe next release I will add it.
Yggdrasil  [developer] Dec 4, 2024 @ 7:23pm 
@SunderX

Open a new discussion and help me to understand what sounds should be in (E.g. 1) English, 2) Asian, 3) CIS, etc.).
There are a lot of sounds with no real meaning but it's not in English. And for example Asian is not a single language, there are a lot of countries.
SunderX Dec 9, 2024 @ 4:12pm 
Originally posted by Yggdrasil:
Originally posted by SunderX:
I cross posted your complaint on GitHub for Valve Bug Fix/Improvements. I hope it helps.

Honestly, I just want a 3rd menu in the script once we have voted for difficulty and friendly bot scaling where we can choose from the Casters in the Soundboard.lua file and it only use the sounds from the selected option. (E.g. 1) English, 2) Asian, 3) CIS, etc.)

But other than that, the FretBots are damn near perfect. I've sent you, Yggdrasil, several kudos for your excellent work.

Keep it up, you have many fans!

Good point, and it should indeed be the first option to choose text/voice language. Maybe next release I will add it.
I saw you added that, for which I'm super grateful. More kudos to you!
SunderX Dec 9, 2024 @ 4:39pm 
Originally posted by Yggdrasil:
@SunderX

Open a new discussion and help me to understand what sounds should be in (E.g. 1) English, 2) Asian, 3) CIS, etc.).
There are a lot of sounds with no real meaning but it's not in English. And for example Asian is not a single language, there are a lot of countries.

I added the discussion:
https://steamcommunity.com/workshop/filedetails/discussion/3246316298/594008890765594579/

Hopefully this has the fruit you were looking for.
Yggdrasil  [developer] Dec 25, 2024 @ 4:53pm 
A few general features:

1. bot games should provide api for user data such as user id or steam id
2. bot games should also provide match id.
3. bot scripts should be able to send/receive certain custom events with service side script.
This can help devs to provide finer tuned bot logics for players, making the game more fun.
Showing 1-15 of 15 comments
Per page: 1530 50