NSS Docs
DiscordStoreHomepage
nss_libs
nss_libs
  • README
  • Changelog
  • UI components
    • NssUiApi basics
    • NssAudio
    • NssButton
    • NssClient
    • NssConfirm
    • NssHelper
    • NssLoadingIndicator
    • NssModal
    • NssPadLock
    • NssResponsive
    • NssSimpleTextEditor
    • NssSvgReplacer
    • NssTextBox
    • NssTip
  • Client/server modules
    • AttachProp
    • Blip
    • Character
      • Client Character
      • Server Character
    • Chunk
    • ClientEvent
    • ConfigValidator
    • Database
    • DatabaseUpdater
    • DependencyAutoRestart
    • Discord
    • EntityInRange
    • Helper
      • Client Helper
      • Server Helper
      • Shared Helper
    • Inventory
    • Keyboard
    • Notify
    • Npc
    • ParticleFxPlayer
    • PointInRange
    • Prompts
    • ServerEvent
    • VersionCheck
Powered by GitBook
On this page
  • Examples
  • Play particle fx on position for one second looped over network
  • TODOs

Was this helpful?

  1. Client/server modules

ParticleFxPlayer

Important: Synced particle fx are restricted by missing methods. For example it is not possible to set the color or alpha of a synced particle fx. If you want that you have to create the particle on each client individually.

Examples

Play particle fx on position for one second looped over network

---@type NssLibsParticleFxPlayerControllerApi
local pfx_api = exports.nss_libs:getParticleFxPlayerApi(GetCurrentResourceName())

---@type NssLibsParticleFxPlayerApi
local pfx_player = pfx_api.create()

local duration_in_ms = 1000 -- One second
local interval_in_ms = 100 -- 10 times per second

-- non-looped asset
local asset_dictionary = 'scr_crackpot'
local asset_name = 'scr_crackpot_tesla_fail'

-- false if non-looped asset: https://github.com/femga/rdr3_discoveries/blob/f729ba03f75a591ce5c841642dc873345242f612/graphics/ptfx/ptfx_assets_non_looped.lua
-- true looped asset: https://github.com/femga/rdr3_discoveries/blob/f729ba03f75a591ce5c841642dc873345242f612/graphics/ptfx/ptfx_assets_looped.lua
local is_looped_asset = false

-- Static interval
pfx_player
        .setAsset(asset_dictionary, asset_name, is_looped_asset)
        .setPosition(0.0, 0.0, 0.0)
        .useNetwork()
        .play(duration_in_ms, interval_in_ms)

-- Random interval
local random_interval = { 100, 500 } -- Random value between 100 and 500 ms each wait loop

pfx_player
        .setAsset(asset_dictionary, asset_name, is_looped_asset)
        .setPosition(0.0, 0.0, 0.0)
        .useNetwork()
        .play(duration_in_ms, random_interval)

TODOs

--SetParticleFxNonLoopedColour
--0x60B85BED6577A35B
-- SET_PARTICLE_FX_NON_LOOPED_COLOUR
SetParticleFxNonLoopedColour(
        r --[[ number ]],
        g --[[ number ]],
        b --[[ number ]]
)
--SetParticleFxLoopedColour
--0x239879FC61C610CC
-- SET_PARTICLE_FX_LOOPED_COLOUR
SetParticleFxLoopedColour(
        ptfxHandle --[[ integer ]],
        r --[[ number ]],
        g --[[ number ]],
        b --[[ number ]],
        p4 --[[ boolean ]]
)
--SetParticleFxLoopedAlpha
--0x88786E76234F7054
-- SET_PARTICLE_FX_LOOPED_ALPHA
SetParticleFxLoopedAlpha(
        ptfxHandle --[[ integer ]],
        alpha --[[ number ]]
)
--SetParticleFxNonLoopedAlpha
--0xE8A35938A7026CEA
-- SET_PARTICLE_FX_NON_LOOPED_ALPHA
SetParticleFxNonLoopedAlpha(
        alpha --[[ number ]]
)
PreviousNpcNextPointInRange

Last updated 1 year ago

Was this helpful?