Skip to main content

Wide Grid Bridge

Runs a reel grid wider than 12 columns on two Pixi Reel Controller nodes and makes them behave as one: one spin signal in, one all-stopped signal out, one full-grid symbol array. Browser only; it never reaches the RGS.

A Pixi Reel Controller owns at most 12 columns (Column 0 to Column 11). For a wider grid, wire controller A to columns 0 to splitAt - 1 and controller B to the rest; Split At (columns in A) defaults to 12 and is at least 1. The bridge splits the result grid, fans out the spin, joins the two all-stopped events and concatenates the two current-symbol arrays. No timers; nothing to cancel.

Wire your Spin button into Spin and Spin A / Spin B into each controller's Spin. Spin B is skipped when the last grid did not reach past Split At; with no grid yet it is skipped when controller B reports no symbols, and before anything is known both halves spin. Wire each controller's On All Stopped into All Stopped A / All Stopped B: All Stopped fires once per spin, after both halves have reported, and goes where a single controller's On All Stopped used to go, such as Calculate Winnings, Win Rollup Start or Autoplay Round Complete. Stops that arrive without a Spin through the bridge are ignored.

Wire the full result grid, an array as reels[col][row] (a JSON string parses too), into Spin Result (full grid). Spin Result A and Spin Result B update the moment it changes, with columns 0 to splitAt - 1 and the rest; a stale result is never re-sent on Spin, so an asynchronous RGS result cannot land twice. Set Spin Result before, or in the same update as, Spin so both halves have their data when they start. An object on this input is treated as an empty grid. The two halves are meant for each controller's Spin Result input; see the caution below.

Wire each controller's Current Symbols into Current Symbols A / Current Symbols B. Current Symbols (full grid) is A followed by B; a controller publishes one array per column, so the join is the full reels[col][row] grid for Check Jackpot or a Cell Overlay. Column Count is the result grid's width once one has been set, otherwise the two current-symbol arrays' lengths added.

Inputs​

Actions​

SignalDescription
SpinFires Spin A, and Spin B when a B half exists; a Spin Result set in the same update is split first.

Result​

DataDescription
Spin Result (full grid) (array)The full result grid as reels[col][row]; split into Spin Result A and Spin Result B as soon as it changes.

Layout​

DataDescription
Split At (columns in A) (number)How many columns controller A owns; the rest go to B. Default 12, minimum 1.

Controllers​

DataDescription
Current Symbols A (array)Wire controller A's Current Symbols here; one array per column.
Current Symbols B (array)Wire controller B's Current Symbols here; one array per column.
SignalDescription
All Stopped AWire controller A's On All Stopped here.
All Stopped BWire controller B's On All Stopped here.

Outputs​

Result​

DataDescription
Spin Result A (array)Columns 0 to splitAt - 1 of the grid, for controller A.
Spin Result B (array)Columns from splitAt onward, for controller B; empty when the grid is not that wide.

Signals​

SignalDescription
Spin AFires on every Spin; wire it to controller A's Spin.
Spin BFires on Spin when the grid reaches past Split At; wire it to controller B's Spin.
All StoppedFires once per bridged spin, after both All Stopped A and All Stopped B have arrived.

State​

DataDescription
Current Symbols (full grid) (array)Current Symbols A followed by Current Symbols B: the full reels[col][row] grid.
Column Count (number)Total grid width: the result grid's length, or the two current-symbol arrays' lengths added.

Usage​

  1. Create two Pixi Reel Controllers; wire Reel Columns 0 to 11 to controller A and the rest to controller B, and set Split At to the number of columns on A.
  2. Wire the Spin button into Spin, then Spin A and Spin B into each controller's Spin.
  3. Wire each controller's On All Stopped into All Stopped A / All Stopped B, and each Current Symbols into Current Symbols A / Current Symbols B.
  4. Wire the full result grid into Spin Result (full grid) before, or together with, Spin.
  5. Move everything that listened to a single controller's On All Stopped onto All Stopped, and read the whole grid from Current Symbols (full grid).
caution

A controller's Spin Result input reads the maths result object (slotResults by row, stopPosList) and takes no landing data from a bare reels[col][row] array, so Spin Result A / Spin Result B on their own do not tell the controllers where to land. Feed each controller its own Stop Positions and Reel Strips for its columns as well.