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.
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.
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.
Let’s open up hero_lich.pcf and take a peek!
A number of tabs will pop up, first is the overview of all the particles in the files(1).
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.
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.
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.
After naming our new particle, it’ll pop up on the list.
As you can see, the properties list is empty. Let’s check out what we can do there.
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.
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.
Let’s pick render_animated_sprites for now.
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.
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.
We’ll start with the Radius random. Set the radius_min to 2 and radius_max to 10.
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!
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.
AND IT’S LIVE!
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.
Let’s fix that!
Add new initializer and pick Lifetime Random set lifetime_min to 1 and lifetime_max to 2.
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.
Now we can go to the System properties and set max_particles to 100.
Let’s pick up something like particle/particle_flares/aircraft_red.vmt
Looks way better, but kind of tiny.
Let’s get back to Radius Random initializer and set radius_max to 20 and radius_min to 10.
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.
Adding Alpha Random will add variety to the intensity of your particles. We’ll set it to alpha_min 120 and alpha_max 200.
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.
We’re going to also add the fadeout, use Apha Fade Out Random operator for that.
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!
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.
Save and restart Dota 2!
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.
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.
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.
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.
Let’s test it now.
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!
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!