Mini Game Templates · Board 2.0 Pack

Classic and abstract board-game templates with local AI/rule logic, turn flow, and configurable play settings.

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

BattleshipHunt and sink the enemy fleet.
Snakes & LaddersRace to 100 — mind the snakes!
Five in a RowGet five stones in a row before the AI.
NimTake the last match to win — outwit the AI.
HexConnect your two sides before the AI connects theirs.
Chinese CheckersHop your pegs home before the AI.
PenteFive in a row — or capture five pairs.
HalmaMove your camp into the opposite corner.
Fox & HoundsTrap the fox — or slip past as the fox.
QuoridorRace across — or wall off the AI.
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-Board2.unitypackage. If Unity offers to import TMP Essentials, accept — the demo UI uses TextMeshPro.
  2. Open Assets/MiniGameTemplates/Demo/MiniGameTemplates_Board2.unity. The full demo is already baked into the scene.
  3. Press Play — the dashboard lists every Board 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 BattleshipGame();
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. "board2_battleship"
    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/Board2/<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()

🎮 Battleship

Hunt and sink the enemy fleet.

How to play

  1. Tap a cell on the enemy grid to fire. Red is a hit, blue is a miss.
  2. Sink every enemy ship before they sink yours. Your fleet is shown below.

Boosters

BoosterKeyEffect
RadarradarReveal one un-hit cell of an enemy ship.
SalvosalvoFire three shots on your next turn.
ShieldshieldNegate the enemy's next hit on your fleet.

Achievements

AchievementGoalReward
First Blood
Win your first battle.
1
Admiral
Win 10 battles.
10300 coins
Sharpshooter
Land 200 hits in total.
200200 coins
Untouchable
Win a battle without losing a single ship.
1250 coins

Reskin slots

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

Configurable settings

SettingDefaultWhat it does
DifficultyBattleshipDifficulty.MediumHow smart the enemy AI hunts your fleet.

↑ Back to top

🎮 Snakes & Ladders

Race to 100 — mind the snakes!

How to play

  1. Tap ROLL to roll the die — your blue token hops that many squares up the board.
  2. Green ladders lift you up; red snakes drag you down. First to reach 100 beats the red AI!

Boosters

BoosterKeyEffect
PreviewpreviewArm a peek — your next roll shows where you'd land.
Loaded DieloadedYour next roll is guaranteed to be a 6.
Re-rollrerollDiscard the roll you just made and roll again.

Achievements

AchievementGoalReward
First to 100
Win your first game.
1
Board Champion
Win 10 games.
10250 coins
Ladder Lover
Climb 25 ladders in total.
25150 coins
Snakebit Survivor
Win a game after hitting 3 or more snakes.
1200 coins

Reskin slots

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

Configurable settings

SettingDefaultWhat it does
AiStartsfalseWhen true, the AI takes the first turn of each game.

↑ Back to top

🎮 Five in a Row

Get five stones in a row before the AI.

How to play

  1. Tap an empty intersection to place a black stone. The AI answers with white.
  2. Line up five stones in a row — across, down, or diagonally — before the AI does to win.

Boosters

BoosterKeyEffect
Best SpothintHighlight the strongest point for you to play.
UndoundoTake back your last stone and the AI's reply.

Achievements

AchievementGoalReward
Five Up
Win your first game.
1
Row Master
Win 10 games.
10300 coins
No Take-Backs
Win a game without using Undo.
1200 coins
Swift Five
Win in 12 of your stones or fewer.
1250 coins

Reskin slots

stone_player stone_ai board — drop art per slot via Tools > Mini Game Templates > Reskin Editor.

Configurable settings

SettingDefaultWhat it does
DifficultyGomokuDifficulty.MediumHow deeply the AI weighs threats when choosing a move.
PlayerStartstrueIf true, you (black) move first; otherwise the AI opens.

↑ Back to top

🎮 Nim

Take the last match to win — outwit the AI.

How to play

  1. On your turn, tap a matchstick to take it and every stick after it in that row, then press TAKE. You must take from a single row.
  2. You and the AI alternate turns. Whoever takes the very LAST match wins — plan ahead!

Boosters

BoosterKeyEffect
Best MovehintHighlight the winning move — the heap and count that zero the nim-sum.
UndoundoTake back your last move and the AI's reply.
Swap Turnswap_startHand the current turn to the other side — a one-time tempo swing.

Achievements

AchievementGoalReward
First Blood
Win your first game of Nim.
1
Tactician
Win 10 games of Nim.
10150 coins
Against the Odds
Beat the AI on Hard, where it plays the optimal strategy.
1250 coins
Comeback King
Win a game that started from a losing nim position.
1200 coins

Reskin slots

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

Configurable settings

SettingDefaultWhat it does
DifficultyNimDifficulty.MediumHigher difficulty means the AI plays the optimal nim-sum strategy more reliably and starts with chunkier heaps.
AiFirstfalseIf true the AI takes the first move each round (a tougher start for you).

↑ Back to top

🎮 Hex

Connect your two sides before the AI connects theirs.

How to play

  1. You play blue. Tap any empty cell to place a stone, and build a chain linking the LEFT and RIGHT edges.
  2. The red AI is racing to connect TOP to BOTTOM. Connect your sides first — Hex can never end in a draw.

Boosters

BoosterKeyEffect
Best MovehintGlow the cell that best shortens YOUR connection.
Take BackundoUndo your last stone and the AI's reply.

Achievements

AchievementGoalReward
First Bridge
Win your first game of Hex.
1
Master Connector
Win 10 games of Hex.
10300 coins
No Regrets
Win a game without using Take Back.
1200 coins
Tight Line
Win using no more stones than the board is wide.
1250 coins

Reskin slots

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

Configurable settings

SettingDefaultWhat it does
DifficultyHexDifficulty.MediumBoard size and how cleverly the AI plays. Easy 7×7, Medium 9×9, Hard 11×11.
PlayerStartstrueIf true, you place the first stone each round.

↑ Back to top

🎮 Chinese Checkers

Hop your pegs home before the AI.

How to play

  1. Tap one of your blue pegs, then tap a glowing cell. Step to a neighbour, or JUMP over any peg to the empty cell beyond — jumps chain!
  2. Race the red AI: get ALL your pegs into the opposite corner home before it fills yours, and you win.

Boosters

BoosterKeyEffect
Best HophintGlow the peg and target that best advances YOU.
Take BackundoUndo your last move and the AI's reply.
Free LeapleapOnce, step a peg to ANY empty cell on the board.

Achievements

AchievementGoalReward
Home Run
Win your first game of Chinese Checkers.
1
Peg Racer
Win 10 games of Chinese Checkers.
10300 coins
No Regrets
Win a game without using Take Back.
1200 coins
Quick Hopper
Win a game in 18 turns or fewer.
1250 coins

Reskin slots

peg_player peg_ai board — drop art per slot via Tools > Mini Game Templates > Reskin Editor.

Configurable settings

SettingDefaultWhat it does
DifficultyChineseCheckersDifficulty.MediumHow cleverly the AI plays. Easy adds noise, Hard is fully greedy.
PlayerStartstrueIf true, you take the first turn each round.

↑ Back to top

🎮 Pente

Five in a row — or capture five pairs.

How to play

  1. Place black stones on empty intersections. Win by lining up five in a row — across, down, or diagonally.
  2. Flank exactly two of the AI's stones — YOU, AI, AI, YOU in a line — to capture that pair. Capture five pairs to also win.

Boosters

BoosterKeyEffect
Best SpothintHighlight the strongest point for you to play.
UndoundoTake back your last stone and the AI's reply, restoring any captured stones.
ShieldshieldProtect your next vulnerable pair from being captured once.

Achievements

AchievementGoalReward
First Blood
Win your first game.
1
Pente Master
Win 10 games.
10300 coins
Pair Collector
Capture 50 pairs in total.
50250 coins
Five Pairs
Win a game by capturing five pairs.
1300 coins

Reskin slots

stone_player stone_ai board — drop art per slot via Tools > Mini Game Templates > Reskin Editor.

Configurable settings

SettingDefaultWhat it does
DifficultyPenteDifficulty.MediumHow deeply the AI weighs threats and captures when choosing a move.
PlayerStartstrueIf true, you (black) move first; otherwise the AI opens.

↑ Back to top

🎮 Halma

Move your camp into the opposite corner.

How to play

  1. Tap one of your pegs, then a glowing cell: step to a neighbour or jump over a peg to the empty cell beyond. Jumps chain.
  2. Race all your pegs into the AI's far corner. Fill every target cell before the AI fills yours to win.

Boosters

BoosterKeyEffect
Best MovehintHighlight the move that advances you the most.
UndoundoTake back your last move and the AI's reply.
SprintsprintTake two single steps this turn instead of one.

Achievements

AchievementGoalReward
Camp Mover
Win your first game.
1
Strategist
Win 10 games.
10300 coins
No Take-Backs
Win a game without using Undo.
1200 coins
Forced March
Win 25 games in total.
25400 coins

Reskin slots

peg_player peg_ai board — drop art per slot via Tools > Mini Game Templates > Reskin Editor.

Configurable settings

SettingDefaultWhat it does
DifficultyHalmaDifficulty.MediumHow sharply the AI minimises its distance to its goal corner.
PlayerStartstrueIf true, you move first; otherwise the AI opens.

↑ Back to top

🎮 Fox & Hounds

Trap the fox — or slip past as the fox.

How to play

  1. Tap a hound, then a glowing square. Hounds move one square diagonally FORWARD only; the fox moves diagonally in any direction.
  2. Box the fox in so it has no move to win. If the fox slips past to your back row, the fox wins.

Boosters

BoosterKeyEffect
Best MovehintHighlight the strongest move for your side.
UndoundoTake back your last move and the AI's reply.
Skip TurnskipPass your move and let the AI play.

Achievements

AchievementGoalReward
On The Hunt
Win your first game.
1
Houndmaster
Win 10 games.
10300 coins
Sly Escape
Win a game playing as the fox.
1250 coins
Clean Hunt
Win a game without using Undo.
1200 coins

Reskin slots

fox hound board — drop art per slot via Tools > Mini Game Templates > Reskin Editor.

Configurable settings

SettingDefaultWhat it does
DifficultyFoxHoundsDifficulty.MediumHow deeply the AI searches when choosing its move.
PlayHoundstrueIf true you control the four hounds; if false you play the lone fox. The AI takes the other side.

↑ Back to top

🎮 Quoridor

Race across — or wall off the AI.

How to play

  1. Each turn: MOVE your pawn one step toward the top row, or switch to WALL and tap a line to block the AI. First pawn to the far row wins.
  2. Walls slow the AI down — but you can never fully seal off a pawn from its goal, so some line taps will be rejected.

Boosters

BoosterKeyEffect
Best MovehintHighlight your fastest step toward the goal.
UndoundoTake back your last move and the AI's reply.
Extra Wallextra_wallAdd one more wall to your supply.

Achievements

AchievementGoalReward
First Crossing
Win your first game.
1
Pathfinder
Win 10 games.
10200 coins
Wall Master
Place 50 walls in total.
50150 coins
Pure Sprint
Win a game without placing a single wall.
1150 coins

Reskin slots

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

Configurable settings

SettingDefaultWhat it does
DifficultyQuoridorDifficulty.MediumHow aggressively the AI uses walls and how well it picks them.
PlayerStartstrueIf true the player takes the first turn.

↑ 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
Battleshipradar salvo shield
Snakes & Ladderspreview loaded reroll
Five in a Rowhint undo
Nimhint undo swap_start
Hexhint undo
Chinese Checkershint undo leap
Pentehint undo shield
Halmahint undo sprint
Fox & Houndshint undo skip
Quoridorhint undo extra_wall

🏆 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
Battleshipship hit background
Snakes & Ladderstoken background
Five in a Rowstone_player stone_ai board
Nimstick background
Hexstone_player stone_ai background
Chinese Checkerspeg_player peg_ai board
Pentestone_player stone_ai board
Halmapeg_player peg_ai board
Fox & Houndsfox hound board
Quoridorpawn_player pawn_ai wall 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_Board2.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 BattleshipGame();
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 > Board 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/Board2/MyGame/.
  2. Add MyGameGame.cs implementing IMiniGame, decorated with [MiniGame("…", "My Game", Category = MiniGameCategory.Board2)].
  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. board2_battleship), 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. ⭐