Skip to main content

Requirements

recent version
required
Flux uses UnreliableRemoteEvent, buffer, and Luau require-by-string (require("@self/Utils/Types")). All three ship in current Studio.
enabled
required
Flux’s internal modules require each other by relative path rather than through script.Parent. If your place predates require-by-string, enable it under File → Studio Settings → Luau → Require By String, or the equivalent place-level flag, before requiring Flux.
Flux does not depend on any other module, so there is nothing to install alongside it.

Setup The System

1

Insert the system

Drag both FluxClient.rbxmx and FluxServerLoader.rbxmx files into your roblox studio viewport,
2

Insert the core

Drop the Flux module into ReplicatedStorage. Do not rename it.
3

Instert the server

Drop the FluxServer module into ServerScriptService. Do not rename it.
4

Request Your Place ID

If you have not already, open a request access questionare. Once accepted you will need to send your placeID (e.g https://www.roblox.com/games/PLACEID/your-game-name) Once you have been granted access the system will ONLY work in THAT place.

Expected hierarchy

ReplicatedStorage
Flux (ModuleScript)
ServerScriptService
FluxServer (ModuleScript)
Flux is the module you require, with require(ReplicatedStorage.Flux). Everything beneath it is internal.
Flux_Reliable and Flux_Unreliable are parented to the Remotes ModuleScript itself, not to a folder. If they are missing, the server creates them on first use through Remotes.Create. You never need to add them by hand.

Server must initialise first

The client resolves the remotes with WaitForChild, and the server creates them. If no server code ever requires Flux, every client will hang on that WaitForChild forever.
Requiring the root Flux module on its own does not create the remotes. The transport is initialised lazily, the first time you call Flux.Server or Flux.Client. Make sure at least one server-side Flux.Server(...) call runs during startup.

Rojo projects

If you sync with Rojo, map the module into ReplicatedStorage and keep Utils as a real directory so the relative requires still resolve:
default.project.json
src
shared
Flux
Under Rojo, Flux_Reliable and Flux_Unreliable will not exist in the synced tree. That is fine, because the server creates them at runtime.

Next steps

Quickstart

Fire your first event in both directions.

Architecture

Understand what each of the seven modules does.