Introduction to Dota 2 particle systems

Particles Splash


This guide will show you the way to test and put your particles in Dota 2. It is actually fairly simple but requires a lot of tinkering to get a fine result. I’d also like to point out that adding particle effect to your item does not make it epic, mythical or any other quality boost, neither it allows for lazy design. It’s also harder for Valve to implement items with custom effects, so think twice if you need one.

Setting up

First of all you’ll need Dota 2 and Alien Swarm. After you’ve installed Dota 2, you’ll need GCFscape to unpack Dota 2 content. Open the pak01_dir.vpk located in your …\Steam\SteamApps\common\dota 2 beta\dota folder.

Then you’ll need to copy the materials, particles and models folders from the unpacked root folder to your …\Steam\SteamApps\common\Alien Swarm\swarm folder.

After this is done, right-click on Alien Swarm in your Steam Library and click on Properties. Then press the Launch Options button and add “-tools -nop4″ there.

And you’re ready to start editing your particles!

Getting it on

Now run Alien Swarm, and select Particle Editor from Tools menu.

Particle Editor

You’re ready to open the particle effect files. Particle Editor will automatically open the particles folder, so let’s go to the units/heroes/ subfolder.

File Browser

Let’s open up hero_lich.pcf and take a peek!


Particle Editor

A number of tabs will pop up, first is the overview of all the particles in the files(1).


Particle labels

Unchecking “Show Previews” will display the particles as a list of labels. Numbers next to the name labels show the number of Parents and Children.

Most of the particle effects are actually a number of particle systems that work together.


Particle Preview

In bottom right corner is the preview tab (3), that’s pretty straightforward. You can use your mouse to zoom/pan/rotate the preview window.


Particle Properties

And now, for the main course. Properties tab (2) is the tool that will allow us to shape our particles. There’s a list of the properties on the left and detailed settings for them on the right.


Creating new particles

Let’s create a new particle system, press the Create button on the overview tab.

Create Particles

After naming our new particle, it’ll pop up on the list.


New Particle

As you can see, the properties list is empty. Let’s check out what we can do there.


Prooperties List

Every particle system is made up of a bunch of components on top of the main properties, let’s take a look at them:

Renderers define how your particles are drawn. Right-clicking on the renderer properties will allow you to add a new property.


New Renderer

This will bring up a list of renderers, as you can see, the particle systems could be drawn in a number of ways, from animated sprites to ropes.


Render list

Let’s pick render_animated_sprites for now.


render rate

This will add the property to the list and allow you to edit the settings for it. Let’s change up the animation_rate to 0.9, and that’s it for now.


You can read up more on renderers and how they work here.


Next ones are Operators.

Operators define things like movement types, alpha fadeouts, lifespan and bunch of other stuff, let’s take a look.

Operator list

Let’s start with the Movement Basic, it defines the basic movement of your particles and here we’ll change gravity from 0 0 0 to 0 0 90 (X,Y,Z), so out particle will go up.


That’s it for the operators for now, but don’t worry, we’ll get back to it!

To read more on the operator, take a peek here.


Initializers are determining the particles starting state.


init list

We’ll start with the Radius random. Set the radius_min to 2 and radius_max to 10.

radius random

This will set our particles with random size on spawn, to add that extra natural feel.

To read more on the initializers, head out here.


And last, but not least, let’s add an Emmiter, you know, the thing that emits the particles!

emitter list

There’s not much to choose from, so we’ll pick emit_continuously and set the emission_rate to 60.

To read up on emmiters, click here.


First Particle


But wait, it doesn’t look quite right! Let’s head back to the properties and start tweaking it!

First thing you could’ve noticed is that after some time your particles (which are white boxes for now) stopped appearing. That’s because they’re not dying out and they stop emitting after the particle count cap is reached.

No particles

Let’s fix that!


Add new initializer and pick Lifetime Random set lifetime_min to 1 and lifetime_max to 2.

Lifespan controls

We’re halfway there, now add Lifespan Decay operator, it will delete the particle when it’s lifetime is expired. And by adding Lifetime Random initializer we create each new particle with a lifespan from 1 to 2.

Now you’ll notice that the particle count is not going higher than 100 and particles emit continuously.


they're back!

Now we can go to the System properties and set max_particles to 100.

100 particles

And let’s set up our particles look. Clicking on the arrow next to the Material will open up a browser, that will let you pick the material file you want to use.Material Arrow

Let’s pick up something like particle/particle_flares/aircraft_red.vmt

Aircraft red

Looks way better, but kind of tiny.

red particles

Let’s get back to Radius Random initializer and set radius_max to 20 and radius_min to 10.

Bigger Better

That’s more like it.

Our particle effect still looks kind of stiff, so let’s add some more initializers. First of all, let’s add Rotation Random. This will add some rotation to the particles on spawn.

Rotation Random

Rotation Comparison

Adding Alpha Random will add variety to the intensity of your particles. We’ll set it to alpha_min 120 and alpha_max 200.

Alpha randomAlpha Random

Position within Sphere Random will create a sphere and will spawn particles inside of it, distance_min and distance_max will regulate the size of it.

Position within sphere

We’re going to also add the fadeout, use Apha Fade Out Random operator for that.

Alpha Fadeout

Okay, so let’s do a quick test then. Go to File -> Save As and save our particle file to your ..\Steam\SteamApps\common\dota 2 beta\dota\particles\units\heroes

Now run Dota 2 with “-override_vpk” launch option and head to the loadout section of the Store tab, let’s check out our Lich!

Sad lich

And it’s not there! Let’s see what gone wrong?

We can attach our newly created particle to the existing one, by making it a children. Find lich_ambient_frost and right-click on the Children list. There pick your particle and voila, it’s now added to the ambient ball Lich holds in his hand. Now save it and let’s check it out ingame again.

Parenting advice

Save and restart Dota 2!

Happy Lich

Neat, it’s working! Now, let’s see what else we can do!

Movement Lock to Control Point operator will lock the particle system to the control point and prevent it from trailing.


Now let’s change the color of our particles.

Mixed colors

Simply changing the color property will almost hide our particles, why’s that? First of all, that’s because our sprites are red, tinting it with blue almost diminishes them, so let’s change our material from aircraft_red to aircraft_white, this will make our colour changes working.

Aircraft white

Now let’s do some more color tweaking. Adding Color Random initializer allows you to randomize the color of your particles on spawn, this way you can create more variation.

Color Random

More colors

Now let’s try some more movement variations.

Oscillate Vector operator will add some oscillation to your particle. Set up oscillation_rate_min to -1 -1 -1 and oscillation_rate_max to 1 1 1. You’ll notice the particles getting new wavy motion. You can decrease Movement Basic gravity value to 0 0 0 to see the effect clearly.

OscillateParticles GIF


Let’s test it now.

Lich triple happy

Looking great!

And that’s pretty much it for basics!

Doesn’t seem that hard now, does it? While this seems pretty basic, i showed you the concepts and working of the particle systems, that should be enough for you to be able to start diggin from here!

What’s next

Now you can edit existing and create new particle effect, but what’s next? Well, if you’re impatient type, you can crack open existing particles and start figuring out how everything works and where can you push it. If you’d rather read up first, head to the dev wiki and fill up on specs.

My advice is to get familiar with the basics and then check out the existing particle effect to better know what you can do with the tools. You know where the hero  particles are located, and you can find the effect for the economy items in your ..\Steam\SteamApps\common\Alien Swarm\swarm\particles\econ\items folder.

What about particle effects that use models you ask? They’re pretty much the same, except they use Render Models renderer. You do need a basic knowledge of model compiling to edit those, but if you’re trying to edit the particles, you probably know that.


You can also directly copy the particle effects from other particle files by pressing Ctrl+C and Ctrl+V, so try that too!



Unfortunately, while we don’t have the proper tools, this particle editing is a crutch, so you won’t be able to use the particle editor to full extent yet, but don’t worry, tools will come one day!


Let me know if you have any questions on Steam or Twitter

  • L1Q

    Holy sh#t! Awesome! I was w8ing for this for long thx u very very much!!!

  • Ionut Suta

    am i doing something wrong? because when i try to open allien swarm(tools mode) from launcher it’s crashing, why ?

    • Russia

      Particlemanifest.txt reason of crash. You need Particlemanifest.txt version of allienswarm.

  • Guest

    Ilen swarm crashed fro me too. Validate the chache & it’ll be fine. I have another problem now. There is avtualy no particle editor in tools menu.

  • L1Q

    lol last comment was sent as guest for some reason xD. anyway. What im doing wrong right now?

  • flashice2030

    HI, there
    ” run Dota 2 with “-override_vpk” launch option and head to the loadout section of the Store tab .” where the specific location to review the model ,I mean in the store tab,should I need upload compiled Mld file in the publish item tab to see the results?

  • L1Q

    man, i’ve found the solution.

    here it goes in this thread

    So what u are gona NOT do:
    dont change any Launch Options nor run Alien swarm itself.


    1. go to your Steam Library -> Tools & find there “Alien Swarm – SDK” & install it.

    2. launch Alien Swarm – SDK

    3. Use Alien Swarm (Tools Mode)

    4. Profit! Particle editor is actualy here.

  • TaSay hayNguoiSay

    SteamSteamAppscommondota 2 betadotaparticlesunitsheroes

    why i cant find this folder to save?

    • L1Q

      why not just create it?

    • schnoodly

      late, but it’s now under SteamSteamAppscommondota 2 betadotaROOTparticlesunitsheroes

  • Rolleitz

    Thank you for this introduction, which inspires me a lot. I just wonder how to upload particle effect files via dota2 workshop upload system?

  • Nate

    Thank you! I’m probably going a little far, but I’m attempting to add particles to a hero that doesn’t have any on their weapon. I’ve tried copying the .qc syntax that doom uses and it compiles fine, but I can’t seem to get it to load/preview.

  • Simon Stringer

    hey there great guide ! really helped me get the basic particle effects down however i have a question,how would i go about changing the color of juggers blade fury ? i’ve tried the color option and the materials option but to no avail would i have to recreat the effect from scratch or is the a simple way to do it ?

  • Hosein Tafakh

    hi dude i wana change the ghost of elder titan and some effect of his w spell is any way i can do it ?!

  • John

    hi, so i can’t find particles folder in dota folder, also when i create a particle folder and lunch dota 2 with the lunch command, when i open dota i can’t see anything, i did exactly what is shown in the tutorial and the partciles does not show, please help guys!

    • schnoodly

      Hey, the particles folder is now under SteamSteamAppscommondota 2 betadotaROOTparticlesunitsheroes

  • BlackSheep

    Hi, when I attempt to load particles, it doesn’t show anything but black and pink textures. Anyone know how to fix this?

  • schnoodly

    Another way to do this, instead of using Alien Swarm, is through the Source Filmmaker Particle editor if you have SFM already installed!

  • Nikita

    Vlad, could you make a guide that explains how to make a Particle in the place where they are not, such as a helmet centaur?