Skip to main content
The Ways class evaluates wins for games where any matching symbol combination across consecutive reels pays — without requiring specific payline definitions. The total number of winning combinations is the product of matching symbol counts per reel.

How ways wins work

For each unique symbol on the board, the engine counts how many positions on each consecutive reel contain that symbol (or a wild). The number of ways is the product of those per-reel counts:
The payout is: paytable[(kind, symbol)] × ways. For a 5-reel, 3-row board the theoretical maximum is 3⁵ = 243 ways for any given symbol.
The ways calculation does not account for wild symbols appearing on reel 0. Wilds only substitute on reels 1 and beyond.

Configuration

dict
required
Maps (kind, symbol) tuples to base payout multipliers. kind is the number of consecutive reels the symbol appears on.

Ways.get_ways_data()

Config
required
Game configuration with config.paytable and config.special_symbols populated.
list[list[Symbol]]
required
The active game board indexed as board[reel][row].
str
default:"wild"
Symbol attribute key identifying wild symbols.
int
default:"1"
Scalar multiplier applied to all wins when multiplier_strategy is "global" or "board".
str
default:"multiplier"
Symbol attribute key for reading per-symbol multiplier values.
str
default:"symbol"
One of "symbol", "board", or "global". See Multiplier strategies.

Return value

float
Sum of all ways wins for this board state.
list
One entry per winning symbol type.

Wild handling

Wild symbols contribute to ways counts on reels 1 and beyond. When using the "symbol" multiplier strategy, a wild with a multiplier attribute adds its multiplier value to the reel’s symbol count rather than 1 — so a 3× wild on reel 2 contributes 3 to the ways product:
This causes ways payouts to scale substantially faster than in lines games.

Multiplier strategies

Additional methods

Ways.emit_wayswin_events(gamestate)

Emits win_info, set_win, and set_total events if win_manager.spin_win > 0.

Ways.record_ways_wins(gamestate)

Writes force-file entries keyed by kind, symbol, ways, and gametype.

Usage

Use ways wins when you want to maximize combinations without defining explicit paylines. A 5-reel, 4-row board supports up to 4⁵ = 1,024 ways per symbol, offering far more winning opportunities than a typical 25-line game.