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.
🏠 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-Words3.unitypackage. If Unity offers to import TMP Essentials, accept — the demo UI uses TextMeshPro. - Open
Assets/MiniGameTemplates/Demo/MiniGameTemplates_Words3.unity. The full demo is already baked into the scene. - Press Play — the dashboard lists every Words 3.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 WordFitGame();
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. "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
| 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/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
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
- Every word in the word bank fits into exactly one slot on the grid.
- Tap a word, then tap the slot's first cell to drop it in. Fill the whole grid to win.
Boosters
| Booster | Key | Effect |
|---|---|---|
| Place Word | hint | Place one remaining word into its slot for free. |
| Reveal Slot | reveal | Highlight the slot a selected word belongs in. |
Achievements
| Achievement | Goal | Reward |
|---|---|---|
| Snug Fit Complete a grid. | 1 | — |
| Crossword Wright Complete 10 grids. | 10 | 150 coins |
| Unaided Complete a grid without the place-word booster. | 1 | 200 coins |
| Lexicon Place 100 words in total. | 100 | 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 | WordFitDifficulty.Medium | Bigger grids and longer words on higher difficulty. |
🎮 Letter Boxed
Spell words around the box and cover all 12 letters.
How to play
- Tap letters around the box to spell a word. Consecutive letters can't be on the same side.
- Each new word must start with the last letter of the previous word. Use every letter to win.
Boosters
| Booster | Key | Effect |
|---|---|---|
| Reveal Word | hint | Reveal one word of a valid solution. |
| Clear Word | clear | Clear the word you are currently spelling. |
Achievements
| Achievement | Goal | Reward |
|---|---|---|
| Boxed In Cover all 12 letters once. | 1 | — |
| Box Champion Solve 10 boxes. | 10 | 150 coins |
| Economical Solve a box using just two words. | 1 | 250 coins |
| Wordsmith Play 50 valid words in total. | 50 | 150 coins |
Reskin slots
node background — drop art per slot via Tools > Mini Game Templates > Reskin Editor.
Configurable settings
| Setting | Default | What it does |
|---|---|---|
Difficulty | LetterBoxedDifficulty.Medium | Higher difficulty allows fewer words to cover all 12 letters. |
🎮 Word Pyramid
Climb word to word, adding one letter each step.
How to play
- Each row is a word one letter longer than the one above it.
- Use all the previous letters plus the one new tile to spell the next word. Climb to the top!
Boosters
| Booster | Key | Effect |
|---|---|---|
| Reveal Letter | hint | Reveal the new letter added on the current step. |
| Clear Step | clear | Clear the letters you have entered for this step. |
Achievements
| Achievement | Goal | Reward |
|---|---|---|
| First Ascent Complete a pyramid. | 1 | — |
| Mountaineer Complete 10 pyramids. | 10 | 150 coins |
| Pure Climb Complete a pyramid without revealing a letter. | 1 | 200 coins |
| Step Counter Solve 50 steps in total. | 50 | 150 coins |
Reskin slots
brick background — drop art per slot via Tools > Mini Game Templates > Reskin Editor.
Configurable settings
| Setting | Default | What it does |
|---|---|---|
Difficulty | WordPyramidDifficulty.Medium | Taller pyramids on higher difficulty. |
🎮 Alphabetize
Sort the scrambled words into alphabetical order, fast.
How to play
- Tap two words to swap their positions.
- Put the whole list in A-to-Z order before the timer runs out.
Boosters
| Booster | Key | Effect |
|---|---|---|
| Show First | hint | Lock the alphabetically-first word into place. |
| Add Time | time | Add 10 seconds to the timer. |
Achievements
| Achievement | Goal | Reward |
|---|---|---|
| In Order Alphabetize a list. | 1 | — |
| Librarian Alphabetize 10 lists. | 10 | 150 coins |
| Quick Filer Finish a list with 20+ seconds left. | 1 | 200 coins |
| Card Catalog Sort 25 lists in total. | 25 | 250 coins |
Reskin slots
card background — drop art per slot via Tools > Mini Game Templates > Reskin Editor.
Configurable settings
| Setting | Default | What it does |
|---|---|---|
Difficulty | AlphabetizeDifficulty.Medium | More words and a tighter timer on higher difficulty. |
🎮 Longest Word
Nine letters, one timer — make the longest word you can.
How to play
- Tap letters from the rack to build the longest valid word you can.
- Longer words score more. Submit before the timer runs out!
Boosters
| Booster | Key | Effect |
|---|---|---|
| Show Word | hint | Reveal a strong word hidden in the letters. |
| Shuffle | shuffle | Reshuffle the letter rack. |
Achievements
| Achievement | Goal | Reward |
|---|---|---|
| Wordsmith Submit a valid word. | 1 | — |
| Seven-Up Make a 7-letter word. | 7 | 200 coins |
| Full House Make a 9-letter word. | 9 | 400 coins |
| Countdown Regular Play 25 rounds. | 25 | 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 | LongestWordDifficulty.Medium | Shorter timer on higher difficulty. |
🎮 Anagram Pairs
Flip two tiles — match a word with its scramble.
How to play
- Flip two tiles. A match is a word and a scramble of the SAME word.
- Mismatched tiles flip back. Remember the letters and clear the whole board!
Boosters
| Booster | Key | Effect |
|---|---|---|
| Reveal Pair | hint | Briefly reveal one matching anagram pair. |
| Peek All | peek | Flash every face-down tile for a moment. |
Achievements
| Achievement | Goal | Reward |
|---|---|---|
| Matched Up Clear a board. | 1 | — |
| Memory Master Clear 10 boards. | 10 | 150 coins |
| Flawless Clear a board with no mismatched flips. | 1 | 250 coins |
| Pair Hunter Match 50 pairs 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 | AnagramPairsDifficulty.Medium | Bigger boards on higher difficulty. |
🎮 Word Snap
Spell a word of the called length before the timer.
How to play
- A target length is called. Tap letters to spell ANY valid word of exactly that length.
- Beat the timer to keep your streak — the called length climbs as you go!
Boosters
| Booster | Key | Effect |
|---|---|---|
| Show Word | hint | Reveal a valid word of the called length. |
| Add Time | time | Add a few seconds to the timer. |
Achievements
| Achievement | Goal | Reward |
|---|---|---|
| Snap! Complete a round. | 1 | — |
| On a Roll Reach a streak of 5. | 5 | 150 coins |
| Lightning Speller Reach a streak of 10. | 10 | 300 coins |
| Quick Draw Snap 50 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 | WordSnapDifficulty.Medium | Tighter timer on higher difficulty. |
🎮 Word Buckets
File each word into the right bucket by the rule.
How to play
- The current word sits at the top. Each bucket has a rule shown on its label.
- Tap the bucket that matches the word. File the whole queue to win!
Boosters
| Booster | Key | Effect |
|---|---|---|
| Show Bucket | hint | Highlight the correct bucket for the current word. |
| Skip Word | skip | Auto-file the current word correctly. |
Achievements
| Achievement | Goal | Reward |
|---|---|---|
| Sorted Clear a queue. | 1 | — |
| Sorting Champion Clear 10 queues. | 10 | 150 coins |
| No Spills Clear a queue with no mistakes. | 1 | 250 coins |
| Mail Sorter File 100 words in total. | 100 | 150 coins |
Reskin slots
bucket background — drop art per slot via Tools > Mini Game Templates > Reskin Editor.
Configurable settings
| Setting | Default | What it does |
|---|---|---|
Difficulty | WordBucketsDifficulty.Medium | Longer queues on higher difficulty. |
🎮 Spell Check
Pick the correctly spelled word among the fakes.
How to play
- One option is spelled correctly; the rest are subtle misspellings.
- Tap the correctly spelled word before the timer runs out to keep your streak.
Boosters
| Booster | Key | Effect |
|---|---|---|
| Remove One | hint | Eliminate one misspelled option. |
| Add Time | time | Add a few seconds to the timer. |
Achievements
| Achievement | Goal | Reward |
|---|---|---|
| Proofreader Finish a round. | 1 | — |
| Eagle Eye Reach a streak of 8. | 8 | 200 coins |
| Spelling Bee Reach a streak of 15. | 15 | 400 coins |
| Sharp Eyes Pick 100 correct words in total. | 100 | 150 coins |
Reskin slots
option background — drop art per slot via Tools > Mini Game Templates > Reskin Editor.
Configurable settings
| Setting | Default | What it does |
|---|---|---|
Difficulty | SpellCheckDifficulty.Medium | More options and trickier misspellings on higher difficulty. |
🎮 Tile Score
Seven lettered tiles — build the highest-scoring word.
How to play
- Each tile shows its point value. Tap tiles to build a valid word.
- Higher-value letters score more. Find your highest-scoring word before time runs out!
Boosters
| Booster | Key | Effect |
|---|---|---|
| Show Word | hint | Reveal a high-scoring word from your tiles. |
| Shuffle | shuffle | Reshuffle your tile rack. |
Achievements
| Achievement | Goal | Reward |
|---|---|---|
| On the Board Submit a valid word. | 1 | — |
| Big Play Score 15+ on one word. | 15 | 200 coins |
| Triple Word Score 25+ on one word. | 25 | 400 coins |
| Tile Veteran Play 25 rounds. | 25 | 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 | TileScoreDifficulty.Medium | Tighter timer on higher difficulty. |
💥 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 |
|---|---|
| Word Fit | hint reveal |
| Letter Boxed | hint clear |
| Word Pyramid | hint clear |
| Alphabetize | hint time |
| Longest Word | hint shuffle |
| Anagram Pairs | hint peek |
| Word Snap | hint time |
| Word Buckets | hint skip |
| Spell Check | hint time |
| Tile Score | hint 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
| Game | Slots |
|---|---|
| Word Fit | cell background |
| Letter Boxed | node background |
| Word Pyramid | brick background |
| Alphabetize | card background |
| Longest Word | tile background |
| Anagram Pairs | tile background |
| Word Snap | tile background |
| Word Buckets | bucket background |
| Spell Check | option background |
| Tile Score | 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_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 */ });
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
- 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/Words3/MyGame/. - Add
MyGameGame.csimplementingIMiniGame, decorated with[MiniGame("…", "My Game", Category = MiniGameCategory.Words3)]. - 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. 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.