Sandstorm
Directional sand particles with top-down support, synchronized wind direction, wobble, and background buildup.
Weather effects can cover a full Scene or be limited to Regions. Configure the placement or movement controls exposed by the effect first, then tune its appearance, population, and optional background controls.
| Reference | Value |
|---|---|
| Package | FXMaster+ |
| Effect kind | Particle effect |
| Category | Weather |
| Runtime type | sandstorm |
| Exposed parameters | 35 |
Important controls
Section titled “Important controls”- Direction: Sets the primary travel direction for airborne sand particles. Directional Spread can add variation around this angle.
- Synchronized Direction: Uses the active Wind or Duststorm direction for Sandstorm. When the source direction changes, this effect follows it.
- Wobble: Controls how strongly the airborne sand field warps from side to side while moving.
- Background: Render a persistent settled-sand surface behind the sandstorm. The surface follows the effect’s stack placement, scene or Region mask, Levels selection, and below-token/tile settings.
- Dune Migration: Slowly moves and reshapes settled dunes after the surface reaches full coverage. The synchronized motion continues across clients and canvas reloads.
- Token Trails: Let visible tokens press darker, lower trails into accumulated sand as they move.
Setup notes
Section titled “Setup notes”- Within an enabled Sandstorm effect, the airborne particles and persistent sand Background can be toggled and configured separately. Disabling Sandstorm disables both.
- Dune Migration, Sand Grit, and Token Trails shape the ground surface, while Wobble changes the airborne particles.
- Sandstorm particles can be paired with Duststorm for a denser treatment, but their Density and Opacity compound where they overlap.
Bundled preset usage
Section titled “Bundled preset usage”| Preset | API name | Availability | Variants |
|---|---|---|---|
| Arcane Winds | arcane-winds |
FXMaster+ | Normal |
| Dust Devil | dust-devil |
FXMaster+ | Normal |
| Meteor Shower | meteor-shower |
FXMaster+ | Normal |
| Sandstorm | sandstorm |
FXMaster+ | Normal |
Parameters
Section titled “Parameters”The table combines the settings available for this effect in Scene and Region contexts. Scene-only and Region-only badges identify controls limited to one context. Hover or focus an info button to see what the parameter changes on the canvas. Select it to keep the card open. Each card also includes the default, range or choices, context, availability, API key, and control type.
sandstorm API typeHover or focus an info button to see what the parameter changes on the canvas. Select it to keep the card open. Context badges identify Scene-only and Region-only controls; unbadged parameters are available in both. Hover or focus an availability condition to highlight the parameter that controls it.
| Parameter | Control | Default | Range or choices | Availability |
|---|---|---|---|---|
Below Tokens belowTokens | checkbox | Off | — | Always |
Below Tiles belowTiles | checkbox | Off | — | Always |
Below Foreground belowForeground | checkbox | Off | — | Always |
Levels levelsScene only | scene-levels | All Levels | — | Always |
Tint tint | color | #FFFFFF (disabled) | — | Always |
Sound FX soundFxEnabled | checkbox | Off | — | Always |
Sound FX Sounds soundFxManualSoundIds | multi-select | Rule default | — | |
Orbit orbit | checkbox | Off | — | Always |
Orbit Distance orbitDistance | range | 0.5 | 0–1 · step 0.01 | |
Speed speed | range | 0.11 | 0.1–1 · step 0.01 | Always |
Direction direction | range | — | 0–360 · step 5 | |
Synchronized Direction synchronizedDirection | checkbox | Off | — | |
Scale scale | range | 0.8 | 0.2–1 · step 0.05 | Always |
Lifetime lifetime | range | 0.55 | 0.1–1 · step 0.01 | Always |
Density density | range | 0.2 | 0.1–1 · step 0.01 | Always |
Opacity alpha | range | 1 | 0–1 · step 0.1 | Always |
Wobble wobble | range | 0.15 | 0–1 · step 0.05 | Always |
Wobble Frequency wobbleFrequency | range | 0.4 | 0–1 · step 0.01 | Always |
Background backgroundEnabled | checkbox | Off | — | Always |
Background Fill backgroundMode | select | accumulate | Full Coverage, Fill Over Time | |
Time to Full Coverage backgroundDuration | range | 180 | 10–3600 · step 10 | |
Background Opacity backgroundOpacity | range | 0.75 | 0–1 · step 0.01 | |
Fill Variation backgroundFillVariation | range | 0.8 | 0–1 · step 0.05 | |
Dune Height backgroundDriftStrength | range | 1 | 0–1 · step 0.01 | |
Dune Size (Grid Spaces) backgroundDriftScale | range | 0.05 | 0.01–1 · step 0.01 | |
Sand Grit backgroundSandRippleStrength | range | 0.45 | 0–1 · step 0.05 | |
Dune Migration backgroundMigrationEnabled | checkbox | Off | — | |
Migration Speed (Grid Spaces/Minute) backgroundMigrationSpeed | range | 0.06 | 0.01–1 · step 0.01 | |
Token Trails backgroundTrailsEnabled | checkbox | Off | — | |
Refill Trails Over Time backgroundTrailRefillEnabled | checkbox | Off | — | |
Trail Refill Time backgroundTrailRefillDuration | range | 90 | 10–3600 · step 10 | |
Trail Width backgroundTrailWidth | range | 0.5 | 0–2 · step 0.05 | |
Trail Strength backgroundTrailStrength | range | 0.72 | 0–1 · step 0.01 | |
Darkness Activation darknessActivationEnabled | checkbox | Off | — | Always |
Darkness Activation Range darknessActivationRange | range-dual | {"min":0,"max":1} | 0–1 · step 0.01 |
Direct-effect API example
Section titled “Direct-effect API example”The Direct Effect API creates a separate row shown through Manage API Effects. Add a stable apiMacro_…_p or apiMacro_…_f ID when later macro calls need to update or stop the same row.
const created = await FXMASTER.api.effects.play({ particles: [{ "id": "apiMacro_wikisandstorm_p", "type": "sandstorm", "options": { "belowTokens": false, "tint": { "value": "#FFFFFF", "apply": false }, "orbit": false, "scale": 0.8, "speed": 0.11 } }],});
await FXMASTER.api.effects.particles.stop(created.particles);For complete API behavior, scene targeting, stack ordering, and toggle groups, see the Direct Effect API guide.