Game · Roblox · Lua
RBX Escape the Monsters
A multiplayer Roblox quest game I’m building for my child — fetch-quest loop, day/night cycle, inventory, crafting, and zone-based item spawning across colour-coded tiers.
The brief
A learning project — and a game built for my child.
I wanted to put my coding hands on a fundamentally different stack from my day-to-day, and Roblox Studio’s Lua + game-runtime combination was the perfect excuse. The brief I set myself: ship a multiplayer Roblox experience that’s actually fun, with proper game systems (quests, inventory, day/night, crafting, item spawning) rather than just toy scripts.
What I built
A small open-world quest game. There’s a central safe zone with five player bases, and seven colour-coded outer tiers ranged progressively further away. The core loop is:
- Chop trees in the safe zone for wood.
- Talk to the shopkeeper NPC, who hands out a random fetch quest with funny dialogue (“Mate, I left my coffee in the blue zone this morning…”).
- Head out to the named colour zone, find the spawned item, bring it back.
- Get paid in coins, spend them on permanent speed upgrades.
- Faster speed unlocks farther zones, which unlock harder quests for bigger payouts.
At night, monsters roam the colour zones — you need to retreat to the safe zone or lose the quest item you’re carrying.
Major systems
- Day/night cycle — drives the night-monster spawn and pacing across the loop.
- Quest system — a
Quests.luadata module and aQuestGiverProximityPrompt on the shopkeeper, with per-player quest state held server-side and quest items spawned on demand in the matching colour zone. - Inventory & coins — folder-and-StringValue-based inventory, a GUI panel, and a persistent coin balance that drives the speed-tier upgrades.
- Item spawning — quest items appear dynamically in the right zone; ambient chickens and coin pickups round out the world.
- Crafting — recipe module, server-side crafting logic, and a client GUI; wood from the safe-zone trees feeds furniture and decor crafting for player bases.
- Plot assignment — five bases assigned per session, each with its own sliding-door entrance.
What I’m learning
- Lua and Roblox’s
ReplicatedStorage/ServerStorage/ServerScriptServiceseparation, and the discipline that comes with it. - Server-authoritative state with
RemoteEventsfor client UI updates. - Designing a game loop with actual progression rather than one-shot mechanics — the speed-tier-gates-quest-zones pivot was the thing that made it fun, not the original survival concept.
Got a similar problem to solve?
Tell me what you’re working on. One day’s turnaround on a first response.
Start a conversation →