Mini Game Templates · Words 3.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 games20 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.

Word FitFit every word into the crossword grid — no clues.
Letter BoxedSpell words around the box and cover all 12 letters.
Word PyramidClimb word to word, adding one letter each step.
AlphabetizeSort the scrambled words into alphabetical order, fast.
Longest WordNine letters, one timer — make the longest word you can.
Anagram PairsFlip two tiles — match a word with its scramble.
Word SnapSpell a word of the called length before the timer.
Word BucketsFile each word into the right bucket by the rule.
Spell CheckPick the correctly spelled word among the fakes.
Tile ScoreSeven lettered tiles — build the highest-scoring word.
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-Words3.unitypackage. If Unity offers to import TMP Essentials, accept — the demo UI uses TextMeshPro.
  2. Open Assets/MiniGameTemplates/Demo/MiniGameTemplates_Words3.unity. The full demo is already baked into the scene.
  3. Press Play — the dashboard lists every Words 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 WordFitGame();
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. "words3_word_fit"
    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/Words3/<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()

🎮 Word Fit

Fit every word into the crossword grid — no clues.

How to play

  1. Every word in the word bank fits into exactly one slot on the grid.
  2. Tap a word, then tap the slot's first cell to drop it in. Fill the whole grid to win.

Boosters

BoosterKeyEffect
Place WordhintPlace one remaining word into its slot for free.
Reveal SlotrevealHighlight the slot a selected word belongs in.

Achievements

AchievementGoalReward
Snug Fit
Complete a grid.
1
Crossword Wright
Complete 10 grids.
10150 coins
Unaided
Complete a grid without the place-word booster.
1200 coins
Lexicon
Place 100 words in total.
100150 coins

Reskin slots

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

Configurable settings

SettingDefaultWhat it does
DifficultyWordFitDifficulty.MediumBigger grids and longer words on higher difficulty.

↑ Back to top

🎮 Letter Boxed

Spell words around the box and cover all 12 letters.

How to play

  1. Tap letters around the box to spell a word. Consecutive letters can't be on the same side.
  2. Each new word must start with the last letter of the previous word. Use every letter to win.

Boosters

BoosterKeyEffect
Reveal WordhintReveal one word of a valid solution.
Clear WordclearClear the word you are currently spelling.

Achievements

AchievementGoalReward
Boxed In
Cover all 12 letters once.
1
Box Champion
Solve 10 boxes.
10150 coins
Economical
Solve a box using just two words.
1250 coins
Wordsmith
Play 50 valid words in total.
50150 coins

Reskin slots

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

Configurable settings

SettingDefaultWhat it does
DifficultyLetterBoxedDifficulty.MediumHigher difficulty allows fewer words to cover all 12 letters.

↑ Back to top

🎮 Word Pyramid

Climb word to word, adding one letter each step.

How to play

  1. Each row is a word one letter longer than the one above it.
  2. Use all the previous letters plus the one new tile to spell the next word. Climb to the top!

Boosters

BoosterKeyEffect
Reveal LetterhintReveal the new letter added on the current step.
Clear StepclearClear the letters you have entered for this step.

Achievements

AchievementGoalReward
First Ascent
Complete a pyramid.
1
Mountaineer
Complete 10 pyramids.
10150 coins
Pure Climb
Complete a pyramid without revealing a letter.
1200 coins
Step Counter
Solve 50 steps in total.
50150 coins

Reskin slots

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

Configurable settings

SettingDefaultWhat it does
DifficultyWordPyramidDifficulty.MediumTaller pyramids on higher difficulty.

↑ Back to top

🎮 Alphabetize

Sort the scrambled words into alphabetical order, fast.

How to play

  1. Tap two words to swap their positions.
  2. Put the whole list in A-to-Z order before the timer runs out.

Boosters

BoosterKeyEffect
Show FirsthintLock the alphabetically-first word into place.
Add TimetimeAdd 10 seconds to the timer.

Achievements

AchievementGoalReward
In Order
Alphabetize a list.
1
Librarian
Alphabetize 10 lists.
10150 coins
Quick Filer
Finish a list with 20+ seconds left.
1200 coins
Card Catalog
Sort 25 lists in total.
25250 coins

Reskin slots

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

Configurable settings

SettingDefaultWhat it does
DifficultyAlphabetizeDifficulty.MediumMore words and a tighter timer on higher difficulty.

↑ Back to top

🎮 Longest Word

Nine letters, one timer — make the longest word you can.

How to play

  1. Tap letters from the rack to build the longest valid word you can.
  2. Longer words score more. Submit before the timer runs out!

Boosters

BoosterKeyEffect
Show WordhintReveal a strong word hidden in the letters.
ShuffleshuffleReshuffle the letter rack.

Achievements

AchievementGoalReward
Wordsmith
Submit a valid word.
1
Seven-Up
Make a 7-letter word.
7200 coins
Full House
Make a 9-letter word.
9400 coins
Countdown Regular
Play 25 rounds.
25150 coins

Reskin slots

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

Configurable settings

SettingDefaultWhat it does
DifficultyLongestWordDifficulty.MediumShorter timer on higher difficulty.

↑ Back to top

🎮 Anagram Pairs

Flip two tiles — match a word with its scramble.

How to play

  1. Flip two tiles. A match is a word and a scramble of the SAME word.
  2. Mismatched tiles flip back. Remember the letters and clear the whole board!

Boosters

BoosterKeyEffect
Reveal PairhintBriefly reveal one matching anagram pair.
Peek AllpeekFlash every face-down tile for a moment.

Achievements

AchievementGoalReward
Matched Up
Clear a board.
1
Memory Master
Clear 10 boards.
10150 coins
Flawless
Clear a board with no mismatched flips.
1250 coins
Pair Hunter
Match 50 pairs in total.
50150 coins

Reskin slots

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

Configurable settings

SettingDefaultWhat it does
DifficultyAnagramPairsDifficulty.MediumBigger boards on higher difficulty.

↑ Back to top

🎮 Word Snap

Spell a word of the called length before the timer.

How to play

  1. A target length is called. Tap letters to spell ANY valid word of exactly that length.
  2. Beat the timer to keep your streak — the called length climbs as you go!

Boosters

BoosterKeyEffect
Show WordhintReveal a valid word of the called length.
Add TimetimeAdd a few seconds to the timer.

Achievements

AchievementGoalReward
Snap!
Complete a round.
1
On a Roll
Reach a streak of 5.
5150 coins
Lightning Speller
Reach a streak of 10.
10300 coins
Quick Draw
Snap 50 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
DifficultyWordSnapDifficulty.MediumTighter timer on higher difficulty.

↑ Back to top

🎮 Word Buckets

File each word into the right bucket by the rule.

How to play

  1. The current word sits at the top. Each bucket has a rule shown on its label.
  2. Tap the bucket that matches the word. File the whole queue to win!

Boosters

BoosterKeyEffect
Show BuckethintHighlight the correct bucket for the current word.
Skip WordskipAuto-file the current word correctly.

Achievements

AchievementGoalReward
Sorted
Clear a queue.
1
Sorting Champion
Clear 10 queues.
10150 coins
No Spills
Clear a queue with no mistakes.
1250 coins
Mail Sorter
File 100 words in total.
100150 coins

Reskin slots

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

Configurable settings

SettingDefaultWhat it does
DifficultyWordBucketsDifficulty.MediumLonger queues on higher difficulty.

↑ Back to top

🎮 Spell Check

Pick the correctly spelled word among the fakes.

How to play

  1. One option is spelled correctly; the rest are subtle misspellings.
  2. Tap the correctly spelled word before the timer runs out to keep your streak.

Boosters

BoosterKeyEffect
Remove OnehintEliminate one misspelled option.
Add TimetimeAdd a few seconds to the timer.

Achievements

AchievementGoalReward
Proofreader
Finish a round.
1
Eagle Eye
Reach a streak of 8.
8200 coins
Spelling Bee
Reach a streak of 15.
15400 coins
Sharp Eyes
Pick 100 correct words in total.
100150 coins

Reskin slots

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

Configurable settings

SettingDefaultWhat it does
DifficultySpellCheckDifficulty.MediumMore options and trickier misspellings on higher difficulty.

↑ Back to top

🎮 Tile Score

Seven lettered tiles — build the highest-scoring word.

How to play

  1. Each tile shows its point value. Tap tiles to build a valid word.
  2. Higher-value letters score more. Find your highest-scoring word before time runs out!

Boosters

BoosterKeyEffect
Show WordhintReveal a high-scoring word from your tiles.
ShuffleshuffleReshuffle your tile rack.

Achievements

AchievementGoalReward
On the Board
Submit a valid word.
1
Big Play
Score 15+ on one word.
15200 coins
Triple Word
Score 25+ on one word.
25400 coins
Tile Veteran
Play 25 rounds.
25150 coins

Reskin slots

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

Configurable settings

SettingDefaultWhat it does
DifficultyTileScoreDifficulty.MediumTighter timer on higher difficulty.

↑ 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
Word Fithint reveal
Letter Boxedhint clear
Word Pyramidhint clear
Alphabetizehint time
Longest Wordhint shuffle
Anagram Pairshint peek
Word Snaphint time
Word Bucketshint skip
Spell Checkhint time
Tile Scorehint shuffle

🏆 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
Word Fitcell background
Letter Boxednode background
Word Pyramidbrick background
Alphabetizecard background
Longest Wordtile background
Anagram Pairstile background
Word Snaptile background
Word Bucketsbucket background
Spell Checkoption background
Tile Scoretile 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_Words3.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 WordFitGame();
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 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/Words3/MyGame/.
  2. Add MyGameGame.cs implementing IMiniGame, decorated with [MiniGame("…", "My Game", Category = MiniGameCategory.Words3)].
  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. words3_word_fit), 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. ⭐