Divine Skins
Divine Skins Wiki

Emitter Library

bindWeight controls how much the particle follows the movement of the bone it’s attached to.

Bind Weight

bindWeight controls how much the particle follows the movement of the bone it’s attached to.

  • 1 → fully follows the bone
  • 0 → stays in place Image
bindWeight: embed = ValueFloat {
    constantValue: f32 = 1
}

Rate

rate controls how many particles are spawned per second by the emitter.

Image

Example: 1 Particle

rate: embed = ValueFloat {
    constantValue: f32 = 1 // 1 particle in emitter
}

Example: 20 Particles

rate: embed = ValueFloat {
    constantValue: f32 = 20 // 20 particles spawning in 1 emitter
}

Particle Lifetime

  • particleLifetime defines how long each particle lives after being emitted.
  • lifetime defines how long the emitter itself lasts before disappearing.
Image

Finite Lifetime

particleLifetime: embed = ValueFloat {
    constantValue: f32 = 1
}

Infinite Lifetime

particleLifetime: embed = ValueFloat {
    constantValue: f32 = -1 // infinity
}

Emitter Lifetime

lifetime: option[f32] = {
    1
}

Particle Linger

particleLinger delays the disappearance of particles after the emitter finishes, allowing them to remain visible for a set duration (in seconds).

Image
particleLinger: option[f32] = {1}

Misc Render Flags

miscRenderFlags controls special rendering behaviors for the particle.

Image
miscRenderFlags: u8 = 1
Image
miscRenderFlags: u8 = 0

Emitter Position

EmitterPosition sets where particles spawn relative to the emitter.

  • Higher Y → moves up
  • Lower Y → moves down
Image

Position Examples

EmitterPosition: embed = ValueVector3 {
    constantValue: vec3 = { 0, 100, 0 } // higher
}
EmitterPosition: embed = ValueVector3 {
    constantValue: vec3 = { 0, -100, 0 } // lower
}
EmitterPosition: embed = ValueVector3 {
    constantValue: vec3 = { 100, 0, 0 } // right
}
EmitterPosition: embed = ValueVector3 {
    constantValue: vec3 = { -100, 0, 0 } // left
}
EmitterPosition: embed = ValueVector3 {
    constantValue: vec3 = { 0, 0, 100 } // forward
}
EmitterPosition: embed = ValueVector3 {
    constantValue: vec3 = { 0, 0, -100 } // backward
}

Translation Override

translationOverride moves the particle system independently of emitter settings and offsets the entire system globally.

Image
translationOverride: vec3 = { 0, 100, 0 } // higher
translationOverride: vec3 = { 0, -100, 0 } // lower
translationOverride: vec3 = { 100, 0, 0 } // right
translationOverride: vec3 = { -100, 0, 0 } // left
translationOverride: vec3 = { 0, 0, 100 } // forward
translationOverride: vec3 = { 0, 0, -100 } // backward

Time Before First Emission

timeBeforeFirstEmission defines how long the emitter waits before spawning particles.

Image
timeBeforeFirstEmission: f32 = 1

Eye Candy

mEyeCandy enables or disables the Hide Eye Candy option in video settings.

Must be placed at the bottom of a particle system.

Image
mEyeCandy: bool = true // or false

Pass (Draw Order)

Pass controls draw order, similar to layers in Photoshop.

Image
  • Pass = 0 → bottom layer (drawn first)
  • Pass = 16 → top layer (drawn last, renders above others)
Pass: i16 = 0

Blend Mode

blendMode defines how the particle blends visually.

blendMode: u8 = 1

Blend Mode Values

  • 1 — No transparency

    • Safe to recolor black or white
  • 3 / 4 (SCB) — Standard transparency ⚠️ Do not recolor too dark or the particle may become invisible in-game

Here’s that snippet converted into clean Markdown, matching the style of the rest of the doc:


useNavmeshMask controls whether the particle system uses the terrain as a mask.

Enabled (Uses Terrain as Mask)

Image
useNavmeshMask: flag = true

The particle will be masked by the terrain.


Disabled (No Terrain Mask)

Image
useNavmeshMask: flag = false

The particle will ignore terrain masking.