Skip to content

The runtime module ​

Everything you author in SineVFX lives on the instances in your place. To make those effects play in your running game, SineVFX generates a runtime module and plants it into your place. Your game code then calls a tiny API and the module reproduces the effect for real.

Planting the module ​

  1. Open the Module entry on the SineVFX menu.
  2. Plant the module. SineVFX writes it to ReplicatedStorage.SineVFX.

That's it - the module is self-contained. Ship your place and the effects go with it.

Re-plant after edits

The module is a snapshot of your effect logic at plant time. Whenever you change effects and want the shipped copy to match, re-plant it. If in-game playback ever looks out of date, a re-plant is the fix.

What gets planted ​

The generated module bundles SineVFX's particle/ribbon simulation, the Lightning bolts, the Light / Highlight / Decal copy emitters and the Screen Effect driver, plus a small public surface:

lua
local VFX = require(game.ReplicatedStorage.SineVFX)

exposing VFX.emit, VFX.enable, and VFX.disable. See the full Runtime API.

Client vs. server ​

Effects render per-client. Call the API from a LocalScript (or a client-side module), not from the server. If you call it from a server context, SineVFX warns you - the effect won't render for players because rendering is a client concern. To play an effect for everyone, fire it on each client (e.g. via a RemoteEvent your server broadcasts).

Where to call it from ​

A typical setup:

  • Author and preview effects in Studio.
  • Plant the module.
  • From a LocalScript, require the module and call VFX.emit(effectInstance) when the effect should play (on a hit, a cast, a pickup, etc.).

Continue to the Runtime API for the exact functions and arguments.

Built by RoPotat0 for the Roblox VFX community.