Mini Game Templates · Solitaire 4.0 Pack
Card-based patience templates with reusable card visuals, rule engines, scoring, and undo-friendly flows.
🏠 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.
IMiniGame and is discovered automatically by reflection — no scene wiring, no prefab lists.Shared capabilities
⚙ 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 change | Where to find it |
|---|---|
| Game rules / difficulty / dimensions | Studio, or the game's <Game>Settings asset |
| Per-level difficulty curve | Studio > game panel > Levels editor |
| Colours / overall look | MiniGameTheme asset, or the in-app DARK/LIGHT toggle |
| Game art (tiles, pieces, backgrounds…) | Reskin system — Tools > Mini Game Templates > Reskin Editor |
| Boosters offered | Each game's <Game>BoosterSpec.cs |
| Deeper layout / behaviour | The game's <Game>Game.cs build code |
⚡ Quick start
- Import
MiniGameTemplates-Solitaire4.unitypackage. If Unity offers to import TMP Essentials, accept — the demo UI uses TextMeshPro. - Open
Assets/MiniGameTemplates/Demo/MiniGameTemplates_Solitaire4.unity. The full demo is already baked into the scene. - Press Play — the dashboard lists every Solitaire 4.0 game; pick, play, and try the boosters and cheat rail.
- Open Tools > Mini Game Templates > Studio and tune any game's settings.
- (Optional) Open Tools > HLK > Guided Setup to configure the bundled LiveOps kit — ads, IAP, notifications, rate-us and more (see the LiveOps Kit section).
- To ship a single game inside your own UI, use the
IMiniGamecontract:
IMiniGame game = new WhiteheadGame();
game.Mount(hostRect, context); // context : IMiniGameContext
// ... later, when done:
game.Unmount();
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. "solitaire4_whitehead"
string DisplayName { get; }
string Category { get; }
string ShortDescription { get; }
void Mount(RectTransform host, IMiniGameContext ctx);
void Unmount();
void NewRound();
IEnumerable<CheatAction> GetCheatActions();
}
Auto-discovery
| Registry | Discovers | Convention |
|---|---|---|
MiniGameRegistry | IMiniGame classes with a [MiniGame] attribute | one per game |
| Booster registry | IBoosterSpec implementations | <Game>BoosterSpec.cs |
| Achievement registry | IAchievementSpec implementations | <Game>AchievementSpec.cs |
| Reskin registry | IReskinSpec implementations | <Game>ReskinSpec.cs |
| Tutorial registry | ITutorialSpec implementations | <Game>TutorialSpec.cs |
Per-game folder layout
Assets/MiniGameTemplates/Runtime/Solitaire4/<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
Runtime flow
Mount(host, ctx) → NewRound() → player input loop → RoundWon / RoundLost event → NewRound() or Unmount()
🎮 Whitehead
Klondike, all face up; build down by colour, same-suit runs move together.
How to play
- Every card is face up. Build columns DOWN by colour — a red card goes on a red card one rank higher, black on black. Only an in-order SAME-SUIT run lifts as a group.
- Turn the stock for one card at a time onto the waste. Build the four foundations UP by suit from Ace to King. Clear all 52 cards to win.
Boosters
| Booster | Key | Effect |
|---|---|---|
| Hint | hint | Highlight a card or run that can move right now. |
| Undo | undo | Take back your last move. |
| Auto-Lift | auto | Send every card that already fits straight to the foundations. |
Achievements
| Achievement | Goal | Reward |
|---|---|---|
| Clean Sheet Win your first game of Whitehead. | 1 | — |
| Colour Theory Win 10 games of Whitehead. | 10 | 200 coins |
| No Take-Backs Win a game without using Undo. | 1 | 150 coins |
| Marathon Finish 50 games of Whitehead. | 50 | 250 coins |
Reskin slots
background card_back card_face — drop art per slot via Tools > Mini Game Templates > Reskin Editor.
Configurable settings
| Setting | Default | What it does |
|---|---|---|
ClassicDeal | true | Reserved for future tuning; Whitehead always deals the classic 1..7 columns face up. |
🎮 Westcliff
Ten columns of three; build down by alt colour; stock deals a full row.
How to play
- Ten columns of three cards. Build columns DOWN by alternating colour (red on black, black on red). An in-order alternating run lifts as a group; empty columns take any card.
- When you are stuck, tap the stock to deal one card to EVERY column at once. Build the four foundations UP by suit from Ace to King. Clear all 52 cards to win.
Boosters
| Booster | Key | Effect |
|---|---|---|
| Hint | hint | Highlight a card or run that can move right now. |
| Undo | undo | Take back your last move or row deal. |
| Auto-Lift | auto | Send every card that already fits straight to the foundations. |
Achievements
| Achievement | Goal | Reward |
|---|---|---|
| Cliffhanger Win your first game of Westcliff. | 1 | — |
| Full House Win 10 games of Westcliff. | 10 | 200 coins |
| No Take-Backs Win a game without using Undo. | 1 | 150 coins |
| Marathon Finish 50 games of Westcliff. | 50 | 250 coins |
Reskin slots
background card_back card_face — drop art per slot via Tools > Mini Game Templates > Reskin Editor.
Configurable settings
| Setting | Default | What it does |
|---|---|---|
ClassicDeal | true | Reserved for future tuning; Westcliff deals ten columns of three face up. |
🎮 Thumb and Pouch
Klondike where tableau builds down in any suit but the same one.
How to play
- Build columns DOWN in any suit EXCEPT the same suit — a card stacks on a different-suit card one rank higher. An in-order run that follows that rule lifts as a group.
- Tap the stock to turn one card to the waste; once empty it recycles. Build the four foundations UP by suit from Ace to King. Clear all 52 cards to win.
Boosters
| Booster | Key | Effect |
|---|---|---|
| Hint | hint | Highlight a card or run that can move right now. |
| Undo | undo | Take back your last move or stock turn. |
| Auto-Lift | auto | Send every card that already fits straight to the foundations. |
Achievements
| Achievement | Goal | Reward |
|---|---|---|
| Rule of Thumb Win your first game of Thumb and Pouch. | 1 | — |
| Pocketful Win 10 games of Thumb and Pouch. | 10 | 200 coins |
| No Take-Backs Win a game without using Undo. | 1 | 150 coins |
| Marathon Finish 50 games of Thumb and Pouch. | 50 | 250 coins |
Reskin slots
background card_back card_face — drop art per slot via Tools > Mini Game Templates > Reskin Editor.
Configurable settings
| Setting | Default | What it does |
|---|---|---|
ClassicDeal | true | Reserved for future tuning; Thumb and Pouch deals the classic Klondike 1..7 columns. |
🎮 Australian Patience
Seven columns of four; build down by suit; Yukon-style grabs.
How to play
- Build columns DOWN by suit. Yukon-style: tap ANY face-up card to grab it together with every card on top of it, then drop where the grabbed card fits the same-suit card one rank higher.
- Tap the stock to turn one card to the waste. Build the four foundations UP by suit from Ace to King. Clear all 52 cards to win.
Boosters
| Booster | Key | Effect |
|---|---|---|
| Hint | hint | Highlight a card or group that can move right now. |
| Undo | undo | Take back your last move or stock turn. |
| Auto-Lift | auto | Send every card that already fits straight to the foundations. |
Achievements
| Achievement | Goal | Reward |
|---|---|---|
| Down Under Win your first game of Australian Patience. | 1 | — |
| Outback Master Win 10 games of Australian Patience. | 10 | 200 coins |
| No Take-Backs Win a game without using Undo. | 1 | 150 coins |
| Marathon Finish 50 games of Australian Patience. | 50 | 250 coins |
Reskin slots
background card_back card_face — drop art per slot via Tools > Mini Game Templates > Reskin Editor.
Configurable settings
| Setting | Default | What it does |
|---|---|---|
ClassicDeal | true | Reserved for future tuning; Australian Patience deals seven columns of four face up. |
🎮 Spiderette
One-deck Spider; build down any suit; clear same-suit King-to-Ace runs.
How to play
- Build columns DOWN regardless of suit. Only an in-order SAME-SUIT run lifts as a group. Build a full King-to-Ace run of one suit and it clears to a foundation automatically.
- When stuck, tap the stock to deal one card to every column (fill empty columns first). Clear all four suit runs to win.
Boosters
| Booster | Key | Effect |
|---|---|---|
| Hint | hint | Highlight a run that can move right now. |
| Undo | undo | Take back your last move or row deal. |
| Deal Row | deal | Deal one fresh card onto every column from the stock. |
Achievements
| Achievement | Goal | Reward |
|---|---|---|
| Web Weaver Win your first game of Spiderette. | 1 | — |
| Eight Legs Win 10 games of Spiderette. | 10 | 200 coins |
| No Take-Backs Win a game without using Undo. | 1 | 150 coins |
| Marathon Finish 50 games of Spiderette. | 50 | 250 coins |
Reskin slots
background card_back card_face — drop art per slot via Tools > Mini Game Templates > Reskin Editor.
Configurable settings
| Setting | Default | What it does |
|---|---|---|
ClassicDeal | true | Reserved for future tuning; Spiderette deals the classic 1..7 Spider columns. |
🎮 Will o' the Wisp
Spider variant; seven columns of three face up; clear same-suit K-A runs.
How to play
- Every card is face up. Build columns DOWN regardless of suit, but only an in-order SAME-SUIT run lifts as a group. A full King-to-Ace suit run clears to a foundation automatically.
- When stuck, tap the stock to deal one card to every column (fill empty columns first). Clear all four suit runs to win.
Boosters
| Booster | Key | Effect |
|---|---|---|
| Hint | hint | Highlight a run that can move right now. |
| Undo | undo | Take back your last move or row deal. |
| Deal Row | deal | Deal one fresh card onto every column from the stock. |
Achievements
| Achievement | Goal | Reward |
|---|---|---|
| Chasing Lights Win your first game of Will o' the Wisp. | 1 | — |
| Marsh Walker Win 10 games of Will o' the Wisp. | 10 | 200 coins |
| No Take-Backs Win a game without using Undo. | 1 | 150 coins |
| Marathon Finish 50 games of Will o' the Wisp. | 50 | 250 coins |
Reskin slots
background card_back card_face — drop art per slot via Tools > Mini Game Templates > Reskin Editor.
Configurable settings
| Setting | Default | What it does |
|---|---|---|
ClassicDeal | true | Reserved for future tuning; Will o' the Wisp deals seven columns of three face up. |
🎮 Martha
Aces pre-placed; twelve columns; build down by alt colour, single cards.
How to play
- The four aces are already on the foundations. Build the twelve columns DOWN by alternating colour, ONE card at a time. Moving a card off a face-down card flips it.
- Build the foundations UP by suit from Ace to King. Empty columns accept any single card. Clear all 52 cards to win.
Boosters
| Booster | Key | Effect |
|---|---|---|
| Hint | hint | Highlight a card that can move right now. |
| Undo | undo | Take back your last move. |
| Auto-Lift | auto | Send every card that already fits straight to the foundations. |
Achievements
| Achievement | Goal | Reward |
|---|---|---|
| Marthas First Win your first game of Martha. | 1 | — |
| Tidy Twelve Win 10 games of Martha. | 10 | 200 coins |
| No Take-Backs Win a game without using Undo. | 1 | 150 coins |
| Marathon Finish 50 games of Martha. | 50 | 250 coins |
Reskin slots
background card_back card_face — drop art per slot via Tools > Mini Game Templates > Reskin Editor.
Configurable settings
| Setting | Default | What it does |
|---|---|---|
ClassicDeal | true | Reserved for future tuning; Martha pre-places the four aces and deals twelve columns of four. |
🎮 Fortress
Ten columns; tableau builds up OR down by suit; no redeal.
How to play
- There is no stock. Build the ten columns UP OR DOWN by suit, one card at a time — place a same-suit card one rank higher or one rank lower onto a column top.
- Build the four foundations UP by suit from Ace to King. Empty columns accept any single card. Plan carefully — there is no redeal. Clear all 52 cards to win.
Boosters
| Booster | Key | Effect |
|---|---|---|
| Hint | hint | Highlight a card that can move right now. |
| Undo | undo | Take back your last move. |
| Auto-Lift | auto | Send every card that already fits straight to the foundations. |
Achievements
| Achievement | Goal | Reward |
|---|---|---|
| Hold the Wall Win your first game of Fortress. | 1 | — |
| Unbreached Win 10 games of Fortress. | 10 | 200 coins |
| No Take-Backs Win a game without using Undo. | 1 | 150 coins |
| Marathon Finish 50 games of Fortress. | 50 | 250 coins |
Reskin slots
background card_back card_face — drop art per slot via Tools > Mini Game Templates > Reskin Editor.
Configurable settings
| Setting | Default | What it does |
|---|---|---|
ClassicDeal | true | Reserved for future tuning; Fortress deals the whole pack across ten columns. |
🎮 Streets and Alleys
Eight columns, no reserve; build down any suit; foundations up by suit.
How to play
- The whole pack is dealt across eight columns; the aces are NOT pre-placed. Build columns DOWN regardless of suit, one card at a time. Empty columns accept any single card.
- Free the aces and build the four foundations UP by suit from Ace to King. There is no stock or redeal — plan ahead. Clear all 52 cards to win.
Boosters
| Booster | Key | Effect |
|---|---|---|
| Hint | hint | Highlight a card that can move right now. |
| Undo | undo | Take back your last move. |
| Auto-Lift | auto | Send every card that already fits straight to the foundations. |
Achievements
| Achievement | Goal | Reward |
|---|---|---|
| Street Smart Win your first game of Streets and Alleys. | 1 | — |
| City Planner Win 10 games of Streets and Alleys. | 10 | 200 coins |
| No Take-Backs Win a game without using Undo. | 1 | 150 coins |
| Marathon Finish 50 games of Streets and Alleys. | 50 | 250 coins |
Reskin slots
background card_back card_face — drop art per slot via Tools > Mini Game Templates > Reskin Editor.
Configurable settings
| Setting | Default | What it does |
|---|---|---|
ClassicDeal | true | Reserved for future tuning; Streets and Alleys deals the whole pack across eight columns. |
🎮 Chameleon
Canfield variant; reserve + wrapping foundations; build down any suit.
How to play
- Build the three tableau columns DOWN regardless of suit, wrapping (an Ace goes onto a 2, a King onto an Ace). Only the top of the reserve pile is playable; an emptied column refills from the reserve.
- Foundations build UP by suit from the dealt base rank and WRAP past the King. Tap the stock to turn cards to the waste (it recycles). Clear all 52 cards to win.
Boosters
| Booster | Key | Effect |
|---|---|---|
| Hint | hint | Highlight a card or run that can move right now. |
| Undo | undo | Take back your last move or stock turn. |
| Auto-Lift | auto | Send every card that already fits straight to the foundations. |
Achievements
| Achievement | Goal | Reward |
|---|---|---|
| Blending In Win your first game of Chameleon. | 1 | — |
| Quick Change Win 10 games of Chameleon. | 10 | 200 coins |
| No Take-Backs Win a game without using Undo. | 1 | 150 coins |
| Marathon Finish 50 games of Chameleon. | 50 | 250 coins |
Reskin slots
background card_back card_face — drop art per slot via Tools > Mini Game Templates > Reskin Editor.
Configurable settings
| Setting | Default | What it does |
|---|---|---|
ClassicDeal | true | Reserved for future tuning; Chameleon deals a 12-card reserve and three tableau columns. |
💥 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
}
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
| Game | Booster keys |
|---|---|
| Whitehead | hint undo auto |
| Westcliff | hint undo auto |
| Thumb and Pouch | hint undo auto |
| Australian Patience | hint undo auto |
| Spiderette | hint undo deal |
| Will o' the Wisp | hint undo deal |
| Martha | hint undo auto |
| Fortress | hint undo auto |
| Streets and Alleys | hint undo auto |
| Chameleon | hint 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
| Game | Slots |
|---|---|
| Whitehead | background card_back card_face |
| Westcliff | background card_back card_face |
| Thumb and Pouch | background card_back card_face |
| Australian Patience | background card_back card_face |
| Spiderette | background card_back card_face |
| Will o' the Wisp | background card_back card_face |
| Martha | background card_back card_face |
| Fortress | background card_back card_face |
| Streets and Alleys | background card_back card_face |
| Chameleon | background card_back card_face |
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.
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:
How it is hooked up in this demo
- Vibrations: every game's sound events (taps, wins, errors) fire matching haptics through the kit automatically.
- Rewarded ad: winning a round with a coin reward offers a “Watch Ad” doubler; completing the (mock) ad credits the bonus.
- Interstitial: auto-shows after every 3rd round (skipped after a No-Ads purchase).
- Banner + shop: the cheat rail's Ads & IAP section toggles the banner and opens the simulated IAP shop (Coin Pack, No Ads, Starter Bundle) through the kit's store backend.
Setup & going live
- Everything works out of the box in the editor with mock/dummy backends — no SDKs required, nothing to configure for the demo.
- Open Tools > HLK > Open Toolset (or Tools > HLK > Guided Setup) to configure ad units, IAP products, notifications, rate-us and the rest.
- 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.
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_Solitaire4.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 WhiteheadGame();
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 */ });
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 4.0, drop it in Resources/Config/, or mutate <Game>Settings.Default at runtime before mounting.
Boosters: add / remove / rebalance
- Remove: delete the
BoosterDeffrom the game's spec. - Add: append a
BoosterDefand handle its key in the game's booster handler. - Grant:
BoosterManager.Add(gameId, key, count).
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
- Create
Assets/MiniGameTemplates/Runtime/Solitaire4/MyGame/. - Add
MyGameGame.csimplementingIMiniGame, decorated with[MiniGame("…", "My Game", Category = MiniGameCategory.Solitaire4)]. - Add
MyGameSettings(optional) with a staticDefaultgetter. - Add the spec files —
MyGameBoosterSpec,MyGameAchievementSpec,MyGameReskinSpec,MyGameTutorialSpec— all auto-discovered. - 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. solitaire4_whitehead), 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.