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.

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

GhostAdd letters without finishing a word — beat the AI.
Word SquaresFill the grid so every row and column is a word.
Prefix ItFinish any valid word starting with the prefix.
Contains ItSpell a word that contains the shown letters.
Drop a LetterRemove one letter at a time, staying a real word.
Letter SlideSlide the letter tiles to spell the target word.
BeheadedLop off the first letter to reveal another word.
JottoDeduce the hidden word from shared-letter counts.
Word TargetUnscramble the nine letters into the target word.
Word DominoesChain words by matching the last two letters.
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-Words4.unitypackage. If Unity offers to import TMP Essentials, accept — the demo UI uses TextMeshPro.
  2. Open Assets/MiniGameTemplates/Demo/MiniGameTemplates_Words4.unity. The full demo is already baked into the scene.
  3. Press Play — the dashboard lists every Words 4.0 game; pick, play, and try the boosters and cheat rail.
  4. Open Tools > Mini Game Templates > Studio and tune any game's settings.
  5. (Optional) Open Tools > HLK > Guided Setup to configure the bundled LiveOps kit — ads, IAP, notifications, rate-us and more (see the LiveOps Kit section).
  6. To ship a single game inside your own UI, use the IMiniGame contract:
IMiniGame game = new GhostGame();
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. "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

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/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
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()

🎮 Ghost

Add letters without finishing a word — beat the AI.

How to play

  1. You and the ghost take turns adding ONE letter. It must always still be the start of some real word.
  2. If your letter COMPLETES a valid word of 4+ letters, you lose the round. Force the ghost to finish one instead!

Boosters

BoosterKeyEffect
Safe LetterhintHighlight a letter that does not complete a word.
Take BackundoUndo the last pair of letters.
Pass TurnskipMake the AI add the next letter for you.

Achievements

AchievementGoalReward
Spook the AI
Win a round of Ghost.
1
Phantom
Win 5 rounds.
5150 coins
Wordsmith
Play 80 letters in total.
80150 coins
Long Game
Survive to a 6-letter fragment.
6200 coins

Reskin slots

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

Configurable settings

SettingDefaultWhat it does
DifficultyGhostDifficulty.MediumHow sharply the AI plays to avoid completing words.

↑ Back to top

🎮 Word Squares

Fill the grid so every row and column is a word.

How to play

  1. Tap a cell, then tap a letter from the tray to fill it. Some letters are already given.
  2. Make every ROW and every COLUMN a real word. The square reads the same down as across.

Boosters

BoosterKeyEffect
Reveal CellhintFill one empty cell with its solution letter.
Reveal RowrevealComplete the first unfinished row.
Clear CellundoClear the selected cell.

Achievements

AchievementGoalReward
Squared Away
Complete a word square.
1
Grid Master
Complete 10 squares.
10200 coins
Unaided
Complete a square without a reveal.
1250 coins
Lexicon
Form 40 valid words across squares.
40150 coins

Reskin slots

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

Configurable settings

SettingDefaultWhat it does
DifficultyWordSquaresDifficulty.MediumEasy = 3x3 with more givens; Hard = 4x4 with fewer.

↑ Back to top

🎮 Prefix It

Finish any valid word starting with the prefix.

How to play

  1. A prefix is shown at the top. Tap letters to build ANY real word that starts with it.
  2. Hit Submit before the timer runs out. Each success extends your streak and the prefixes get harder.

Boosters

BoosterKeyEffect
Reveal WordhintShow one valid word for the prefix.
Extra TimetimeAdd a few seconds to the clock.
ClearclearClear the letters you have typed.

Achievements

AchievementGoalReward
Quick Start
Complete a prefix.
1
On a Roll
Reach a streak of 5.
5150 coins
Unstoppable
Reach a streak of 10.
10250 coins
Lengthy
Finish with a 7+ letter word.
7200 coins

Reskin slots

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

Configurable settings

SettingDefaultWhat it does
DifficultyPrefixItDifficulty.MediumControls the timer and how long the required word must be.

↑ Back to top

🎮 Contains It

Spell a word that contains the shown letters.

How to play

  1. A short run of letters is shown. Type any real word that CONTAINS those letters in order.
  2. Longer words score more. Submit before the timer ends; each success grows your streak.

Boosters

BoosterKeyEffect
Reveal WordhintShow one valid word that contains the letters.
Extra TimetimeAdd a few seconds to the clock.
ClearclearClear what you have typed.

Achievements

AchievementGoalReward
Found It
Complete a round.
1
Word Hunter
Reach a streak of 5.
5150 coins
Stacking Up
Spell 60 letters across words.
60150 coins
Big Word
Finish with an 8+ letter word.
8250 coins

Reskin slots

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

Configurable settings

SettingDefaultWhat it does
DifficultyContainsItDifficulty.MediumControls the timer and substring length.

↑ Back to top

🎮 Drop a Letter

Remove one letter at a time, staying a real word.

How to play

  1. Tap a letter to remove it. The remaining letters keep their order and must still spell a real word.
  2. Chain down to the goal length. There is always at least one path, but explore for longer chains!

Boosters

BoosterKeyEffect
Show DrophintHighlight a letter you can drop and stay valid.
Drop OneautoMake one valid drop for you.
UndoundoStep back up the chain.

Achievements

AchievementGoalReward
Trimmed
Reduce a word down to the goal.
1
Long Chain
Make a chain of 4 drops.
4150 coins
Letter Shedder
Drop 50 letters in total.
50150 coins
By Hand
Finish a chain without a hint.
1200 coins

Reskin slots

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

Configurable settings

SettingDefaultWhat it does
DifficultyDropALetterDifficulty.MediumControls how long the starting word is.

↑ Back to top

🎮 Letter Slide

Slide the letter tiles to spell the target word.

How to play

  1. Tap a tile next to the blank to slide it. Rearrange the letters around the board.
  2. Get the target word to read across the TOP row to win. Fewer slides earns more.

Boosters

BoosterKeyEffect
Show WordhintRemind me what the target word is.
ReshuffleshuffleScramble the board again (still solvable).
Undo SlideundoUndo your last slide.

Achievements

AchievementGoalReward
Slid Home
Spell the target word.
1
Tile Whisperer
Solve 10 puzzles.
10200 coins
Slippery
Make 200 slides in total.
200150 coins
Efficient
Solve in 20 slides or fewer.
1250 coins

Reskin slots

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

Configurable settings

SettingDefaultWhat it does
DifficultyLetterSlideDifficulty.MediumEasy/Medium = 3x3 (3-letter word); Hard = 4x4 (4-letter word).

↑ Back to top

🎮 Beheaded

Lop off the first letter to reveal another word.

How to play

  1. Tap the first letter (or Behead) to chop it off. The rest must still be a real word: SCARE then CARE then ARE.
  2. Keep beheading as far down as the chain goes. The puzzle always has a full chain to find.

Boosters

BoosterKeyEffect
Peek NexthintShow the next word in the chain.
BeheadautoLop the first letter for you.
UndoundoRestore the previous word.

Achievements

AchievementGoalReward
Off With Its Head
Complete a beheading chain.
1
Headsman
Behead three words in one chain.
3150 coins
Executioner
Behead 40 words in total.
40150 coins
Clean Cut
Finish a chain without a hint.
1200 coins

Reskin slots

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

Configurable settings

SettingDefaultWhat it does
DifficultyBeheadedDifficulty.MediumControls how long the starting word is.

↑ Back to top

🎮 Jotto

Deduce the hidden word from shared-letter counts.

How to play

  1. Guess the hidden word by typing any real word of the same length, then Guess.
  2. 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

BoosterKeyEffect
Free LetterhintReveal one letter that IS in the hidden word.
Extra GuessguessAdd one more guess to your allowance.
ClearclearClear the letters you have typed.

Achievements

AchievementGoalReward
Deduced
Guess a hidden word.
1
Codebreaker
Solve 10 hidden words.
10200 coins
Sleuth
Make 60 valid guesses in total.
60150 coins
Sharp Mind
Solve in 4 guesses or fewer.
1250 coins

Reskin slots

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

Configurable settings

SettingDefaultWhat it does
DifficultyJottoDifficulty.MediumControls the word length and number of guesses.

↑ Back to top

🎮 Word Target

Unscramble the nine letters into the target word.

How to play

  1. Tap the jumbled tiles to build a word, then Submit. Score points for any valid word you find.
  2. There is one word that uses ALL the letters — find it to clear the round and score big.

Boosters

BoosterKeyEffect
First LetterhintReveal the first letter of the target word.
ShuffleshuffleRearrange the letter tiles.
ClearclearReturn all picked letters.

Achievements

AchievementGoalReward
Bullseye
Find a target word.
1
Sharpshooter
Find 5 target words.
5200 coins
Word Spotter
Find 60 valid words across rounds.
60150 coins
High Scorer
Reach 150 points in a round.
150250 coins

Reskin slots

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

Configurable settings

SettingDefaultWhat it does
DifficultyWordTargetDifficulty.MediumControls the target word length (7/8/9 letters).

↑ Back to top

🎮 Word Dominoes

Chain words by matching the last two letters.

How to play

  1. Each new word must START with the LAST TWO letters of the previous word (PLANET then ETCHED then EDGES).
  2. Type a valid word and Submit before the timer ends. Keep the chain alive as long as you can!

Boosters

BoosterKeyEffect
Suggest WordhintShow one valid next word.
Extra TimetimeAdd a few seconds to the clock.
ClearclearClear what you have typed.

Achievements

AchievementGoalReward
First Link
Add a word to the chain.
1
Chain Gang
Build a chain of 5.
5150 coins
Domino Master
Build a chain of 10.
10300 coins
Prolific
Play 50 chain words in total.
50150 coins

Reskin slots

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

Configurable settings

SettingDefaultWhat it does
DifficultyWordDominoesDifficulty.MediumControls the per-word timer.

↑ 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
Ghosthint undo skip
Word Squareshint reveal undo
Prefix Ithint time clear
Contains Ithint time clear
Drop a Letterhint auto undo
Letter Slidehint shuffle undo
Beheadedhint auto undo
Jottohint guess clear
Word Targethint shuffle clear
Word Dominoeshint 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

GameSlots
Ghosttile background
Word Squarescell background
Prefix Ittile background
Contains Ittile background
Drop a Lettertile background
Letter Slidetile background
Beheadedtile background
Jottotile background
Word Targettile background
Word Dominoestile 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_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       */ });
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 > Words 4.0, drop it in Resources/Config/, or mutate <Game>Settings.Default at runtime before mounting.

Boosters: add / remove / rebalance

Audio

Games call ctx.Audio.Play(SfxKind.…). The bundled ProceduralAudioBus synthesizes all SFX at runtime — no audio files to manage; swap in your own IAudioBus to use recorded audio.

🧰 Adding new games

  1. Create Assets/MiniGameTemplates/Runtime/Words4/MyGame/.
  2. Add MyGameGame.cs implementing IMiniGame, decorated with [MiniGame("…", "My Game", Category = MiniGameCategory.Words4)].
  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. 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.

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. ⭐