There weren't many open-source Dota cheats. And so I decided to fix that. Written in C++20 with love
Some SDK bits were fully or partionally taken from McDota by LWSS. It's a very helpful source regarding memory structures
Using GLFW, GLEW and ImGui for the interface, cheers to their wonderful creators!
also using Minhook for bytehooking
also using Google's Protocol Buffers library for net message handling
also using Lua 5.4 and sol2 for scripting
also using DarthTon's BlackBone for injection
also using libcurl for network requests
assets
folder contents are property of Valve Corporation
To open the cheat menu, press Insert
Dota2Cheat follows the legit paradigm, so you probably won't see AutoStop, AutoLastHit or AutoSteal here. Not only because I don't have time for complicated multipurpose scripts for each hero, but also because they can often be spotted without even replaying the game. It's also my personal opinion that if you can't press two buttons in a sequence, then perhaps Dota is not for you.
This list is subject to frequent change as I'm testing new features
-
Automation:
- AutoAccept:
- Customizable delay
- Optional notifications sent straight to your Telegram(start our bot, get your user ID and plug it into the input field!)
- Uses Magic Wand and Faerie Fire with customizable health tresholds
- AutoMidas with customizable min XP reward
- Bounty rune & Aegis pickup
Tome of Knowledge purchaseRIP on 21.04.2023. Goodbye, sweet prince.- Redirects spell casts from illusions to the real hero
- Mana & HP abuse with items like Arcane Boots
- AutoDodge for projectiles
- AutoAccept:
-
Information:
Visible by EnemyRIP on 21.02.2023, you shall not be forgotten- Maphack:
- Teleport Tracker — draws enemy TPs on the map
- Particle MapHack — shows heroes in FoW when they create particles(if possible)
- AbilityESP & ItemESP
- Bars:
- Manabars
- HP amount displayed on healthbar
- Indicators
- Speed indicator — shows whether you are faster or slower than the enemy
- Kill indicator — shows if you can kill the enemy with a nuke(if your hero has one). If you can't, shows how much more health there is than the treshold.
- Draw circles of custom radius around you hero(e. g. to see XP receiving range)
- Shows point-cast spells(Sunstrike, Torrent, Light Strike Array)
- Modifier Revealer:
- Shows target-cast spells(Assassinate, Charge of Darkness)
- Shows Linken's Sphere on everyone
- Shows True Sight on allies and wards
- Renders any and all possible particles, including in FoW
- Customizable enemy illusion coloring
- Shows trajectories of enemy projectiles like Mirana's arrow and non-projectile abilities like Meat Hook
-
Convars:
sv_cheats
spoofing- customizable
dota_camera_distance
with properr_farz
andfog_enable
(no clipping or blue fog) RIP toodota_use_particle_fow
-
Utility:
- Perfect Blink
- Prevents bad spell casts(such as Black Hole/Chronosphere with no one in its radius)
-
Changer:
- Weather changing(Ash, Spring etc)
- River painting
- Unlocks emoticons
- Dota Plus Unlocker
- Allows playing with VPK mods
-
Work in progress:
- Roshan timer
I intend to implement most of the usual cheat functionality
You need to install the protobuf library for it to work. Install vcpkg. Navigate to the folder with vcpkg.exe. Open the console in the folder and enter the following command:
.\vcpkg.exe install protobuf:x64-windows-static-md
This will install the heavier static version of the library.
Once the process completes, go to installed/x64-windows-static-md
. Copy libprotobuf.lib and libprotobuf-lite.lib files from /lib to Dota2Cheat/lib. You can also copy the libs with a d
suffix from debug/lib if you want to compile it in Debug
Open the project in Visual Studio and build both Dota2Cheat and Dota2Loader as Release x64
This cheat can be safely reinjected at any point of the game
Build Dota2Loader and launch it, it will move the necessary resources around and then inject
I KNOW IT DOESN'T WORK ON WIN11, STOP MESSAGING ME ABOUT IT. TRY TO USE SOME OTHER INJECTOR THAT WORKS ON WIN11(JUST DON'T FORGET TO STILL LAUNCH IT, TO MOVE ASSETS)
Use at own risk. Though I use methods that make detection chances as low as possible, there are no guarantees. (also consider not using non-legit features that you can get reported for)
If you encounter a crash and want to inform me of it, do the following:
This method is for errors that are easily reproducible. You're meant to be playing either in the demo mode or a lobby(not on a VAC-protected server!) Build both the cheat and loader in Debug. Launch dota 2, then In Visual Studio Ctrl + Alt + P and select dota2.exe. Now that you're debugging the process, inject the cheat. VS will show you where the exception occurs.
Bugs don't always happen when you need them to. They strike viciously, when you don't expect it. If you have what it takes to be a tester, here are your instruments:
- x64dbg — debugger
- ScyllaHide — plugin for x64dbg that allows you to hide the debugger ring3 programs(VAC is one)
- Use a vac bypass so that VAC doesn't see your LoadLibrary trickery
- An alt account, since disabling VAC only means you won't be banned. No information sent by VAC is suspicious too, you'll be placed in a player pool with cheaters(as I noticed myself)
- Dota2Cheat & Dota2Loader compiled in the Testing configuration such that they function like Release but contain debug information
Upon an exception, examine the file and lines it happened on. In the Call Stack tab you'll be able to trace the call to the function(in case the exception place doesn't provide enough information). Screenshot all of this and then you can make an Issue here with the data.
If you want to tinker with the sources, compile both the cheat and loader as Debug x64(it will use LoadLibrary to allow for debugging and the overlay will not cover the whole screen)
Check out the repo's Wiki, I add useful informations about dota-specific cheat things there
Also has a guide on how to update it