What it does
The pack registers twelve named effects with the 3D particle system. Spawn one with
game.particles3d.effect(name, { follow: player }): a box over the player births the particles and the ground through
the player's feet catches them, and the box goes wherever the player goes. Every effect loops until it is killed, and
every one is prewarmed, so a scene starts mid-storm rather than with the first drops.
Each weather is more than its falling particles. Rain splashes and ripples where it lands; drizzle hangs over a low
mist; hail bounces in chips of ice; snow, leaves and blossom wander on a sway of their own; ash sifts down through
embers rising the other way; fireflies blink on their own beats. The storm, blizzard and sandstorm blow sideways, and
yaw turns their wind. The boxes run from 12 to 40 units across, about 30 for most: sized for a character seen from a
follow camera.
Features
- Rain —
rainwith splashes and ripples,drizzleover a low mist, andstorm, a downpour on a hard slant with spray blowing low. - Snow and ice —
snowon a slow sway,blizzarddriven hard sideways under a white veil, andhailbouncing off the ground. - Falling things —
leavestumbling on a gusty wind,petalsof cherry blossom, andashwith rising embers. - Desert —
sandstorm, ochre haze rolling over the ground with streaming grains. - Still air —
firefliesblinking low over the ground, andmoteshanging in a shaft of light. - Changing the weather —
stop()one so what is in the air finishes falling, then kill it and start the next.
Good for
- Open-world and adventure games — rain over a city street, snow in a winter village, leaves in an autumn wood.
- Survival games — a blizzard on a mountain, a sandstorm in the desert, ash over a volcano.
- Third-person action — weather that follows the hero through every level.
- Mood scenes — fireflies over a meadow at dusk, blossom in a garden, dust in an old interior.
Make it yours
Each weather takes a position or an object to follow, scale for sizes, speeds and the box together, and yaw for the
wind. A wider, taller blizzard is blizzard at scale: 1.5; a snowy clearing is snow spawned at a fixed point
instead of following anyone. Every effect is a plain Vfx3dDef, so a game retunes one by copying it from
game.particles3d.defs and registering the copy with registerVfx3d: lighter snow at half the rate, or rain without
its ripples for a forest floor.
A quick look
Rain round the player, then a change of weather:
const rain = game.particles3d.effect('rain', { follow: player });
rain.stop(); // what is in the air finishes falling
rain.kill();
game.particles3d.effect('hail', { follow: player });
Works with
particles-3dandparticle-textures— required: the runtime and the particle frames;core-3dincludes both.vfx3d-lightning— the flash and the bolts a storm does not have.particles-gpu-3dwithvfx3d-fields— tens of thousands to a million particles round the camera, for a whole sky of snow.vfx-weather— the 2D counterpart.
Good to know
- The ground is the plane through the effect's point: rain and snow do not collide with roofs, trees or terrain, and on a slope the weather lands at the height of the player's feet.
- The weather exists only round its point, so a camera looking far away sees the edge of the box; fog hides it.
- The wind is a launch rather than a force, so it does not gust.
- The busiest weathers hold about 1,600 to 1,850 particles, and spawning one prewarms it for a few tens of milliseconds, so start the weather with the scene.






