Tutorial: Expression Enhancement Course #1 — Using Particles

This tutorial course is designed for those who want to try out various visual effects.

Before starting this course, we recommend completing the following tutorial:

This course continues using the same project from the initial tutorial.
If you’ve deleted it, please recreate the tutorial project from the beginning of that course before proceeding.

STEP 1: Create a Particle Object

  1. Click the + button in the Scene tab to create a new scene, then create a Game Object.
  2. In the object creation window, set the following:
    3.Name*: Any name (we’ll use test_particle here)
    4.Template*: particles
    5.Type*: Empty
  3. Once created, save the scene by right-clicking the tab and choosing Save, or pressing the shortcut Ctrl+S.
  4. The created ParticleObject node is a dedicated node for handling particles in visual scripts. Select the ParticleObject node in the Scene window.
  5. In the Inspector on the right, set the Particle Template ID. Various preset particle effects are available.
  6. Try switching between them to preview the effects. However, changing the template will overwrite all current child nodes, so avoid switching templates after adding your own custom particles. After testing, set it back to NONE to return to an empty state.
  7. Click the + button in the top-left of the Scene window.
  8. Add a GPUParticles2D node.
  9. Setup is now complete. In the next step, we’ll go over the basics of creating custom particle effects.

Notes

CPUParticles vs GPUParticles
You might notice two similar nodes — what’s the difference?
Simply put, it’s about whether the particle calculations are done on the CPU or GPU.
In general, GPU particles (GPUParticles2D) are recommended for 2D games where rendering is often the performance bottleneck.
Choose based on your game’s performance profile.

STEP 2: Setting Up GPU Particles

  1. Select the GPUParticles2D node you created in STEP 1, and check the Inspector window.
  2. Click on the empty field next to Process Material and select New ParticleProcessMaterial.
  3. Look at the center preview window. If you zoom in, you’ll see tiny dots falling downward. This is due to gravity. To make things clearer, let’s temporarily disable gravity.
  4. Click the ParticleProcessMaterial to expand its settings. Go to Accelerations > GravityRate and change y from 98 to 0. The particles will stop falling.
  5. Godot’s particle system is highly customizable with many settings. For now, let’s focus on the basics under the “Spawn” section and ignore the others.
  6. First, go to Spawn > Position. This section controls the emission area. Try the following settings:
  • Emission Shape Scale: x: 30, y: 30
  • Emission Shape: Sphere
    This will emit particles randomly from within a 30px radius circle.
  1. We’ll skip the Angle setting for now, as it’s a bit more complex.
  2. Next, check Spawn > Velocity to adjust particle direction and speed. Try setting Initial Velocity: min: 10, max: 100. The particles should now shoot out at a 45-degree angle.
  3. Try setting Direction to y: 1 and Spread to 30. This will emit particles downward in a 30-degree arc.
  4. The settings outside the Spawn section are for more advanced behaviors. Close the process material and let’s test other basic options from the Inspector.
  5. Change Max Amount at the top of the Inspector from 8 to 16. This doubles the number of particles displayed.
  6. In the Time section, change Lifetime from 1 to 0.3. This shortens each particle’s lifespan, making the effect more intense.
  7. Enable One Shot. The particle effect will appear to stop, so make sure Emitting is also enabled.
  • One Shot means the particles are emitted once and then stop.
  • Emitting toggles whether particles are currently being emitted.
    When One Shot is on, Emitting will auto-disable after the lifetime ends.
  1. Go back to Time > Explosiveness and set it from 0 to 1. This makes all particles emit in a burst instead of steadily over time.
  2. Lastly, let’s add a texture. In the FileSystem tab, drag an image from templates > objects > items > I_others to the Texture property of the particle.
  3. The particles will now use the selected image as their appearance.

Next tutorial:


Tips for Advanced Tweaks

Want random angles for each particle?
Change Spawn > Angle in the ProcessMaterial to randomize the initial angle.

Want acceleration effects?
Use the Accelerations section in ProcessMaterial to add:

  • Linear acceleration
  • Radial (from center outward)
  • Tangential (circular motion), etc.

Want animated movement?
Use AnimatedVelocity in ProcessMaterial to dynamically vary direction, angle, and circular movement.

Want visual changes?
Use the Display section to adjust size, color, and even sprite animation.

This tutorial covers just the basics of Godot’s 2D particle system. For more, check the official docs: