Przejdź do treści
Particle Effects List

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.

Ta dokumentacja jest na razie po angielsku.

Open the tool Last updated

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.

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.

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.
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:

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:

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, 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.