Magic Crystals
Floating magical crystals with orbiting, rainbow tinting, glow, bloom, and spin.
Ambient effects add visible movement without replacing the full weather setup. Use them on their own or layer them with another particle or filter.
| Reference | Value |
|---|---|
| Package | FXMaster+ |
| Effect kind | Particle effect |
| Category | Ambient |
| Runtime type | magiccrystals |
| Exposed parameters | 20 |
Important controls
Section titled “Important controls”- Rainbow: Cycles crystal colors through a rainbow treatment instead of using only the selected Tint.
- Orbit: Makes magic crystals circulate around the effect area instead of only crossing the canvas in a straight or drifting path.
- Spin Speed: Changes how quickly the crystal sprites rotate while moving.
- Glow: Controls the direct glow around each crystal sprite.
- Bloom: Controls the soft bloom around bright crystal pixels.
Setup notes
Section titled “Setup notes”- Rainbow replaces the single Tint color with a changing multicolor treatment.
- Glow and Bloom compound, so raise one at a time while viewing the complete effect stack.
Bundled preset usage
Section titled “Bundled preset usage”| Preset | API name | Availability | Variants |
|---|---|---|---|
| Aether Haze | aether-haze |
FXMaster+ | Normal |
| Ley Surge | ley-surge |
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.
magiccrystals 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) | — | |
Sound FX soundFxEnabled | checkbox | Off | — | Always |
Sound FX Sounds soundFxManualSoundIds | multi-select | Rule default | — | |
Rainbow rainbow | checkbox | Off | — | Always |
Orbit orbit | checkbox | Off | — | Always |
Orbit Distance orbitDistance | range | 0.5 | 0–1 · step 0.01 | |
Scale scale | range | 0.27 | 0.1–1 · step 0.01 | Always |
Speed speed | range | 0.27 | 0.1–1 · step 0.01 | Always |
Lifetime lifetime | range | 0.27 | 0.1–1 · step 0.01 | Always |
Density density | range | 0.17 | 0.1–1 · step 0.01 | Always |
Opacity alpha | range | 1 | 0–1 · step 0.1 | Always |
Spin Speed spin | range | 0.5 | 0–1 · step 0.05 | Always |
Glow glow | range | 0.5 | 0–1 · step 0.05 | Always |
Bloom bloom | range | 0.5 | 0–1 · step 0.05 | Always |
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_wikimagiccrystals_p", "type": "magiccrystals", "options": { "belowTokens": false, "tint": { "value": "#FFFFFF", "apply": false }, "orbit": false, "scale": 0.27, "speed": 0.27 } }],});
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.