<!-- fivemad.com, Markdown source of https://fivemad.com/docs/tools/particles-list -->
> Source: https://fivemad.com/docs/tools/particles-list
> Section: Tools
> Tags: particles, ptfx, UseParticleFxAsset, StartParticleFxLoopedAtCoord, effects
> Tool: https://fivemad.com/tools/particles-list
> Last updated: 2026-09-25
> Site map for assistants: https://fivemad.com/llms.txt

# Particle Effects List

Search all 2,900+ GTA V particle effects with their ptfx dictionaries and build a working Lua snippet: one-shot, networked or looped.

The Particle Effects List is the full text list of GTA V particle effects: 2,907 effect names in 360 dictionaries (ptfx assets). Search it, pick an effect, choose how you want to spawn it, and copy a Lua snippet that loads the dictionary and starts the effect.

Every snippet block on this page has a **Lua / JS / TS / C#** switcher in its corner. The choice is remembered across the site, and [the runtimes page](/docs/development/runtimes) explains what changes between them.

## What it is for

Every particle effect lives inside a dictionary, and you need both names to spawn it. Getting one wrong gives you nothing on screen and no error. This list pairs every effect with its dictionary and writes the loading code for you, so you only decide what the effect should do: fire once, loop on the player, loop at a spot, or show for everyone.

If you want to see what an effect looks like first, many entries have a film icon that opens its video on [Particle videos](/particles).

## Quick start

1. Search for a word (`fire`, `smoke`, `spark`, `water`) or a dictionary name (`core`, `scr_rcbarry2`).
2. Optionally pick a dictionary in the menu next to the search box.
3. Press **Use** on a row. It turns into **Selected** and the snippet updates.
4. Pick a **Mode**, set **Scale** (and **Duration** for looped modes).
5. Copy `ptfx.lua` or press its **Download** button, and test it in game.

## The list

| Column | What it does |
| --- | --- |
| **Effect** | The effect name. Click to copy. A film icon means there is a video preview: click it to watch it on [Particle videos](/particles). |
| **Dictionary** | The ptfx asset it belongs to. Click to copy. |
| **Use** | Loads this effect into the snippet panel. |

The search matches effect names and dictionary names: typing a dictionary name lists all of its effects. The panel title shows how many effects match. Rows load 100 at a time with a button for more.

## Snippet options

| Option | What it does | Default |
| --- | --- | --- |
| **Mode**: **At coord** | One-shot effect at the player's position, only this client sees it. Uses `StartParticleFxNonLoopedAtCoord`. | selected |
| **Mode**: **Networked** | One-shot effect other players also see. Uses `StartNetworkedParticleFxNonLoopedAtCoord`. | |
| **Mode**: **Looped on entity** | Attached to the player ped until stopped. Uses `StartParticleFxLoopedOnEntity`. | |
| **Mode**: **Looped at coord** | Looped effect at a fixed position until stopped. Uses `StartParticleFxLoopedAtCoord`. | |
| **Scale** | Effect size. Any value above 0. | 1.0 |
| **Duration (ms)** | How long a looped effect runs before `StopParticleFxLooped`. Only for looped modes. | 5000 |
| **Networked** | Only in **Looped on entity**: switches to `StartNetworkedParticleFxLoopedOnEntity` so others see it. | off |
| **Wrap in /ptfx command** | Wraps the code in a `/ptfx` command for quick testing. | off |

The panel starts with `core` / `ent_sht_steam` selected.

## Examples

**At coord**, the default:

```lua title="ptfx.lua"
CreateThread(function()
    local dict, name = "core", "ent_sht_steam"

    RequestNamedPtfxAsset(dict)
    while not HasNamedPtfxAssetLoaded(dict) do Wait(0) end

    local coords = GetEntityCoords(PlayerPedId())
    UseParticleFxAsset(dict)
    StartParticleFxNonLoopedAtCoord(name, coords.x, coords.y, coords.z, 0.0, 0.0, 0.0, 1.0, false, false, false)
    RemoveNamedPtfxAsset(dict)
end)
```

**Looped at coord** with **Wrap in /ptfx command**:

```lua title="ptfx.lua"
RegisterCommand("ptfx", function()
    CreateThread(function()
        local dict, name = "core", "ent_sht_steam"

        RequestNamedPtfxAsset(dict)
        while not HasNamedPtfxAssetLoaded(dict) do Wait(0) end

        local coords = GetEntityCoords(PlayerPedId())
        UseParticleFxAsset(dict)
        local fx = StartParticleFxLoopedAtCoord(name, coords.x, coords.y, coords.z, 0.0, 0.0, 0.0, 1.0, false, false, false, false)

        Wait(5000)
        StopParticleFxLooped(fx, false)
        RemoveNamedPtfxAsset(dict)
    end)
end, false)
```

**Looped on entity** keeps a handle so you can stop it:

```lua
UseParticleFxAsset(dict)
-- offset xyz, rotation xyz, scale, axis flip x/y/z
local fx = StartParticleFxLoopedOnEntity(name, PlayerPedId(), 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, false, false, false)
```

## How to load an effect

The order matters:

1. `RequestNamedPtfxAsset(dict)` and wait for `HasNamedPtfxAssetLoaded(dict)`.
2. `UseParticleFxAsset(dict)` right before the start call. It only applies to the next `Start*ParticleFx*` call, so call it again before each one.
3. Start the effect with the native that fits (see **Mode** above).
4. Looped effects return a handle: stop them with `StopParticleFxLooped(handle, false)`.
5. `RemoveNamedPtfxAsset(dict)` when you no longer need the dictionary.

For looped effects you can also change colour and alpha with `SetParticleFxLoopedColour` and `SetParticleFxLoopedAlpha`, but only effects made with tintable colours react.

## Common mistakes

- **Nothing shows up.** Looped and one-shot effects are not interchangeable. Most names with `_loop`, `ent_amb_` or `_trail` are looped: switch the mode and try again.
- **Forgot `UseParticleFxAsset`.** Without it right before the start call, the game looks in the wrong dictionary.
- **Effect never stops.** You dropped the handle of a looped effect. Keep it and call `StopParticleFxLooped`.
- **Other players cannot see it.** Use a networked mode.
- **Scale does nothing.** Some effects ignore scale or only change part of the effect.

> [!TIP]
> Test with **Wrap in /ptfx command** on, type `/ptfx` in game, and try both modes. Once it looks right, turn the wrapper off and paste the code where you need it.

## Limitations

- Names and dictionaries only. For previews, use [Particle videos](/particles), which has clips for most effects.
- The snippet always spawns at or on the player. Change the coordinates or entity for your use.
- Everything runs in your browser.

## Related tools

- [Particle videos](/docs/tools/particle-videos)
- [Sound Browser](/docs/tools/sound-browser)
- [Objects / Props List](/docs/tools/objects-list)
