Configuration keys, defaults, constraints, naming conventions, and component relationships for the C++ minigame runtime.
C++ runtime Source-derived defaults Constraints & caveatsReviewed 13 Aug 2026
Reference at a glance
current repository behavior
11
Minigame families
4
Cutter prefixes
16
Reference tables
C++
Runtime scope
Browse and search
press Escape to clear
How to read this guide
reference section
The C++ runtime reads most settings from an fsCVariableTable. A value marked Required is read without an explicit fallback and should be supplied even where the underlying table may return an empty string or zero. A value marked Optional shows the fallback encoded by the component.
Traditional empty-hole or row/column sliding puzzle
Jigsaw
JIG / CUJ
C++
Drag, rotate, cluster, deck, and cutter settings
Pairs
PRS
C++
Matching pairs with transition and mismatch shuffle
Join the Dots
JTD
C++
Ordered tap sequence
Spot the Difference
DIF
C++
Paired difference hotspots; naming-driven
Instant Inventory
logic component
C++
Key/lock completion logic
Word Search
WRD
C++
Grid, tile set, selection assets, and origin
Word Tiles
WTG
C++
Phrase-building tile layout
Anagram
AGM
C++
Numbered localized question/answer pairs
Shared C++ cutter parameters
reference section
The CUJ, CUR, CUF, and CUS cutter components build puzzle pieces from source art and stencil assets. These keys belong to the cutter style table and are inherited by the generated pieces.
Parameter
Type
Default / requirement
Explanation and constraints
originX
integer
Required
X coordinate of the puzzle grid centre before the cutter offsets it to the first tile.
originY
integer
Required
Y coordinate of the puzzle grid centre before the cutter offsets it to the first tile.
edgeSet
string path stem
Required
Stencil path prefix. Simple cutters load edgeSet + tile.png. Jigsaw also loads the tongue/groove edge images.
tileWidth
integer
Optional; 96
Base cutter fallback. Current registered cutter subclasses replace it with stencil-derived dimensions, so changing it does not reliably resize pieces.
tileHeight
integer
Optional; 96
Base cutter fallback. Current registered cutter subclasses replace it with stencil-derived dimensions.
tessellate
comma-separated integers
Rotate cutter only; empty
One-based tile indices to subdivide into four pieces. Requires edgeSet + subTile.png. Values are converted to zero-based indices internally.
C++ minigame parameters
reference section
Rotate
parameter group
Identifier: ROT (piece), CUR (cutter). Each tap advances a piece by one discrete rotation step until it returns to step zero.
Parameter
Type
Default / requirement
Explanation and constraints
steps
integer
Optional; 4
Number of positions around 360 degrees. Must be non-zero. A positive value turns clockwise; a negative value turns counter-clockwise. Magnitude is used as the step count.
linked
boolean
Optional; false
Links rotate pieces into a ring; operating one also advances its linked partner in the same configured direction.
linkedReverse
boolean
Optional; false
Links pieces as above but reverses the linked partner's direction. If linked is true, linkedReverse is not evaluated.
homeRotLock
boolean
Optional; false
When true, a piece cannot be rotated away after it reaches its home rotation.
Flipsaw
parameter group
Identifier: FLP (piece), FLPLGC (logic), CUF (cutter). Pieces are shuffled and solved by selecting two pieces to swap. Rotation can also be enabled.
Parameter
Type
Default / requirement
Explanation and constraints
stepsFLP
integer
Optional; 0
Rotation enable switch. Zero disables rotation. Any non-zero value enables the inherited rotate behavior; the actual number/direction of positions is read from steps.
steps
integer
Conditionally optional; 4
Inherited Rotate setting used when stepsFLP is non-zero. Positive/negative controls direction as for Rotate.
homePosLock
integer flag
Optional; 0
Set to 1 to prevent a correctly positioned piece from being selected and moved again.
wrongColTint
8-digit colour
Optional; ffffffff
RGBA tint used for a piece in the wrong position.
selectedColTint
8-digit colour
Optional; cd00cdff
RGBA tint for the selected piece.
hint tint
current-code behavior
No independent key
The hint colour is also read from selectedColTint. Its fallback is 00c800ff only when selectedColTint is absent. There is no separately read hintColTint key.
linked / linkedReverse / homeRotLock
boolean
Inherited
Apply only when rotation is enabled; semantics match Rotate.
Slidasquare
parameter group
Identifier: SLD (piece), CUS (cutter). Supports a classic sliding puzzle and cyclic row/column slide variants.
Parameter
Type
Default / requirement
Explanation and constraints
game
string enum
Optional; traditional
Valid values: traditional, xSlide, ySlide, xySlide. Any unrecognised value falls back to traditional.
speed
integer
Optional; 30
Movement increment applied on each update while a tile travels to its target; larger values move faster.
holeID
integer
Traditional only; last tile
Zero-based generated tile ID used as the invisible hole. If omitted, the last tile is used. Non-traditional modes do not create a hole.
stepsSLD
integer
Optional; 0
Rotation enable switch. Zero disables rotation. A non-zero value enables inherited rotation; the actual number/direction of positions comes from steps.
steps
integer
Conditionally optional; 4
Inherited Rotate setting used when stepsSLD is non-zero.
linked / linkedReverse / homeRotLock
boolean
Inherited
Apply only when rotation is enabled; semantics match Rotate.
Jigsaw
parameter group
Identifier: JIG (piece), JIGLGC (logic), CUJ (cutter). Pieces are dealt into a configurable deck area, optionally rotated, and dragged home. Nearby correct pieces may form clusters.
Parameter
Type
Default / requirement
Explanation and constraints
rotationStep
integer degrees
Optional in practice; 0
Rotation increment. Zero disables rotation. Non-zero values must divide 360 exactly; negative divisors produce the opposite angular direction.
clusteringEnabled
boolean
Optional; false
Allows correctly adjacent pieces to cluster and move together.
homePositionThreshold
integer
Optional; 16
Maximum positional tolerance used when deciding whether a piece is close enough to snap home.
stackOriginX
integer
Required
Centre X of the randomised start/deck region.
stackOriginY
integer
Required
Centre Y of the randomised start/deck region.
xRange
integer
Optional; half canvas minus piece width
Horizontal half-range used to seed deck positions.
yRange
integer
Optional; half canvas minus piece height
Vertical half-range used to seed deck positions.
wideScreenStackOriginX
integer
Optional override
Wide-screen deck centre X. The wide-screen override is used only when all four wide-screen keys exist.
wideScreenStackOriginY
integer
Optional override
Wide-screen deck centre Y.
xWideScreenRange
integer
Optional override
Wide-screen horizontal half-range.
yWideScreenRange
integer
Optional override
Wide-screen vertical half-range.
Jigsaw display and image overrides
Parameter
Type
Default / requirement
Explanation and constraints
drawer
string asset path
Optional; empty
Creates a slide-out drawer sprite when non-empty and uses it as the jigsaw desktop.
boxImagePosXOverride
integer
Optional; unset sentinel
Overrides the help/box image X position when supplied.
boxImagePosYOverride
integer
Optional; unset sentinel
Overrides the help/box image Y position when supplied.
ghostImagePosXOverride
integer
Optional; unset sentinel
Overrides the ghost image X position when supplied.
ghostImagePosYOverride
integer
Optional; unset sentinel
Overrides the ghost image Y position when supplied.
Jigsaw help-image component
Parameter
Type
Default / requirement
Explanation and constraints
width
integer
Required
Displayed help-image width.
height
integer
Required
Displayed help-image height.
opacity
integer 0-255
Optional; 255
Opacity. At 255 the image participates in draw-order state; lower values are attached to the current sub-scene parent.
Pairs
parameter group
Identifier: PRS (piece) with gfCPairsMiniGameLogicComponent. Pieces with the same numeric index form a match group. A conventional PRS-back.png asset supplies the reverse face when present.
Parameter
Type
Default / requirement
Explanation and constraints
transition
string enum
Optional; fade
Valid values are fade and rotate. Controls the reveal/hide transformation. Use only these values; unknown strings map through the current enum lookup without validation.
shuffle
boolean
Optional; false
When true, mismatched pieces exchange positions before turning face-down; otherwise they simply turn face-down.
Join the Dots
parameter group
Identifier: JTD. Players tap numbered entities in ascending numeric order; dummy-named layers are treated as already complete.
Parameter
Type
Default / requirement
Explanation and constraints
fullReset
boolean
Optional; false
When true, an incorrect tap resets previously completed dots after the feedback countdown.
tipFlash
boolean
Optional; true
When true, incorrect input freezes the game for about 1000 ms to show feedback. When false, the countdown is set to 1 ms.
Spot the Difference
parameter group
Identifier: DIF. The level table has no minigame-specific parameters; behavior is driven by paired entity names and the global diffFoundMarker setting.
Parameter
Type
Default / requirement
Explanation and constraints
Entity numeric index
naming convention
Required
All digits in the name after DIF form the difference index. Hotspots with the same index are completed together.
a / b suffix
naming convention
Required by convention
Names follow DIF-xxxxx(n)a/b. The a side is treated as the original and plays the find sound.
diffFoundMarker
global app setting
Required outside level table
Animation or particle asset used to mark a found difference. A .txt extension selects the particle path; other extensions use animated-sprite data.
Instant Inventory
parameter group
Identifier: gfCInstantInventoryMiniGameLogicComponent. Collects draggable keys and lock components under the logic entity and completes when all locks have been broken.
Parameter
Type
Default / requirement
Explanation and constraints
reset
boolean
Optional; false
Read into mReset during initialisation. In the current implementation it is not consulted after assignment, so changing it has no observable gameplay effect.
depthOrderLocks
boolean
Optional; true
Level setting used by draggable Instant Inventory keys. When true, an overlapping incompatible lock in front stops the lock search, so visual Z/depth order determines which lock receives the key. Set to false to ignore lock depth order and continue searching overlapping locks for a compatible target behind it.
Word Search
parameter group
Identifier: WRD. Loads a grid/word file and creates letter tiles from the configured tile-set directory.
Parameter
Type
Default / requirement
Explanation and constraints
tileSet
string path
Required
Directory containing letter images, including w.png used to determine tile size.
grid
string asset path
Required
Grid definition file containing the letter matrix and hidden-word list.
originX
integer
Required
X origin passed to the tile-grid layout.
originY
integer
Required
Y origin passed to the tile-grid layout.
selection
string asset path
Optional; derived
Primary single-tile/highlight asset. Defaults to tileSet/selection.png.
selection2
string asset path
Optional; derived
Selection-line body asset. Defaults to tileSet/selection2.png.
selection2End
string asset path
Optional; derived
Selection-line end-cap asset. Defaults to tileSet/selection2End.png.
Word Tiles
parameter group
Identifier: WTG. Builds a phrase from localized conversation entries for the current level and lays out letter tiles inside a configured area.
Parameter
Type
Default / requirement
Explanation and constraints
originX
integer
Optional; 0
X origin of the word-tile layout area.
originY
integer
Optional; 0
Y origin of the word-tile layout area.
width
integer
Optional; 300
Width of the word-tile layout area.
height
integer
Optional; 300
Height of the word-tile layout area.
tileSet
string path
Required
Tile asset set used to instantiate the letters.
Anagram
parameter group
Identifier: AGM controller. Loads numbered localized prompt/solution pairs and creates collectable word entities for the solutions.
Parameter
Type
Default / requirement
Explanation and constraints
tileSet
string path
Required
Tile asset set passed to each anagram when it is initialised.
AGM-Q1, AGM-Q2, ...
localized string keys
Required sequence
Each value is a localization key for the scrambled prompt. Numbering starts at 1.
AGM-A1, AGM-A2, ...
localized string keys
Required sequence
Matching localization key for the solution. Loading stops at the first index where either Q or A is empty.
Validation checklist
reference section
Check
What to verify
Prefix and name
Use a registered prefix and include numeric identifiers for PRS, JTD, and DIF entities.
Required assets
Verify edgeSet, tileSet, grid, drawer, selection, and marker paths against the asset root.
Rotation safety
Do not use steps = 0 for Rotate. For Jigsaw, use rotationStep = 0 or a non-zero divisor of 360.
Enable/control pairs
For Flipsaw and Slidasquare, use stepsFLP/stepsSLD to enable rotation and steps to define it.
Wide-screen deck
Supply all four wide-screen jigsaw deck keys or none; partial overrides are ignored.
Current-code caveats
Treat Instant Inventory reset and Flipsaw hint tint as documented implementation limitations.