3 Filters Elemental
Flaig edited this page 2026-10-18 13:54:35 +02:00
This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Elemental

Fire, lightning, fog, smoke, water and light. Most are procedural noise shaders: set time with a move animation, or they stand still.

Example status: these are parameter demonstrations, many adapted from TokenMagicFX. Every example passes leanFX's validator. Live appearance checks are recorded below each macro; matching colours and the result still depend on your source image. These checks do not establish long-running stability. Some examples intentionally darken or hide the original image.

Columns: Default is the value used when the spec omits the parameter. Animate says whether it can be driven by animated (Animation). Construction options are fixed when the filter is built; changing them rebuilds it.

fire · xfire · electric · fog · xfog · smoke · fumes · flood · liquid · ripples · ray · xray

fire

Fire. Burning flames over the image's pixels.

A shader precision defect can make this effect turn blue and then black over time on GPUs using half precision. It requires the Fire highp shader fix; changing the macro values alone does not fix that defect.

Default zOrder 150

Parameter Type Default Animate Description
alphaDiscard boolean false — Discard the faint, dark parts of the effect instead of drawing them.
amplitude number 1 yes Flame turbulence.
anchorX number 1 yes Horizontal origin of the flames.
anchorY number 1 yes Vertical origin of the flames.
blend number 2 yes How the effect is mixed with the image. See Blend Modes.
color color 0xffffff color modes Tint mixed into the flames.
fireBlend number 1 yes How the tint is mixed into the flames. See Blend Modes.
intensity number 1 yes Flame height; above 1 is taller.
time number 0 yes Shader clock. Static values freeze one frame; animate it with move (see the example) to make the effect flow.
await leanFX.addUpdateFiltersOnSelected([{
  filterType: "fire",
  filterId: "fire",
  intensity: 1,
  color: 0xffffff,
  amplitude: 1,
  blend: 2,
  fireBlend: 1,
  animated: {
    time: {animType: "move", speed: -0.0024},
    intensity: {animType: "syncCosOscillation", loopDuration: 15000, val1: 0.8, val2: 2},
    amplitude: {animType: "syncCosOscillation", loopDuration: 4400, val1: 1, val2: 1.4}
  }
}]);

Visual check: User marked this example working on a Token in Foundry v14 on 2026-10-08. Other images and target types still need their own visual check.

xfire

Magic Fire. Colorful fire with a four-color palette.

Default zOrder 145

Parameter Type Default Animate Description
alphaDiscard boolean false — Discard the faint, dark parts of the effect instead of drawing them.
amplitude number 1 yes Flame turbulence.
blend number 2 yes How the fire is mixed with the image: 1–14, its own set of modes (linear dodge/burn, screen, vivid light, color dodge and burn, mix).
chromatic boolean false — Rainbow color shift.
color color 0x000000 color modes 0 uses the palette color1–color4; any other color replaces the palette with shades of it.
color1 color 0x250000 color modes Palette color 1 (darkest).
color2 color 0xb20000 color modes Palette color 2.
color3 color 0x330000 color modes Palette color 3.
color4 color 0xffe500 color modes Palette color 4 (brightest).
discardThreshold number 0.1 yes With alphaDiscard, brightness below which pixels are cut.
dispersion number 0.25 yes How far the colors spread.
inlay boolean false — Let the image's own colors shape the flames.
scaleX number 1 yes Horizontal flame scale.
scaleY number 1 yes Vertical flame scale.
time number 0 yes Shader clock. Static values freeze one frame; animate it with move (see the example) to make the effect flow.
await leanFX.addUpdateFiltersOnSelected([{
  filterType: "xfire",
  filterId: "magic-fire",
  color: 0x000000,
  dispersion: 0.25,
  amplitude: 1,
  scaleX: 1,
  scaleY: 1,
  blend: 2,
  animated: {time: {animType: "move", speed: 0.001}}
}]);

Visual check: User marked this example working on a Token in Foundry v14 on 2026-10-08. Other images and target types still need their own visual check.

electric

Electric. Crackling lightning over the image.

The example uses blend: 1 (multiply), which darkens the image between lightning bolts. Try blend: 2 (screen) to keep the image lighter. An entirely black result from the first frame can also be the Electric shader precision defect, which requires the highp shader fix.

Default zOrder 160

Parameter Type Default Animate Description
blend number 1 yes How the effect is mixed with the image. See Blend Modes.
color color 0xffffff color modes Effect color as a number, 0xRRGGBB.
intensity number 5 no (construction) Number of lightning layers, integer 1–20. Construction option.
time number 0 yes Shader clock. Static values freeze one frame; animate it with move (see the example) to make the effect flow.
await leanFX.addUpdateFiltersOnSelected([{
  filterType: "electric",
  filterId: "electric",
  color: 0xffffff,
  blend: 1,
  intensity: 5,
  animated: {time: {animType: "move", speed: 0.002}}
}]);

Visual check: User marked this example working on a Token in Foundry v14 on 2026-10-08. Other images and target types still need their own visual check.

fog

Fog. Drifting fog over the image.

A shader precision defect can make the entire image transparent on GPUs using half precision. It requires the Fog highp shader fix. Lowering density reduces the fog mix but does not correct the defect.

Default zOrder 190

Parameter Type Default Animate Description
color color 0xffffff color modes Effect color as a number, 0xRRGGBB.
density number 0.5 yes Fog density, 0–1.
dimX number 1 yes Horizontal pattern scale. Smaller values stretch the pattern.
dimY number 1 yes Vertical pattern scale. Smaller values stretch the pattern.
time number 0 yes Shader clock. Static values freeze one frame; animate it with move (see the example) to make the effect flow.
await leanFX.addUpdateFiltersOnSelected([{
  filterType: "fog",
  filterId: "fog",
  color: 0x000000,
  density: 0.65,
  animated: {time: {animType: "move", speed: 2.2}}
}]);

Visual check: User marked this example working on a Token in Foundry v14 on 2026-10-08. Other images and target types still need their own visual check.

xfog

Thick Fog. Dense, volumetric fog over the image.

The fog stays within the image silhouette. color tints the fog: the earlier blue example was intentional; this example uses neutral white.

Default zOrder 230

Parameter Type Default Animate Description
alphaDiscard boolean false — Discard the faint, dark parts of the effect instead of drawing them.
color color 0xffffff color modes Effect color as a number, 0xRRGGBB.
time number 0 yes Shader clock. Static values freeze one frame; animate it with move (see the example) to make the effect flow.
await leanFX.addUpdateFiltersOnSelected([{
  filterType: "xfog",
  filterId: "thick-fog",
  color: 0xffffff,
  animated: {time: {animType: "move", speed: 0.0006}}
}]);

Visual check: User marked the revised example working on a Token in Foundry v14 on 2026-10-08. Other images and target types still need their own visual check.

smoke

Smoke. Animated smoke wisps over the image.

This is a moving noise overlay within the image, rather than particles rising beyond its edge. Equal dimX and dimY give rounded wisps; a much smaller dimX stretches them into streams. The example uses neutral grey.

Default zOrder 200

Parameter Type Default Animate Description
blend number 13 yes How the effect is mixed with the image. See Blend Modes.
color color 0xffffff color modes Effect color as a number, 0xRRGGBB.
dimX number 1 yes Horizontal pattern scale. Smaller values stretch the pattern.
dimY number 1 yes Vertical pattern scale. Smaller values stretch the pattern.
time number 0 yes Shader clock. Static values freeze one frame; animate it with move (see the example) to make the effect flow.
await leanFX.addUpdateFiltersOnSelected([{
  filterType: "smoke",
  filterId: "smoke",
  color: 0xb0b0b0,
  blend: 2,
  dimX: 1,
  dimY: 1,
  animated: {time: {animType: "move", speed: 0.009}}
}]);

Visual check: User marked the revised example working on a Token in Foundry v14 on 2026-10-08. Other images and target types still need their own visual check.

fumes

Fumes. Swirling fumes or vapors.

Default zOrder 210

Parameter Type Default Animate Description
blend number 2 yes How the effect is mixed with the image. See Blend Modes.
color color 0xffffff color modes Effect color as a number, 0xRRGGBB.
dimX number 1 yes Horizontal pattern scale. Smaller values stretch the pattern.
dimY number 1 yes Vertical pattern scale. Smaller values stretch the pattern.
time number 0 yes Shader clock. Static values freeze one frame; animate it with move (see the example) to make the effect flow.
await leanFX.addUpdateFiltersOnSelected([{
  filterType: "fumes",
  filterId: "fumes",
  color: 0x808080,
  blend: 8,
  animated: {time: {animType: "move", speed: 0.001}}
}]);

Visual check: User marked this example working on a Token in Foundry v14 on 2026-10-08. Other images and target types still need their own visual check.

flood

Flood. Rippling water over the image.

Default zOrder 170

Parameter Type Default Animate Description
billowy number 0.5 yes Wave height, 0–1.
color color 0x0020a9 color modes Water color.
glint number 0.5 yes Sparkle on the water, 0–1.
scale number 70 yes Wave scale; larger values give smaller waves.
shiftX number 0 yes Horizontal offset of the water pattern.
shiftY number 0 yes Vertical offset of the water pattern.
time number 0 yes Shader clock. Static values freeze one frame; animate it with move (see the example) to make the effect flow.
tintIntensity number 0.2 yes How strongly the water color tints the image, 0–1.
await leanFX.addUpdateFiltersOnSelected([{
  filterType: "flood",
  filterId: "flood",
  color: 0x0020bb,
  billowy: 0.43,
  tintIntensity: 0.72,
  glint: 0.31,
  scale: 70,
  padding: 10,
  animated: {time: {animType: "move", speed: 0.0006}}
}]);

Visual check: User marked this example working on a Token in Foundry v14 on 2026-10-08. Other images and target types still need their own visual check.

liquid

Liquid. Flowing, liquid surface over the image.

This example is a strong Spectral Body effect, with spectral: true and intensity: 4. Complete invisibility can be the inherited shader precision defect: it requires the Liquid highp fix. For a gentler starting point, try spectral: false and a lower intensity; those alternatives still need a visual check on your target.

Default zOrder 180

Parameter Type Default Animate Description
alphaDiscard boolean false — Discard the faint, dark parts of the effect instead of drawing them.
blend number 4 yes How the effect is mixed with the image. See Blend Modes.
color color 0x0595ff color modes Effect color as a number, 0xRRGGBB.
intensity number 5 yes Flow strength.
scale number 1 yes Pattern scale.
spectral boolean false — Ghostly, see-through rendering.
time number 0 yes Shader clock. Static values freeze one frame; animate it with move (see the example) to make the effect flow.
await leanFX.addUpdateFiltersOnSelected([{
  filterType: "liquid",
  filterId: "spectral-body",
  color: 0x20aaee,
  blend: 8,
  intensity: 4,
  spectral: true,
  scale: 0.9,
  animated: {
    time: {animType: "move", speed: 0.001},
    color: {animType: "colorOscillation", loopDuration: 6000, val1: 0xffffff, val2: 0x00aaff}
  }
}]);

Visual check: User marked this example working on a Token in Foundry v14 on 2026-10-08. Other images and target types still need their own visual check.

ripples

Solar Ripples. Shimmering, sun-like ripples.

An unchanged image can be the inherited noise precision defect. Updated leanFX shaders use highp; increasing intensity alone does not correct collapsed noise.

Default zOrder 250

Parameter Type Default Animate Description
alphaDiscard boolean false — Discard the faint, dark parts of the effect instead of drawing them.
amplitude number 1 yes Ripple amplitude.
color color 0xbbbbbb color modes Effect color as a number, 0xRRGGBB.
intensity number 0.001 yes Ripple intensity; small values such as 0.001–0.01.
time number 0 yes Shader clock. Static values freeze one frame; animate it with move (see the example) to make the effect flow.
await leanFX.addUpdateFiltersOnSelected([{
  filterType: "ripples",
  filterId: "ripples",
  color: 0xffaa33,
  intensity: 0.005,
  amplitude: 1,
  animated: {time: {animType: "move", speed: 0.0012}}
}]);

Visual check: User marked this example working on a Token in Foundry v14 on 2026-10-08. Other images and target types still need their own visual check.

ray

Rays. Rotating light rays.

Default zOrder 120

Parameter Type Default Animate Description
alpha number 0.55 yes Ray opacity, 0–1.
alphaDiscard boolean false — Discard the faint, dark parts of the effect instead of drawing them.
anchorX number 0.5 yes Horizontal center of the effect as a fraction of the filtered area: 0 left, 0.5 middle, 1 right.
anchorY number 0.5 yes Vertical center of the effect as a fraction of the filtered area: 0 top, 0.5 middle, 1 bottom.
color color 0xff8010 color modes Effect color as a number, 0xRRGGBB.
dimX number 100 yes Horizontal ray scale.
dimY number 100 yes Vertical ray scale.
divisor number 16 yes Number of rays.
time number 0 yes Shader clock. Static values freeze one frame; animate it with move (see the example) to make the effect flow.
await leanFX.addUpdateFiltersOnSelected([{
  filterType: "ray",
  filterId: "rays",
  color: 0xcf8000,
  alpha: 0.5,
  divisor: 32,
  anchorX: 0,
  anchorY: 0,
  animated: {time: {animType: "move", speed: 0.0005}}
}]);

Visual check: User marked this example working on a Token in Foundry v14 on 2026-10-08. Other images and target types still need their own visual check.

xray

X-Rays. Bright, radiating beams, such as a sunburst.

Default zOrder 130

Parameter Type Default Animate Description
anchorX number 0.5 yes Horizontal center of the effect as a fraction of the filtered area: 0 left, 0.5 middle, 1 right.
anchorY number -1 yes Vertical center of the effect as a fraction of the filtered area: 0 top, 0.5 middle, 1 bottom.
blend number 8 yes How the effect is mixed with the image. See Blend Modes.
color color 0xff8010 color modes Effect color as a number, 0xRRGGBB.
dimX number 1 yes Horizontal beam scale.
dimY number 1 yes Vertical beam scale.
divisor number 40 yes Number of beams.
intensity number 0.1 yes Beam intensity.
time number 0 yes Shader clock. Static values freeze one frame; animate it with move (see the example) to make the effect flow.
await leanFX.addUpdateFiltersOnSelected([{
  filterType: "xray",
  filterId: "sunburst",
  color: 0xffba00,
  blend: 9,
  divisor: 36,
  intensity: 4,
  anchorX: 0,
  anchorY: 0,
  animated: {
    time: {animType: "move", speed: 0.0012},
    anchorX: {animType: "syncCosOscillation", loopDuration: 6000, val1: 0.4, val2: 0.6}
  }
}]);

Visual check: User marked this example working on a Token in Foundry v14 on 2026-10-08. Other images and target types still need their own visual check.

Examples run on the selected placeables; see API Reference for other targets.