Skip to Content

Mesh

Mesh VFX are 3D effects created by animating parts.

Any type of ‘Start’ and ‘End’ parts within a model create a valid Mesh VFX. The simplest and most common way of creating mesh effects is to just use MeshParts.

Note

MeshPart and Union effects cannot be reasonably pooled , which means that their CFrames are not updated in bulk. Emitting a lot of these effects could impact performance more than if you were to use SpecialMeshes and basic parts.

So you may want to use a simple structure like this:

MeshPart VFX
  • Model
    • Start
    • End

The plugin also supports mesh flipbooks. You can learn more about using them in this tutorial. If you either want to use flipbooks or have better performance, you will need to use this kind of structure:

SpecialMesh & Decal VFX
  • Model
    • Start
      • SpecialMesh
      • Decal
    • End
      • SpecialMesh
      • Decal

You can have multiple decals in a mesh, just make sure the names of each decal pair are unique. Here’s an example:

Multiple Decals Example
  • Model
    • Start
      • SpecialMesh
      • Wind
      • Impact
    • End
      • SpecialMesh
      • Wind
      • Impact

That covers the basics! Keep in mind that meshes are not physics-based, meaning they do not act like particles, but rather are statically animated. That said, there are attributes like SpreadAngle and random rotation. You can use them to randomize your meshes and partly mimic particles.

Note

Note that not all properties are animated. If you want to animate an unsupported property, use Tween Properties. All animated properties can be found in the curve summary below.

Summary

Attributes

EmitDelay : number

The amount of seconds waited before the effect is emitted.

EmitDuration : number

The amount of seconds the effect is delayed by.

EffectDuration : NumberRange

The minimum and maximum duration of the effect.

SpreadAngle : Vector2

The amount of random spread applied to the CFrame animation.

SyncPosition : boolean

Decides whether the effect follows its origin after being emitted.

Enabled : boolean

When true, emits a set amount of times per second.

Rate : number

Determines how many times per second an effect is emitted when Enabled.

MinInitRot : Vector3

The minimum init rotation applied to the part.

MaxInitRot : Vector3

The maximum init rotation applied to the part.

Curves

Part_CFrame

Controls the easing of the CFrame animation.

Part_Transparency

Controls the easing of the Transparency animation.

Part_Size

Controls the easing of the Size animation.

Part_RotSpeed

Controls the easing of the RotSpeed animation.

Mesh_Scale

Controls the easing of the Scale animation.

Speed

Controls the speed of the effect.

Attributes

EmitDelay

number

The amount of seconds waited before the effect is emitted.

EmitDuration

number

The amount of seconds the effect is delayed by.

EffectDuration

NumberRange

The minimum and maximum duration of the effect.

SpreadAngle

Vector2

The amount of random spread applied to the CFrame animation. Applied around the origin.

SyncPosition

boolean

Decides whether the effect follows its origin after being emitted.

  • Meshes, Beziers, and Spin Models find their first attachment or part ancestor and follow its CFrame.
  • Shockwave Lines follow the CFrame of their origin attachment. SyncPosition Lines are useful for creating non-straight paths.

Enabled

boolean

When true, emits the effect a set amount of times per second. A special tag is required for this attribute to work. You can add it in the ‘Behavior’ section.

Rate

number

Determines how many times per second an effect is emitted when Enabled.

MinInitRot

Vector3

The minimum init rotation applied to the part.

MaxInitRot

Vector3

The maximum init rotation applied to the part.

Curves

Part_CFrame

Controls the easing of the CFrame animation. The starting and ending CFrames can be changed by moving the Start and End parts.

Part_Transparency

Controls the easing of the Transparency animation.

Inputs

Start

[0; inf]

The starting value of the curve.

End

[0; inf]

The ending value of the curve.

Part_Size

Controls the easing of the Size animation. The starting and ending sizes can be changed by resizing the Start and End parts.

Part_RotSpeed

Controls the easing of the RotSpeed animation. Only applies to non-zero init rotation axes.

Inputs

Start

[-inf; inf]

The starting value range of the curve.

End

[-inf; inf]

The ending value range of the curve.

Mesh_Scale

Controls the easing of the Scale animation. The starting and ending scales can be changed by editing the Scale property of the SpecialMeshes inside the Start and End parts.

Speed

Controls the speed of the effect. If it becomes negative, all of the animations start going backwards.

Inputs

Duration

[0; inf]

The amount of seconds it takes to reach the End value.

Start

[-inf; inf]

The starting value of the curve.

End

[-inf; inf]

The ending value of the curve.

Last updated on