Mini Game Templates · Casual 3.0 Pack

Pick-up-and-play casual templates with fast loops, configurable settings, level curves, and reusable UI patterns.

Unity 6000.0.62f1+10 games20 boosters40 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.

Reaction TestTap the instant the panel flashes green.
Coin StreakCall the coin, build a streak, bank before you bust.
Guess the NumberFind the hidden number with higher/lower hints.
Dice DuelPush your luck rolling dice — bank before a 1 busts you.
Odd One OutSpot the slightly-off tile before time runs out.
Chimp TestMemorise the numbers, then tap them in order.
Math SprintSolve quick maths against the clock.
Flood ItFlood the whole board to one colour in time.
Tile MemoryMemorise the lit cells, then tap them all.
Stop the ClockStop the sweeping marker inside the target zone.
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-Casual3.unitypackage. If Unity offers to import TMP Essentials, accept — the demo UI uses TextMeshPro.
  2. Open Assets/MiniGameTemplates/Demo/MiniGameTemplates_Casual3.unity. The full demo is already baked into the scene.
  3. Press Play — the dashboard lists every Casual 3.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 ReactionTestGame();
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. "casual3_reaction"
    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/Casual3/<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()

🎮 Reaction Test

Tap the instant the panel flashes green.

How to play

  1. Watch the panel. It starts red — do NOT tap yet.
  2. The moment it flashes green, tap as fast as you can. Tap too early and you take a penalty.

Boosters

BoosterKeyEffect
Pre-CuehintTint the panel amber just before it goes green.
Re-RollredoThrow out the current trial and start it again.

Achievements

AchievementGoalReward
Quick Draw
Record a best reaction under 300 ms.
1
Lightning
Record a best reaction under 250 ms.
1200 coins
Sharp Average
Finish a run with a strong score.
350150 coins
Reflex Regular
Complete 50 full runs.
50250 coins

Reskin slots

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

Configurable settings

SettingDefaultWhat it does
DifficultyReactionDifficulty.MediumHigher difficulty widens the random wait before the flash.
Trials5Number of timed trials per run.

↑ Back to top

🎮 Coin Streak

Call the coin, build a streak, bank before you bust.

How to play

  1. Call HEADS or TAILS. Each correct call grows your streak and your pot.
  2. BANK the pot to lock it into your safe score, or keep calling — a wrong call wipes the pot!

Boosters

BoosterKeyEffect
Safe FliphintYour next call is guaranteed to land right.
Double PotdoubleDouble whatever is currently in the pot.

Achievements

AchievementGoalReward
Hot Hand
Reach a streak of 5 correct calls.
5
On Fire
Reach a streak of 10 correct calls.
10250 coins
Banker
Bank a safe score of 100.
100200 coins
Cash Out
Bank the pot 50 times in total.
50200 coins

Reskin slots

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

Configurable settings

SettingDefaultWhat it does
DifficultyCoinStreakDifficulty.MediumHigher difficulty biases the coin against your call.

↑ Back to top

🎮 Guess the Number

Find the hidden number with higher/lower hints.

How to play

  1. Type a number between 1 and 100 on the keypad, then tap OK.
  2. The hint says HIGHER or LOWER and narrows the range. Fewer guesses score more!

Boosters

BoosterKeyEffect
NarrowhintShrink the live range toward the hidden number.
Extra TriesextraAdd two more attempts to your budget.

Achievements

AchievementGoalReward
Code Breaker
Find the number 10 times.
10
Bisector
Solve it in 4 guesses or fewer.
1200 coins
Beginner's Luck
Nail it on the very first guess.
1300 coins
High Roller
Score 120 in a single solve.
120150 coins

Reskin slots

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

Configurable settings

SettingDefaultWhat it does
DifficultyNumberGuessDifficulty.MediumHigher difficulty allows fewer attempts.

↑ Back to top

🎮 Dice Duel

Push your luck rolling dice — bank before a 1 busts you.

How to play

  1. ROLL adds the die to your turn total — but rolling a 1 busts the whole turn!
  2. HOLD to bank your turn total. First to the target beats the AI.

Boosters

BoosterKeyEffect
Lucky RollhintYour next roll cannot come up a 1.
StealstealTake 5 points straight from the AI's score.

Achievements

AchievementGoalReward
Duelist
Win 10 duels.
10
Giant Slayer
Beat the AI on Hard.
1250 coins
Crushing Victory
Win a duel by a wide margin.
60150 coins
Persistent
Play 25 duels.
25150 coins

Reskin slots

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

Configurable settings

SettingDefaultWhat it does
DifficultyDiceDuelDifficulty.MediumHigher difficulty makes the AI hold for bigger turns.
Target50Target total to win the duel.

↑ Back to top

🎮 Odd One Out

Spot the slightly-off tile before time runs out.

How to play

  1. Every tile is the same colour except one. Tap the odd one out.
  2. Each correct tap grows the grid and shrinks the difference. Beat the timer at the top!

Boosters

BoosterKeyEffect
RevealhintBriefly flash the odd tile.
Add TimetimeAdd 6 seconds to the timer.

Achievements

AchievementGoalReward
Sharp Eye
Reach level 10.
10
Eagle Eye
Reach level 20.
20250 coins
Tile Hunter
Spot 200 odd tiles in total.
200200 coins
Persistent Spotter
Play 20 runs.
20150 coins

Reskin slots

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

Configurable settings

SettingDefaultWhat it does
DifficultyOddOneOutDifficulty.MediumHigher difficulty shrinks the colour difference faster and tightens the timer.

↑ Back to top

🎮 Chimp Test

Memorise the numbers, then tap them in order.

How to play

  1. Numbers appear on the grid. Memorise where they are.
  2. Tap them in order 1, 2, 3... The tiles hide as you go. Clear it to add one more number.

Boosters

BoosterKeyEffect
PeekhintBriefly reveal the remaining numbers.
Auto TapskipTap the next correct number for you.

Achievements

AchievementGoalReward
Smarter Than Average
Reach 8 numbers.
8
Chimp Champ
Reach 12 numbers.
12300 coins
Memory Marathon
Clear 100 boards in total.
100200 coins
Test Subject
Play 20 runs.
20150 coins

Reskin slots

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

Configurable settings

SettingDefaultWhat it does
DifficultyChimpTestDifficulty.MediumHigher difficulty starts with more numbers and hides them sooner.

↑ Back to top

🎮 Math Sprint

Solve quick maths against the clock.

How to play

  1. Solve the sum and tap the matching answer below.
  2. Correct answers build a combo and add time; wrong ones cost time. Beat the clock!

Boosters

BoosterKeyEffect
Fifty-FiftyhintRemove two wrong answers.
Add TimetimeAdd 5 seconds to the clock.

Achievements

AchievementGoalReward
Number Cruncher
Score 40 in a single run.
40
On a Roll
Reach a combo of 15.
15200 coins
Mathlete
Solve 500 problems in total.
500250 coins
Daily Drill
Play 25 runs.
25150 coins

Reskin slots

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

Configurable settings

SettingDefaultWhat it does
DifficultyMathSprintDifficulty.MediumHigher difficulty uses bigger operands and harder operators.

↑ Back to top

🎮 Flood It

Flood the whole board to one colour in time.

How to play

  1. The flood starts at the top-left. Pick a palette colour to repaint your region.
  2. Each pick absorbs matching neighbours. Make the whole board one colour before your moves run out!

Boosters

BoosterKeyEffect
Best ColourhintHighlight the colour that grows your region most.
Extra MovesmovesAdd 3 moves to your budget.

Achievements

AchievementGoalReward
Flooded
Win 10 boards.
10
Efficient
Win with at least 3 moves to spare.
1200 coins
Big Board Boss
Win on Hard.
1250 coins
Perfectionist
Score 160 in a single win.
160150 coins

Reskin slots

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

Configurable settings

SettingDefaultWhat it does
DifficultyFloodItDifficulty.MediumHigher difficulty uses a bigger board, more colours and a tighter move budget.

↑ Back to top

🎮 Tile Memory

Memorise the lit cells, then tap them all.

How to play

  1. Some cells light up for a moment. Remember which ones.
  2. Once they hide, tap every cell that was lit. Clear it to add one more next round.

Boosters

BoosterKeyEffect
Reveal OnehintBriefly flash one cell you still need.
Peek AgainpeekShow the whole pattern once more.

Achievements

AchievementGoalReward
Good Recall
Reach level 8.
8
Total Recall
Reach level 14.
14300 coins
Pattern Pro
Clear 150 patterns in total.
150200 coins
Memory Lane
Play 20 runs.
20150 coins

Reskin slots

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

Configurable settings

SettingDefaultWhat it does
DifficultyTileMemoryDifficulty.MediumHigher difficulty starts with more lit cells and a shorter flash.

↑ Back to top

🎮 Stop the Clock

Stop the sweeping marker inside the target zone.

How to play

  1. A marker sweeps across the bar. The green band is your target.
  2. Tap STOP inside the zone — closer to the gold centre scores more. Each hit speeds up and shrinks the zone.

Boosters

BoosterKeyEffect
Widen ZonehintMake the target zone bigger for this stop.
Slow SweepslowHalve the marker speed for the current sweep.

Achievements

AchievementGoalReward
Steady Hand
Score 80 in a single run.
80
In the Zone
Hit the zone 8 times in a row.
8250 coins
Bullseye Master
Land 50 bullseyes in total.
50250 coins
Right on Time
Hit the zone 300 times in total.
300200 coins

Reskin slots

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

Configurable settings

SettingDefaultWhat it does
DifficultyStopTheClockDifficulty.MediumHigher difficulty sweeps faster and starts with a narrower zone.

↑ 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
Reaction Testhint redo
Coin Streakhint double
Guess the Numberhint extra
Dice Duelhint steal
Odd One Outhint time
Chimp Testhint skip
Math Sprinthint time
Flood Ithint moves
Tile Memoryhint peek
Stop the Clockhint slow

🏆 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
Reaction Testpanel background
Coin Streakcoin background
Guess the Numberbackground key
Dice Dueldie background
Odd One Outtile background
Chimp Testtile background
Math Sprintbutton background
Flood Itcell background
Tile Memorycell background
Stop the Clockmarker 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_Casual3.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 ReactionTestGame();
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 > Casual 3.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/Casual3/MyGame/.
  2. Add MyGameGame.cs implementing IMiniGame, decorated with [MiniGame("…", "My Game", Category = MiniGameCategory.Casual3)].
  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. casual3_reaction), 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. ⭐