Fission SDK · C++ technical reference

Fission Minigame Parameter Reference

Configuration keys, defaults, constraints, naming conventions, and component relationships for the C++ minigame runtime.

C++ runtime Source-derived defaults Constraints & caveats Reviewed 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.

Quick index

reference section
MinigamePrefixRuntimeConfiguration focus
RotateROT / CURC++Discrete rotation puzzle; optional cutter path
FlipsawFLP / CUFC++Swap pieces; optional rotation; optional cutter path
SlidasquareSLD / CUSC++Traditional empty-hole or row/column sliding puzzle
JigsawJIG / CUJC++Drag, rotate, cluster, deck, and cutter settings
PairsPRSC++Matching pairs with transition and mismatch shuffle
Join the DotsJTDC++Ordered tap sequence
Spot the DifferenceDIFC++Paired difference hotspots; naming-driven
Instant Inventorylogic componentC++Key/lock completion logic
Word SearchWRDC++Grid, tile set, selection assets, and origin
Word TilesWTGC++Phrase-building tile layout
AnagramAGMC++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.

ParameterTypeDefault / requirementExplanation and constraints
originXintegerRequiredX coordinate of the puzzle grid centre before the cutter offsets it to the first tile.
originYintegerRequiredY coordinate of the puzzle grid centre before the cutter offsets it to the first tile.
edgeSetstring path stemRequiredStencil path prefix. Simple cutters load edgeSet + tile.png. Jigsaw also loads the tongue/groove edge images.
tileWidthintegerOptional; 96Base cutter fallback. Current registered cutter subclasses replace it with stencil-derived dimensions, so changing it does not reliably resize pieces.
tileHeightintegerOptional; 96Base cutter fallback. Current registered cutter subclasses replace it with stencil-derived dimensions.
tessellatecomma-separated integersRotate cutter only; emptyOne-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.

ParameterTypeDefault / requirementExplanation and constraints
stepsintegerOptional; 4Number 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.
linkedbooleanOptional; falseLinks rotate pieces into a ring; operating one also advances its linked partner in the same configured direction.
linkedReversebooleanOptional; falseLinks pieces as above but reverses the linked partner's direction. If linked is true, linkedReverse is not evaluated.
homeRotLockbooleanOptional; falseWhen 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.

ParameterTypeDefault / requirementExplanation and constraints
stepsFLPintegerOptional; 0Rotation enable switch. Zero disables rotation. Any non-zero value enables the inherited rotate behavior; the actual number/direction of positions is read from steps.
stepsintegerConditionally optional; 4Inherited Rotate setting used when stepsFLP is non-zero. Positive/negative controls direction as for Rotate.
homePosLockinteger flagOptional; 0Set to 1 to prevent a correctly positioned piece from being selected and moved again.
wrongColTint8-digit colourOptional; ffffffffRGBA tint used for a piece in the wrong position.
selectedColTint8-digit colourOptional; cd00cdffRGBA tint for the selected piece.
hint tintcurrent-code behaviorNo independent keyThe 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 / homeRotLockbooleanInheritedApply 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.

ParameterTypeDefault / requirementExplanation and constraints
gamestring enumOptional; traditionalValid values: traditional, xSlide, ySlide, xySlide. Any unrecognised value falls back to traditional.
speedintegerOptional; 30Movement increment applied on each update while a tile travels to its target; larger values move faster.
holeIDintegerTraditional only; last tileZero-based generated tile ID used as the invisible hole. If omitted, the last tile is used. Non-traditional modes do not create a hole.
stepsSLDintegerOptional; 0Rotation enable switch. Zero disables rotation. A non-zero value enables inherited rotation; the actual number/direction of positions comes from steps.
stepsintegerConditionally optional; 4Inherited Rotate setting used when stepsSLD is non-zero.
linked / linkedReverse / homeRotLockbooleanInheritedApply 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.

ParameterTypeDefault / requirementExplanation and constraints
rotationStepinteger degreesOptional in practice; 0Rotation increment. Zero disables rotation. Non-zero values must divide 360 exactly; negative divisors produce the opposite angular direction.
clusteringEnabledbooleanOptional; falseAllows correctly adjacent pieces to cluster and move together.
homePositionThresholdintegerOptional; 16Maximum positional tolerance used when deciding whether a piece is close enough to snap home.
stackOriginXintegerRequiredCentre X of the randomised start/deck region.
stackOriginYintegerRequiredCentre Y of the randomised start/deck region.
xRangeintegerOptional; half canvas minus piece widthHorizontal half-range used to seed deck positions.
yRangeintegerOptional; half canvas minus piece heightVertical half-range used to seed deck positions.
wideScreenStackOriginXintegerOptional overrideWide-screen deck centre X. The wide-screen override is used only when all four wide-screen keys exist.
wideScreenStackOriginYintegerOptional overrideWide-screen deck centre Y.
xWideScreenRangeintegerOptional overrideWide-screen horizontal half-range.
yWideScreenRangeintegerOptional overrideWide-screen vertical half-range.

Jigsaw display and image overrides

ParameterTypeDefault / requirementExplanation and constraints
drawerstring asset pathOptional; emptyCreates a slide-out drawer sprite when non-empty and uses it as the jigsaw desktop.
boxImagePosXOverrideintegerOptional; unset sentinelOverrides the help/box image X position when supplied.
boxImagePosYOverrideintegerOptional; unset sentinelOverrides the help/box image Y position when supplied.
ghostImagePosXOverrideintegerOptional; unset sentinelOverrides the ghost image X position when supplied.
ghostImagePosYOverrideintegerOptional; unset sentinelOverrides the ghost image Y position when supplied.

Jigsaw help-image component

ParameterTypeDefault / requirementExplanation and constraints
widthintegerRequiredDisplayed help-image width.
heightintegerRequiredDisplayed help-image height.
opacityinteger 0-255Optional; 255Opacity. 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.

ParameterTypeDefault / requirementExplanation and constraints
transitionstring enumOptional; fadeValid values are fade and rotate. Controls the reveal/hide transformation. Use only these values; unknown strings map through the current enum lookup without validation.
shufflebooleanOptional; falseWhen 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.

ParameterTypeDefault / requirementExplanation and constraints
fullResetbooleanOptional; falseWhen true, an incorrect tap resets previously completed dots after the feedback countdown.
tipFlashbooleanOptional; trueWhen 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.

ParameterTypeDefault / requirementExplanation and constraints
Entity numeric indexnaming conventionRequiredAll digits in the name after DIF form the difference index. Hotspots with the same index are completed together.
a / b suffixnaming conventionRequired by conventionNames follow DIF-xxxxx(n)a/b. The a side is treated as the original and plays the find sound.
diffFoundMarkerglobal app settingRequired outside level tableAnimation 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.

ParameterTypeDefault / requirementExplanation and constraints
resetbooleanOptional; falseRead into mReset during initialisation. In the current implementation it is not consulted after assignment, so changing it has no observable gameplay effect.
depthOrderLocksbooleanOptional; trueLevel 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 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.

ParameterTypeDefault / requirementExplanation and constraints
originXintegerOptional; 0X origin of the word-tile layout area.
originYintegerOptional; 0Y origin of the word-tile layout area.
widthintegerOptional; 300Width of the word-tile layout area.
heightintegerOptional; 300Height of the word-tile layout area.
tileSetstring pathRequiredTile 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.

ParameterTypeDefault / requirementExplanation and constraints
tileSetstring pathRequiredTile asset set passed to each anagram when it is initialised.
AGM-Q1, AGM-Q2, ...localized string keysRequired sequenceEach value is a localization key for the scrambled prompt. Numbering starts at 1.
AGM-A1, AGM-A2, ...localized string keysRequired sequenceMatching localization key for the solution. Loading stops at the first index where either Q or A is empty.

Validation checklist

reference section
CheckWhat to verify
Prefix and nameUse a registered prefix and include numeric identifiers for PRS, JTD, and DIF entities.
Required assetsVerify edgeSet, tileSet, grid, drawer, selection, and marker paths against the asset root.
Rotation safetyDo not use steps = 0 for Rotate. For Jigsaw, use rotationStep = 0 or a non-zero divisor of 360.
Enable/control pairsFor Flipsaw and Slidasquare, use stepsFLP/stepsSLD to enable rotation and steps to define it.
Wide-screen deckSupply all four wide-screen jigsaw deck keys or none; partial overrides are ignored.
Current-code caveatsTreat Instant Inventory reset and Flipsaw hint tint as documented implementation limitations.

Source map

reference section

Primary source files reviewed for this reference:

gameModules/gfMinigameCore/gfMinigameComponentFactory.cppgameModules/gfMinigameCore/components/gfICutterComponent.cppgameModules/gfMinigameCore/components/{rotate,flipsaw,slidasquare,jigsaw,pairs,joinTheDots,spotTheDiff,instantInventory}/gameModules/gfMinigameCore/components/wordGames/{wordSearch,wordTiles,anagram}/