YParticles3D is a Shuriken-inspired CPU GDExtension Particle system for Godot 4
YParticles3D is a Node3D you can drop into a scene and it will work as a full particle emitter.
- Lifetime, speed, size, rotation, gravity, looping, delays, playback speed, fixed FPS simulation
- Emission by rate over time, rate over distance, and timed bursts
- Shape-based emission including cone, sphere, hemisphere, box, circle, edge, and mesh
- Curves and gradients for size, velocity, force, color, alpha, rotation, trail width, and more
- Velocity over lifetime, force over lifetime, limit velocity, inherit velocity, and orbit-style motion
- Noise-driven motion using
FastNoiseLite - Attraction toward a position or another
Node3D - Particle collision settings with bounce, dampening, lifetime loss, and quality options
- Texture sheet animation
- Trails with separate lifetime, color, width, texture, and world/local space options
- Sub-emitters for birth, collision, and death events
- Rendering controls like blend mode, billboarding, alignment, render priority, layers, custom mesh, and custom material
YParticles3D has:
- A custom inspector layout
- Grouped controls instead of one giant property dump
- Custom editors for bursts and sub-emitters
The addon currently targets Godot 4.5+.
You can see that in yparticles3d.gdextension, which sets compatibility_minimum = "4.5".
src: C++ source for the particle node and editor integrationtest_project: Godot project used for testing the addontest_project/addons/yparticles3d: the actual addon folder that gets packagedtools: helper scripts for local builds and maintenance.github/workflows/build-plugin.yml: cross-platform build and packaging workflow
The quickest way to test it is to open test_project in Godot.
For a local rebuild:
- Make sure
sconsis installed and available in your shell. - Build from the repo root:
scons target=editor compiledb=yesThat installs the local editor/debug binary into the addon folder used by test_project.
If you just want to use the helper script instead:
python tools/compile_debug_build.pyThe GitHub Actions workflow is set up to produce a zip that works in both places you care about:
- In the Godot editor
- In exported games
The important bit is the target split:
editorbuilds are used for the addon's debug libraries, so editor-only tooling is includedtemplate_releasebuilds are used for exported projects
The workflow also packages the full addon directory, not just the binaries, so the final zip includes:
yparticles3d.gdextension- shaders
- icons
- platform binaries
debug: builds editor-capable debug binaries for testingfull_plugin_compilation: builds editor debug binaries plus release binaries for export
When the workflow finishes, it uploads a finished_unzip_me artifact containing the packaged plugin zip.
Drop the packaged yparticles3d folder into your project's addons directory:
addons/yparticles3d
Then open the project in Godot and enable the addon if needed.
You need:
- Python
- SCons
- A working C++ toolchain
- Git submodules initialized
Clone the repo with submodules or run:
git submodule update --init --recursiveThen build with SCons from the project root. A typical local editor build is:
scons target=editor platform=linux arch=x86_64 precision=singleAdjust platform, arch, and precision as needed.
- The local test project is part of the repo on purpose. It is the easiest place to verify runtime behavior and editor integration together.
- The addon includes a lot of curve- and gradient-driven behavior, so it is easiest to understand by opening it in the editor and poking around the inspector.