Matthew Dean

Making Catalog Heaven, a Hit Online Game with 244M+ Plays

If you’re not familiar with it, Catalog Heaven is the Roblox game that users play when deciding what items to buy for their avatar. It lets them preview anything from the Roblox catalog which includes hats, faces, heads, accessories, etc.

When I joined in 2009, the fastest way to preview avatar items was with HatHelper’s Try Any Item with Factories! Once you found an item you wanted to try on in Roblox’s catalog, you would enter its ID digit-by-digit into the keypad. When you were done, the item would appear on the conveyor belt. It was tedious to say the least.

Screenshot of my avatar standing next to a keypad

In 2010 my brother Merely made a place where you could wear any item just by pasting its URL into the chat bar. This was easier to use than HatHelper’s place but I wasn’t satisfied. I thought an in-game catalog would be even better so I decided to make one.

The biggest challenge was getting a list of all catalog items. I wrote a Java program which downloaded all the catalog web pages and scraped information from the page source. Then I took the output from that program and copied and pasted it into my game. Once I had that done, it wasn’t too hard to make the visual interfaces. Here’s what it looked like when I first released it:

Screenshot of the original Catalog Heaven with UI clearly made by a programmer

Initial Unpopularity

I advertised my game in the Let’s Make a Deal forum because I thought users who posted there would be interested. It never really took off, at peak it had a couple of servers of players. After a while I lost interest. Then suddenly 6 months later, I see my game is on the front page. I was excited to see how popular it was and to my surprise it stayed popular.

Updating the Catalog

After a while I got tired of updating my game every time items were released to the catalog, so I automated the process. I took the output of my program (a bunch of Lua code) and uploaded it inside of a model to Roblox. Then when my game started it inserted the model and parsed the information from the model. I still had to start the program but I didn’t have to update my game.

Eventually even the act of running the program got tiring. I rented a web server and put my Java program on that server, and scheduled it to run every few minutes.

New GUIs & R15 & Filtering Enabled

In the summer of 2016, Quenty interned at Roblox. He offered to remake Catalog Heaven’s GUIs and I took him up on that offer. I also made quite a few changes to the game’s scripting to support the newly released R15 avatars and to make my game filtering enabled. I finally shipped the changes in January 2017. I wasn’t able to turn on R15 or filtering enabled because most Roblox gear don’t support them yet, but otherwise my game is entirely compatible with them.

A screenshot of Catalog Heaven from 2017