Advanced Properties¶
Oh? Basic properties aren't enough for you? Fine.
The system has many other properties that you can use to have even more control and flexibility over particle effects. These properties let you fine-tune stuff and visual effects that go beyond the basics.
ReferenceObject¶
- Description: Specifies a part or model (yes you heard that right, model) that particles will reference during their lifetime. This is useful for creating effects that follow a specific object.
- Default:
nil
- Example:
WindAffectsDrag¶
- Description: Allows wind to effect how particles move around in the world.
- Default:
false
- Example:
EmissionShape¶
- Description: Changes what shape particles can emit from the adornee
- Default:
Enum.ParticleEmitterShape.Box
- Example:
FaceVelocity¶
- Description: Makes particles face the direction they are moving.
- Default:
false
- Example:
ParticleFolder¶
- Description: Determines the folder where particles are stored in the game hierarchy.
- Default:
nil
- Example:
RandomizedColor¶
- Description: When enabled, assigns a random color to each particle.
- Default:
false
- Example:
CastShadow¶
- Description: Determines whether the particles cast shadows.
- Default:
false
- Example:
EmitterID¶
- Description: When specified, any string (a word inside of "quotes") will turn into an ID that is binded to the emitter, which allows you to run any function from any emitter from any script, as long as the script that remotely interacts with the script is the same
RunContext
as the script that created the emitter, so Client scripts can only remotely control other client emitters, while server scripts can only remotely control other server emitters, they cannot cross. ID can be literally anything as long as it is a string. - Default:
"Default"
- Example:
GetEmitterByID¶
- Description: When called, the variable paired with the function recieves a callback of the emitter, allowing you to run any function from any emitter from any script, as long as the script is the same
RunContext
as the script that created the emitter. - Example:
local ReplicatedStorage = game:GetService("ReplicatedStorage") local VortexFXParticles = require(ReplicatedStorage:WaitForChild("VortexFXParticles")) local emitter = VortexFXParticles:GetEmitterFromID("EmitterID1") -- Emitter will be set to whatever emitter already exists and is paired with "EmitterID1"
Flipbook¶
- Description: Enables particles to cycle through multiple meshes and textures during their lifetime, creating an animated flipbook effect. The mesh and texture IDs are updated at a specified frame rate, and the animation can follow different patterns.
- Default:
nil
- Example:
emitter:Create({ Flipbook = { -- Define the frames for the flipbook animation { MeshId = 'rbxassetid://1', TextureId = 'rbxassetid://2' }, { MeshId = 'rbxassetid://3', TextureId = 'rbxassetid://4' }, { MeshId = 'rbxassetid://5', TextureId = 'rbxassetid://6' }, { MeshId = 'rbxassetid://7', TextureId = 'rbxassetid://8' } }, })
FlipbookMode¶
- Description: Determines the cycling pattern of the flipbook frames. Available modes are:
- Loop: Cycles through all frames from start to end, then loops back to the first frame.
- OneShot: Runs through all frames once, starting from the first frame, and adjusts frame rate to match the particle's lifetime.
- PingPong: Moves through the frames forward to the last frame, then reverses back to the first frame at the same frame rate.
- Random: Selects a random frame at each interval.
- Default:
Enum.ParticleFlipbookMode.OneShot
FlipbookFrameRate¶
OneShot Ignores FrameRate
When using OneShot
as a FlipbookMode
, the frame rate is ignored as OneShot
adjusts the frame rate to match the particles lifetime.
- Description: Sets the frame rate for the flipbook animation. Can be a fixed number or a
NumberRange
to randomize the rate. - Default:
2
- Example:
FlipbookStartRandom¶
- Description: If enabled, the flipbook animation starts at a random frame instead of the first frame.
- Default:
false
- Example:
VelocityInheritance¶
- Description: Controls how much of the adornee's velocity is inherited by emitted particles. This allows particles to carry over the momentum of the object they are emitted from.
- Default:
0
- Example:
VelocityInheritor¶
- Description: What instance the particles take velocity from, singular instances only.
- Default:
nil
- Example:
KeepOriginalTransparencies¶
- Description: Determines if all transparency related parts inside a model being emitted remains how it was when the model is first added.
- Default:
false
- Example:
KeepOriginalColors¶
- Description: Determines if all colors given to parts inside a model being emitted remains how it was when the model is first added.
- Default:
false
- Example:
KeepOriginalMaterials¶
- Description: Determines if all materials on parts inside a model being emitted remains how it was when the model is first added.
- Default:
false
- Example:
Attractor¶
- Description: A Table of or a single instance that pulls particles in, think of the attractor as the positive side of a magnet and the particles metal fragments.
- Default:
nil
- Example: OR
Repulsor¶
- Description: A Table of or a single instance that pushes particles away, think of the repulsor as the positive side of a magnet and the particles another positive sided magnet.
- Default:
nil
- Example: ```lua emitter:Create({ Repulsor = game.Workspace.Repulsor -- This object will push particles away })
AttractorRange¶
- Description: The range at which the attractor starts pulling particles.
- Default:
40
- Example:
AttractorStyle¶
- Description: The graph style of the attractor.
- Default:
Enum.EasingStyle.Linear
- Example:
AttractorIntensity¶
- Description: How intense the pull that particles go under, higher = more pull, lower = less pull.
- Default:
10
- Example:
RepulsorRange¶
- Description: The range at which the repulsor starts pushing particles.
- Default:
40
- Example:
RepulsorStyle¶
- Description: The graph style of the repulsor.
- Default:
Enum.EasingStyle.Linear
- Example:
RepulsorIntensity¶
- Description: How intense the push that particles go under, higher = more push, lower = less push.
- Default:
10
- Example:
CollisionGroup¶
- Description: The collision group of particles.
- Default:
"Default"
- Example:
ParticleEmitter2D (Deprecated)¶
Deprecated, use ReferenceObject
- Description: When specified, each particle emits their own 2D particle emitter.
- Default:
nil
- Example:
IsShapeMesh (Deprecated)¶
Deprecated, use ReferenceObject
- Description: When enabled, the part will emit
Mesh
objects instead of regularPart
objects - Default:
false
- Example:
MeshID (Deprecated)¶
Deprecated, use ReferenceObject
- Description: When specified, the
Mesh
object will use thisMeshID
- Default:
nil
- Example:
Trail (Deprecated)¶
Deprecated, use ReferenceObject
- Description: When specified, the
Mesh
object will have aTrail
- Default:
nil
- Example:
TextureID (Deprecated)¶
Deprecated, use ReferenceObject
- Description: When specified, the
Mesh
object will use thisTextureID
- Default:
nil
- Example:
These advanced properties give you even more control and customization for your particle.