Mini Game Templates · Words 4.0 Pack
Vocabulary and word-craft templates powered by the shared word list, custom puzzle authoring, and per-game settings.
🏠 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-Words4.unitypackage. If Unity offers to import TMP Essentials, accept — the demo UI uses TextMeshPro. - Open
Assets/MiniGameTemplates/Demo/MiniGameTemplates_Words4.unity. The full demo is already baked into the scene. - Press Play — the dashboard lists every Words 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 GhostGame();
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. "words4_ghost"
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/Words4/<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()
🎮 Ghost
Add letters without finishing a word — beat the AI.
How to play
- You and the ghost take turns adding ONE letter. It must always still be the start of some real word.
- If your letter COMPLETES a valid word of 4+ letters, you lose the round. Force the ghost to finish one instead!
Boosters
| Booster | Key | Effect |
|---|---|---|
| Safe Letter | hint | Highlight a letter that does not complete a word. |
| Take Back | undo | Undo the last pair of letters. |
| Pass Turn | skip | Make the AI add the next letter for you. |
Achievements
| Achievement | Goal | Reward |
|---|---|---|
| Spook the AI Win a round of Ghost. | 1 | — |
| Phantom Win 5 rounds. | 5 | 150 coins |
| Wordsmith Play 80 letters in total. | 80 | 150 coins |
| Long Game Survive to a 6-letter fragment. | 6 | 200 coins |
Reskin slots
tile background — drop art per slot via Tools > Mini Game Templates > Reskin Editor.
Configurable settings
| Setting | Default | What it does |
|---|---|---|
Difficulty | GhostDifficulty.Medium | How sharply the AI plays to avoid completing words. |
🎮 Word Squares
Fill the grid so every row and column is a word.
How to play
- Tap a cell, then tap a letter from the tray to fill it. Some letters are already given.
- Make every ROW and every COLUMN a real word. The square reads the same down as across.
Boosters
| Booster | Key | Effect |
|---|---|---|
| Reveal Cell | hint | Fill one empty cell with its solution letter. |
| Reveal Row | reveal | Complete the first unfinished row. |
| Clear Cell | undo | Clear the selected cell. |
Achievements
| Achievement | Goal | Reward |
|---|---|---|
| Squared Away Complete a word square. | 1 | — |
| Grid Master Complete 10 squares. | 10 | 200 coins |
| Unaided Complete a square without a reveal. | 1 | 250 coins |
| Lexicon Form 40 valid words across squares. | 40 | 150 coins |
Reskin slots
cell background — drop art per slot via Tools > Mini Game Templates > Reskin Editor.
Configurable settings
| Setting | Default | What it does |
|---|---|---|
Difficulty | WordSquaresDifficulty.Medium | Easy = 3x3 with more givens; Hard = 4x4 with fewer. |
🎮 Prefix It
Finish any valid word starting with the prefix.
How to play
- A prefix is shown at the top. Tap letters to build ANY real word that starts with it.
- Hit Submit before the timer runs out. Each success extends your streak and the prefixes get harder.
Boosters
| Booster | Key | Effect |
|---|---|---|
| Reveal Word | hint | Show one valid word for the prefix. |
| Extra Time | time | Add a few seconds to the clock. |
| Clear | clear | Clear the letters you have typed. |
Achievements
| Achievement | Goal | Reward |
|---|---|---|
| Quick Start Complete a prefix. | 1 | — |
| On a Roll Reach a streak of 5. | 5 | 150 coins |
| Unstoppable Reach a streak of 10. | 10 | 250 coins |
| Lengthy Finish with a 7+ letter word. | 7 | 200 coins |
Reskin slots
tile background — drop art per slot via Tools > Mini Game Templates > Reskin Editor.
Configurable settings
| Setting | Default | What it does |
|---|---|---|
Difficulty | PrefixItDifficulty.Medium | Controls the timer and how long the required word must be. |
🎮 Contains It
Spell a word that contains the shown letters.
How to play
- A short run of letters is shown. Type any real word that CONTAINS those letters in order.
- Longer words score more. Submit before the timer ends; each success grows your streak.
Boosters
| Booster | Key | Effect |
|---|---|---|
| Reveal Word | hint | Show one valid word that contains the letters. |
| Extra Time | time | Add a few seconds to the clock. |
| Clear | clear | Clear what you have typed. |
Achievements
| Achievement | Goal | Reward |
|---|---|---|
| Found It Complete a round. | 1 | — |
| Word Hunter Reach a streak of 5. | 5 | 150 coins |
| Stacking Up Spell 60 letters across words. | 60 | 150 coins |
| Big Word Finish with an 8+ letter word. | 8 | 250 coins |
Reskin slots
tile background — drop art per slot via Tools > Mini Game Templates > Reskin Editor.
Configurable settings
| Setting | Default | What it does |
|---|---|---|
Difficulty | ContainsItDifficulty.Medium | Controls the timer and substring length. |
🎮 Drop a Letter
Remove one letter at a time, staying a real word.
How to play
- Tap a letter to remove it. The remaining letters keep their order and must still spell a real word.
- Chain down to the goal length. There is always at least one path, but explore for longer chains!
Boosters
| Booster | Key | Effect |
|---|---|---|
| Show Drop | hint | Highlight a letter you can drop and stay valid. |
| Drop One | auto | Make one valid drop for you. |
| Undo | undo | Step back up the chain. |
Achievements
| Achievement | Goal | Reward |
|---|---|---|
| Trimmed Reduce a word down to the goal. | 1 | — |
| Long Chain Make a chain of 4 drops. | 4 | 150 coins |
| Letter Shedder Drop 50 letters in total. | 50 | 150 coins |
| By Hand Finish a chain without a hint. | 1 | 200 coins |
Reskin slots
tile background — drop art per slot via Tools > Mini Game Templates > Reskin Editor.
Configurable settings
| Setting | Default | What it does |
|---|---|---|
Difficulty | DropALetterDifficulty.Medium | Controls how long the starting word is. |
🎮 Letter Slide
Slide the letter tiles to spell the target word.
How to play
- Tap a tile next to the blank to slide it. Rearrange the letters around the board.
- Get the target word to read across the TOP row to win. Fewer slides earns more.
Boosters
| Booster | Key | Effect |
|---|---|---|
| Show Word | hint | Remind me what the target word is. |
| Reshuffle | shuffle | Scramble the board again (still solvable). |
| Undo Slide | undo | Undo your last slide. |
Achievements
| Achievement | Goal | Reward |
|---|---|---|
| Slid Home Spell the target word. | 1 | — |
| Tile Whisperer Solve 10 puzzles. | 10 | 200 coins |
| Slippery Make 200 slides in total. | 200 | 150 coins |
| Efficient Solve in 20 slides or fewer. | 1 | 250 coins |
Reskin slots
tile background — drop art per slot via Tools > Mini Game Templates > Reskin Editor.
Configurable settings
| Setting | Default | What it does |
|---|---|---|
Difficulty | LetterSlideDifficulty.Medium | Easy/Medium = 3x3 (3-letter word); Hard = 4x4 (4-letter word). |
🎮 Beheaded
Lop off the first letter to reveal another word.
How to play
- Tap the first letter (or Behead) to chop it off. The rest must still be a real word: SCARE then CARE then ARE.
- Keep beheading as far down as the chain goes. The puzzle always has a full chain to find.
Boosters
| Booster | Key | Effect |
|---|---|---|
| Peek Next | hint | Show the next word in the chain. |
| Behead | auto | Lop the first letter for you. |
| Undo | undo | Restore the previous word. |
Achievements
| Achievement | Goal | Reward |
|---|---|---|
| Off With Its Head Complete a beheading chain. | 1 | — |
| Headsman Behead three words in one chain. | 3 | 150 coins |
| Executioner Behead 40 words in total. | 40 | 150 coins |
| Clean Cut Finish a chain without a hint. | 1 | 200 coins |
Reskin slots
tile background — drop art per slot via Tools > Mini Game Templates > Reskin Editor.
Configurable settings
| Setting | Default | What it does |
|---|---|---|
Difficulty | BeheadedDifficulty.Medium | Controls how long the starting word is. |
🎮 Jotto
Deduce the hidden word from shared-letter counts.
How to play
- Guess the hidden word by typing any real word of the same length, then Guess.
- Each guess shows how many of its DISTINCT letters appear in the hidden word. Use the clues to deduce it before your guesses run out.
Boosters
| Booster | Key | Effect |
|---|---|---|
| Free Letter | hint | Reveal one letter that IS in the hidden word. |
| Extra Guess | guess | Add one more guess to your allowance. |
| Clear | clear | Clear the letters you have typed. |
Achievements
| Achievement | Goal | Reward |
|---|---|---|
| Deduced Guess a hidden word. | 1 | — |
| Codebreaker Solve 10 hidden words. | 10 | 200 coins |
| Sleuth Make 60 valid guesses in total. | 60 | 150 coins |
| Sharp Mind Solve in 4 guesses or fewer. | 1 | 250 coins |
Reskin slots
tile background — drop art per slot via Tools > Mini Game Templates > Reskin Editor.
Configurable settings
| Setting | Default | What it does |
|---|---|---|
Difficulty | JottoDifficulty.Medium | Controls the word length and number of guesses. |
🎮 Word Target
Unscramble the nine letters into the target word.
How to play
- Tap the jumbled tiles to build a word, then Submit. Score points for any valid word you find.
- There is one word that uses ALL the letters — find it to clear the round and score big.
Boosters
| Booster | Key | Effect |
|---|---|---|
| First Letter | hint | Reveal the first letter of the target word. |
| Shuffle | shuffle | Rearrange the letter tiles. |
| Clear | clear | Return all picked letters. |
Achievements
| Achievement | Goal | Reward |
|---|---|---|
| Bullseye Find a target word. | 1 | — |
| Sharpshooter Find 5 target words. | 5 | 200 coins |
| Word Spotter Find 60 valid words across rounds. | 60 | 150 coins |
| High Scorer Reach 150 points in a round. | 150 | 250 coins |
Reskin slots
tile background — drop art per slot via Tools > Mini Game Templates > Reskin Editor.
Configurable settings
| Setting | Default | What it does |
|---|---|---|
Difficulty | WordTargetDifficulty.Medium | Controls the target word length (7/8/9 letters). |
🎮 Word Dominoes
Chain words by matching the last two letters.
How to play
- Each new word must START with the LAST TWO letters of the previous word (PLANET then ETCHED then EDGES).
- Type a valid word and Submit before the timer ends. Keep the chain alive as long as you can!
Boosters
| Booster | Key | Effect |
|---|---|---|
| Suggest Word | hint | Show one valid next word. |
| Extra Time | time | Add a few seconds to the clock. |
| Clear | clear | Clear what you have typed. |
Achievements
| Achievement | Goal | Reward |
|---|---|---|
| First Link Add a word to the chain. | 1 | — |
| Chain Gang Build a chain of 5. | 5 | 150 coins |
| Domino Master Build a chain of 10. | 10 | 300 coins |
| Prolific Play 50 chain words in total. | 50 | 150 coins |
Reskin slots
tile background — drop art per slot via Tools > Mini Game Templates > Reskin Editor.
Configurable settings
| Setting | Default | What it does |
|---|---|---|
Difficulty | WordDominoesDifficulty.Medium | Controls the per-word timer. |
💥 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 |
|---|---|
| Ghost | hint undo skip |
| Word Squares | hint reveal undo |
| Prefix It | hint time clear |
| Contains It | hint time clear |
| Drop a Letter | hint auto undo |
| Letter Slide | hint shuffle undo |
| Beheaded | hint auto undo |
| Jotto | hint guess clear |
| Word Target | hint shuffle clear |
| Word Dominoes | hint time clear |
🏆 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 |
|---|---|
| Ghost | tile background |
| Word Squares | cell background |
| Prefix It | tile background |
| Contains It | tile background |
| Drop a Letter | tile background |
| Letter Slide | tile background |
| Beheaded | tile background |
| Jotto | tile background |
| Word Target | tile background |
| Word Dominoes | tile background |
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_Words4.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 GhostGame();
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 > Words 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/Words4/MyGame/. - Add
MyGameGame.csimplementingIMiniGame, decorated with[MiniGame("…", "My Game", Category = MiniGameCategory.Words4)]. - 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. words4_ghost), 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.