Building Thieves Guild: Smash & Grab for the Meta Horizon Creator Competition

So, I decided to jump into the Meta Horizon Creator Competition: Short Loop Mobile Worlds on a bit of a whim. It sounded fun, and I figured it was a good excuse to dust off some of the old projects I had built during my time at Meta. Plus, the competition prizes weren’t too shabby either.

But more than that, it felt like the perfect chance to dive back into the Horizon Creator tools—especially now that I had access to TypeScript again, which made a huge difference compared to building purely in VR.


Getting Back into the Horizon Creator Program

I applied to the Creator Program using some of my older worlds from when I worked at Meta. Getting accepted was a relief because it unlocked TypeScript access and let me edit worlds on my computer. Honestly, coding inside VR is brutal.

When I worked at Meta, I even ranted to one of the Scripting 2.0 engineers about how awful it was to type anything longer than a sentence in VR. No keyboard support, just a clunky VR keyboard, and tiny input boxes where you could barely see more than a word or two at a time. Luckily, they let me test out early TypeScript features back then—but the desktop app wasn’t fully fleshed out yet.

Now, things were a bit better, and I was ready to build.


Coming Up with the Game Idea

At first, I had no clue what to make. The competition focused on short-loop, mobile-friendly gameplay, so I needed something simple, fun, and lightweight enough to run on mobile, web, and maybe VR. I also wanted to reuse some of the old assets and code I had built over the years to speed things up.

One of my friends half-jokingly suggested, “Why not make a game where you just break stuff?” That actually stuck.

I remembered an old project where I made a printer you could smack with a bat to fix a paper jam. That got me thinking—what if the game was about smashing things to steal loot? And just like that, Thieves Guild: Smash & Grab started to take shape.

[Insert Image: Early concept or the printer smashing asset]


From Printer to Fantasy Heist

I started by creating a new world and importing the old printer assets. I swapped out the printer for a glass display case holding loot. I built a basic shop setting and dropped in a few floating, spinning coins to act as the loot.

The idea was simple:

  • You’re a thief sneaking into a store.
  • Smash glass cases to grab loot.
  • Escape before the guards catch you.

But I didn’t want it to feel too modern—I wasn’t about to make a game that encouraged kids to break into stores. So, I leaned into a fantasy setting (big fan of D&D and Skyrim) to make it more playful. That also gave me creative freedom with the design.

[Insert Image: Early shop build with display cases and coins]

I added a placeholder skeleton shopkeeper to give the shop some life. Then, I found a sword asset from a tutorial and repurposed it into a stick the player could use to smash cases. Eventually, I turned that into a hammer and even attached it to the player’s belt so it could be holstered and unholstered.


Bringing the World to Life

One problem popped up early: players could just reach through the glass and grab the coins without breaking anything. So, I added an anti-grab zone around the glass cases. Now, you had to actually break the glass before grabbing the loot.

I also coded the shopkeeper to react when glass was smashed. Once alerted, they would call for the guards, and a countdown timer would start. When the timer hit zero, guar

ds would show up to arrest you and throw you in jail.

[Insert Image: Timer UI or shopkeeper alert state]

To make it more immersive, I added a music manager:

  • Sneaky music while you’re planning the heist.
  • Intense music when you get caught.
  • Sad music if the guards arrested you.

I also introduced a mask system, inspired by games like Payday. You could grab a mask and wear it, toggling it on and off. Eventually, I planned for players to unlock new masks with the loot they stole.


Expanding the World: The Hideout and Game Loop

The game needed an escape route. So, I built a Sewer Hideout—a dark, grimy base with glowing green slime flowing through it (definitely inspired by WoW’s Undercity). A sewer grate linked the hideout to the shop above, creating a loop:

  1. Start in the hideout.
  2. Enter the shop.
  3. Smash, grab, escape.
  4. Or get caught and end up in jail.

[Insert Image: Sewer Hideout environment]

I also added a vault in the hideout to store the loot players collected. I stuck with the classic Gold, Silver, and Copper coin system to keep it simple. Coins automatically converted—10 copper into 1 silver, 10 silver into 1 gold.


Upgrading with TypeScript

Most of the early version ran on Codeblocks, but I wanted to take it further with TypeScript. I started converting my scripts with help from Horizon Hub and set up a Git repo to save progress.

I learned a ton from creator workshops run by mentors like Laex05, Wafflecopters, and SpaceGlitterUnicorn. Their classes helped me improve my scripting and UI design.

Some key upgrades:

  • A clean timer UI showing when guards were coming.
  • An instruction panel for new players.
  • A themed disclaimer about stealing being bad, just in case.
  • An official title: Thieves Guild: Smash & Grab, complete with a logo.

[Insert Image: Logo in the hideout or Custom UI]


Crunch Time

As the deadline loomed, I polished up the world:

  • Replaced the skeleton shopkeeper with a Zombie NPC that followed the player with its eyes.
  • Tried (and failed) to add guard NPCs that would chase you down.
  • Built out the jail and a system where you could either pay a fine or wait out your sentence.
  • Randomized coin spawns in the shop, adding rarity for gold and silver.

[Insert Image: Final shop with Zombie NPC or jail area]


 

I wrapped everything up, made the submission video, and launched the game on Devpost.


The Results

The winners were announced before Christmas. I didn’t win.

Most winners were teams with experienced community members and mentors, while I built everything solo. But honestly? It was worth it.

  • I learned a ton.
  • I built a full game loop in just a month.
  • I pushed through late nights and frustrating bugs.

Even had my 8-year-old cousin test it. He didn’t love playing it but thought it was cool watching me build it. So, I’ll take that as a win.

Next time, maybe I’ll build with a team. Either way, this was just the start.

https://mhcp-competition-2024.devpost.com/

My submission
https://devpost.com/software/smash-n-grab

https://horizon.meta.com/world/10160278547826680

Share this Post:
Scroll to Top