Mini Game Templates · Puzzles 2.0 Pack

Logic, tile, number, and spatial puzzle templates with editable difficulty and reusable board/UI systems.

Unity 6000.0.62f1+10 games32 boosters42 achievementsLiveOps Kit bundled

🏠 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.

Cat SortPour cats between beds until each tube is one colour.
Arrows EscapeFind the way out — slide every arrow path off the maze.
SudokuFill the grid — every row, column and box 1-9.
MinesweeperClear the field without hitting a mine.
FifteenSlide the tiles into numerical order.
Tile FlyTap an arrow tile to send it flying off the board — if its path is clear.
NonogramUse the number clues to reveal the hidden picture.
SokobanPush every crate onto a goal.
PipesRotate the pipes to connect the whole network.
Flow ConnectLink the matching dots — fill every cell.
One contract, 10 implementations. Every game implements IMiniGame and is discovered automatically by reflection — no scene wiring, no prefab lists.

Shared capabilities

💥 BoostersPer-game power-ups with persistent counts and refund safety.
🏆 AchievementsProgression goals per game, tracked persistently, with coin rewards.
🎨 ReskinsDrop in your own art per slot, per game — no code required.
🎯 TutorialsFirst-run overlay walkthroughs, defined declaratively per game.
📈 Level scalingAuto-generated difficulty curves, editable in the Studio.
🌙 Light & darkOne toggle re-themes the chrome and every game.
🎁 LiveOps Kit bundledAds, IAP, haptics, rate-us, notifications and more — the full HyperCasual LiveOps Kit ships in this pack.

⚙ 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 changeWhere to find it
Game rules / difficulty / dimensionsStudio, or the game's <Game>Settings asset
Per-level difficulty curveStudio > game panel > Levels editor
Colours / overall lookMiniGameTheme asset, or the in-app DARK/LIGHT toggle
Game art (tiles, pieces, backgrounds…)Reskin system — Tools > Mini Game Templates > Reskin Editor
Boosters offeredEach game's <Game>BoosterSpec.cs
Deeper layout / behaviourThe game's <Game>Game.cs build code
Heads-up: because the UI is procedural, customization happens through data (settings assets, theme, reskins) rather than dragging things around a scene. The data-driven path covers day-to-day tweaks; source access covers the rest.

⚡ Quick start

  1. Import MiniGameTemplates-Puzzles2.unitypackage. If Unity offers to import TMP Essentials, accept — the demo UI uses TextMeshPro.
  2. Open Assets/MiniGameTemplates/Demo/MiniGameTemplates_Puzzles2.unity. The full demo is already baked into the scene.
  3. Press Play — the dashboard lists every Puzzles 2.0 game; pick, play, and try the boosters and cheat rail.
  4. Open Tools > Mini Game Templates > Studio and tune any game's settings.
  5. (Optional) Open Tools > HLK > Guided Setup to configure the bundled LiveOps kit — ads, IAP, notifications, rate-us and more (see the LiveOps Kit section).
  6. To ship a single game inside your own UI, use the IMiniGame contract:
IMiniGame game = new CatSortGame();
game.Mount(hostRect, context);   // context : IMiniGameContext
// ... later, when done:
game.Unmount();
Tip: the demo scene's dashboard is a complete reference implementation of 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. "puzzles2_cat_sort"
    string DisplayName { get; }
    string Category { get; }
    string ShortDescription { get; }
    void Mount(RectTransform host, IMiniGameContext ctx);
    void Unmount();
    void NewRound();
    IEnumerable<CheatAction> GetCheatActions();
}

Auto-discovery

RegistryDiscoversConvention
MiniGameRegistryIMiniGame classes with a [MiniGame] attributeone per game
Booster registryIBoosterSpec implementations<Game>BoosterSpec.cs
Achievement registryIAchievementSpec implementations<Game>AchievementSpec.cs
Reskin registryIReskinSpec implementations<Game>ReskinSpec.cs
Tutorial registryITutorialSpec implementations<Game>TutorialSpec.cs

Per-game folder layout

Assets/MiniGameTemplates/Runtime/Puzzles2/<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
Modular by design. Delete any single game's folder and the rest keep working. Add a new game by mirroring the layout — no edits to any other file required.

Runtime flow

Mount(host, ctx)NewRound() → player input loop → RoundWon / RoundLost event → NewRound() or Unmount()

🎮 Cat Sort

Pour cats between beds until each tube is one colour.

How to play

  1. Click a bed to pick up the top cat — then click another bed to pour it in.
  2. A cat only stacks onto an empty bed or onto its own colour. Different colours won't mix.
  3. Finish when every bed is empty or filled with cats of one colour. Extra empty beds are your workspace.

Boosters

BoosterKeyEffect
UndoundoReverse your last cat move.
Extra Bedextra_bedAdd an extra empty bed for the rest of this round.
ResetresetRe-shuffle the cats into a fresh starting layout.
Auto Moveauto_moveFind and play one safe legal move for you.

Achievements

AchievementGoalReward
Cat Nap
Win your first Cat Sort round.
150 coins
Cat Lady
Win 10 Cat Sort rounds.
10200 coins
Purrfect
Win a round without using the Undo booster.
1120 coins
Streak Cat
Win 5 rounds in a row without using Undo.
5300 coins
Bed Master
Reach 2,000 best-score in a single round.
2000250 coins

Reskin slots

cat bed background — drop art per slot via Tools > Mini Game Templates > Reskin Editor.

Configurable settings

SettingDefaultWhat it does
BedCount6
BedCapacity4
CatTypes4
MoveDuration0.28f

↑ Back to top

🎮 Arrows Escape

Find the way out — slide every arrow path off the maze.

How to play

  1. Tap any arrow to slide its whole path forward — it keeps going until something blocks it or it escapes.
  2. Each tap costs one move from the budget shown at the top. Run out of moves before clearing every arrow and the level is lost.
  3. Plan the order — arrows block each other, so the path you free first matters. Leftover moves count for bonus score.

Boosters

BoosterKeyEffect
UndoundoRewind your last arrow move.
HinthintHighlights which arrow to slide next on the shortest known solution.
ResetresetRestore the level to its starting position.
Skipskip_levelSkip the level (no clear bonus).

Achievements

AchievementGoalReward
Way Out
Clear your first level.
1
Smart Moves
Clear 5 levels.
550 coins
Brain Workout
Clear 20 levels.
20200 coins
Clean Path
Clear a level without using undo.
175 coins
Solo Solver
Clear a level without using hint.
175 coins

Reskin slots

path_segment arrow_head background — drop art per slot via Tools > Mini Game Templates > Reskin Editor.

Configurable settings

SettingDefaultWhat it does
VisualArrowsEscapeVisualStyle.ModernVisual preset. Player can flip this at runtime via the in-game toggle.
GridColsBase6
GridRowsBase6
PathsBase4
MaxGenerationAttempts200
SlideDuration0.07f

↑ Back to top

🎮 Sudoku

Fill the grid — every row, column and box 1-9.

How to play

  1. Tap an empty cell to select it, then tap a number to fill it.
  2. Every row, column and 3x3 box must hold 1-9 with no repeats. Fill the whole grid to win!

Boosters

BoosterKeyEffect
RevealhintFill the selected (or a random) empty cell with its correct digit.
CheckcheckFlash any wrong digits currently on the board in red.
UndoundoUndo your last entry.

Achievements

AchievementGoalReward
First Grid
Solve your first Sudoku.
1
Sudoku Master
Solve 10 puzzles.
10250 coins
Unaided
Solve a puzzle without using the Reveal booster.
1150 coins
Grid Grinder
Solve 25 puzzles in total.
25400 coins

Reskin slots

cell background — drop art per slot via Tools > Mini Game Templates > Reskin Editor.

Configurable settings

SettingDefaultWhat it does
DifficultySudokuDifficulty.EasyHow many cells are revealed at the start. Easy ~40 givens, Medium ~32, Hard ~26 — fewer givens makes the puzzle harder.

↑ Back to top

🎮 Minesweeper

Clear the field without hitting a mine.

How to play

  1. Tap a cell to dig. Your first dig is always safe — numbers show how many mines touch that cell.
  2. Switch to FLAG mode to mark mines (▲). Clear every safe cell to win — hit a mine and it's over.

Boosters

BoosterKeyEffect
HinthintCorrectly flag a mine, or open one safe cell.
Safe Digsafe_revealAuto-reveal one cell guaranteed to be safe.
ShielddefuseSurvive the next mine you hit — it gets defused.

Achievements

AchievementGoalReward
First Sweep
Clear your first field.
1
Sweeper
Clear 10 fields.
10200 coins
Clean Hands
Win a round without placing a single flag.
1150 coins
Bomb Squad
Clear 25 fields in total.
25400 coins

Reskin slots

cell mine background — drop art per slot via Tools > Mini Game Templates > Reskin Editor.

Configurable settings

SettingDefaultWhat it does
DifficultyMinesweeperDifficulty.EasyBoard preset. Easy 9×9 / 10 mines, Medium 12×12 / 26 mines, Hard 14×14 / 45 mines. Changing this via the cheat panel calls ApplyDifficulty() to resize the grid.
Columns9
Rows9
MineCount10

↑ Back to top

🎮 Fifteen

Slide the tiles into numerical order.

How to play

  1. Tap a tile next to the empty gap to slide it across.
  2. Arrange the numbers in order, top-left to bottom-right, with the gap last. Fewer moves is better!

Boosters

BoosterKeyEffect
Next MovehintFlash a tile worth sliding next.
UndoundoSlide the last tile back.
ShuffleshuffleRe-scramble the board into a fresh solvable layout.

Achievements

AchievementGoalReward
In Order
Solve your first puzzle.
1
Slide Master
Solve 10 puzzles in total.
10150 coins
Clean Lines
Solve a puzzle within par moves.
1200 coins
Puzzle Veteran
Solve 25 puzzles in total.
25400 coins

Reskin slots

tile background — drop art per slot via Tools > Mini Game Templates > Reskin Editor.

Configurable settings

SettingDefaultWhat it does
DifficultyFifteenDifficulty.MediumBoard size: Easy = 3x3, Medium = 4x4, Hard = 5x5.

↑ Back to top

🎮 Tile Fly

Tap an arrow tile to send it flying off the board — if its path is clear.

How to play

  1. Each tile has an arrow. Tap it and it tries to fly off the board in that direction.
  2. If another tile is in the way, this tile can't leave. Find the right order.
  3. Clear every tile to win. No timer — just plan and tap.

Boosters

BoosterKeyEffect
HinthintHighlights a tile that can fly off RIGHT NOW.
ResetresetRestore the level to its starting position.
Skipskip_levelSkip the level (no clear bonus).

Achievements

AchievementGoalReward
First Takeoff
Clear your first board.
1
Ground Crew
Clear 5 boards.
550 coins
Airfield Master
Clear 20 boards.
20200 coins
Pure Pilot
Clear a board without using hint.
175 coins

Reskin slots

tile background — drop art per slot via Tools > Mini Game Templates > Reskin Editor.

Configurable settings

SettingDefaultWhat it does
ColsBase4
RowsBase5
ScaleGridByLeveltrueIf true, lower levels start with a smaller grid that grows with the level number.
FlyDuration0.40f
WiggleDuration0.22f

↑ Back to top

🎮 Nonogram

Use the number clues to reveal the hidden picture.

How to play

  1. The numbers count runs of filled cells in each row and column.
  2. Tap to fill a cell. Switch to X mode to mark blanks. Fill every cell the clues demand to reveal the picture.

Boosters

BoosterKeyEffect
Reveal CellhintCorrectly fill or mark one cell from the solution.
Check BoardcheckFlag every cell you have filled by mistake.
Solve Lineauto_lineAuto-solve one unfinished row or column.

Achievements

AchievementGoalReward
First Picture
Solve your first nonogram.
1
Picross Pro
Solve 10 nonograms.
10200 coins
Clear Eye
Solve a nonogram without using a hint.
1150 coins
Master of Pixels
Solve 25 nonograms in total.
25400 coins

Reskin slots

cell background — drop art per slot via Tools > Mini Game Templates > Reskin Editor.

Configurable settings

SettingDefaultWhat it does
DifficultyNonogramDifficulty.MediumBoard size: Easy 5x5, Medium 10x10, Hard 15x15.

↑ Back to top

🎮 Sokoban

Push every crate onto a goal.

How to play

  1. Move with the arrows / WASD / swipe, or the on-screen ◄►▲▼ pad. Walk into a crate to push it.
  2. You can't pull crates or push one into a wall. Push every crate onto a goal tile to clear the level.

Boosters

BoosterKeyEffect
HinthintFlash a crate that isn't on a goal yet.
UndoundoUndo your last move (and the crate it pushed).
ResetresetRestart the current level from scratch.

Achievements

AchievementGoalReward
Crate Expectations
Solve your first level.
1
Warehouse Boss
Solve 10 levels in total.
10150 coins
Optimal Pusher
Solve a level in par moves or fewer.
1200 coins
Logistics Legend
Solve 25 levels in total.
25400 coins

Reskin slots

player crate wall background — drop art per slot via Tools > Mini Game Templates > Reskin Editor.

Configurable settings

SettingDefaultWhat it does
TierStartTier.BeginnerWhich level the run starts on: Beginner = 1, Intermediate = 3, Advanced = 5.

↑ Back to top

🎮 Pipes

Rotate the pipes to connect the whole network.

How to play

  1. Tap a pipe to rotate it 90°. Lit pipes are powered from the glowing source.
  2. Connect every pipe back to the source with no open ends to light up the whole network.

Boosters

BoosterKeyEffect
HinthintRotate one misaligned pipe to its correct orientation.
UndoundoUndo your last rotation.
ResetresetReset the board to its scrambled start.

Achievements

AchievementGoalReward
First Flow
Connect your first network.
1
Master Plumber
Solve 10 networks.
10150 coins
No Wasted Turns
Solve a network in very few rotations.
1200 coins
Pipe Dream
Solve 25 networks in total.
25400 coins

Reskin slots

pipe background — drop art per slot via Tools > Mini Game Templates > Reskin Editor.

Configurable settings

SettingDefaultWhat it does
DifficultyPipesDifficulty.EasyGrid size: Easy = 5x5, Medium = 6x6, Hard = 7x7.

↑ Back to top

🎮 Flow Connect

Link the matching dots — fill every cell.

How to play

  1. Drag from a coloured dot to its matching dot to lay a pipe.
  2. Connect every pair AND fill every cell to solve the board. Crossing a pipe erases it.

Boosters

BoosterKeyEffect
HinthintFlash the dots of a pair you haven't connected yet.
UndoundoClear the longest pipe you've drawn.
ResetresetClear the whole board back to its dots.

Achievements

AchievementGoalReward
First Connection
Solve your first Flow level.
150 coins
Flow Master
Solve 10 Flow levels.
10200 coins
No Backtracking
Solve a level without using Undo.
1120 coins
Pipe Layer
Solve 25 levels in total.
25300 coins

Reskin slots

dot background — drop art per slot via Tools > Mini Game Templates > Reskin Editor.

Configurable settings

SettingDefaultWhat it does
DifficultyFlowDifficulty.EasyEasy = 5x5, Medium = 6x6, Hard = 7x7.

↑ Back to top

💥 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
}
Refund safety: returning 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

GameBooster keys
Cat Sortundo extra_bed reset auto_move
Arrows Escapeundo hint reset skip_level
Sudokuhint check undo
Minesweeperhint safe_reveal defuse
Fifteenhint undo shuffle
Tile Flyhint reset skip_level
Nonogramhint check auto_line
Sokobanhint undo reset
Pipeshint undo reset
Flow Connecthint undo reset

🏆 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

GameSlots
Cat Sortcat bed background
Arrows Escapepath_segment arrow_head background
Sudokucell background
Minesweepercell mine background
Fifteentile background
Tile Flytile background
Nonogramcell background
Sokobanplayer crate wall background
Pipespipe background
Flow Connectdot background
Sprite-only. The reskin system swaps sprites — layouts, colours and animations stay the same. Until custom art is added the games use clean procedural sprites and the pill shows 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.

Tip: when customizing, read colours from 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:

AdsRewarded, interstitial and banner service with mediation backends (AdMob, LevelPlay, AppLovin, Unity Ads). Runs a safe mock backend until a real SDK is installed.
IAPUnity Purchasing integration with catalog, dummy store for testing, and purchase-reward hooks.
HapticsCross-platform vibration service — already wired to every game's audio events in this demo.
Rate UsNative store-review prompts (Android in-app review / iOS SKStoreReviewController) with dummy editor backend.
NotificationsLocal notification scheduling with permission flow (mobile packages activate it).
Consent & privacyGoogle UMP / Apple ATT consent flow with editor-safe dummy backend.
Analytics & crashPluggable analytics (Unity Analytics / Firebase) and crash-reporter hooks.
Retention systemsDaily rewards, quests, battle pass, energy, offers, shop, unlocks, deep links, sharing, update prompt.

How it is hooked up in this demo

Setup & going live

  1. Everything works out of the box in the editor with mock/dummy backends — no SDKs required, nothing to configure for the demo.
  2. Open Tools > HLK > Open Toolset (or Tools > HLK > Guided Setup) to configure ad units, IAP products, notifications, rate-us and the rest.
  3. 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.
No SDK binaries ship in this package. The kit is pure source with optional integrations — it compiles clean in an empty project and lights up real providers only when you add them.

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_Puzzles2.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 CatSortGame();
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       */ });
Always 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 2.0, drop it in Resources/Config/, or mutate <Game>Settings.Default at runtime before mounting.

Boosters: add / remove / rebalance

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

  1. Create Assets/MiniGameTemplates/Runtime/Puzzles2/MyGame/.
  2. Add MyGameGame.cs implementing IMiniGame, decorated with [MiniGame("…", "My Game", Category = MiniGameCategory.Puzzles2)].
  3. Add MyGameSettings (optional) with a static Default getter.
  4. Add the spec files — MyGameBoosterSpec, MyGameAchievementSpec, MyGameReskinSpec, MyGameTutorialSpec — all auto-discovered.
  5. 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. puzzles2_cat_sort), 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.

Enjoying the pack? Reviews on the Asset Store are the biggest help to an indie publisher — if this pack saved you time, a star rating is hugely appreciated. ⭐