Simple Custom Ability

I have created a tutorial on making a simple custom ability here:

I will be making more tutorials on various aspects of Source 2 mapping, which I will most likely post here, on /r/dota2modding, and at Feel free to comment or request particular topics to cover in future videos!


  • Posts: 1,670

    Video is great!

    For the next video I would showing the use of Sublime Dota packages (Lua & KV), and maybe doing something more datadriven (items for example can't be done purely in Lua yet). Here's the extended datadriven ability documentation (alongside Items & Units) which expands from the contents of the wiki.

    Also take note that Lua doesn't require semicolons at all, the Valve examples using semicolons everywhere its mostly because they are too used to C++ :sweat_smile:

    The concept of Modding Community doesn't go well together with Competitive Business
    My Project Page || My GitHub Profile ||

  • Posts: 4

    Cheers Noya, I will probably do a tutorial on Panorama first, but doing some basics on Sublime and the language in general could be quite good. I'll probably do that after the Panorama tutorial, and then maybe one on items, and one on buildings and using external libraries.

    I also am too used to C and other languages which use semicolons :P

  • Posts: 22

    Very nice thanks :)

  • 1up1up
    Posts: 11

    Great video, will try out some custom abilities tomorrow. Thanks alot, please make more vids

  • Posts: 4

    Can you make a video about how to spawn waves of creeps?

  • Posts: 4

    fiCeVitka sure, that's a good idea. It's worth noting that the sample map called Holdout has waves of creeps spawning, so you could look at the code that it uses while you wait for me to make one :)

  • Posts: 8

    Nice tutorial, but I need a tutorial to create (hidden) passives. :C I tried to use this tutorial to make a hidden passive, but I think I'm retarded and can't understand/use this video to make it.

  • edited August 2015 Posts: 1

    Hello people, about a month later, I tried the exact same thing, literally copied and pasted what Birdie wrote there, and it just doesn't seem to work. I get the modifier effect, but the strength gain is nowhere to be seen.

    The console only gives this error:

    [Developer]: CLocalize::FindSafe failed to localize: #DOTA_Tooltip_Ability_super_strength_lua
  • thx bro, would be great to see more of this :-). i like you :-D.

  • Just went through this tutorial. Very helpful even in 7.00 a couple years later. ;) Thanks Birdie!!

    Some additions.

    For the tooltip (@SethPDA)

    In your game addon folder /resource/addon_english.txt add a line to the Tokens block:

            "DOTA_Tooltip_ability_super_strength_lua" "SUPER Strength"
            "DOTA_Tooltip_ability_super_strength_lua_Description" "Gives some SUPER Strength"
            "DOTA_Tooltip_modifier_super_strength_lua" "SUPER Strength"
            "DOTA_Tooltip_modifier_super_strength_lua_Description" "Currently gaining super strength."

    For the icon, in the npc_abilities_custom, in the super_strength_lua block, add

    "AbilityTextureName"     "mud_golem_hurl_boulder"

    enter image description here

    For some advanced bonus points:

    In addon_game_mode.lua in the Precache function, add

      -- Sven Sounds
      PrecacheResource("soundfile", "soundevents/game_sounds_heroes/game_sounds_sven.vsndevts", context)

    Then, you can add the following after the caster:AddNewModifier(...) line in super_strength_lua.lua

            PATTACH_ABSORIGIN, caster)
        EmitSoundOn('Hero_Sven.GodsStrength', caster)

    Which will add a visual effect and a sound.