Nothing emits
Find the symptom in the left column. Each row gives one cause and what to do about it.
Nothing emits in the editor
Section titled “Nothing emits in the editor”| Symptom | Cause | Action |
|---|---|---|
| Emit is pressed and nothing appears | The 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 emit | Nothing that can emit is selected. | Select the emitter, or the Folder that holds it. |
| Particles appear on the emitter and do not move | Speed 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 appears | Rate 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 box | Mode 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 vanish | The Timescale graph is at 0. | Enter 1 in Emission ▸ Timescale. |
| New particles stop appearing, and Output mentions the particle cap | The 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 window | A 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 gone | The plugin is switched off. | Press Toggle on the Qwinkle’s Part-Icles 2 toolbar. |
| Nothing appears while the game is running | The 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 nothing | Event 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 Needed | The 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 opened | The 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.
| Symptom | Cause | Action |
|---|---|---|
| An emitter that streams or loops in the editor is idle in the game | In 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 Activate | Part_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 empty | Those 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 appears | The 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 nothing | Rate is 0 or less. | Raise Rate. |
Particles are frozen after a SetTimescale call | The script left the speed at 0. | Call Part_Icles:ClearTimescale(item). |
| Particles are frozen from the start | The 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 effect | The 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 effect | The 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 position | A 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 happens | Emit acts on one emitter only. | Call Part_Icles:AbsoluteEmit(item). |
| One layer of the effect never fires | The 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 Workspace | The 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 cap | The cap in the game is 1000. | See Particles stop appearing after a while. |
Nothing happens on the server
Section titled “Nothing happens on the server”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.
| Symptom | Cause | Action |
|---|---|---|
| A server Script fires an effect, Output shows no error, and no player sees anything | The 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 nothing | On 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 late | Preload, 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 camera | Z-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 view | From 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 player | The 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.
| Symptom | Cause | Action |
|---|---|---|
| Particles in flight stay behind when the emitter moves | Particles 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 place | The 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 emitter | The 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 Part | Spawn ▸ 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 placed | They are placed once, at the call. They do not follow an origin that moves. | Make the call again for the new place. |
Particles stop appearing after a while
Section titled “Particles stop appearing after a while”| Symptom | Cause | Action |
|---|---|---|
| New particles stop, and Output mentions the particle cap | The 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 stop | A 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 appear | Emit or Enable was called before Part_Icles:Activate(). | Call Activate first. |
| A stream stops by itself | Its Duration ended. | None. For a stream with no end, call Part_Icles:AbsoluteEnable(item). |
| A stream stops when the effect is fired again | A 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 once | A script called Part_Icles:Deactivate(). | Remove that call, or call Part_Icles:Activate() again. |