pixi-reels

SymbolData

pixi-reels


pixi-reels / index / SymbolData

Interface: SymbolData

Defined in: config/types.ts:159

Per-symbol configuration data.

Properties

PropertyTypeDescriptionDefined in
size?{ h: number; w: number; }Footprint in cells. Default { w: 1, h: 1 }. When w * h > 1 this symbol is a “big symbol”. at landing it occupies an w × h block of cells anchored at the (col, row) where its id appears in the result. Big-symbol registration is rejected on MultiWays slots.config/types.ts:203
size.hnumber-config/types.ts:203
size.wnumber-config/types.ts:203
unmask?booleanIf true, the engine parents this symbol’s view to viewport.unmaskedContainer instead of the reel’s masked container. the symbol renders above the reel mask, useful for oversized win animations (expanding wilds, splash frames) that should not be clipped at the cell boundary. At-rest presentation: unmask lifts a symbol above the mask ONLY while its reel is stopped. On notifyLanded each visible-row instance is re-parented into viewport.unmaskedContainer (X = reel.container.x, Y = reel.container.y + reelLocalY so it lines up with its grid cell); the instant the reel starts moving again it is pulled back into the masked reel container. So while spinning, an unmasked id is masked like everything else. nothing scrolls above the grid, and buffer rows are never lifted. If you need a symbol to stay above the mask while the reel moves, use a cell pin instead. Works on jagged/pyramid layouts: a reel with non-zero offsetY is handled. Reel._syncUnmaskedViewOffsets() re-bakes container.y into lifted views after every absolute motion.snapToGrid() (which writes bare reel-local Y); displace() is incremental and preserves the offset. Because lifted views exist only at rest, the frequent mid-spin snaps never touch them. Mask-strategy auto-pick: when any registered symbol sets unmask: true and symbolGap.x > 0, the builder switches the default RectMaskStrategy to SharedRectMaskStrategy so that neighboring (masked) symbols don’t get clipped at the column gap next to the unmasked overlay. Passing .maskStrategy(...) explicitly always wins. For symbols that need to overlap across reel boundaries while unmasked, prefer SharedRectMaskStrategy.config/types.ts:196
weightnumberRelative weight for random generation (higher = more frequent).config/types.ts:161
zIndex?numberDisplay layering order. Higher = in front.config/types.ts:163