Introduction

I’m obsessed with cooking mechanics in video games.

There’s something special to video game cooking that elevates it beyond your average crafting system. I think there’s a few reasons for this:

First and foremost, video game food evokes sensations that are beyond what the audiovisual medium can capture. Everyone can relate to the joy of a good meal, and everyone knows what it’s like to ruin a dish. The stakes are clear.

Second, the process of making food is not as prescriptive as crafting tends to be. Instead of being given a recipe as a goal to craft, truly great cooking systems ask the player to improvise with limited ingredients. Cooking systems highlight discovery and creativity; they encourage the player to learn from trial and error. There’s excitement to carefully choosing items from your inventory then nervously waiting to see if your idea paid off.

Third, food items are single-use utilities. Their temporary nature means that they are constantly getting produced and then used up, creating a cycle of collection, combination, and consumption. Especially difficult events like bosses require the player to ‘gear up’ beforehand with complementary dishes, almost like setting out a feast.

In my attempts to design the perfect cooking video game, I have thought hard about how best to capture these qualities. In the first entry of this series, I’d like to discuss the cooking systems behind Super Paper Mario and Don’t Starve (Reign of Giants) and how the very first video game mod I ever made attempted to mash them together.

Super Paper Mario Cooking

What were they thinking?

Having grown up playing Super Paper Mario, it’s a game I hold close to my heart. It’s probably the most contentious entry in the series; though it does contain some of the hallmarks of the earlier RPG mechanics, the game is played like a platformer. I’d like to write a blog post at some point about why Super Paper Mario is worth playing, but here, I’d like to focus on one of the game’s most ill-conceived subsystems.

To help visualize the gargantuan beast that is the Super Paper Mario cooking system, I decided to build a recipe-matrix viewer with the help of Claude Code.

The first matrix, viewable here, was generated with the recipes shown on the Mario Wiki recipes page. Note that entries on the diagonal represent Saffron recipes (taking one item), whereas off-diagonal entries represent Dyllis recipes (taking two distinct items, order independent).

However, looking over the result, I suspected that there may be some omissions and errors in the wiki based on my memory of the recipes in-game. A friend of mine managed to datamine the game, See the end of the blog post! yielding what may be the first ever exhaustive list of Super Paper Mario recipes!

Check it out here!

Some thoughts on the results:

  • There’s way more recipes here than are given as recipes in the in-game cookbook!

  • There seems to be two previously unknown Slimy ExtractSlimy ExtractSlimy ExtractA mysterious shroom extract that cures curse and poison.HP 0Points 0Sell 30Buy 60 recipes. When combined with a Life ShroomLife ShroomLife ShroomAutomatically restores 5 HP if you fall in battle.HP 5Points 0Sell 50Buy 100 it makes a Super Shroom ShakeSuper Shroom ShakeSuper Shroom ShakeA feel-super drink. Restores 20 HP and cures poison.HP 20Points 0Sell 40Buy 80; when combined with a Long-Last ShakeLong-Last ShakeLong-Last ShakeA fungal drink that regenerates your HP over time.HP 0Points 0Sell 15Buy 30 it makes a Life ShroomLife ShroomLife ShroomAutomatically restores 5 HP if you fall in battle.HP 5Points 0Sell 50Buy 100. These recipes are entirely pointless given the difficulty in obtaining Slimy Extract; I can only imagine they were left in the game by accident.

  • The Trial StewTrial StewTrial StewThe ultimate gastronomical test...HP 0Points 0Sell 2Buy 4 recipe chain is absurd. The Mario Wiki claims that Trial Stew sets you to 1 HP but grants you 100 points for every HP point taken. I don’t think this is very useful: if I remember correctly, stomping on an enemy gives you more than 100 points alone. The Couple's CakeCouple's CakeCouple's CakeA heartwarming dessert that brings back fond memories.HP 0Points 5000Sell 150Buy 300 is no better; 5,000 points still just is not that much.

So, what about the design of the Super Paper Mario cooking system? In theory, it seems like this space would be fun to explore in-game. But there’s a few issues:

Sort of like in the Breath of the Wild series, you have to pause the game to use items. This works in an RPG since enemies hit hard and give you opportunities to pause and eat up in battle. But in a platformer like Super Paper Mario, the opportunity to use an item just does not present itself very often. In my playthrough, I only used items in the final castle and in the pit(s) of 100 trials. Arguably you don’t need to mess with cooking in the original Paper Mario or Thousand Year Door until the lategame either, but at least you use items frequently during bosses!

Beyond that, as we’ve seen, half of the foods are pointless anyways. Getting a little extra HP is useful sustain in the lategame, but nothing is really worth your time more than grabbing a bunch of coins and buying more Ultra Shroom ShakesUltra Shroom ShakeUltra Shroom ShakeA feel-mega drink. Restores 50 HP and cures poison.HP 50Points 0Sell 150Buy 300. I know points are used to level up in Super Paper Mario, but by the time you are crafting items in the lategame, you’re already probably at diminishing returns.

The last gripe I’ll mention is that cooking things is a pain. There’s only one place in the game you can cook single-item recipes (Saffron’s shop) and only one place you can cook two-item recipes (Dyllis’ shop). And as it turns out, getting between them is not a short journey! Not to mention, the cooking itself is always accompanied with a lengthy and repetitive song segment for no apparent reason. Couldn’t this have just been a Pixl ability you can use anytime during your adventure?

All of these factors point to a cooking system meant more as a collectathon than serious utility. In other words, it exists to make the 100% speedrun just a little bit more painful. Even more painful than it already is. I’m not going to talk about the capture card system here. It’s an odd choice for a game who spends an entire chapter mocking an avid collector. Despite all this, I’ve always found the sheer magnitude of content weirdly compelling. These recipes require ingredients from all kinds of strange places in the game:

  • Cake MixCake MixCake MixA sweet mix that restores 5 HP and cures poison.HP 5Points 0Sell 13Buy 25, Hot SauceHot SauceHot SauceNow THAT'S a spicy sauce! Temporarily doubles Attack.HP 0Points 0Sell 10Buy 20, and Pasta BunchesPasta BunchesPasta BunchesThis noodly delight restores 5 HP and cures poison.HP 5Points 0Sell 15Buy 30 can be found at Itty Bit’s, a strange shop you can only enter as tiny mario in a few obscure secrets.
Itty Bit's shop entrance in the hub
Itty Bits — Super Paper Mario Wiki
  • Obtaining a Slimy ShroomSlimy ShroomSlimy ShroomA buttery shroom. Restores 10 HP and cures poison.HP 10Points 500Sell 20Buy 40 requires the player to go into 3D to find a secret item after paying for an expensive hotel stay.
Finding the Slimy Shroom in 3D
youtu.be/qfdnvaG-ksA?t=1246

Most of the other ingredients are either purchased in the hub shops or dropped randomly from enemies in specific parts of the game.

Despite all the jank, there’s still a bit of charm in mashing together the food items you acquired when you get home from a chapter. Like the rest of Super Paper Mario, it may not be masterfully designed, but it sure is memorable.

Don’t Starve Cooking

Here, have a meatball.

As the name implies, hunger management is central to Don’t Starve. Of course, in practice, hunger is the least of your problems; Your problems are, roughly in order: darkness, frogs, hounds, hallucinated nightmare monsters, freezing, a certain deer-yeti hybrid, and so on. managing the game’s other two primary stats, sanity and health, is just as important. Sanity in particular is quite deadly; letting your sanity drain too far leads to fights with powerful shadow creatures. Sanity management is absolutely crucial to playing Don’t Starve well, especially in the late game. Each food item specializes in one stat or another: the fun is trying to figure out how to best meet your needs with ingredients on hand.

All cooking in Don’t Starve is done with the crock pot. The crock pot has four slots you can fill with food items (or a few non-food items, like ice, sticks, or butterfly wings.)

Cooking at the crock pot in Don't Starve
youtu.be/KqybSnmGek8?t=1005

I’ve visualized every possible Don’t Starve (Reign of Giants) recipe in a matrix similar to the one above for Super Paper Mario. However, because there are four slots rather than one to two, I’ve compiled it as a four-tensor flattened into a matrix-within-a-matrix.

You can check it out here!

I had some fun trying to make it as easy as possible to answer nontrivial queries with plot operations. Some challenges:

• For some combinations of inputs, the priority of all results is the same, so the game picks among them at random. How many two-ties and three-ties are there? Which ones don’t involve eggplants?

• Picking ingredients at random, what’s the least likely item to be crafted? Using only ingredients that could be used to make that item, what else could you have crafted?

• Suppose I want to get rid of two pairs of butterfly wings, and I don’t want to use any mandrakes or dragonfruit. What’s the most health-restoring item I can make?
Concerning the design of Don’t Starve’s cooking system:

  • I’m a huge fan of the difficult recipes. Managing to cook WafflesWafflesWafflesHunger 37.5Sanity 5Health 60Rot 6dCook 10s, Ice CreamIce CreamIce CreamHunger 25Sanity 50Health 0Rot 3dCook 10s, GuacamoleGuacamoleGuacamoleHunger 37.5Sanity 0Health 20Rot 10dCook 10s, or Flower SaladFlower SaladFlower SaladHunger 12.5Sanity 5Health 40Rot 6dCook 10s feels like a huge accomplishment. Mandrake StewMandrake Stew is also very powerful. But your world only spawns with so many MandrakesMandrake, and so this food item has limited applications All of these require highly nontrivial ingredients:

    • ButterButterButterCrock pot ingredientFat 1Dairy 1 is a very rare drop from killing butterflies, one that you are always thrilled to see.

    • Volt Goat MilkVolt Goat MilkVolt Goat MilkCrock pot ingredientDairy 1 requires killing a volt goat only after it has been struck by lightning.

    • GuacamoleGuacamoleGuacamoleHunger 37.5Sanity 0Health 20Rot 10dCook 10s requires live moles which must be caught. You can do this by whacking them with a hammer. How else would you do it?

    • Cactus FlowersCactus FlowerCactus FlowerCrock pot ingredientVeggie 0.5 can only be harvested from desert cacti in the summer. As you can imagine, the desert is the last place you want to to be in the summer heat.

  • The most common recipes become incredibly influential. Knowning how to make MeatballsMeatballsMeatballsHunger 62.5Sanity 5Health 3Rot 10dCook 15s cheaply is a skill that every Don’t Starve player must master. It’s essentially a stand-in for a balanced meal; it’s a workhorse in daily hunger-satiation.

  • There’s a ton of go-to remedies recipes that are extremely practical to know. Honey NuggetsHoney NuggetsHoney NuggetsHunger 37.5Sanity 5Health 20Rot 15dCook 40s, and DragonpiesDragonpieDragonpieHunger 75Sanity 5Health 40Rot 15dCook 40s are essential for health resoration during boss fights; sanity restorers like TaffyTaffyTaffyHunger 25Sanity 15Health -3Rot 15dCook 40s and MelonsiclesMelonsicleMelonsicleHunger 12.5Sanity 20Health 3Rot 3dCook 10s are useful for staving off insanity after a boss fight. These four recipes make bee boxes, watermelon farms, and dragonfruit farms very attractive.

  • Even the humble PowdercakePowdercakePowdercakeHunger 0Sanity 0Health -3Rot neverCook 10s has its usages. Because it basically never expires, it makes for great trap bait.

It’s notable just how interconnected every food is with the rest of the game. Instead of an being an obscure sideshow, crock pot recipes are an integral part to Don’t Starve’s problem solving. Expert level play means knowing when to cook what items with what ingredients on-hand. Frequently, this ability is lifesaving.

I think my only major critique is that the recipes can be quite specific. You really do need to reference the wiki to learn what foods are available and what they do best; seemingly inconsequential choices (like using two Monster MeatMonster MeatMonster MeatCrock pot ingredientMeat 1Monster 1 in a MeatballsMeatballsMeatballsHunger 62.5Sanity 5Health 3Rot 10dCook 15s recipe) can ruin the whole dish. I think this is just part of the difficulty curve of the game, but I have to wonder if there’s some way of making this all feel a bit more ‘continuous’ and systematic? Why exactly is it that Bacon and EggsBacon and EggsBacon and EggsHunger 75Sanity 5Health 20Rot 20dCook 40s can tolerate filler sticks, but MeatballsMeatballsMeatballsHunger 62.5Sanity 5Health 3Rot 10dCook 15s can not?

Overall though, Don’t Starve’s crock pot is easily my favorite part about the game. While playing Don’t Starve Together, tending the base and cooking food for my friends is really just as fun as the action-packed adventuring it supports. Being gifted some WafflesWafflesWafflesHunger 37.5Sanity 5Health 60Rot 6dCook 10s feels just about as satisfying as it would be in the real world!

You can’t improve upon perfection, but in the last chapter of this blog post, I’ll revist my younger self’s valiant attempt.

The Mod: Super Paper Mario Foods in Don’t Starve

After a long day hiking around the time I was in middle school, I had the brilliant idea to make a Don’t Starve mod that adds every. single. Super Paper Mario food item as a crock pot recipe. This was only possible because most of Don’t Starve’s behavioral code is written in one of the two programming languages I knew (tenuously) at the time, Lua. However, as previously discussed, Super Paper Mario has a LOT of food items! As I added them one at a time as Lua files, I quickly became overwhelmed as my design tweaks became out of sync among the many files I was juggling. I came up with a solution: I would keep track of all item stats and recipes in a spreadsheet (something I’d learned how to do in school). Then, I’d feed that spreadsheet into a script written in C# (the second programming language I knew) to generate those Lua files. In retrospect, this is actually quite a clever idea! A very similar pipeline is still used for generating JSON content files in Minecraft mods today!

A snippet of the spreadsheet used to generate the mod
The spreadsheet used to generate the mod.

So, I began saving images off the Super Mario wiki en masse and implementing them one by one in a massive spreadsheet. Some items had behaviors that had to be coded in specifically, like making the new raw ingredients drop. Fruits and veggies could be grown in the garden, hot sauce was dropped from the dragonfly, and horsetails were harvested rarely from reeds. The canned mushrooms were crafted with ice and Don’t Starve mushrooms with the matching color (their color schemes are conveniently identical). I think this complemented the game nicely: the new Super Paper Mario foods acted like fun bonuses you get in a few special circumstances. Anyone else play Junk Jack?

A screenshot of the mod in action
A screenshot I took a while ago of the mod in action.

I still have the mod and the google sheet I used to generate it, so I thought it would be fun to give it the same visualization treatment. Along the way, I had to correct a few silly errors that I’d made in the original mod. There were multiple mispellings, The tag sweetner was used for sweetener in one place, lovelychocolate was mispelled in three different ways. mis-rememberings, The code references a gburger which probably was supposed to refer to Gorgeous SteakGorgeous Steak, which had the id gsteak. and other strange oversights. Two items were uncraftable as written: both Inky PastaInky Pasta and Gingerbread HouseGingerbread House had impossible recipes, so I made some slight adjustments to make them possible to cook. I really should have run some sort of sanity check during my original export script; I’m honestly not sure how this would have ended up as valid Lua. Despite everything, Claude Code and I had no problem getting it patched up for the full recipe matrix. So, without further ado…

Check out the end result here!.

Now, concerning the actual design of the mod:

  • I love how I ported over the Miracle DinnerMiracle DinnerMiracle DinnerHunger 25Sanity 15Health 20Rot 20dCook 280s. For context, the Miracle Dinner in Super Paper Mario has only an 8% chance of appearing as the result to giving Saffron a Mystery BoxMystery BoxMystery BoxTriggers a random item effect.HP 0Points 0. In the mod, I gave it the same recipe and priority as MeatballsMeatballsMeatballsHunger 62.5Sanity 5Health 3Rot 10dCook 15s but with a much lower weight. This means that every hundred mundane meatball crafts leads to, on average, one miracle dinner. The weighting effect is also relevant for one decision between Gold MealGold MealGold MealHunger 0Sanity 0Health 1Rot 40dCook 80s and Meaty StewMeaty StewMeaty StewWarms you up +40° · 15sHunger 150Sanity 5Health 12Rot 10dCook 15s, but I don’t think that was intentional.

  • Having extra bonus ingredients drop was a fun idea in practice, but it did unbalance the game. It would have been a better idea to just rarely replace some drops with Super Paper Mario counterparts, or reduce the spawn and drop rates of other food vanilla food items to compensate.

  • It’s interesting to see that the only item craftable with only vanilla ingredients is Cake MixCake MixCake MixA sweet mix that restores 5 HP and cures poison.HP 5Points 0Sell 13Buy 25. That seems wise.

  • The range of effects is somewhat limited. A large range of suprising effects would have sold the idea well. Although, the stat values seem better bounded than what I would have expected. The one exception is the Volcano ShroomVolcano ShroomVolcano ShroomWarms you up +400° · 150sHunger 12.5Sanity 10Health 3Rot 20dCook 120s, which gives you a temperature bonus of 400°? Not sure what I was thinking there.

I don’t think I ever seriously playtested the mod. I did port it up to Don’t Starve Together at some point; in fact it may even still work. The mod itself currently sits on a computer far away. Perhaps in a few months I can swing by and upload it here. I remember trying to start a modded server among my friends back then, but for obvious reasons, it never really stuck. Anyways, by that point, I had long moved on to other creative endeavors. I ended up playing a lot of vanilla Don’t Starve Together with that group of friends. I’m still proud of beating the Fuelweaver as a team!

What did I learn?

  • Matrices within matrices are a great way to represent discrete medium-dimensional categorical data! If you’re clever, you can run a lot of SQL-like queries with them!

  • Designing food for a survival game is an intricate matter. Making each dish feel interesting and worthwhile in different circumstances requires a strong mechanical core that the rest of the game shares. I have a lot more respect for the Don’t Starve designers now.

  • Do give your cooking mechanic a Vampire-Survivors-slash-Balatro-esque juicy reveal. Don’t make the player wait 15 seconds for it though.

  • Putting powerful ingredients in hard-to-reach places is an integral part of any good cooking system.

  • It might be time to pick up hiking again.

Next time…

Tune in as I investigate the cooking system behind The Legend of Zelda: Breath of the Wild and compare it to an unfinished prototype from the team behind Threadbound!

Special thanks to Adil Soubki for datamining Super Paper Mario to obtain the full recipe list and native resolution sprites!