Skip to main content
0_0_scatter demonstrates the scatter pay win type on a large tumbling board. The freegame introduces a persistent global multiplier that grows with every tumble, and board-resident multiplier symbols (M) are applied as a final multiplier after tumbling ends.

Game overview

How to run

Or directly:

Mechanics

Basegame

  • Any group of 8 or more adjacent like symbols on the 6×5 board pays, regardless of reel or row boundaries.
  • Winning symbols are removed; symbols above fall down to fill gaps (tumble). Tumbling continues until no winning groups remain.
  • Minimum 3 Scatters trigger the freegame. Freespins awarded: 2 × (number of Scatters on board).
  • Freespin awards by scatter count: 3S → 8 spins, 4S → 12, 5S → 15, 6S → 17, 7S → 19, 8S → 21, 9S → 23, 10S → 24.
Because new Scatters can tumble onto the board during basegame evaluation, there is no fixed upper limit on how many freespins can be awarded. The total is always 2 × (current Scatters on board). This overrides the standard updateTotalFreeSpinAmount in game_executables.py.

Freegame

  • Global multiplier starts at 1 at the beginning of each freespin (it does not carry over between individual spins).
  • After each tumble: the global multiplier increments by +1 (update_global_mult()).
  • The global multiplier is applied to every tumble win as symbols are removed from the board.
  • After all tumbles complete: remaining Multiplier (M) symbols on the board are summed and their total is applied as an additional multiplier to the cumulative tumble win.
  • Retrigger: 2+ Scatters during freegame award additional spins (same 2× formula).
Multiplier symbols (M) on the board do not increment the global multiplier — they are evaluated separately as a final board multiplier after tumbling is complete. Only tumbles (symbol removals) increment the global multiplier.

Paytable

Pays are grouped by cluster-size ranges (8,8), (9,10), (11,13), (14,36):

Freespin count override

The standard updateTotalFreeSpinAmount is overridden in game_executables.py to implement the 2 × scatters formula:

Board multiplier evaluation

After all tumbles complete, set_end_tumble_event() in game_executables.py sums any remaining Multiplier symbols and applies them to the spin win:
get_board_multipliers() in game_calculations.py sums all M symbol values still present on the board:

Game flow (gamestate.py)

Note that update_global_mult() is called after tumble_game_board() and before get_scatterpays_update_wins() — the incremented multiplier applies to the wins evaluated on the newly tumbled board.

Game-specific events

Comparison with cluster game

The scatter game is the most complex sample game. Read game_executables.py alongside gamestate.py — most of the freegame multiplier logic lives in the executables layer rather than gamestate.py itself.