HytaleDocs

Particles (ParticleSpawner)

Asset path: Server/Particles/*.particlespawner

Parent

When set this asset will inherit properties from the named asset.

When inheriting from another ParticleSpawner most properties will simply be copied from the parent asset to this asset. In the case where both child and parent provide a field the child field will simply replace the value provided by the parent, in the case of nested structures this will apply to the fields within the structure. In some cases the field may decide to act differently, for example: by merging the parent and child fields together.

Type information: String

Tags

Tags are a general way to describe an asset that can be interpreted by other systems in a way they see fit.

For example you could tag something with a Material tag with the values Solid and Stone, And another single tag Ore.

Tags will be expanded into a single list of tags automatically. Using the above example with Material and Ore the end result would be the following list of tags: Ore, Material, Solid, Stone, Material=Solid and Material=Stone.

Type information:

(Nullable) Map of the following:

KeyType
any StringArray of String

Shape

Defines in what shape the EmitOffset is calculated.

Type information:

Any one of the following String (defaults to Sphere):

NameDescription
"Sphere"

The particles get spawned in a spheroid area.

"Cube"

The particles get spawned in a cuboid area.

EmitOffset

Defines in what region the particles can be spawned around the ParticleSpawner centre. If it contains:

  • only 1 range, the particle will always get spawned in a line.
  • 2 ranges, the particles will get spawned in a 2d form of the EmitShape. E.g. rings can be created with this.
  • all 3 ranges, the particle will spawn inside the defined shape. This shape can be hollow in the inside via the Min values.

Type information:

(Nullable)

RangeVector3f with the following properties:

KeyTypeDescription
X(Nullable)
Rangef

Rangef with the following properties:

KeyTypeDescription
MinNumber defaults to: 0.0
MaxNumber defaults to: 0.0
Y(Nullable)
Rangef

Rangef with the following properties:

KeyTypeDescription
MinNumber defaults to: 0.0
MaxNumber defaults to: 0.0
Z(Nullable)
Rangef

Rangef with the following properties:

KeyTypeDescription
MinNumber defaults to: 0.0
MaxNumber defaults to: 0.0

UseEmitDirection

If enabled, the spawn offset determines the direction.

Overrides pitch/yaw in InitialVelocity.

Type information: Boolean defaults to: false

TotalParticles

Defines how many particles can be spawned by this spawner at maximum throughout its whole lifetime.

Type information:

(Nullable)

Range with the following properties:

KeyTypeDescription
MinInteger defaults to: 0
MaxInteger defaults to: 0

LifeSpan

Defines how long the spawner lasts in seconds.

If 0, the spawner does not expire.

Type information:

(Nullable) Either Number defaults to: 0.0 or String that matches the pattern: ^(-?Infinity|NaN)$

MaxConcurrentParticles

Defines how many particles from this spawner can be present at the same time.

The client caps this value at 512.

Normally you would use ParticleLifeSpan[Max]*SpawnRate[Max], but if SpawnBurst is enabled, you would additionally multiply it with 1/WaveDelay[Min].

Type information: Integer defaults to: 0

ParticleLifeSpan

Defines how long a particle lasts in seconds.

Type information:

(Nullable)

Rangef with the following properties:

KeyTypeDescription
MinNumber defaults to: 0.0
MaxNumber defaults to: 0.0

SpawnRate

Defines how many particles get spawned:

  • per second normally
  • per wave if SpawnBurst is enabled.

Type information:

(Nullable)

Rangef with the following properties:

KeyTypeDescription
MinNumber defaults to: 0.0
MaxNumber defaults to: 0.0

SpawnBurst

If enabled, the amount of particles defined in SpawnRate get spawned at the same time every wave. The time distance between these waves is defined in WaveDelay.

Type information: Boolean defaults to: false

WaveDelay

Defines the time difference between spawn waves. If SpawnBurst is enabled, it is the delay between bursts. If SpawnBurst is disabled, spawning pauses for this delay after all particles of a wave have expired.

Type information:

(Nullable)

Rangef with the following properties:

KeyTypeDescription
MinNumber defaults to: 0.0
MaxNumber defaults to: 0.0

InitialVelocity

Defines in what direction the particles move upon creation.

Please note that the velocity can be affected by Attractors or UseEmitDirection.

Type information:

(Nullable)

InitialVelocity with the following properties:

KeyTypeDescription
Yaw(Nullable)
Rangef

Rangef with the following properties:

KeyTypeDescription
MinNumber defaults to: 0.0
MaxNumber defaults to: 0.0

Defines the rotation around the y-Axis.

Pitch(Nullable)
Rangef

Rangef with the following properties:

KeyTypeDescription
MinNumber defaults to: 0.0
MaxNumber defaults to: 0.0

Defines the rotation around the x-Axis.

0 / 180 > at the same height as its origin

Down < - 90 + > Up

Speed(Nullable)
Rangef

Rangef with the following properties:

KeyTypeDescription
MinNumber defaults to: 0.0
MaxNumber defaults to: 0.0

Defines the starting speed in the direction set by Yaw and Pitch.

ParticleRotationInfluence

Defines how the rotation of the particle gets affected by the viewing camera or its current motion.

Type information:

Any one of the following String (defaults to None):

NameDescription
"None"

The rotation only gets affected by the Animation/InitialAnimationFrame.

"Billboard"

The particle always faces the camera.

Only the rotation around the z-Axis can additionally affect the rotation.

"BillboardY"

The particle only rotates around its y-Axis(Up-Down) to always face the camera.

Only the rotation around the z-Axis can additionally affect the rotation.

"BillboardVelocity"

Similar to Billboard, only that the y-Axis always aligns with the velocity vector of the particle.

"Velocity"

The particle's y-Axis always aligns with the velocity vector of the particle.

ParticleRotateWithSpawner

If enabled, the particles rotate the same amount around their axis (x,y,z) as their ParticleSystem.

E.g.: If the system rotates 90° around its y-Axis, the particles would all rotate 90° around their own y-Axis.

Type information: Boolean defaults to: false

TrailSpawnerPositionMultiplier

Defines how strong the particles keep their position when their anchor gets moved.

  • 0.0: Moves fully with its anchor.
  • 0.5: Moves half the distance with its anchor.
  • 1.0: Does not move with its anchor.

Type information:

(Nullable) Either Number defaults to: 0.0 or String that matches the pattern: ^(-?Infinity|NaN)$

TrailSpawnerRotationMultiplier

Defines how strong the particles rotate with their ParticleSystem.

  • 0.0: The particles rotate the same amount as their anchor.
  • 0.5: The particles rotate half the amount as their anchor.
  • 1.0: The particles don't rotate with their anchor.

E.g.: The anchor rotates 180° around its y-Axis, with this value being 0.3 the particles would rotate only 126° ((1-0.3)*180°) with it.

Type information:

(Nullable) Either Number defaults to: 0.0 or String that matches the pattern: ^(-?Infinity|NaN)$

VelocityStretchMultiplier

Stretches the Particles based on velocity. Only functions if ParticleRotationInfluence is BillboardVelocity or Velocity.

Needs None in ScaleRatioConstraint to function properly. Effect is barely visible.

Type information:

(Nullable) Either Number defaults to: 0.0 or String that matches the pattern: ^(-?Infinity|NaN)$

Attractors

Attractors are the best way to control the motion of particles over time.

Type information:

(Nullable) Array of the type:

ParticleAttractor with the following properties:

KeyTypeDescription
Position(Nullable)
Vector3f

Vector3f with the following properties:

KeyTypeDescription
XEither Number defaults to: 0.0 or String that matches the pattern: ^(-?Infinity|NaN)$
YEither Number defaults to: 0.0 or String that matches the pattern: ^(-?Infinity|NaN)$
ZEither Number defaults to: 0.0 or String that matches the pattern: ^(-?Infinity|NaN)$

Attractors are used both in ParticleSpawner and ParticleSystem so depending where they are used they may have a different explanation:

Spawner: Offsets the centre of the Attractor from the centre of the ParticleSpawner.

System: Offsets the centre of the Attractor from the centre of the ParticleSpawnerGroup.

RadialAxis(Nullable)
Vector3f

Vector3f with the following properties:

KeyTypeDescription
XEither Number defaults to: 0.0 or String that matches the pattern: ^(-?Infinity|NaN)$
YEither Number defaults to: 0.0 or String that matches the pattern: ^(-?Infinity|NaN)$
ZEither Number defaults to: 0.0 or String that matches the pattern: ^(-?Infinity|NaN)$

Sets an axis for the radial motion. Values can be mixed to change the direction of the axis. You can think of it as defining another position in a coordinate system originating from the centre of the attractor and then drawing a line through this origin and the newly defined point.

E.g.: If the x and y value is 1 it is exactly between the default x and y axis. If x = 2 and y = 1 the axis is 1/3 towards the y and 2/3 towards the x axis.

RadialImpulse can work without axis perfectly fine, while RadialTangentAcceleration and RadialTangentImpulse can cause some interesting effects.

TrailPositionMultiplier(Nullable) Either Number defaults to: 0.0 or String that matches the pattern: ^(-?Infinity|NaN)$

Attractors are used both in ParticleSpawner and ParticleSystem so depending where they are used they may have a different explanation:

Spawner (Advanced, rarely used):

Defines how strong the attractor keeps its position, while the spawner gets moved. This movement for the attractor is individual for each particle, so the movement of the attractor is only stopped, when the particle gets spawned.

E.g.: The spawner moves with speed 1 towards +x and every 0.5 seconds a field of particles (1 x and 1 z max spawn offset) get spawned. The attractor has a TrailPositionMultiplier of 1 (no movement) and a RadialImpulse of -1 (movement towards the axis) and a RadialAxis y of 1. The first wave spawns at the starting position of the spawner and all the particles move towards the centre, while not following the motion of the spawner. The particles for the second wave would spawn with 0.5 +x offset from the prior wave, since the spawner moved, but the particles don't move now to the same place the first wave moved. They now move like the first wave to the centre of their own position, but yet again, don't get dragged with the continued motion of the spawner. The third wave now has 1 +x offset and acts like the second wave. If the TrailPositionMultiplier were 0.5, the particles would move half the speed with the spawner, since the attractor would move half the distance with the spawner and thus the centre the particles move towards gets moved with it.

Both:

  • 0.0: Moves fully with its anchor.
  • 0.5: Moves half the distance with its anchor.
  • 1.0: Does not move with its anchor.
Radius(Nullable) Either Number defaults to: 0.0 or String that matches the pattern: ^(-?Infinity|NaN)$

Defines how far the attractor takes effect. Leave empty for infinite range.

RadialAcceleration(Nullable) Either Number defaults to: 0.0 or String that matches the pattern: ^(-?Infinity|NaN)$

Defines the acceleration away from (positive) or towards (negative) the RadialAxis (if no axis: the attractor centre).

RadialTangentAcceleration(Nullable) Either Number defaults to: 0.0 or String that matches the pattern: ^(-?Infinity|NaN)$

Defines the acceleration of rotation around the RadialAxis. High speed values will cause it to expand.

  • Positive: clockwise
  • Negative: anti-clockwise
LinearAcceleration(Nullable)
Vector3f

Vector3f with the following properties:

KeyTypeDescription
XEither Number defaults to: 0.0 or String that matches the pattern: ^(-?Infinity|NaN)$
YEither Number defaults to: 0.0 or String that matches the pattern: ^(-?Infinity|NaN)$
ZEither Number defaults to: 0.0 or String that matches the pattern: ^(-?Infinity|NaN)$

Lets you define the acceleration along the x,y and z-Axis.

West < - x + > East

Down < - y + > Up

North < - z + > South

RadialImpulse(Nullable) Either Number defaults to: 0.0 or String that matches the pattern: ^(-?Infinity|NaN)$

Defines a constant speed away from (positive) or towards (negative) the RadialAxis (if no axis: the attractor centre). Applied while the particle is inside the effective radius.

RadialTangentImpulse(Nullable) Either Number defaults to: 0.0 or String that matches the pattern: ^(-?Infinity|NaN)$

Defines a constant rotation speed around the RadialAxis, applied while the particle is inside the effective radius. High speed values will cause it to expand.

  • Positive: clockwise
  • Negative: anti-clockwise
LinearImpulse(Nullable)
Vector3f

Vector3f with the following properties:

KeyTypeDescription
XEither Number defaults to: 0.0 or String that matches the pattern: ^(-?Infinity|NaN)$
YEither Number defaults to: 0.0 or String that matches the pattern: ^(-?Infinity|NaN)$
ZEither Number defaults to: 0.0 or String that matches the pattern: ^(-?Infinity|NaN)$

Lets you define a constant speed along the x,y and z-Axis, applied while the particle is inside the effective radius.

West < - x + > East

Down < - y + > Up

North < - z + > South

DampingMultiplier(Nullable)
Vector3f

Vector3f with the following properties:

KeyTypeDescription
XEither Number defaults to: 0.0 or String that matches the pattern: ^(-?Infinity|NaN)$
YEither Number defaults to: 0.0 or String that matches the pattern: ^(-?Infinity|NaN)$
ZEither Number defaults to: 0.0 or String that matches the pattern: ^(-?Infinity|NaN)$

Attractors are used both in ParticleSpawner and ParticleSystem so depending where they are used they may have a different explanation:

Spawner:

Defines the slowdown of the Particles. Used for air resistance. A value of 1 applies no damping, while values above 1 speed the particles up. If at least one value is defined, you should set the others too, since they will be treated as 0, if left undefined. Impulses from attractors are not affected, while InitialVelocity is affected.

System: Defines the slowdown of the ParticleSpawner.

RenderMode

Defines how the particles get rendered.

Default: BlendLinear

Type information:

Any one of the following String (defaults to BlendLinear):

NameDescription
"BlendLinear"

The particles get blended linearly with the environment's background.

"BlendAdd"

The particles get blended additively (lightens) with the background.

"Erosion"

The particle fully covers the background and the lighter the colour the stronger a glow halo is applied to the particle borders.

Opacity values only cut off semitransparent pixels of the texture.

"Distortion"

The particle distorts the background.

LightInfluence

Defines if the environment light affects the colour and brightness of the particle.

0.0: Lighting does not affect it (fullbright). Any other value applies the full lighting.

Any value above 0 removes the glow from Erosion particles.

Type information:

(Nullable) Either Number defaults to: 0.0 or String that matches the pattern: ^(-?Infinity|NaN)$

IntersectionHighlight

Changes the colour of the region of the particle that intersects a block / is near an intersection.

Type information:

(Nullable)

IntersectionHighlight with the following properties:

KeyTypeDescription
HighlightThreshold(Nullable) Either Number defaults to: 0.0 or String that matches the pattern: ^(-?Infinity|NaN)$

Defines how far away from the intersection the highlight still gets applied.

0 disables the highlight.

HighlightColor(Nullable) A color in the form:

  • #RRGGBB

  • rgb(rrr, ggg, bbb)

Defines the colour that gets applied to the region for the highlight.

LinearFiltering

Smoothes the texture, so pixels of low resolution textures are less visible.

Type information: Boolean defaults to: false

UVMotion

Distorts the texture via a flow map. Mainly used for non solid representations like smoke or waves.

Type information:

(Nullable)

UVMotion with the following properties:

KeyTypeDescription
Texture(Nullable) String

Reference to a common asset in the folder:

  • Common/Particles/
with the extension: *.png

Defines the texture used for the distortion. The texture gets tiled to avoid scale conflicts with Scale.

ScaleNumber defaults to: 0.0

Defines the scale of the used texture.

AddRandomUVOffsetBoolean defaults to: false

If checked, randomly offsets the centre of the distortion texture per particle.

SpeedXNumber defaults to: 0.0

How fast the texture should get shifted along the x-Axis over time.

SpeedYNumber defaults to: 0.0

How fast the texture should get shifted along the y-Axis over time.

StrengthNumber defaults to: 0.0

Defines how strong the distortion is.

StrengthCurveType(Nullable) Any one of the following String (defaults to Constant):
UVMotionCurveType
NameDescription
"Constant"

The strength stays the same for the whole lifetime.

"IncreaseLinear"

The strength increases linear from 0 at the start to the defined strength at the end of the particles lifetime.

"IncreaseQuartIn"

The strength increases quartic (power 4) from 0 at the start to the defined strength at the end of the particles lifetime. The start is more smooth this way.

"IncreaseQuartInOut"

The strength increases quartic (power 4) from 0 at the start to the defined strength at the end of the particles lifetime. It slows down quartic at the end so both the end and the start are smooth.

"IncreaseQuartOut"

The strength increases with quartic (power 4) slowdown from 0 at the start to the defined strength at the end of the particles lifetime. The end is more smooth this way.

"DecreaseLinear"

The strength decreases linear from the defined strength at the start to 0 at the end of the particles lifetime.

"DecreaseQuartIn"

The strength decreases quartic (power 4) from the defined strength at the start to 0 at the end of the particles lifetime. The start is more smooth this way.

"DecreaseQuartInOut"

The strength decreases quartic (power 4) from the defined strength at the start to 0 at the end of the particles lifetime. It slows down quartic at the end so both the end and the start are smooth.

"DecreaseQuartOut"

The strength decreases with quartic (power 4) slowdown from the defined strength at the start to 0 at the end of the particles lifetime. The end is more smooth this way.

Defines how the strength of the distortion evolves over time.

CameraOffset

Offsets the particle more towards (negative value) or away (positive value) from the camera.

Used to fix z-fighting if the particle aligns with block/model faces.

Type information:

(Nullable) Either Number defaults to: 0.0 or String that matches the pattern: ^(-?Infinity|NaN)$

ParticleCollision

Defines what should happen, if the particle hits a specific block type.

Type information:

(Nullable)

ParticleCollision with the following properties:

KeyTypeDescription
BlockTypeAny one of the following String (defaults to None):
ParticleCollisionBlockType
NameDescription
"None"

ParticleCollision is disabled

"Air"

Air type Blocks (e.g. foliage, plants) trigger this collision.

"Solid"

Solid type Blocks (e.g. rocks, dirt, wood) trigger this collision.

"All"

All Blocks (except None) trigger this collision.

Defines what Block Type triggers the ParticleCollision.

ActionAny one of the following String (defaults to Expire):
ParticleCollisionAction
NameDescription
"Expire"

The particle disappears upon trigger.

DO NOT USE THIS TO TRY TO OPTIMIZE THE AMOUNT OF PARTICLES! THE CALCULATION OF COLLISION COSTS MORE!

"LastFrame"

Sets the particle to the CollisionAnimationFrame. The particle also stays at the position of collision.

"Linger"

The particle stays for the rest of its lifetime at the position of collision.

Defines what to do when the ParticleCollision is triggered.

ParticleRotationInfluence(Nullable) Any one of the following String:
ParticleRotationInfluence
NameDescription
"None"

The rotation only gets affected by the Animation/InitialAnimationFrame.

"Billboard"

The particle always faces the camera.

Only the rotation around the z-Axis can additionally affect the rotation.

"BillboardY"

The particle only rotates around its y-Axis(Up-Down) to always face the camera.

Only the rotation around the z-Axis can additionally affect the rotation.

"BillboardVelocity"

Similar to Billboard, only that the y-Axis always aligns with the velocity vector of the particle.

"Velocity"

The particle's y-Axis always aligns with the velocity vector of the particle.

Overwrites how the rotation of the particle is influenced by the viewing camera or its motion.

IsLowRes

If enabled, the particles get rendered at a lower resolution to improve performance.

Type information: Boolean defaults to: false

Particle

Contains the defining values of the particle like animation, size, texture, rotation, opacity and colour.

Type information:

Particle with the following properties:

KeyTypeDescription
TextureString

Reference to a common asset in the folder:

  • Common/Particles/
with the extension: *.png

The texture used for the particle.

MUST ALWAYS BE DEFINED!

FrameSize(Nullable)
Size

Size with the following properties:

KeyTypeDescription
WidthInteger defaults to: 0
HeightInteger defaults to: 0

Sometimes the texture has multiple variants of the same texture. If this field isn't defined the whole texture is used for the particle. By defining the dimension of these frames you can cut the texture into smaller parts. To use other frames than the first (most top left) frame you need to change the values in FrameIndex.

Invalid sizes (0 or larger than the texture) are ignored and the whole texture is used.

SoftParticlesAny one of the following String (defaults to Enable):
SoftParticle
NameDescription
"Enable"

The region of the particle near solid geometry gets gradually more transparent. The strength is defined in SoftParticlesFadeFactor. On low-end GPUs this option is treated as Disable.

"Disable"

The particle doesn't gain transparency near solid geometry.

"Require"

Same fade as Enable, but also applies on low-end GPUs.

Soft particles describe how the transparency of the particle changes near solid geometry.

SoftParticlesFadeFactor(Nullable) Either Number defaults to: 1.0 or String that matches the pattern: ^(-?Infinity|NaN)$

Controls how quickly the particle fades near solid geometry. Higher values make the fade region thinner.

CameraNearFadeStartDistance(Nullable) Either Number defaults to: 0.0 or String that matches the pattern: ^(-?Infinity|NaN)$

Distance from the camera where particle opacity starts to increase.

CameraNearFadeEndDistance(Nullable) Either Number defaults to: 0.0 or String that matches the pattern: ^(-?Infinity|NaN)$

Distance from the camera where particle opacity reaches its configured value. Set both near fade distances to zero to disable the fade.

CameraFarFadeStartDistance(Nullable) Either Number defaults to: 0.0 or String that matches the pattern: ^(-?Infinity|NaN)$

Distance from the camera where particle opacity starts to decrease.

CameraFarFadeEndDistance(Nullable) Either Number defaults to: 0.0 or String that matches the pattern: ^(-?Infinity|NaN)$

Distance from the camera where particle opacity reaches zero. Set both far fade distances to zero to disable the fade.

UseSpriteBlendingBoolean defaults to: false

If enabled, the texture between frames gets interpolated if the FrameIndex changes.

AnimationMap of the following:
Map
KeyType

A string that contains any integer

ParticleAnimationFrame

Controls the animation of the particles by listing all the frames. Values range from 0 to 100 since they refer to the percentage of its lifetime.

E.g.: If the lifetime is 2s and the added frame is 50, the frame is shown after 1s or 50% of its lifetime.

NEEDS AT LEAST ONE FRAME!

CollisionAnimationFrame(Nullable)
ParticleAnimationFrame

ParticleAnimationFrame with the following properties:

KeyTypeDescription
FrameIndex(Nullable) Range

If you have cut up the texture using FrameSize you can control which texture frame gets shown.

First frame is numbered with 0.

If Min and Max differ, a random frame in the range is picked.

Scale(Nullable) RangeVector2f

Scales the texture to these values.

Inside Animation, the value multiplies the InitialAnimationFrame scale.

Please note that the side ratios might be constrained.

Rotation(Nullable) RangeVector3f

Rotates the particle.

Inside Animation, the value adds to the InitialAnimationFrame rotation.

Please note that rotation might be overwritten by ParticleRotationInfluence.

Color(Nullable) A color in the form:

  • #RRGGBB

  • rgb(rrr, ggg, bbb)

Tints the texture with this colour. Grayscale textures work the best here.

Opacity(Nullable) Either Number defaults to: -1.0 or String that matches the pattern: ^(-?Infinity|NaN)$

Adjusts the transparency of the particle.

Inside Animation, the value multiplies the InitialAnimationFrame opacity.

-1 (the default) means unset: the frame does not change the opacity.

The RenderMode Erosion behaves differently and cuts off transparent parts instead.

Contains the frame that is used if ParticleCollision is enabled and Action is set to LastFrame.

UVOptionAny one of the following String (defaults to None):
ParticleUVOption
NameDescription
"None"

The texture does not get flipped.

"RandomFlipU"

Randomly flips the texture horizontally or not.

"RandomFlipV"

Randomly flips the texture vertically or not.

"RandomFlipUV"

Randomly flips the texture on both axes together: either both horizontally and vertically, or not at all.

"FlipU"

Flips the texture horizontally.

"FlipV"

Flips the texture vertically.

"FlipUV"

Flips the texture both horizontally and vertically.

Flips the texture horizontally, vertically, both or none.

ScaleRatioConstraintAny one of the following String (defaults to OneToOne):
ParticleScaleRatioConstraint
NameDescription
"OneToOne"

The texture always keeps its original ratio.

"Preserved"

The texture keeps the side ratio of the first scale keyframe (frame 0 of Animation combined with InitialAnimationFrame).

"None"

The sides can be scaled independently during the Animation.

Controls side ratio of the texture.

InitialAnimationFrame(Nullable)
ParticleAnimationFrame

ParticleAnimationFrame with the following properties:

KeyTypeDescription
FrameIndex(Nullable) Range

If you have cut up the texture using FrameSize you can control which texture frame gets shown.

First frame is numbered with 0.

If Min and Max differ, a random frame in the range is picked.

Scale(Nullable) RangeVector2f

Scales the texture to these values.

Inside Animation, the value multiplies the InitialAnimationFrame scale.

Please note that the side ratios might be constrained.

Rotation(Nullable) RangeVector3f

Rotates the particle.

Inside Animation, the value adds to the InitialAnimationFrame rotation.

Please note that rotation might be overwritten by ParticleRotationInfluence.

Color(Nullable) A color in the form:

  • #RRGGBB

  • rgb(rrr, ggg, bbb)

Tints the texture with this colour. Grayscale textures work the best here.

Opacity(Nullable) Either Number defaults to: -1.0 or String that matches the pattern: ^(-?Infinity|NaN)$

Adjusts the transparency of the particle.

Inside Animation, the value multiplies the InitialAnimationFrame opacity.

-1 (the default) means unset: the frame does not change the opacity.

The RenderMode Erosion behaves differently and cuts off transparent parts instead.

Defines the base frame values for the particle animation.

On this page