Mini Game Templates · Puzzles Pack
Logic, tile, number, and spatial puzzle templates with editable difficulty and reusable board/UI systems.
🏠 Overview
10 fully playable mini-games, each with boosters, achievements, reskin slots, a first-run tutorial, per-level difficulty scaling and light/dark theming — all driven by one shared runtime.
IMiniGame and is discovered automatically by reflection — no scene wiring, no prefab lists.Shared capabilities
⚙ How it works
This is a procedural-UI games template. Every game builds its own interface and logic in C# at runtime inside the RectTransform you give it — there are no hand-placed prefabs to wire up. The shipped demo scene is a pre-baked snapshot of that build, so you can inspect the full hierarchy without pressing Play; on Play it rebuilds itself and becomes fully interactive.
The Studio
Open Tools > Mini Game Templates > Studio for per-game tuning panels. Settings you edit are saved to ScriptableObject assets under Assets/MiniGameTemplates/Resources/Config/ and loaded by the games at runtime.
Customization at a glance
| What to change | Where to find it |
|---|---|
| Game rules / difficulty / dimensions | Studio, or the game's <Game>Settings asset |
| Per-level difficulty curve | Studio > game panel > Levels editor |
| Colours / overall look | MiniGameTheme asset, or the in-app DARK/LIGHT toggle |
| Game art (tiles, pieces, backgrounds…) | Reskin system — Tools > Mini Game Templates > Reskin Editor |
| Boosters offered | Each game's <Game>BoosterSpec.cs |
| Deeper layout / behaviour | The game's <Game>Game.cs build code |
⚡ Quick start
- Import
MiniGameTemplates-Puzzles.unitypackage. If Unity offers to import TMP Essentials, accept — the demo UI uses TextMeshPro. - Open
Assets/MiniGameTemplates/Demo/MiniGameTemplates_Puzzles.unity. The full demo is already baked into the scene. - Press Play — the dashboard lists every Puzzles game; pick, play, and try the boosters and cheat rail.
- Open Tools > Mini Game Templates > Studio and tune any game's settings.
- (Optional) Open Tools > HLK > Guided Setup to configure the bundled LiveOps kit — ads, IAP, notifications, rate-us and more (see the LiveOps Kit section).
- To ship a single game inside your own UI, use the
IMiniGamecontract:
IMiniGame game = new DropMergeGame();
game.Mount(hostRect, context); // context : IMiniGameContext
// ... later, when done:
game.Unmount();
IMiniGameContext (theme, audio, save, events, wallet, score) — copy it or implement the interface with your own services.🛠 Architecture
The IMiniGame contract
public interface IMiniGame {
string Id { get; } // stable snake_case id, e.g. "puzzles_drop_merge"
string DisplayName { get; }
string Category { get; }
string ShortDescription { get; }
void Mount(RectTransform host, IMiniGameContext ctx);
void Unmount();
void NewRound();
IEnumerable<CheatAction> GetCheatActions();
}
Auto-discovery
| Registry | Discovers | Convention |
|---|---|---|
MiniGameRegistry | IMiniGame classes with a [MiniGame] attribute | one per game |
| Booster registry | IBoosterSpec implementations | <Game>BoosterSpec.cs |
| Achievement registry | IAchievementSpec implementations | <Game>AchievementSpec.cs |
| Reskin registry | IReskinSpec implementations | <Game>ReskinSpec.cs |
| Tutorial registry | ITutorialSpec implementations | <Game>TutorialSpec.cs |
Per-game folder layout
Assets/MiniGameTemplates/Runtime/Puzzles/<Game>/
<Game>Game.cs // gameplay + procedural UI
<Game>Settings.cs // ScriptableObject settings (+ static Default)
<Game>BoosterSpec.cs // booster definitions
<Game>AchievementSpec.cs // achievement definitions
<Game>ReskinSpec.cs // reskinnable sprite slots
<Game>TutorialSpec.cs // first-run walkthrough steps
Runtime flow
Mount(host, ctx) → NewRound() → player input loop → RoundWon / RoundLost event → NewRound() or Unmount()
🎮 Drop & Merge
Drop numbered blocks. Match to merge — chain combos to bigger numbers.
How to play
- A numbered block sits at the top — slide it left/right and click a column to drop.
- Land the block next to others with the same number to merge them into the next power of 2.
- Three or more in a chain produce an even bigger merge — combo for the highest scores. Don't let blocks reach the top row.
Boosters
| Booster | Key | Effect |
|---|---|---|
| Hammer | hammer | Smash any single block on the board. |
| Reroll | reroll | Replace the falling block with a fresh random one. |
| Bomb | bomb | Drop a bomb instead — wipes a 3x3 area on landing. |
| Undo | undo | Take back your last drop (and any cascade it caused). |
Achievements
| Achievement | Goal | Reward |
|---|---|---|
| First Merge Trigger your first merge. | 1 | — |
| Centurion Create a 128 block. | 128 | 50 coins |
| Half a K Create a 512 block. | 512 | 150 coins |
| 2048! Reach the 2048 block. | 2048 | 400 coins |
| Cascade Hero Land a 5-deep cascade in a single drop. | 5 | 200 coins |
| High Scorer Reach 10,000 points in a single round. | 10000 | 200 coins |
Reskin slots
block background — drop art per slot via Tools > Mini Game Templates > Reskin Editor.
Configurable settings
| Setting | Default | What it does |
|---|---|---|
Cols | 5 | — |
Rows | 8 | — |
MinSpawnExp | 1 | — |
StartMaxSpawnExp | 5 | — |
DropSpeed | 1800f | — |
🎮 Collect 'Em All
Drag through same-colour dots — longer chains score huge.
How to play
- Press a dot and drag through neighbouring dots of the SAME colour to chain them — release to clear.
- Longer chains score exponentially — a 6-chain pays 6×6×10 = 360. Hunt for long routes.
- Watch the move counter — chains of 5+ refund a move, turning long chains into engine fuel.
Boosters
| Booster | Key | Effect |
|---|---|---|
| Shuffle | shuffle | Rearrange the dots already on the board (no new spawns). |
| Color Bomb | color_bomb | Pick a colour — every dot of that colour pops at once. |
| +5 Moves | plus5_moves | Add 5 to your move counter. |
| Undo | undo | Rewind your last move. |
Achievements
| Achievement | Goal | Reward |
|---|---|---|
| First Collection Clear your first round. | 1 | — |
| Octopus Make a single chain of 8 or more dots. | 8 | 100 coins |
| High Roller Score 5,000 in a single round. | 5000 | 150 coins |
| Veteran Collector Win 10 rounds. | 10 | 200 coins |
| Bomb Squad Use the color bomb 5 times. | 5 | 100 coins |
Reskin slots
dot chain_line background — drop art per slot via Tools > Mini Game Templates > Reskin Editor.
Configurable settings
| Setting | Default | What it does |
|---|---|---|
Cols | 7 | — |
Rows | 9 | — |
Colors | 5 | — |
MoveLimitBase | 30 | — |
ScoreTargetBase | 1500 | — |
BonusMoveChainLength | 5 | — |
PopDuration | 0.22f | — |
FallDuration | 0.32f | — |
🎮 Just Slide
Slide around and paint every cell — without crossing your own trail.
How to play
- Use the arrow keys (or WASD) to slide your token one cell at a time.
- Every cell you LEAVE stays painted — you cannot step back onto it.
- Paint every cell without getting stuck. Press R to restart if you box yourself in.
Boosters
| Booster | Key | Effect |
|---|---|---|
| Undo | undo | Rewind one step — un-paints the cell you just left. |
| Hint | hint | Highlight one adjacent cell that still leads to a solution. |
| Reset | reset | Re-start the current level from scratch. |
| Skip | skip_level | Skip to the next level. |
Achievements
| Achievement | Goal | Reward |
|---|---|---|
| First Trail Paint every cell on your first level. | 1 | — |
| Pathfinder Complete 5 levels. | 5 | 75 coins |
| Veteran Painter Complete 10 levels. | 10 | 150 coins |
| Marathon Complete 20 levels. | 20 | 250 coins |
| Pure Path Complete a level without using Undo. | 1 | 200 coins |
Reskin slots
player painted background — drop art per slot via Tools > Mini Game Templates > Reskin Editor.
Configurable settings
| Setting | Default | What it does |
|---|---|---|
Cols | 8 | — |
Rows | 8 | — |
BlockedCellsBase | 2 | — |
BlockedCellsMax | 10 | — |
MoveSeconds | 0.10f | — |
🎮 Color Tris
Slide and rotate colour-coded tetrominoes — clear rows before the stack hits the top.
How to play
- Use ← → (or A/D) to slide the falling piece, and ↑ / W to rotate it.
- Hold Down/S to soft-drop, or hit Space to slam the piece all the way down.
- Fill horizontal rows to clear them. The more rows in one drop, the bigger the score — gravity speeds up as you progress.
Boosters
| Booster | Key | Effect |
|---|---|---|
| Slow Fall | slow_fall | Halve gravity speed for the next 5 seconds. |
| Line Clear | line_clear | Sweep the bottom row away immediately. |
| Hold | hold_piece | Stash the current piece — swap with the stored one (first use simply stores). |
| Color Bomb | color_bomb | Wipe every block of the board's most-common colour. |
Achievements
| Achievement | Goal | Reward |
|---|---|---|
| First Line Clear your first row. | 1 | — |
| Half a Hundred Clear 50 rows across your career. | 50 | 100 coins |
| Tetris! Clear four rows in one drop. | 1 | 200 coins |
| High Scorer Reach 5,000 points in a single round. | 5000 | 150 coins |
| Stacker Play 10 rounds. | 10 | 50 coins |
Reskin slots
piece background — drop art per slot via Tools > Mini Game Templates > Reskin Editor.
Configurable settings
| Setting | Default | What it does |
|---|---|---|
Cols | 10 | — |
Rows | 18 | — |
StartFallSeconds | 1.0f | — |
MinFallSeconds | 0.18f | — |
SpeedupFactor | 0.92f | — |
LockPauseSeconds | 0.18f | — |
🎮 Tile Journey
Tap tiles into the tray — match 3 of a kind to clear.
How to play
- Click a tile to send it to the tray at the bottom.
- When 3 of the same type sit in the tray, they vanish and score points.
- Don't let the tray fill up with 7 different types — that's game over.
Boosters
| Booster | Key | Effect |
|---|---|---|
| Undo | undo | Send the last tile back to the board. |
| Magnet | magnet | Return any tile from the tray to the board. |
| Shuffle | shuffle | Re-scatter the remaining board tiles. |
| Extra Slot | slot_plus | Add a temporary 8th tray slot for this round. |
Achievements
| Achievement | Goal | Reward |
|---|---|---|
| Tray Tamer Clear the board for the first time. | 1 | 50 coins |
| Triple Trouble Clear the board 5 times. | 5 | 150 coins |
| Clean Hands Win a round without using Undo. | 1 | 120 coins |
| Speedrunner Clear the board in under 30 seconds. | 1 | 200 coins |
| Triple Triple Land 3 consecutive 3-matches with no off-type tile in tray. | 3 | 250 coins |
Reskin slots
tile tray_bg background — drop art per slot via Tools > Mini Game Templates > Reskin Editor.
Configurable settings
| Setting | Default | What it does |
|---|---|---|
TileTypes | 8 | — |
TilesPerType | 3 | — |
TraySize | 7 | — |
BoardCols | 5 | — |
BoardRows | 5 | — |
FlyDuration | 0.22f | — |
🎮 Block Puzzle
Drag polyominoes onto a 10x10 grid. Complete rows or columns to clear.
How to play
- Pick one of the three shapes in the tray, then click an empty board cell to place it.
- Complete an entire row or column to clear it from the board.
- Clear multiple lines with a single placement for a big bonus — and don't get boxed in!
Boosters
| Booster | Key | Effect |
|---|---|---|
| Refresh | refresh_tray | Reroll the three tray shapes. |
| Hammer | hammer | Smash any single block on the board. |
| Undo | undo | Take back your last placement (and any clears it triggered). |
| Line Burst | line_burst | Click any cell to clear that whole row. |
Achievements
| Achievement | Goal | Reward |
|---|---|---|
| First Clear Complete a row or column for the first time. | 1 | — |
| Stacker Reach 500 points in a single round. | 500 | 50 coins |
| Master Builder Reach 5,000 points in a single round. | 5000 | 250 coins |
| Centurion Lines Clear 100 lines (cumulative across rounds). | 100 | 150 coins |
| Quadbreaker Clear 4 lines with a single placement. | 1 | 200 coins |
Reskin slots
block tray_bg background — drop art per slot via Tools > Mini Game Templates > Reskin Editor.
Configurable settings
| Setting | Default | What it does |
|---|---|---|
Cols | 10 | — |
Rows | 10 | — |
TraySize | 3 | — |
🎮 Tile Away
Peel back stacks — match 3 in the tray to clear.
How to play
- Each cell holds a stack of tiles — click the TOP tile to send it to the tray.
- Removing the top reveals the next tile beneath.
- Match 3 of the same type in the tray to clear them. Don't let the tray fill with no match.
Achievements
| Achievement | Goal | Reward |
|---|---|---|
| Top of the Pile Win your first Tile Away round. | 1 | 50 coins |
| Stack Slayer Win 5 rounds. | 5 | 150 coins |
| Eyes Forward Win a round without using Undo. | 1 | 150 coins |
| No Peeking Win a round without using the Peek booster. | 1 | 200 coins |
| Big Brain Reach 3,000 best-score in a single round. | 3000 | 300 coins |
Reskin slots
tile tray_bg background — drop art per slot via Tools > Mini Game Templates > Reskin Editor.
🎮 Snake Out
Free every snake by sliding it head-first off the maze.
How to play
- Tap any snake to slide it forward — it keeps going until it hits another snake or escapes the maze.
- Each snake moves in the direction its head points. Curved snakes straighten as their body trails behind.
- Free every snake by getting all its segments off the maze. Plan the order — snakes block each other.
Boosters
| Booster | Key | Effect |
|---|---|---|
| Undo | undo | Rewind your last snake move. |
| Hint | hint | Highlights which snake to slide next on the shortest known solution. |
| Reset | reset | Restore the level to its starting position. |
| Skip | skip_level | Skip the level (no clear bonus). |
Achievements
| Achievement | Goal | Reward |
|---|---|---|
| First Escape Clear your first level. | 1 | — |
| Slithery Five Clear 5 levels. | 5 | 50 coins |
| Snake Charmer Clear 20 levels. | 20 | 200 coins |
| Clean Run Clear a level without using undo. | 1 | 75 coins |
| Solo Solver Clear a level without using hint. | 1 | 75 coins |
Reskin slots
snake_head snake_body background — drop art per slot via Tools > Mini Game Templates > Reskin Editor.
Configurable settings
| Setting | Default | What it does |
|---|---|---|
Visual | SnakeOutVisualStyle.Modern | Visual preset. Player can flip this at runtime via the in-game toggle. |
GridColsBase | 5 | — |
GridRowsBase | 5 | — |
SnakesBase | 2 | — |
MaxGenerationAttempts | 160 | — |
SlideDuration | 0.08f | — |
🎮 Block Champ
Block puzzle with lightning bombs and ice traps. Combo for big scores.
How to play
- Pick a shape from the tray, then click a cell to drop it. Complete rows or columns to clear them.
- Lightning blocks ⚡ clear an extra row above when their row clears. Stack them on the top rows for chained blasts.
- Ice blocks ❄ leave behind a stubborn residual when their row clears — you'll need a second clear to get rid of them.
Boosters
| Booster | Key | Effect |
|---|---|---|
| Refresh | refresh_tray | Reroll the three tray shapes. |
| Hammer | hammer | Smash any single block on the board. |
| Lightning | lightning_strike | Click any cell to blast that whole row. |
| Ice Melt | ice_melt | Melt every ice cell currently on the board. |
Achievements
| Achievement | Goal | Reward |
|---|---|---|
| First Clear Complete a row or column for the first time. | 1 | — |
| Champ Apprentice Reach 500 points in a single round. | 500 | 50 coins |
| Block Champion Reach 5,000 points in a single round. | 5000 | 250 coins |
| Storm Caller Trigger 10 lightning blasts (cumulative across rounds). | 10 | 150 coins |
| Combo! Clear 2 or more lines with a single placement. | 1 | 100 coins |
Reskin slots
block lightning_block ice_block background — drop art per slot via Tools > Mini Game Templates > Reskin Editor.
Configurable settings
| Setting | Default | What it does |
|---|---|---|
Cols | 10 | — |
Rows | 10 | — |
TraySize | 3 | — |
LightningChance | 0.06f | — |
IceChance | 0.04f | — |
MulticolorMode | true | When true, each cell of a placed shape uses an independent random colour from the 6-colour palette (rainbow mode). |
🎮 Wood Blocks Jam
Drag wooden colour blocks to their matching-colour exits on the board edge.
How to play
- Drag a coloured block around the board. It glows while you hold it.
- Drag it onto its MATCHING-COLOUR exit on the board edge — it slides out and disappears.
- Clear every block to win. Blocks can't overlap each other — plan the order.
Boosters
| Booster | Key | Effect |
|---|---|---|
| Undo | undo | Rewind the last block placement. |
| Hint | hint | Highlights a block and the exit it can reach. |
| Reset | reset | Restore the level to its starting position. |
| Skip | skip_level | Skip the level (no clear bonus). |
Achievements
| Achievement | Goal | Reward |
|---|---|---|
| First Jam Clear your first board. | 1 | — |
| Carpenter Clear 5 boards. | 5 | 50 coins |
| Master Joiner Clear 20 boards. | 20 | 200 coins |
| Steady Hands Clear a board without using undo. | 1 | 75 coins |
| Eye for Wood Clear a board without using hint. | 1 | 75 coins |
Reskin slots
block board exit background — drop art per slot via Tools > Mini Game Templates > Reskin Editor.
Configurable settings
| Setting | Default | What it does |
|---|---|---|
ColsBase | 7 | — |
RowsBase | 7 | — |
BlocksBase | 5 | — |
ObstaclesBase | 1 | — |
SnapDuration | 0.14f | — |
ExitDuration | 0.45f | — |
💥 Boosters
Per-game power-ups with persistent counts and refund safety, auto-discovered from each game's <Game>BoosterSpec.cs. The demo dashboard renders them as the bottom booster bar.
Activating a booster
bool OnBoosterActivated(string key) {
if (_ended || _busy) return false; // returning false REFUNDS the charge
switch (key) { /* per-key effects */ }
return false; // unknown key -> refund
}
false from the handler refunds the booster — use it whenever the activation can't proceed. Returning true deducts the charge.Award boosters programmatically with BoosterManager.Add(gameId, key, count).
Full booster catalogue
| Game | Booster keys |
|---|---|
| Drop & Merge | hammer reroll bomb undo |
| Collect 'Em All | shuffle color_bomb plus5_moves undo |
| Just Slide | undo hint reset skip_level |
| Color Tris | slow_fall line_clear hold_piece color_bomb |
| Tile Journey | undo magnet shuffle slot_plus |
| Block Puzzle | refresh_tray hammer undo line_burst |
| Tile Away | |
| Snake Out | undo hint reset skip_level |
| Block Champ | refresh_tray hammer lightning_strike ice_melt |
| Wood Blocks Jam | undo hint reset skip_level |
🏆 Achievements
Progression goals per game, defined in <Game>AchievementSpec.cs and tracked persistently by AchievementManager. Unlocks pop a toast card over the game and auto-credit any coin reward. Each game's own goals are listed in its section above.
Reset helpers for testing: AchievementManager.ResetForGame(gameId) and AchievementManager.ResetAll() (also exposed in the demo's cheat rail).
🎨 Reskins
Drop in your own art per slot, per game — no code required. Open Tools > Mini Game Templates > Reskin Editor, pick a game, and assign an image per slot. Art is copied to Resources/Reskin/<gameId>/<slot>.png and imported as a Sprite automatically. In-game, the Skin pill toggles between Default and Custom art.
Per-game slot list
| Game | Slots |
|---|---|
| Drop & Merge | block background |
| Collect 'Em All | dot chain_line background |
| Just Slide | player painted background |
| Color Tris | piece background |
| Tile Journey | tile tray_bg background |
| Block Puzzle | block tray_bg background |
| Tile Away | tile tray_bg background |
| Snake Out | snake_head snake_body background |
| Block Champ | block lightning_block ice_block background |
| Wood Blocks Jam | block board exit background |
Skin: —.🎯 Tutorials
First-run overlay walkthroughs, defined declaratively in <Game>TutorialSpec.cs as an ordered list of captioned spotlight steps. Each shows once per game's first session and can be replayed from the demo's cheat rail. Reset with TutorialManager.Reset(gameId).
📈 Level scaling
Per-game difficulty progression — auto-generated out of the box, fully editable in the Studio.
int level = LevelManager.GetCurrent(gameId); // player's current level
var diff = LevelManager.GetDifficultyForCurrent(gameId);
float mult = diff.Get("difficulty", 1f); // ramp targets / timers / AI
The Studio's Levels editor can regenerate a curve (level count, start/end difficulty) or hand-edit individual levels; edits are saved as a LevelSet asset under Resources/Config/Levels/<gameId>.asset. Reset progress with LevelManager.ResetProgress(gameId).
🌙 Light & dark mode
One toggle re-themes the whole scene — chrome and every game. Games read every colour from ctx.Theme, a MiniGameTheme asset that carries both palettes:
theme.ApplyMode(light: true); // swap palettes
bool isLight = theme.IsLightMode;
The demo dashboard's header has a DARK / LIGHT pill; the choice persists between sessions (default: dark). Both palettes are contrast-checked — panel/text/accent pairings stay readable in either mode.
ctx.Theme (Accent, TextPrimary, PanelBackground, …) rather than hardcoding, and your changes work in both modes.🎁 LiveOps Kit (bundled)
The full HyperCasual LiveOps Kit is included in this pack — no stripping, nothing to buy on top. It provides the production meta-game layer around the games:
How it is hooked up in this demo
- Vibrations: every game's sound events (taps, wins, errors) fire matching haptics through the kit automatically.
- Rewarded ad: winning a round with a coin reward offers a “Watch Ad” doubler; completing the (mock) ad credits the bonus.
- Interstitial: auto-shows after every 3rd round (skipped after a No-Ads purchase).
- Banner + shop: the cheat rail's Ads & IAP section toggles the banner and opens the simulated IAP shop (Coin Pack, No Ads, Starter Bundle) through the kit's store backend.
Setup & going live
- Everything works out of the box in the editor with mock/dummy backends — no SDKs required, nothing to configure for the demo.
- Open Tools > HLK > Open Toolset (or Tools > HLK > Guided Setup) to configure ad units, IAP products, notifications, rate-us and the rest.
- To go live, install the SDKs you want (e.g. AdMob, Unity Ads, Firebase) — the kit detects them automatically via scripting defines (
HLK_ADMOB,HLK_UNITY_ADS,HLK_FIREBASE, …) and switches from mock to real backends.
Full kit documentation: Assets/MiniGameTemplates/HyperCasualLiveOpsKit/Documentation/HLK-Documentation.html (also listed under Tools > Mini Game Templates > Welcome > Open Documentation).
➕ Add to your project
Path A — use the bundled demo dashboard
Add Assets/MiniGameTemplates/Demo/MiniGameTemplates_Puzzles.unity to your build settings. It auto-discovers every imported game and provides the picker, HUD, boosters, achievements and theming out of the box.
Path B — embed a single game in your own UI
IMiniGame game = new DropMergeGame();
game.Mount(hostRect, context); // your IMiniGameContext implementation
// ...
game.Unmount(); // ALWAYS unmount before destroying the host
Listening to events
ctx.Events.Subscribe(GameEvents.RoundWon, payload => { /* celebrate */ });
ctx.Events.Subscribe(GameEvents.RoundLost, payload => { /* retry UI */ });
ctx.Events.Subscribe(GameEvents.ScoreChanged, payload => { /* HUD */ });
Unmount(). Games run coroutines and tweens; failing to unmount before destroying the host leaves them running on destroyed transforms.⚙ Customizing
Override default settings
Each game reads a ScriptableObject settings asset (see each game's Configurable settings table above). Create one via Create > Mini Game Templates > Puzzles, drop it in Resources/Config/, or mutate <Game>Settings.Default at runtime before mounting.
Boosters: add / remove / rebalance
- Remove: delete the
BoosterDeffrom the game's spec. - Add: append a
BoosterDefand handle its key in the game's booster handler. - Grant:
BoosterManager.Add(gameId, key, count).
Audio
Games call ctx.Audio.Play(SfxKind.…). The bundled ProceduralAudioBus synthesizes all SFX at runtime — no audio files to manage; swap in your own IAudioBus to use recorded audio.
🧰 Adding new games
- Create
Assets/MiniGameTemplates/Runtime/Puzzles/MyGame/. - Add
MyGameGame.csimplementingIMiniGame, decorated with[MiniGame("…", "My Game", Category = MiniGameCategory.Puzzles)]. - Add
MyGameSettings(optional) with a staticDefaultgetter. - Add the spec files —
MyGameBoosterSpec,MyGameAchievementSpec,MyGameReskinSpec,MyGameTutorialSpec— all auto-discovered. - Done: the dashboard and Studio list your game automatically. No edits to existing files.
💡 Troubleshooting
Text is invisible / fonts look broken
Import TMP Essentials: Window > TextMeshPro > Import TMP Essential Resources. The demo UI uses TextMeshPro's default font.
My game doesn't show up in the dashboard
Check it implements IMiniGame, carries the [MiniGame] attribute, and its assembly references MiniGameTemplates.Core.
A booster button does nothing when pressed
The booster's key must exactly match a case in the game's booster handler — unknown keys refund silently by design.
Tutorials replay every time I press Play in the editor
The "seen" flag is stored per game id in PlayerPrefs; clearing PlayerPrefs resets it. Replay on demand from the cheat rail instead.
Reskin sprites don't apply
Import the art through Tools > Mini Game Templates > Reskin Editor (it handles the copy + import settings), then flip the in-game Skin pill to Custom.
Coroutine errors about destroyed RectTransforms when switching games
Call Unmount() before destroying the host. The unmount path stops the game's coroutines and tweens.
Ads say “SIMULATED” / no real ads show
By design: without an ad SDK installed the kit uses its mock backend, which draws clearly-labelled placeholder ads so every flow is testable. Install a real provider (e.g. AdMob via its package) and the kit switches to it automatically — see the LiveOps Kit section.
Where do I report a bug?
Email satisvizion@gmail.com with your Unity version, target platform, the game id (e.g. puzzles_drop_merge), steps to reproduce, and the console log.
📬 Support & review
Get in touch: satisvizion@gmail.com — bug reports, feature requests, integration help and game requests for future updates are all welcome. Typical response time is 24–48 hours.
Before contacting, it helps to: check Troubleshooting above, open the demo scene to verify the game runs there, and copy any Console errors. Include your Unity version, render pipeline, target platform and the game id.