Skip to content

Nothing emits

Find the symptom in the left column. Each row gives one cause and what to do about it.

SymptomCauseAction
Emit is pressed and nothing appearsThe Emit count is 0 and the Duration is 0. An emitter made with an earlier version of the plugin can read 0 in both. See Emit count of 1.Enter a number in the HUD’s Emit box, or in Duration.
Emit is pressed, and Output reads Part-Icles: Nothing to emitNothing that can emit is selected.Select the emitter, or the Folder that holds it.
Particles appear on the emitter and do not moveSpeed is 0. It starts at 0 on every new emitter. See Speed of 0.Enter a value in Properties ▸ Motion ▸ Speed.
Enabled is on and nothing appearsRate is 0 or less.Enter a Rate above 0 in Emission ▸ Rate.
The Properties panel has no Enabled row, and the HUD has no Emit boxMode is Animate. An Animate emitter has a Loop row in place of Enabled, and it does not use the Emit count.Switch Loop on, or press Emit to play one cycle.
Particles appear, do not move or change, then vanishThe Timescale graph is at 0.Enter 1 in Emission ▸ Timescale.
New particles stop appearing, and Output mentions the particle capThe number of particles has reached the Particle Cap. Particles in their Linger time count too.Lower Rate, Lifetime or Linger. Or raise ≡ ▸ Settings ▸ Particle Cap.
A stream stops while Studio is behind another windowA stream in the editor pauses when Studio is left in the background.Bring Studio to the front.
Nothing appears, and the plugin’s controls are goneThe plugin is switched off.Press Toggle on the Qwinkle’s Part-Icles 2 toolbar.
Nothing appears while the game is runningThe plugin does not run in the game. See Play mode.Stop the game. To play the effect in the game, see the next section.
An event fires its target and its script does nothingEvent scripts have not been allowed in this place. See The bar that asks to allow event scripts.Switch the event’s Script off and on. Press Allow on the bar at the top of the screen.
A box at the right of the viewport reads Issues Found or Migration NeededThe emitter lacks something the plugin expects of it. See The Fix box.Press Fix.
An emitter with Enabled on does not start when the place is openedThe emitter is kept in ServerStorage. The plugin does not start emitters there.Switch Enabled off and on. Or keep the emitter in the Workspace or in ReplicatedStorage.

It emits in the editor and not in the game

Section titled “It emits in the editor and not in the game”

The plugin does not run in the game. In the game, a script plays the effect through the Part_Icles module. Scripting describes the calls. A play test in Studio is the same: you see only what your scripts start.

SymptomCauseAction
An emitter that streams or loops in the editor is idle in the gameIn the editor the plugin starts it. In the game nothing starts by itself.Add a LocalScript. Call Part_Icles:Activate(), then Part_Icles:AbsoluteEnable(effect). For one play, call Part_Icles:AbsoluteEmit(effect).
Nothing plays, and Output mentions ActivatePart_Icles:Activate() was never called, or comes after the call.Call it once, straight after the require line.
AbsoluteEmit is called, some or all layers do nothing, and Output is emptyThose emitters have Emit count 0 and Duration 0. An emitter made with an earlier version of the plugin can read 0 in both.Stop the game and enter an Emit count or a Duration. Or use AbsoluteEnable. Or pass Count to EnableEmitAt.
Enable is called and nothing appearsThe emitter’s Enabled is off. Enable streams only while it is on.Call Part_Icles:AbsoluteEnable(item), which switches Enabled on. Or switch it on first.
A stream makes nothingRate is 0 or less.Raise Rate.
Particles are frozen after a SetTimescale callThe script left the speed at 0.Call Part_Icles:ClearTimescale(item).
Particles are frozen from the startThe emitter’s Timescale graph is at 0.Stop the game. Enter 1 in Emission ▸ Timescale.
Output shows an error on the line that finds the effectThe effect had not arrived when the script ran. The Emit Code tool writes the path directly.Find the effect with WaitForChild.
A LocalScript never finds the effectThe effect is in ServerStorage. ServerStorage does not reach a player’s machine.Keep effects in ReplicatedStorage or in the Workspace.
AbsoluteEmitAt makes nothing, and Output says the item has no positionA Folder was passed.Group the emitters in a Model and pass the Model.
Emit is called on a Folder, a Model or a stock ParticleEmitter, and nothing happensEmit acts on one emitter only.Call Part_Icles:AbsoluteEmit(item).
One layer of the effect never firesThe emitter sits in an ordinary Part that is directly inside another ordinary Part. The Absolute calls do not look there.Call on the emitter or on its direct parent. Or group the layers with a Folder or a Model.
The script loads Part_Icles from a place other than ReplicatedStorage or the WorkspaceThe plugin does not keep that module current. It is as old as the day it was made.Load the module in ReplicatedStorage.
New particles stop appearing, and Output mentions the particle capThe cap in the game is 1000.See Particles stop appearing after a while.

The module keeps its particles under the camera. The server has a camera of its own, and nothing under it reaches a player. Particles fired from a server Script are therefore seen by no one.

SymptomCauseAction
A server Script fires an effect, Output shows no error, and no player sees anythingThe particles were made under the server’s camera.Fire the effect from a LocalScript.
A Camera Shake emitter does nothing. Output reads [Part-Icles] CameraShake ignored on the server (no camera).The server has no player’s camera.Fire it from a LocalScript.
A Distortion emitter does nothing. Output reads [Part-Icles] Distortion ignored on the server (no screen).The server has no screen.Fire it from a LocalScript.
An ImageLabel emitter shows nothingOn the server, an ImageLabel emitter with no Emit Into has nowhere to appear.Fire it from a LocalScript.
Preload is called and textures still appear latePreload, Deload and Preload Texture do nothing on the server.Call Part_Icles:Preload(root) from a LocalScript.
Z-Offset has no effect, or particles do not face the cameraZ-Offset and the camera-facing Orientations need the player’s camera. A server Script has only the server’s.Fire the emitter from a LocalScript.
An emitter linked to the camera does not follow the viewFrom a server Script the emitter follows the server’s camera.Fire the emitter from a LocalScript.
A Blur, Bloom or ColorCorrection emitter fired from a server Script shows for no playerThe effect is made under the server’s camera.Fire it from a LocalScript.

Effects must be fired from a LocalScript. Do not fire them from a server Script. To show one effect to every player, the server calls FireAllClients on a RemoteEvent. Each player’s LocalScript fires the effect when the event arrives. Show one effect to every player gives both scripts. Getting the module into a script has the full table.

The emitter moved and particles appear at the old place

Section titled “The emitter moved and particles appear at the old place”

In Emit mode each particle starts where the emitter is at that moment. Moving the emitter moves the place where new particles start.

SymptomCauseAction
Particles in flight stay behind when the emitter movesParticles in flight do not follow the emitter unless it has a Link.Set a Link. See Link. In a script, pass Link to an EmitAt call.
A play made by an EmitAt call keeps starting particles at its first placeThe origin was a CFrame or a Vector3. Each is fixed at the call. A Delay or a Duration makes later particles start there too.Pass the instance itself as the origin. Or pass Link with LinkOverride = true.
Particles start at another object, not at the emitterThe emitter has a Link target. Particles start at the Link target.Clear or change the Link. In a script, call Part_Icles:SetLink(item, nil).
Particles start in the volume of another PartSpawn ▸ Use shape ▸ Shape Part is set to that Part.Set Shape Part back to the emitter. See Spawn.
Stock emitters fired by AbsoluteEmitAt on a container stay where they were placedThey are placed once, at the call. They do not follow an origin that moves.Make the call again for the new place.
SymptomCauseAction
New particles stop, and Output mentions the particle capThe Particle Cap is reached. In the game it is 1000. Particles in their Linger time count too.Lower Rate, Lifetime or Linger. In the game, raise Part_Icles.MAX_ACTIVE_PARTICLES. In the editor, raise Particle Cap in Settings.
Particles hang frozen, and new ones stopA speed of 0 froze particles part-way through their life. They never end, and they keep their places under the cap.Call Part_Icles:ClearTimescale(item). Call Part_Icles:Disable(item) to remove them.
Frozen particles pile up at the emitter, then no more appearEmit or Enable was called before Part_Icles:Activate().Call Activate first.
A stream stops by itselfIts Duration ended.None. For a stream with no end, call Part_Icles:AbsoluteEnable(item).
A stream stops when the effect is fired againA new AbsoluteEmit on the same emitter replaced a Duration that was still running.None. See A second call on the same emitter.
Every effect stops at onceA script called Part_Icles:Deactivate().Remove that call, or call Part_Icles:Activate() again.