Dota 2
969 ratings
VULFT Bot Script
6
4
2
2
2
2
2
2
2
2
   
Award
Favorite
Favorited
Unfavorite
Custom Games and Bot Scripts: Bot Script
File Size
Posted
Updated
2.232 MB
Oct 8, 2022 @ 7:09am
Apr 29, 2023 @ 9:24am
20 Change Notes ( view )

Subscribe to download
VULFT Bot Script

Description
VULFT - Full Takeover Bot Script. Requires manual install into vscripts/bots folder (all recently released bots have this issue). Highly dynamic fight behaviour. DotaBuff roles and item builds updated on: 19/09/23. VUL-FT has no affiliation with DotaBuff.

I am unable to push the update via the dev tools and am trying to work out why. The only way to get the current update v0.9-230919 for Dota 2 >7.34c is via github.

Translations of This Page in Other Languages


== Manually installing ==
VUL-FT currently will not work via subscription. It will revert to the default bots, it seems other recent bots have the same issue. I'm still investigating what is going wrong there. For now, it's necessary to manually install the bots.

Optional: Before setting VUL-FT as the local dev script, It may also be a good idea to backup your old 'vscript/bots' folder if you have another bot that you have stored there:
The local dev bot folder is located at
[drive]:/%Program Files%/Steam/steamapps/common/dota 2 beta/game/dota/scripts/vscripts/bots

0) rename bots folder to bots.old.
1) make a new folder named bots
2) copy the VUL-FT files from either github or the workshop folder into the new bots folder.


-- Via workshop local files: (the Valve-verified workshop files)
After freshly subscribing, find the recent folder in
[drive]:/%Program Files%/Steam/steamapps/workshop/content/570/2872725543

and copy the contents of that folder to the bots folder at
[drive]:/%Program Files%/Steam/steamapps/common/dota 2 beta/game/dota/scripts/vscripts/bots/


-- Via Github: (updated by the creator)
If you know how to use git you can manually download the bots from the official VUL-FT Github[github.com] and put them in
[drive]:/%Program Files%/Steam/steamapps/common/dota 2 beta/game/dota/scripts/vscripts/bots/


-- Running:
After one of the above steps are complete, you can run the bots by navigating in-game to
Custom Lobbies -> Create -> Edit:
Under BOT SETTINGS change team bots to Local Dev Script (if you still want to fight the Valve bots, note that there is an option for "Default Bots" here as well)
Change SERVER LOCATION to LOCAL HOST (your computer).
Difficulty has no effect yet.
Press OK.
Join the top slot of either team.
Press START GAME.

Alternatively, you may use "Play VS Bots" option but not all heroes are implemented. Sorry about all of this, but it is just the effect of having to run the bots as a dev, rather than via the workshop.


== Features ==



Dynamic fight decision making.
More player-like.



Orb Walking.
Advanced item management.
Automatically generated and filtered for error ward locations, if the map ever changes.
DotaBuff parser for averaged out of 5 game skill build, roles and an item build from Divine - Immortal players that week.
Basic jungling in downtime.
They may jungle self-deny in the early game if they get caught by the enemy.
Dynamic retreat, to friendly towers (unless the tower gets overrun), or to friendly allies in the direction of the allied fountain.
Bounty rune task allocation based on proximity, safety, fog, greed rating
Tower defense allocation based on required threat.
Choose your position whenever by saying in chat "!pos [1-5]"
Lower CPU usage than other popular bots.
Bugs!

In addition. I promise this project's code is 100% functional offline and will stay that way. No networking API functions, ever.


== Error Report ==
Lua Error Dump (steam discussion link) -- Use this if you just want to quickly dump some console output.

VUL-FT source code[github.com] -- Public github

== Not yet implemented ==
Macro fight behaviour, initiator choice, grander strats like cutting losses, trading towers. They will assess the current aggressive plays being made and see if they think it's worth it for themselves, if an enemy is occupied attacking someone else. Enemy fight intent is tracked and loses magnitude based on facing direction, this allows allies to recognize trading without being attacked.
Player-to-bot ping communication.
Enemy vision assessments.
Dewarding.
Sentry and dust for enemy stealth.
Illusions are controlled by default behaviour. (But arc warden double is full-takeover).
Enemy fountain threat.
Avoid zones.
Response types for ability casts. (Rupture: Avoid unnecessary movement)
Structural enemy unit-health units. (tombstone, supernova)
Attacking and avoiding hero creep units. (Lycan wolves, Broodmother spiders)
Roshan.
Denying towers.


== Known issues ==
Picking may over-select for core roles.
Some tasks are not well informed by threat analytics code, not all tasks use intelligent movement functions to adjust vectors around dangerous areas.
Junk is not correctly sold (DotaBuff meta parser is not complete, and there may be additional junk buys incorrectly parsed into the build, item builds are calculated for their combines, however, the junk is incorrectly evaluated and the wrong item may be sold when 9-slotted).
Bots do not leave lanes which are dangerous if farming them. They only retreat. The untested data is there for changing lanes but mid-game rotating is not coded, it only happens naturally as they move / getting runes / defending towers / sometimes by jungling. The score of the creep wave draws them in too strongly.
Overly aggressive, especially in the early game.
Bots might not be able to commit to a highground push, due to certain variables in the state of the creep wave, they might wander off out of push range instead.

Many other things.

Runes for full-takeover bots:
-- bottom water runes cannot be picked up.
-- river bounty runes cannot be picked up.
-- any runes that are stacked up on by another bounty rune cannot be picked up.
These three rune issues are all technically true, but there is a workaround in place. During the early stage of the game, the bots run as a partial takeover bot, all modes are set to do nothing, ability_item_usage state is set to 100% desire, and the bots use that as a hook to the full-takeover code. When they stand next to a rune, rune mode is engaged for a split second, in the hope that they will pick up the bounty rune. Once the runes are picked up, or after a short while, a handover is completed to cut the default bot code off completely and the bot_generic Think function is defined.


== Project State ==
Alpha version. Please give feedback.
Is the project currently stable: Experimental, updated for 7.34c 19/09/23 (September 19)
Last DotaBuff meta update: 19/09/23


== Support ==
Please shoot me an email for any questions or to support the project:
zyewchi@gmail.com

If you would like to support the project, my paypal is on the above email with the goofy robot icon. Support means I can justify more time to make them better. But also just a nice comment on the workshop page helps a lot.

== Dev contact ==
Michael - zyewchi@gmail.com
Popular Discussions View All (2)
79
Jun 15, 2023 @ 3:42am
PINNED: ::::::::Feedback Thread:::::::::
doesn't stuff the corrupted
16
Jun 11, 2023 @ 1:25pm
PINNED: !@#$%^&*( PASTE LUA ERRORS HERE )*&^%$#@!
doesn't stuff the corrupted
312 Comments
скрудж майнкампф Dec 27, 2023 @ 12:16am 
update?
doesn't stuff the corrupted  [author] Nov 26, 2023 @ 7:45am 
@Earth Spirit: "dynamic fight decision making" The point is they don't deathball like morons ontop of a single player, they stand at variable ranges, with variable vector relationships based on the variables of a fight giving variable target standing locations, not just "in range" or "right ontop of target" like most deathball bots. Lane choice is not random at all but when the playing is stomping heavily, mathematical relationships might ignore the fact of danger, assists needed and that jungle lurking is better.

If you want me to look at something specifically please record a match.

If a bot is very low health >and going to die<, they won't waste regen, there are unfinished relationships between consumable use scoring with other tasks.

Laning movement has a bug since some change I made a while ago, when a bot is losing the lane. I would probably fix it if I was able to upload to the workshop.
Earth Spirit Nov 25, 2023 @ 11:51am 
I played some matches and i realised the "dynamic fight decision" is utter bullshit. Bots go a lane randomly, no actual gank or support player in any case. Therefore, no actual team fight (even after 40 mins). player wants to push a lane? other bots will select a random lane and do split push (then die) for no reason. This bot script, for now, is either player owning the lane then do the snowball gank, or lose the game because bots act like completely handicap slots.
Earth Spirit Nov 22, 2023 @ 4:24am 
bot warlocks build max 1, 3 and he never uses 3 during laining phase (at least first 6 mins). And using healing items logic is kinda broken because sometime bots have very low health but decided not using tango / healing slave
Earth Spirit Nov 22, 2023 @ 4:17am 
Bot sniper is broken. it's either stay far away from player's hero, so it can't last hit, or stay too close to be killed easily
Anri Nov 21, 2023 @ 5:58pm 
Yep! when playing support you get a realistic behavior of real players trying to troll you in laning phase and when attacking or defending they lose aggro on enemies very fast even if they only need one more attack but even with those major flaws this is the best script by a long shot (using the github one)
Earth Spirit Nov 21, 2023 @ 2:12pm 
The laning phase seems interesting but sometime offlane bots (pos 3, 4) keeps moving to enemy's tower for no reason. When laning phase completed, the flaw of the bots showed: the bots keep moving close to enemy for no reason, making combat be completely chaotic.
Feels Nov 14, 2023 @ 5:42am 
cool behaviour the only problem is that they dont buy items, same with some other bot script that requires manual installation.
GLHF Oct 30, 2023 @ 7:41am 
I hope you're going to improve your bots mate!
Error 404 Oct 19, 2023 @ 3:04am 
this script bots wont even bother picking, can help pls, thanks