Back to Documentation
Hold & Win Node

HnwPayoutLocked

Calculate end-of-bonus payout from all locked positions with multipliers

Inputs

valueTagstringrequired

Tag prefix for symbol values (e.g. 'coin:value')

collectValueTagstring

Tag prefix for collect values (e.g. 'collect:value')

multiplierTagstringrequired

Tag prefix for position multipliers (e.g. 'position:multiplier')

defaultMultipliernumber

Fallback multiplier if none set

Default: 1

lockedTagstringrequired

Tag identifying locked positions

disabledTagstring

Tag identifying disabled positions (excluded from payout)

Default: disabled:true

totalPositionsnumber

Total positions on grid for Grand Jackpot check

Default: 15

grandJackpotValuenumber

Grand jackpot payout multiplier

Default: 5000

Outputs

totalPayoutnumber

Total payout from all locked symbols

grandJackpotboolean

True if all positions were locked

Overview

End-of-bonus payout calculation: for each locked position, multiplies the symbol's coin value by the position's accumulated multiplier. Also checks for Grand Jackpot condition (all positions locked).

Algorithm

  1. Find all positions with the lockedTag
  2. For each locked position:
    • Skip if position has disabled:true tag
    • Read symbol value from valueTag:N or collectValueTag:N
    • Read position multiplier from multiplierTag:N
    • Calculate: payout = symbolValue × multiplier
  3. Sum all position payouts
  4. Check Grand Jackpot: if locked count ≥ totalPositions, add grandJackpotValue
  5. Write hnw:payout:N tag to global entity

Disabled Position Handling

Positions with the disabled:true tag are excluded from the payout calculation, even if they are locked. This allows for "blocker" symbols that persist but don't contribute value.

Example

// Locked positions after H&W bonus:
pos_0_0: locked:true, coin:value:5
pos_1_1: locked:true, coin:value:10, position:multiplier:2
pos_2_0: locked:true, disabled:true, coin:value:5  // SKIPPED
pos_3_2: locked:true, coin:value:5

// Calculation:
pos_0_0: 5 × 1 = 5
pos_1_1: 10 × 2 = 20
pos_2_0: SKIPPED (disabled)
pos_3_2: 5 × 1 = 5

// Total: 30