Skip to content

Properties

Open the property panel for your transformed Part. It’s full of fields. Each one corresponds to one behaviour your particles can have: how often they emit, how long they live, how they move, what they look like.

There are five kinds of property in the panel. Each kind has its own input style.

A single value. The simplest kind.

Rate is a number. A Rate of 30 means thirty particles per second.

Drag is a number. A Drag of 0.2 means particles slow down as they age, by a constant factor.

Anim. Steps (the data attribute is TotalKeyFrames) is a number, defaulting to 100. Linger (data: PartLife) is a number. Threshold on Bloom emitters is a NumberSequence graph (covered below) — the example here is just the simple-number kind.

You type a number in. The number applies. Done.

A note on polymorphism: some property names are numbers in some emitters but graphs in others. Polymorphism is a programming-world word for “the same name behaves differently depending on what it’s attached to” — in our case, Brightness is a graph on Part, Beam, and PointLight, but a single number on Trail and on Roblox’s ParticleEmitter. Speed is a graph on most plugin types but a range on ParticleEmitter. Each type’s chapter in the Particiliary calls out the kind per property; trust the panel input you see, not the property name alone.

A minimum and a maximum. Two numbers, joined.

Lifetime is a range. A range of 0.5,1.5 means each particle lives somewhere between half a second and one and a half seconds — randomly picked at the moment it emits. Two particles emitted at the same time may have different lifetimes. That’s the point of a range: variation between particles.

The plugin’s input format is min,max, separated by a comma. If you type a single number, the plugin treats it as both ends — 0.5 becomes a range from 0.5 to 0.5.

Ranges show up wherever variation between particles makes sense. Lifetime, Rotation (axis-grouped initial rotation, data attrs RotX/RotY/RotZ), Position (axis-grouped random offsets, data attrs PosX/PosY/PosZ), Framerate (in the Flipbook section, data attr FlipbookFramerate) — all ranges in the workspace types. Stock ParticleEmitter also uses ranges for Speed and Rotation; transformed Part and similar types use a graph for Speed instead.

A value that changes over time.

Size is a graph. Transparency is a graph. Speed is a graph (on most types). Brightness is a graph (on Part / Beam / PointLight). And several others.

A graph plots the value (vertical axis) against the particle’s age (horizontal axis, from 0 at birth to 1 at death). A flame whose Size rises from 1.0 to 1.4 mid-life and then collapses to 0 is a Size graph with three keypoints.

Graphs do most of the work of building particles — every property whose value should change over a particle’s life is a graph — and they get their own chapter. That’s chapter 5.

Color is a graph too — but a colour graph (a ColorSequence), edited in a different editor than the number graphs. The graphs chapter covers both.

On or off. A boolean.

Enabled is a toggle (you used it in chapter 1 to start emission). FaceCamera is a toggle (when on, particles always face the camera, like billboarded sprites). StartRandom is a toggle (in the Flipbook section — picks a random first frame per particle). Reverse Motion is a toggle (plays a particle’s trajectory backwards).

Click the toggle. State changes. Live.

Pick one of N.

Material is a dropdown — Plastic, Neon, Glass, Metal, Wood, and so on (the panel hardcodes 20 of Roblox’s Enum.Material values). Shape is a dropdown — Box, Sphere, Cylinder, Disc. Direction is a dropdown — which face particles fly out of (data attribute: EmissionDirection).

The plugin stores the dropdown’s choice as a string (the enum’s name), so you can read it from a script later if you want to.

Three more property kinds exist that don’t quite fit the five categories above:

  • Color pickers. Color and TintColor are ColorSequence graphs — the same time-versus-value model as a number graph, but with colour on the vertical axis. They open a different editor (the Color Sequence Editor) than the number graphs do, with stop-based controls instead of keypoints. Covered in chapter 5.
  • Path / instance pointers. Link Dir. (data: Link) and Emit Into (data: EmitParent) are clickable instance selectors. Click the field, then click an instance in the workspace to point this property at it. Used for linking emitters to other instances and for redirecting emitted output to specific containers.
  • Axis-grouped inputs and graphs. Some properties take three values at once — one per X/Y/Z axis. The panel shows them as a single labelled row with three input fields (for ranges) or three graph buttons (for graphs). Position (PosX/Y/Z) and Rotation (initial — RotX/Y/Z) are axis-grouped ranges. Size (SizeX/Y/Z) and Rotation Speed (RotSpeedX/Y/Z) are axis-grouped graphs.

Every property change applies live. There’s no “apply” button. The next particles to emit pick up your new value.

But — and this is worth knowing — particles already in flight are not retroactively updated. If you change Color while a hundred particles are mid-air, those hundred keep their old ColorSequence and play it out. New particles get the new one.

This is by design. Retroactive changes mid-flight would visually pop, and would mean the engine has to track every property change against every active particle. Letting in-flight particles play out is simpler, faster, and behaves the way you’d intuitively expect.

You’ve been editing one emitter at a time. But what if you have ten of them you want to nudge together?

Select several in Studio — even several of different types — and the property panel adapts.

If every selected emitter shares a value for a property, the input shows that value. If they differ, the input shows blank, indicating a mixed selection. Type a new value and it applies to all selected emitters at once.

This works across types. Select a Part emitter and a Beam emitter at the same time, and properties they share (Color, Lifetime, Rate) show in the panel and edit together. Properties unique to one type — Blender for Beam, Rotation Speed (axis-grouped, data attrs RotSpeedX/Y/Z) for Part — appear only while an emitter of that type is in the selection.

Stock ParticleEmitters and Trails join the same selection model. Pick ten of them, change Rate, all ten update.

Useful when you’ve built a large effect out of many emitters and want to nudge them together. The bulk-editing tools — Resize, Retime, Hue, Clipboard, Shifter — also operate on multi-selects, covered in chapter 14.

But how does a particle’s colour shift as it ages? How does its size pulse and then shrink? How does its speed ramp up and fall? Each of those needs more than a single value — it needs a value that changes over time. That’s a graph, and graphs are the next chapter.