feat: Enhance minigame effects and UI interactions

- Implemented LeaveMinigameQueueEffect to handle player removal from queues and runtime.
- Added OpenMinigameQueueUIEffect to manage the opening of the minigame queue UI.
- Introduced StartPlayerTimerEffect and StopPlayerTimerEffect for managing player timers and scoring.
- Enhanced PlaceBlocksEffect with options for filling volumes and hollow placements.
- Updated SpawnItemEffect to fix codec handling for item IDs.
- Added MountPlayerEffect and DismountPlayerEffect for player interactions with NPCs.
- Improved StartQueuedMinigameEffect to check player counts before starting games.
- Added localization entries for new effects and UI elements.
- Updated manifest to include HyUI as a dependency.
This commit is contained in:
2026-06-11 17:17:54 -07:00
parent 67e70a71bd
commit 49bbd2b871
58 changed files with 3664 additions and 37 deletions
@@ -0,0 +1,51 @@
# King of the Hill — Overview
In this tutorial you will build a **King of the Hill** minigame with three rounds. Each round has a dedicated capture point in a different part of the arena. Players earn one point per second while standing on the active hill. The player with the most points after all three rounds wins.
## What You Will Build
| Volume / File | Purpose |
|---|---|
| `King_Of_The_Hill.json` | Minigame definition — rounds, timing, HUD, PvP rules |
| Queue pad | Players step on it to join the waiting session |
| Start button | Game master trigger to launch the game and set phase to ACTIVE |
| Arena boundary | Map discovery tag — tells the runtime which map it is running on |
| Spawn zone | Where players enter to activate and start playing |
| Capture Zone A | Active during Round 1 — scores +1/second while standing inside |
| Capture Zone B | Active during Round 2 — scores +1/second while standing inside |
| Capture Zone C | Active during Round 3 — scores +1/second while standing inside |
| Round 2 / Round 3 signal volumes | Announce the new round when it starts |
| End-game timer volumes | Detect when Round 3 finishes and end the game |
## Game Flow
```
1. Players step on the queue pad.
2. Game master triggers the start button (or add auto-start logic).
3. Runtime starts → phase is set to ACTIVE.
4. Players enter the spawn zone → they become ACTIVE (HUD shown, items given).
5. Round 1 runs for 120 seconds. Capture Zone A scores.
6. Round 1 ends → Round 2 begins. Capture Zone B scores.
7. Round 2 ends → Round 3 begins. Capture Zone C scores.
8. Round 3 ends → game_end timer fires → EndMinigame.
9. Scores are tallied. Highest score wins. Arena resets.
```
## Prerequisites
- A Hytale server with core-minigames installed.
- A world with three distinct hilltop areas for your capture zones (A, B, C).
- A lobby or staging area where players queue before the game begins.
- Basic familiarity with placing trigger volumes and adding conditions/effects in the editor.
## Files in This Tutorial
| File | Contents |
|---|---|
| `02-minigame-definition.md` | JSON definition with all fields explained |
| `03-join-and-start.md` | Queue pad, start button, map boundary |
| `04-spawn-and-activation.md` | Spawn zone + player activation |
| `05-capture-zones.md` | The three scoring capture zones |
| `06-round-signals.md` | Round announcements and end-game timer |
| `07-end-and-reset.md` | Ending the game and resetting the arena |
| `08-full-example-files.md` | All complete configurations in one place |