What it does
The pack registers twelve named effects with the 3D particle system. Spawn one with
game.particles3d.effect(name, opts): a one-shot plays and removes itself, a loop runs until you kill it. They are
data, so they cost nothing until one plays, and they replay identically from the game's seed.
Every effect treats its own height as the water's surface. Droplets rise from it, stretch along their flight, arc
under gravity and die where they fall back through it; rings lie flat on it and widen; mist and foam sit over it. Each
is layered from several emitters, coloured from white through pale blue to the blue of the water. So you spawn a
splash at the water's level, and drips and sprinkler where the water lands. A wake follows a boat, and because
its particles stay where they were born, the boat leaves its foam behind.
Features
- Splashes —
splash, a crown of droplets about three units tall with a jet, mist, foam and rings;dropletsfor a pebble or a raindrop; andfootSplash, a step in a puddle. - Drips —
drips, a bead that swells, falls and lands as a ring every 1.4 seconds. - Jets —
spray, aimed withyawandpitch;sprinkler, two jets turning round a lawn head; andfountain, a jet about 3.5 units tall inside an umbrella of droplets. - Big water —
geyser, a column about five units tall collapsing in spray and steam, andwaterfallMist, the churning white base of a waterfall. - Calm and underwater —
ripplesspreading across still water, andairBubblesrising in clusters. - Wakes —
wake, foam, widening rings and spray at the head, a trail when it follows something.
Good for
- Adventure games — a player or a boulder falling into a lake, a dripping cave, the foot of a waterfall.
- Boating and swimming — a wake behind every boat and swimmer, ripples round a fishing float.
- Towns and gardens — a fountain in the square, a sprinkler on the lawn.
- Underwater levels and hazards — bubbles from a diver or a wreck, a geyser field, a burst pipe.
Make it yours
Each effect takes a position or an object to follow, scale, yaw, pitch and roll, a layer and a timeScale.
scale multiplies every size, speed and distance, so a splash at scale: 2 is twice as big, and drips scaled by a
ledge's height over 2.5 falls exactly that far. One game spawns footSplash on every step through a flooded street
and a wake behind each boat; another builds a town square from a fountain, a sprinkler and waterfallMist at the
foot of a cliff. A muddy splash for a swamp or a green one for slime is a copy from game.particles3d.defs with new
colours, registered with registerVfx3d.
A quick look
A splash where the player hits the water, a wake behind a boat and a hose:
game.particles3d.effect('splash', { x: p.x, y: water.level, z: p.z });
game.particles3d.effect('wake', { follow: boat, offset: { y: -0.2 } });
const hose = game.particles3d.effect('spray', { x: 2, y: 1, z: 0, yaw: 90, pitch: -15 });
hose.kill(); // a loop plays until it is killed
Works with
particles-3dandparticle-textures— required: the runtime and the particle frames;core-3dincludes both.water-3dandwatermax— the water surfaces these effects sit on.underwater-3d— the underwater scene for the bubbles.vfx-water— the 2D water effects.
Good to know
- Droplets do not land on terrain or objects: there is no collision, only the effect's own surface height.
- The
wakeemits by time rather than by distance, so a fast boat spreads its foam thinner and a still one leaves a patch. - The rings are flat quads just above the surface, so on rough water or sloping ground they can clip.
- The busiest,
geyser, peaks near 400 live particles andfountainnear 300; the rest stay under about 150.






