Hawk logoHawk logo

Valve released a blog about how they fixed Techies' Sticky Bomb

Last updated:  Techies Dota 2
Valve released a blog called “Between the Lanes: Unbreaking A Bomb” where they talked about Techies' Sticky Bomb bug and how this bug appeared and how it was fixed.

The developers decided to start a series of blogs called “Between the Lanes”:

Introducing Between the Lanes, a new blog feature where we let members of our development team walk through some of the challenges, bugfixes, and occasional happy accidents we encounter while working on a game as unique as Dota.

In the first issue of the blog, Valve decided to talk about the Sticky Bomb bug with Techies and Twin Gates:

The Techies’ Sticky Bomb bug is a perfect example of this. The roots of the bug were introduced as far back as the Techies update last year, when we unveiled a rework of their abilities and playstyle. This rework created a bug where Techies’ Sticky Bombs didn't expire, and in some cases became controllable by the casting player.  But interestingly, because of the parameters of the game at the time, there were no circumstances where the bug could actually occur in a match. So it laid dormant until the Twin Gates appeared with The New Frontiers 7.33 Update this past spring.

Techies Sticky Bomb Twin Gates bug

Recall that with the help of a bug with Gates, a Techies player could create eternal bombs that could be controlled. Of course, this created an imbalance on the map, and in some cases led to FPS drops.

Techies Sticky Bomb bug

According to the developers, after reworking Techies and his abilities, they borrowed some mechanics for new skills from the previous ones. Thus, in order not to come up with something new, the developers took the prototype of the mechanics of Remote Mines for sticky bombs, which used the same basic type of summoned creature called npc_dota_techies_remote_mine:

Techies’ Sticky Bombs utilize a “toss”/”chase”/”countdown to explode” sequence that is managed by a series of server-side modifiers (buffs) on the NPC to handle the unit motion and behavior of each step in the sequence. The "chase" and "countdown" modifiers prevented player orders via state flags in the modifier itself. The "toss" modifier prevented many types of player commands as a result of being a motion controller, along with the nature of the npc_dota_techies_remote_mine itself (specifically, that the NPC has AttackCapability DOTA_UNIT_CAP_NO_ATTACK).

Techies Sticky Bomb Remote Mines

Because Remote Mines could be manually detonated by Techies using an ability on the mine itself, the Remote Mine NPC was permitted to use abilities. This means it was flagged as both owned by the casting player (for kill credit) and as controllable by the casting player. Right-clicking on a Twin Gate (or any channelable map entity) mechanically functions by converting an attack click into an ability cast on the channel target (you're "casting" on the Twin Gate while channeling). Other map entities require a hero to do the channeling. However, because Roshan can use the Twin Gates, non-hero units are permitted to channel them.

Due to the Twin Gates mechanic that other creatures can use, there was a Sticky Bomb bug. At the moment when she was in the air after being thrown, the player could select it along with the hero and click on the Twin Portal. The bomb exited the throw state, started teleporting and the algorithm was interrupted, which caused the error.

The solution, once all this was understood, was pretty simple. The Sticky Bomb does not ever need to be controllable by the casting player. Removing this flag from the Bomb meant that the expected sequence of modifiers always executed as they were supposed to, leading to an eventual detonation.

Techies Sticky Bomb bug solution

As a result, most of the developers' time was spent on finding the cause of the bug.

What happens next? Well, now we sit and wait to discover whatever new bug we created by deleting that line of code to fix the original bug. If you stumble on it, we’ll see you over on GitHub.
top match
in 9 hours
Xtreme Gaming
BO2
Nigma Galaxy
upcoming
Lunar Snake Trophy
Roar Gaming
04:00
Team Nemesis
BO3
Lunar Snake Trophy
Roar Gaming
07:00
Yangon Galacticos
BO3
DreamLeague S26
Xtreme Gaming
10:00
Nigma Galaxy
BO2
DreamLeague S26
Team Liquid
10:00
OG.LATAM
BO2
DreamLeague S26
BetBoom Team
10:00
BOOM Esports
BO2
Results
MAD DOGS LEAGUE
Project Achilles
Prime Legion
Dota 2 Space League
TOXIC TEAM
Silent killer
Dota 2 Space League
Vertex Pack
Wild Dragon
MAD DOGS LEAGUE
Prime Legion
Moonlight Wispers
MAD DOGS LEAGUE
Freedom Fighters Team
Project Achilles
DreamLeague S26
Edge
Talon Esports
DreamLeague S26
Team Falcons
AVULUS
DreamLeague S26
PARIVISION
NAVI Junior