Let's explain with a quick example :

I would like (if I'm playing Pudge for example) to be able to set a list of the items I will buy (Bottle > Boots > Urn of shadows > etc.) and then by pressing a key (Let's say "b") it would act as follow :

  1. Press b : Purchase bottle then switch to the next item (in this case boots)
  2. Press b : Purchase boots then switch to next item
  3. etc.

Every time I press b it would buy the next item on the list.

Would such a thing be possible ? If yes : how to achieve it and can I set different lists for different heroes ?

2 Answers 2


Yes this is possible.


Create a file called autoexec.cfg (if not already present).

We need to make a list of items first. Reference to my other answer: How to script autobuy of specific items

For example bottle, boots and tpscroll

alias "bottle" "shop_nav_to_tab 0;shop_select_itemrow 11;"
alias "boots" "shop_nav_to_tab 3;shop_select_itemrow 4;"
alias "tp" "shop_nav_to_tab 0;shop_select_itemrow 5;"

then we define shopstart and shopend (this increases the readability a lot)

alias "shopstart" "dota_shop_force_hotkeys 1;toggleshoppanel;"
alias "shopend" "toggleshoppanel;dota_shop_force_hotkeys 0;"

Furthermore we need a cycler who goes through all the items. Reference to another answer: How can I toggle/cycle through settings?

this is the first part of the cycler:

alias "items" "item1"
alias "shopping" "shopstart; items; shopend;"
alias "resetshopping" "alias items item1;"

i added a resetshopping to reset the list to item1

Step 1:

Bind your desired buttons:

bind "b" "shopping"
bind "v" "resetshopping"

Step 2:

create a empty textfile and call it anyheroname.cfg (whatever you like before the .cfg)

then add your desired itemlist to this file

this is the second part of the cycler:

alias "item1" "bottle; alias items item2;"
alias "item2" "boots; alias items item3;"
alias "item3" "tp; alias items item1;"


To extend this script you just need to add an item like

alias "anotheritem" "shop_nav_to_tab 0;shop_select_itemrow 11;"

and add this item to the cycler like

alias "item4" "anotheritem; alias items item1;"

and refresh the old to point to the new one

alias "item3" "tp; alias items item4;"

If you want to do a new herospecific itemlist just create a new heroname.cfg and do the same steps again.


Without using scripts you can still get very close to what you would like with some settings setups.

In game,on the shop window where your suggested items are on the top there is small edit button (looks like pen and paper).When clicked it allows you to customise and rearrange your suggested items list for the hero you are playing with.

Now that you have your shopping lists sorted out you can either:

  • turn on the "auto purchase items" in the settings.Which will automatically buy the items from the list when you have enough gold.The problem is that this option sometimes has a bit weird order of buying the items from the list.

  • Manually "shift-click" in game on the next item on the list to set in in the "quick buy" slot.And in the options set the desired key for the "Purchase quickbuy" option.

  • 1
    I was already using the quickbuy feature but Wandang Solution allow to purchase without opening the shop which save a lot of time
    – WizLiz
    Dec 22, 2013 at 19:43

You must log in to answer this question.

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