Mini Game Templates · Solitaire 3.0 Pack

Card-based patience templates with reusable card visuals, rule engines, scoring, and undo-friendly flows.

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

Eight OffFreeCell-style: build down by suit, foundations up by suit.
Baker's GameFreeCell built down BY SUIT — four cells, eight columns.
Simple SimonSpider-style: build down, clear King-to-Ace suit runs.
La Belle LucieBuild fans down by suit; foundations up by suit.
BristolBuild fans down (any suit); deal reserves from the stock.
Flower GardenBuild beds down; the whole bouquet reserve is in play.
EasthavenBuild down by alt colour; deal a row to every column.
PenguinFreeCell variant; foundations and tableau wrap on a beak rank.
Napoleon's TombBuild four foundations up from 7 and four down from 6.
Agnes SorelKlondike variant; foundations wrap from a dealt base rank.
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-Solitaire3.unitypackage. If Unity offers to import TMP Essentials, accept — the demo UI uses TextMeshPro.
  2. Open Assets/MiniGameTemplates/Demo/MiniGameTemplates_Solitaire3.unity. The full demo is already baked into the scene.
  3. Press Play — the dashboard lists every Solitaire 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 EightOffGame();
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. "solitaire3_eight_off"
    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/Solitaire3/<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()

🎮 Eight Off

FreeCell-style: build down by suit, foundations up by suit.

How to play

  1. Tableau columns build DOWN by suit. Tap a card to move it onto the next-higher card of the same suit, into an empty column, or onto a free cell.
  2. Build the four foundations UP by suit from Ace to King. Park awkward cards in the eight free cells. Clear all 52 cards to win.

Boosters

BoosterKeyEffect
HinthintHighlight a card that can move to a foundation right now.
UndoundoTake back your last move.
Auto-LiftautoSend every card that already fits straight to the foundations.

Achievements

AchievementGoalReward
Eight Is Enough
Win your first game of Eight Off.
1
Cell Master
Win 10 games of Eight Off.
10200 coins
No Take-Backs
Win a game without using Undo.
1150 coins
Marathon
Finish 50 games of Eight Off.
50250 coins

Reskin slots

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

Configurable settings

SettingDefaultWhat it does
SeededCells4How many of the eight free cells start filled at the deal (classic Eight Off seeds 4).

↑ Back to top

🎮 Baker's Game

FreeCell built down BY SUIT — four cells, eight columns.

How to play

  1. Like FreeCell, but the tableau builds DOWN BY SUIT. Tap a top card, then tap the same-suit card one rank higher, an empty column, or a free cell.
  2. Only FOUR free cells here — use them sparingly. Foundations build up by suit from Ace to King. Clear every card to win.

Boosters

BoosterKeyEffect
HinthintHighlight a card that can move to a foundation right now.
UndoundoTake back your last move.
Auto-LiftautoSend every card that already fits straight to the foundations.

Achievements

AchievementGoalReward
Fresh Bake
Win your first game of Baker's Game.
1
Master Baker
Win 10 games of Baker's Game.
10200 coins
By Hand
Win a game without using Undo.
1150 coins
Marathon
Finish 50 games of Baker's Game.
50250 coins

Reskin slots

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

Configurable settings

SettingDefaultWhat it does
BuildBySuittrueIf true the tableau builds DOWN by suit (classic Baker's Game). Left for clarity — the game always builds down by suit.

↑ Back to top

🎮 Simple Simon

Spider-style: build down, clear King-to-Ace suit runs.

How to play

  1. Build columns DOWN regardless of suit. Tap a card to lift it (and the ordered run on top of it) onto a card one rank higher in another column.
  2. When a column ends in a full King-to-Ace run of ONE suit, it is removed to a foundation. Clear all four suits to win.

Boosters

BoosterKeyEffect
HinthintHighlight a card you can move right now.
UndoundoTake back your last move.

Achievements

AchievementGoalReward
Simple Pleasures
Win your first game of Simple Simon.
1
Spider Slayer
Win 10 games of Simple Simon.
10200 coins
Full House
Complete a King-to-Ace suit run.
1120 coins
Marathon
Finish 50 games of Simple Simon.
50250 coins

Reskin slots

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

Configurable settings

SettingDefaultWhat it does
RequireSameSuitToMovefalseIf true, a group can be lifted only when it is a same-suit run (classic). If false, any descending group may be moved.

↑ Back to top

🎮 La Belle Lucie

Build fans down by suit; foundations up by suit.

How to play

  1. The pack is dealt into small fans. Only the exposed END card of a fan is in play. Tap it to build DOWN BY SUIT onto another fan's end card.
  2. Send Aces and the next card of each suit UP to the four foundations. Clear every card to win — there are no reshuffles here, so plan ahead.

Boosters

BoosterKeyEffect
HinthintHighlight a fan card you can play right now.
UndoundoTake back your last move.
Auto-LiftautoSend every card that already fits straight to the foundations.

Achievements

AchievementGoalReward
Belle of the Ball
Win your first game of La Belle Lucie.
1
Fan Dancer
Win 10 games of La Belle Lucie.
10200 coins
Graceful
Win a game without using Undo.
1150 coins
Marathon
Finish 50 games of La Belle Lucie.
50250 coins

Reskin slots

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

Configurable settings

SettingDefaultWhat it does
AllowMovesToEmptyFansfalseIf true, an empty fan can be filled by any single card. Classic La Belle Lucie does NOT allow this; left off by default.

↑ Back to top

🎮 Bristol

Build fans down (any suit); deal reserves from the stock.

How to play

  1. Eight fans build DOWN regardless of suit. Tap a fan's end card to drop it onto another fan's end card one rank higher.
  2. Tap the stock to deal a card onto each of the three reserves. Foundations build up by suit, Ace to King. Clear every card to win.

Boosters

BoosterKeyEffect
HinthintHighlight a card you can play right now.
UndoundoTake back your last move or deal.
Auto-LiftautoSend every card that already fits straight to the foundations.

Achievements

AchievementGoalReward
Bristol Fashion
Win your first game of Bristol.
1
Channel Master
Win 10 games of Bristol.
10200 coins
Steady Hand
Win a game without using Undo.
1150 coins
Marathon
Finish 50 games of Bristol.
50250 coins

Reskin slots

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

Configurable settings

SettingDefaultWhat it does
AllowMovesToEmptyFansfalseEmpty fans may NOT be refilled in classic Bristol. Left off.

↑ Back to top

🎮 Flower Garden

Build beds down; the whole bouquet reserve is in play.

How to play

  1. Six garden beds build DOWN regardless of suit. Tap a bed's bottom card to move it onto another bed's card one rank higher.
  2. Every card in the bouquet reserve is available — tap any of them to play. Foundations build up by suit, Ace to King. Clear every card to win.

Boosters

BoosterKeyEffect
HinthintHighlight a card you can play right now.
UndoundoTake back your last move.
Auto-LiftautoSend every card that already fits straight to the foundations.

Achievements

AchievementGoalReward
Green Thumb
Win your first game of Flower Garden.
1
Head Gardener
Win 10 games of Flower Garden.
10200 coins
Untended
Win a game without using Undo.
1150 coins
Marathon
Finish 50 games of Flower Garden.
50250 coins

Reskin slots

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

Configurable settings

SettingDefaultWhat it does
BouquetFullyAvailabletrueEvery card in the reserve bouquet is always available to play (classic Flower Garden). Left for clarity.

↑ Back to top

🎮 Easthaven

Build down by alt colour; deal a row to every column.

How to play

  1. Columns build DOWN in ALTERNATING colours (like Klondike). Tap a face-up card to lift it and the ordered run above it onto a card one rank higher.
  2. Tap the stock to deal a new card to EVERY column at once. Foundations build up by suit. Clear all 52 cards to win.

Boosters

BoosterKeyEffect
HinthintHighlight a card you can play right now.
UndoundoTake back your last move or deal.
Auto-LiftautoSend every card that already fits straight to the foundations.

Achievements

AchievementGoalReward
Safe Harbour
Win your first game of Easthaven.
1
Harbourmaster
Win 10 games of Easthaven.
10200 coins
Smooth Sailing
Win a game without using Undo.
1150 coins
Marathon
Finish 50 games of Easthaven.
50250 coins

Reskin slots

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

Configurable settings

SettingDefaultWhat it does
EmptyColumnsNeedKingfalseIf true, only a King (or a King-headed run) may fill an empty column (classic). If false, any card may.

↑ Back to top

🎮 Penguin

FreeCell variant; foundations and tableau wrap on a beak rank.

How to play

  1. The first card sets the 'beak' rank. Foundations build UP from it and WRAP past the King back to the Ace. The tableau builds DOWN by suit, also wrapping.
  2. Park awkward cards in the seven free cells. Tap a top card, then tap a destination. Clear all 52 cards to win.

Boosters

BoosterKeyEffect
HinthintHighlight a card that can move to a foundation right now.
UndoundoTake back your last move.
Auto-LiftautoSend every card that already fits straight to the foundations.

Achievements

AchievementGoalReward
Cool Customer
Win your first game of Penguin.
1
Whole Colony
Win 10 games of Penguin.
10200 coins
Ice Cold
Win a game without using Undo.
1150 coins
Marathon
Finish 50 games of Penguin.
50250 coins

Reskin slots

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

Configurable settings

SettingDefaultWhat it does
EmptyColumnsAcceptAnytrueIf true, an empty column may be filled by any single card. Classic Penguin allows the rank just below the beak; left open.

↑ Back to top

🎮 Napoleon's Tomb

Build four foundations up from 7 and four down from 6.

How to play

  1. Four foundations build UP from 7 (to Queen) and four build DOWN from 6 (to Ace) — by RANK only, suit ignored. Tap the stock to turn cards up.
  2. Play the waste card to a foundation, or park it on one of the four reserves around the tomb. Fill all eight foundations to win.

Boosters

BoosterKeyEffect
HinthintHighlight a card that can move to a foundation right now.
UndoundoTake back your last move or deal.
Auto-LiftautoSend every available card that already fits to the foundations.

Achievements

AchievementGoalReward
Vive l'Empereur
Win your first game of Napoleon's Tomb.
1
Grand Army
Win 10 games of Napoleon's Tomb.
10200 coins
No Retreat
Win a game without using Undo.
1150 coins
Marathon
Finish 50 games of Napoleon's Tomb.
50250 coins

Reskin slots

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

Configurable settings

SettingDefaultWhat it does
Redeals1How many times the stock may be recycled from the waste.

↑ Back to top

🎮 Agnes Sorel

Klondike variant; foundations wrap from a dealt base rank.

How to play

  1. The dealt base card sets the foundation rank. Foundations build UP by suit and WRAP past the King. The tableau builds DOWN by ALTERNATING colour, also wrapping.
  2. Tap a face-up card to lift it and the alt-colour run above it. Tap the deal pile to send a new card to every column. Clear all 52 cards to win.

Boosters

BoosterKeyEffect
HinthintHighlight a card you can play right now.
UndoundoTake back your last move or deal.
Auto-LiftautoSend every card that already fits straight to the foundations.

Achievements

AchievementGoalReward
Court Favourite
Win your first game of Agnes Sorel.
1
Royal Favourite
Win 10 games of Agnes Sorel.
10200 coins
Composed
Win a game without using Undo.
1150 coins
Marathon
Finish 50 games of Agnes Sorel.
50250 coins

Reskin slots

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

Configurable settings

SettingDefaultWhat it does
EmptyColumnsNeedBaseRankfalseIf true, only the base rank may fill an empty column (classic). If false, any card may.

↑ 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
Eight Offhint undo auto
Baker's Gamehint undo auto
Simple Simonhint undo
La Belle Luciehint undo auto
Bristolhint undo auto
Flower Gardenhint undo auto
Easthavenhint undo auto
Penguinhint undo auto
Napoleon's Tombhint undo auto
Agnes Sorelhint undo auto

🏆 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
Eight Offbackground card_back card_face
Baker's Gamebackground card_back card_face
Simple Simonbackground card_back card_face
La Belle Luciebackground card_back card_face
Bristolbackground card_back card_face
Flower Gardenbackground card_back card_face
Easthavenbackground card_back card_face
Penguinbackground card_back card_face
Napoleon's Tombbackground card_back card_face
Agnes Sorelbackground card_back card_face
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_Solitaire3.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 EightOffGame();
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 > Solitaire 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/Solitaire3/MyGame/.
  2. Add MyGameGame.cs implementing IMiniGame, decorated with [MiniGame("…", "My Game", Category = MiniGameCategory.Solitaire3)].
  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. solitaire3_eight_off), 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. ⭐