Getting Started, Your First Dota 2 Addon [Calibas Tutorials #1]

edited March 2016 in Tutorials

This is a guide to getting started creating DOTA2 addons, also known as custom games or mods. This first tutorial is aimed at the complete beginner, it will be very basic and walk you through every step. Later tutorials will be more complex, and eventually they'll require at least a basic knowledge of programming.

Update: Now that Dota 2 Reborn Beta has launched, you'll want to install the Workshop Tools by right-clicking on Dota 2 in your Steam library and selecting View Downloadable Content. Then select the checkboxes for Reborn Beta and the Workshop Tools.

If you need more detailed instructions, you can find them here.

Note that the Workshop Tools have moderate system requirements, and not every system will be able to run them. You will need a 64-bit version of windows at the moment, though a 32-bit version of the tools should be available soon. Update: Not sure if this has changed as of Dota 2 Reborn Beta.

After starting Dota 2 - Reborn Beta Tools, a list of example addons will pop up, and you can create a new addon of your own using any of those as a starting point. For the moment though, hit the Create Empty Addon button, give your addon a name, then hit the Launch Dota 2 Workshop Tools button.

A special Dota 2 client will start, along with the Asset Browser where you'll see all the files your addon uses. It may also show the entire list of assets used by Dota 2, which is an enormous list, but you can set it to only display your mod's assets by clicking the button with a folder icon.

enter image description here

Now on to something a little more exciting, Hammer, the map editor. Double click the asset template_map.vmap to load a very basic, blank map in Hammer. You should see the 3d viewport, a preview of the map, and you can hold down the right mouse button on it to use the mouse to look around. When the 3d viewport is selected, you can also use the "wasd" keys to move around the map using first person shooter style controls.

The map itself should just be a big, flat grassy area, with a few objects located in the middle. None of those objects are actually visible within the game, but they're essential to the map, and control things like spawn points, events, lighting and fog. You can click on each to see what it does, but before you do make sure you're using the Objects or Meshes selection mode. If you're using the Groups mode, you'll select everything at once.

enter image description here

If you select an object, you should see its name and a description of what it does in the lower right corner. Just above the name, there's a list of object properties, and note that what's on that list differs depending on which object you have selected.

enter image description here

Now, let's do something a little more fun, add some monsters to the map. Just to the left of the object properties is an assets browser similar to the one the comes up when you first load your mod. Click the Prefabs tab (you may need to resize the pane to see it), then scroll down to the kobold (npc_kobold.vmap). Click and drag it into the 3d viewport, where you can place it on your map.

enter image description here

You can place a few more monsters if you want by dragging them from the prefabs area. You can also use the neutral_camp.vmap prefab, which will spawn random groups of monsters after the match begins.

Now let's add some decorations to the map. In the assets area, click the Models tab, and find something you like. I'm going to be using the first model in the list, badside_bones001.vmdl, for the sake of simplicity. Drag it to the 3d viewport and place it on the map.

Let's rotate the model we just placed, so select the Rotate tool and make sure the model is selected.

enter image description here

You can click and drag the green, blue and red curves to rotate the model around the x, y, and z axes. You'll likely be using the blue one the most, which rotates around the vertical axis.

One last thing before we build our map, let's "translate" the model, which is a fancy term for moving things around. Select your model, and choose the Translate tool.

enter image description here

Click and drag the different colored arrows to move the object back and forth along each axis. Often, it's more convinient to use the 2d viewport, the grid located underneath the 3d viewport, to position items. You can right-click and drag to move around in the 2d viewport, and also use the mouse-wheel to zoon in and out.

Finally, let's build the map, which is how you turn your creation into something you can play in Dota 2. Select Build from the File menu, or simply press F9 to bring up the build dialog. You'll want to use Full Compile at first, and make sure that "Create minimap on load" is selected along with the other options in the "Load Map in Engine" area. Then click Build, and it will likely take a couple minutes for your map to finish building.

When it's done building, your map will load up automatically in the Dota 2 client. Select a hero, and you'll be able to play the map you just created! There's currently no way to win, we'll get to that in the next tutorial, so when you want to exit you can use alt-tab to switch windows. Also, the Workshop Tools are dependent upon the Dota 2 client, so if you close the client, you'll exit the Tools too.

Congratulations! You've built a Dota 2 custom game! In the next tutorial, I'll describe how to create a map that uses the basic Dota 2 rules.

This part of a series of 7 tutorials that are designed to help the beginner get familiar with the Workshop Tools and they end with showing how to write a very simple script.

1. Getting Started, Your First Dota 2 Addon

2. Creating A Basic Dota-style Map

3. Level Design - Adding Terrain & Decorations

4. Level Design - Tilesets, Material Sets & Transitions

5. Level Design - Meshes & Materials

6. Material Editor - Creating New Materials and Overlays

7. Scripting - Basics


  • I wrote a series of seven tutorials about the basics of Dota 2 modding, this being the first one. The website they're currently being hosted on is probably going to shut down soon, so I figured I should copy them over here so they can still help people.

    I'll work on copying the other 6 tutorials over soon.

  • Posts: 5

    Nice tutorial series! i hope the other ones will come soon

  • Posts: 1

    Very dope for a complete beginner! I love that you get the user playing around with systems before you have them trying to mess with coding (like the moddota tutorials do) right away.