Skip to content

Call by script

jdeon edited this page Oct 7, 2026 · 5 revisions

Module APIs

You can access the module's APIs using game.modules.get("particule-fx").api.

Emission APIs (api.emit)

  • To emit spray particles: xxx.api.emit.spray(prefillMotionTemplates, prefillColorTemplates, particleShapes, customInput)
  • To emit gravitating particles: xxx.api.emit.gravit(prefillMotionTemplates, prefillColorTemplates, particleShapes, customInput)
  • To emit missile particles: xxx.api.emit.missile(prefillMotionTemplates, prefillColorTemplates, particleShapes, customInput). Advanced options have the same input as Spray particles with a nested object subParticles containing another input (spray or gravitating) and type (equals to "Spraying" or "Graviting").
  • Write a message describing the emitter with a button to stop it: xxx.api.emit.writeMessage(emitterId, isVerbal). isVerbal parameter also writes advanced input in the message.
  • To stop a specific emission: xxx.api.emit.stop(id, immediate). id is a number or a string ('l' / 'last' for newest emission, 'f' / 'first' for oldest emission). immediate is a boolean to immediately delete living particles.
  • To stop all emissions: xxx.api.emit.stopAll(immediate). immediate is a boolean parameter (true deletes all active particles, false stops emission only).
  • To stop a workflow: xxx.api.emit.stopWorkflow(id, immediate, all). Stops future linked emissions for an emitter. all disables workflows across all active emitters.
  • To toggle pause state of an emission: xxx.api.emit.togglePause(id, isPaused). Pauses or resumes a specific emitter. (since 2.7.0)
  • To pause or resume all emissions: xxx.api.emit.pauseAll(isPaused). Pauses (true) or resumes (false) all active emissions. (since 2.7.0)
  • To duplicate an existing emission: xxx.api.emit.duplicate(emitterId, overrides). Duplicates an emitter using selected source/target with optional overrides. (since 2.7.0)
  • To get configuration query of an emission: xxx.api.emit.getQuery(emitterId, isOriginal). Returns merged or raw input query object. (since 2.7.0)
  • To show the GM Emitters Panel: xxx.api.emit.showManagerPanel() (since 2.7.0)
  • To refresh the GM Emitters Panel: xxx.api.emit.refreshManagerPanel() (since 2.7.0)

Example To emit missile particles with gravitating sub-particles that form a trail:

game.modules.get("particule-fx").api.emit.missile({ source: { x: 200, y: 250 }, target: token.id, subParticles: { type: "Graviting", particleLifetime: 1000, onlyEmitterFollow: true, particleAngleStart: '0_360' } });

particlesFx Window Object

All these methods can also be called directly with the global window.particlesFx object:

  • particlesFx.sprayParticles(...)
  • particlesFx.gravitateParticles(...)
  • particlesFx.missileParticles(...)
  • particlesFx.stopEmissionById(id, immediate)
  • particlesFx.stopAllEmission(immediate)
  • particlesFx.stopWorkflow(id, immediate, all)
  • particlesFx.togglePauseEmissionById(id, isPaused) (since 2.7.0)
  • particlesFx.pauseAllEmission(isPaused) (since 2.7.0)
  • particlesFx.showEmittersPanel() (since 2.7.0)
  • particlesFx.refreshEmittersPanel() (since 2.7.0)
  • particlesFx.writeMessageForEmissionById(emitterId, isVerbal)

Clone this wiki locally