I like the solution Heroes of Newerth provided for heroes like Bubbles (Puck in DotA).

Using his first skill (Shell Surf) will override it with a subability which does the second part of the ability (jumping to that location). So in HoN only one button is needed to do both parts of the spell.

In DotA however Valve copied WC3s limited design and you need to use another button to do the second part.

Is there a way to make skills with subabilities only use one button like HoN did?

2 Answers 2


Yes you can archive this by rebinding the button to do the second part.

We just need to define the 2 functions the desired key should have and point to each other

alias "ShellSurf" "dota_ability_execute 0; alias switcher ShellSurfRelease;"
alias "ShellSurfRelease" "dota_ability_execute 3; alias switcher ShellSurf;"
alias "switcher" "ShellSurf"

bind "key" "switcher"

Pressing the key will execute the ability in slot 0 (the first one) and pressing key again will execute the ability in slot 3 (the 4th one). this is archived by pointing switcher successively to each of the functions.

for more detailed info: How can I toggle/cycle through settings?

  • 2
    Keep in mind though that the toggle state is not bound to the skill state. When you use the toggle button to start slot 0 skill but let it time out without using slot 3, your toggle button will still be locked on slot 3 for the next press (which will obviously not work)
    – kasoban
    Commented Dec 23, 2013 at 10:54
  • @kasoban yes thats correct. it needs some time to get used to it but in the end it is an improvement for people who want only 1 button. do you know how to fix this?
    – Wandang
    Commented Dec 23, 2013 at 11:17
  • No. IMHO this is an inconsistency in DOTA2, as for example skills like Bane Nightmare (or, most notably, Spectre ult) get toggled on the same button, while others (like Puck) do not. I honestly don't see a relevant difference between orb porting on Puck and illusion porting on Spectre to justify the button differences...
    – kasoban
    Commented Dec 23, 2013 at 12:06

Here's an alternative solution, this works a lot better without worrying about the state of the command at all, but it's gonna give you a lot of on-screen messages and cooldown sounds which are not very annoying I think.

alias "Skill" "dota_ability_execute 3; dota_ability_execute 0"
bind "[key]" "Skill"
  • well yeah it tries to do both and since only 1 works at any given time the other will give an error message. nonetheless this is a good answer and easier to get used to.
    – Wandang
    Commented Jan 7, 2014 at 9:59

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .