Mini Game Templates · Arcade 4.0 Pack

Fast-action arcade templates with procedural visuals, mobile-friendly controls, scoring, and progression hooks.

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

Ski SlalomSteer between gate flags and dodge the trees.
Pop the LockTap as the sweeping marker hits the glowing notch.
Jump RopeTap to hop the swinging rope; it turns ever faster.
Tug of WarTap faster than the AI to drag the rope to your line.
Meteor DodgeDrag your ship to weave between falling meteors.
Color SwitchFlap up through the gate arc matching your ball's colour.
OrbitTap to flip your satellite's orbit; grab stars, dodge debris.
Knife HitThrow knives into the spinning log without hitting one.
Circle GuardSpin the shield arc to block shots coming from all sides.
FireworksTap to detonate each rocket at the peak of its arc.
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-Arcade4.unitypackage. If Unity offers to import TMP Essentials, accept — the demo UI uses TextMeshPro.
  2. Open Assets/MiniGameTemplates/Demo/MiniGameTemplates_Arcade4.unity. The full demo is already baked into the scene.
  3. Press Play — the dashboard lists every Arcade 4.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 SlalomGame();
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. "arcade4_slalom"
    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/Arcade4/<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()

🎮 Ski Slalom

Steer between gate flags and dodge the trees.

How to play

  1. Drag left and right (or use A/D) to steer your skier as the slope rushes up.
  2. Pass between each pair of gate flags and dodge the trees. Miss a gate or clip a tree and the run ends.

Boosters

BoosterKeyEffect
Widen GatewidenOpen the next gate ahead wide.
Snow ShieldshieldPlough through trees and missed gates for a while.
Slow SlopeslowSlow the downhill scroll right down.

Achievements

AchievementGoalReward
Carving
Pass 20 gates in a run.
20
Downhill Demon
Pass 50 gates in a run.
50250 coins
Gold Medal
Pass 100 gates in a run.
100400 coins
Slalom Season
Pass 500 gates in total.
500200 coins

Reskin slots

skier flag snow — drop art per slot via Tools > Mini Game Templates > Reskin Editor.

Configurable settings

SettingDefaultWhat it does
DifficultySlalomDifficulty.MediumDownhill speed and how tight the gates are.

↑ Back to top

🎮 Pop the Lock

Tap as the sweeping marker hits the glowing notch.

How to play

  1. A marker sweeps around the ring. Tap (or press Space) the instant it reaches the glowing notch.
  2. Each hit moves the notch and speeds up. Land enough pins to crack the lock — but tap off the notch and it jams.

Boosters

BoosterKeyEffect
Wide NotchwidenWiden the hit window for the current lock.
FreezefreezeSlow the sweep right down for a few seconds.

Achievements

AchievementGoalReward
Picking Up
Land 25 pins in a single run.
25
Master Locksmith
Land 60 pins in a single run.
60300 coins
Vault Cracker
Crack 5 locks in one run.
5250 coins
Tumbler Tamer
Land 400 pins in total.
400200 coins

Reskin slots

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

Configurable settings

SettingDefaultWhat it does
DifficultyPopLockDifficulty.MediumSweep speed and how tight the hit window is.

↑ Back to top

🎮 Jump Rope

Tap to hop the swinging rope; it turns ever faster.

How to play

  1. Tap (or press Space) to hop just as the rope sweeps across the ground.
  2. Time it right and you clear the rope. It turns faster the longer you skip — let it catch your feet and you trip.

Boosters

BoosterKeyEffect
Auto SpringspringHop the very next rope pass automatically.
Slow RopeslowSlow the rope's turn for a few seconds.

Achievements

AchievementGoalReward
Skipping Along
Clear 25 jumps in a run.
25
Double Dutch
Clear 60 jumps in a run.
60250 coins
Rope Champion
Clear 120 jumps in a run.
120400 coins
Cardio King
Clear 600 jumps in total.
600200 coins

Reskin slots

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

Configurable settings

SettingDefaultWhat it does
DifficultyJumpRopeDifficulty.MediumHow fast the rope turns to start with.

↑ Back to top

🎮 Tug of War

Tap faster than the AI to drag the rope to your line.

How to play

  1. Tap as fast as you can (or press Space) to haul the rope marker toward your green line on the right.
  2. The AI pulls left. Drag the marker past your line to take the round; first to three rounds wins the match.

Boosters

BoosterKeyEffect
AnchoranchorFreeze the AI's next few pulls.
Power SurgepowerEach tap counts double for a few seconds.

Achievements

AchievementGoalReward
First Blood
Win a match.
1
Clean Sweep
Win a match without losing a round.
1250 coins
Heave Ho
Win 30 rounds in total.
30200 coins
Rope Burn
Play 80 rounds in total.
80150 coins

Reskin slots

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

Configurable settings

SettingDefaultWhat it does
DifficultyTugDifficulty.MediumHow fast and hard the AI pulls.

↑ Back to top

🎮 Meteor Dodge

Drag your ship to weave between falling meteors.

How to play

  1. Drag your ship anywhere in the field (or use WASD / arrows) to fly around.
  2. Meteors rain from the top and the storm thickens over time. One hit ends the run — survive as long as you can.

Boosters

BoosterKeyEffect
VaporiseclearBlast every meteor on screen right now.
ShieldshieldSoak up meteor hits for a few seconds.
Slow StormslowSlow the meteors right down.

Achievements

AchievementGoalReward
Steady Hands
Survive 15 seconds in a run.
15
Storm Chaser
Survive 40 seconds in a run.
40250 coins
Untouchable
Reach a score of 800.
800400 coins
Asteroid Field
Dodge 1000 meteors in total.
1000200 coins

Reskin slots

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

Configurable settings

SettingDefaultWhat it does
DifficultyMeteorDifficulty.MediumFall speed and how dense the meteor storm gets.

↑ Back to top

🎮 Color Switch

Flap up through the gate arc matching your ball's colour.

How to play

  1. Tap (or press Space) to flap your ball upward against gravity.
  2. Each spinning gate lets you through only via the arc matching your ball's colour. Grab a switch dot to change colour.

Boosters

BoosterKeyEffect
Free PasspassPass through any colour for a few seconds.
Slow SpinslowSlow the gates' spin right down.

Achievements

AchievementGoalReward
Colour Coded
Pass 15 gates in a run.
15
Spectrum Runner
Pass 40 gates in a run.
40250 coins
Prism Master
Pass 90 gates in a run.
90400 coins
Kaleidoscope
Pass 600 gates in total.
600200 coins

Reskin slots

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

Configurable settings

SettingDefaultWhat it does
DifficultyColorSwitchDifficulty.MediumGravity and how fast the gates spin.

↑ Back to top

🎮 Orbit

Tap to flip your satellite's orbit; grab stars, dodge debris.

How to play

  1. Your satellite circles the planet. Tap (or press Space) to flip its direction of travel.
  2. Sweep over the green stars to collect them; flip away before you reach the red debris. One collision ends the orbit.

Boosters

BoosterKeyEffect
Sweep DebrisclearClear all debris from the ring right now.
ShieldshieldPass through debris unharmed for a few seconds.
Slow OrbitslowSlow the satellite right down.

Achievements

AchievementGoalReward
Stargazer
Collect 20 stars in a run.
20
Constellation
Collect 50 stars in a run.
50250 coins
Cosmonaut
Collect 100 stars in a run.
100400 coins
Galaxy Hoarder
Collect 800 stars in total.
800200 coins

Reskin slots

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

Configurable settings

SettingDefaultWhat it does
DifficultyOrbitDifficulty.MediumHow fast the satellite circles to start with.

↑ Back to top

🎮 Knife Hit

Throw knives into the spinning log without hitting one.

How to play

  1. Tap (or press Space) to fling the waiting knife up into the spinning log.
  2. Fill the stage quota to advance to a faster log — but bury a knife into one already stuck and it's over.

Boosters

BoosterKeyEffect
Safe ThrowshieldThe next throw lands safely even if it would clash.
Slow LogslowHalve the log's spin speed for this stage.

Achievements

AchievementGoalReward
Sharp Eye
Land 25 knives in a run.
25
Stage Hand
Reach stage 6 in a run.
6250 coins
Blade Master
Land 70 knives in a run.
70400 coins
Whittler
Land 500 knives in total.
500200 coins

Reskin slots

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

Configurable settings

SettingDefaultWhat it does
DifficultyKnifeDifficulty.MediumHow fast the log spins to start with.

↑ Back to top

🎮 Circle Guard

Spin the shield arc to block shots coming from all sides.

How to play

  1. Hold (or press Space) to spin the glowing shield arc around the core. A tap flips its direction.
  2. Shots streak in from every side. Line the shield up with each one to deflect it. Let one reach the core and it shatters.

Boosters

BoosterKeyEffect
Wide ShieldwideWiden the shield arc for the rest of the run.
Pulse BlastclearVaporise every shot on screen right now.
Slow BarrageslowSlow the incoming shots right down.

Achievements

AchievementGoalReward
On Guard
Block 25 shots in a run.
25
Bulwark
Block 60 shots in a run.
60250 coins
Impenetrable
Block 120 shots in a run.
120400 coins
Aegis
Block 800 shots in total.
800200 coins

Reskin slots

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

Configurable settings

SettingDefaultWhat it does
DifficultyGuardDifficulty.MediumShield arc width, spin speed and how fast shots fly.

↑ Back to top

🎮 Fireworks

Tap to detonate each rocket at the peak of its arc.

How to play

  1. Rockets rise and slow near their peak. Tap (or press Space) to detonate the highest one — closer to the peak scores more.
  2. Chain perfect pops to build a combo multiplier. Let a rocket fizzle past its peak and you lose a life.

Boosters

BoosterKeyEffect
Perfect PopautoDetonate the best-placed rocket perfectly right now.
Slow SkyslowSlow the rising rockets right down.
Spare RocketlifeGain an extra life.

Achievements

AchievementGoalReward
Sparkler
Reach a score of 1500 in a run.
1500
Chain Reaction
Build a perfect combo of 8.
8250 coins
Grand Finale
Reach a score of 5000 in a run.
5000400 coins
Pyrotechnician
Detonate 600 rockets in total.
600200 coins

Reskin slots

rocket sky — drop art per slot via Tools > Mini Game Templates > Reskin Editor.

Configurable settings

SettingDefaultWhat it does
DifficultyFireworksDifficulty.MediumHow fast rockets rise and how often they launch.

↑ 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
Ski Slalomwiden shield slow
Pop the Lockwiden freeze
Jump Ropespring slow
Tug of Waranchor power
Meteor Dodgeclear shield slow
Color Switchpass slow
Orbitclear shield slow
Knife Hitshield slow
Circle Guardwide clear slow
Fireworksauto slow life

🏆 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
Ski Slalomskier flag snow
Pop the Lockmarker background
Jump Ropeplayer rope background
Tug of Warmarker background
Meteor Dodgeship meteor background
Color Switchball background
Orbitsatellite planet background
Knife Hitknife log background
Circle Guardcore background
Fireworksrocket sky
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_Arcade4.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 SlalomGame();
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 > Arcade 4.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/Arcade4/MyGame/.
  2. Add MyGameGame.cs implementing IMiniGame, decorated with [MiniGame("…", "My Game", Category = MiniGameCategory.Arcade4)].
  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. arcade4_slalom), 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. ⭐