Modding:Recipe data

From Stardew Valley Wiki
Jump to: navigation, search

Index

This page explains how the game stores and parses recipe data for cooking and crafting. (Tailoring recipes use a different format.) This is an advanced guide for mod developers.

Raw data

Cooking recipes

Cooking recipe data is stored in Content\Data\CookingRecipes.xnb, which can be unpacked for editing. Here's the raw data as of 1.4.5 for reference:

Data 
{
  "Fried Egg": "-5 1/10 10/194/default",
  "Omelet": "-5 1 -6 1/1 10/195/l 10",
  "Salad": "20 1 22 1 419 1/25 5/196/f Emily 3",
  "Cheese Cauli.": "190 1 424 1/5 5/197/f Pam 3",
  "Baked Fish": "145 1 132 1 246 1/6 5/198/l 12",
  "Parsnip Soup": "24 1 -6 1 419 1/1 8/199/f Caroline 3",
  "Vegetable Stew": "256 1 284 1/1 8/200/f Caroline 7",
  "Complete Breakfast": "194 1 -6 1 210 1 211 1/2 2/201/l 26",
  "Fried Calamari": "151 1 246 1 247 1/3 3/202/f Jodi 3",
  "Strange Bun": "246 1 722 1 308 1/1 1/203/f Shane 7",
  "Lucky Lunch": "154 1 229 1 597 1/20 1/204/s Luck 8",
  "Fried Mushroom": "404 1 257 1 247 1/22 3/205/f Demetrius 3",
  "Pizza": "246 1 256 1 424 1/6 4/206/l 20",
  "Bean Hotpot": "188 2/1 8/207/f Clint 7",
  "Glazed Yams": "280 1 245 1/1 10/208/l 22",
  "Carp Surprise": "142 4/1 6/209/l 16",
  "Hashbrowns": "192 1 247 1/1 9/210/l 14",
  "Pancakes": "246 1 -5 1/5 5/211/l 18",
  "Salmon Dinner": "139 1 300 1 250 1/3 3/212/f Gus 3",
  "Fish Taco": "130 1 229 1 266 1 306 1/1 4/213/f Linus 7",
  "Crispy Bass": "136 1 246 1 247 1/1 5/214/f Kent 3",
  "Pepper Poppers": "260 1 424 1/10 3/215/f Shane 3",
  "Bread": "246 1/50 2/216/l 11",
  "Tom Kha Soup": "88 1 720 1 404 1/15 2/218/f Sandy 7",
  "Trout Soup": "138 1 153 1/5 4/219/l 19",
  "Chocolate Cake": "246 1 245 1 -5 1/5 5/220/l 23",
  "Pink Cake": "254 1 246 1 245 1 -5 1/6 5/221/l 25",
  "Rhubarb Pie": "252 1 246 1 245 1/2 4/222/f Marnie 7",
  "Cookies": "246 1 245 1 -5 1/3 7/223/null",
  "Spaghetti": "246 1 256 1/5 5/224/f Lewis 3",
  "Fried Eel": "148 1 247 1/3 4/225/f George 3",
  "Spicy Eel": "148 1 260 1/10 3/226/f George 7",
  "Sashimi": "-4 1/20 1/227/f Linus 3",
  "Maki Roll": "-4 1 152 1 423 1/10 3/228/l 15",
  "Tortilla": "270 1/5 4/229/l 13",
  "Red Plate": "266 1 264 1/15 3/230/f Emily 7",
  "Eggplant Parm.": "272 1 256 1/30 2/231/f Lewis 7",
  "Rice Pudding": "-6 1 245 1 423 1/9 3/232/f Evelyn 7",
  "Ice Cream": "-6 1 245 1/2 4/233/f Jodi 7",
  "Blueberry Tart": "258 1 246 1 245 1 -5 1/10 3/234/f Pierre 3",
  "Autumn's Bounty": "280 1 276 1/50 1/235/f Demetrius 7",
  "Pumpkin Soup": "276 1 -6 1/2 4/236/f Robin 7",
  "Super Meal": "278 1 282 1 274 1/1 7/237/f Kent 7",
  "Cran. Sauce": "282 1 245 1/9 3/238/f Gus 7",
  "Stuffing": "216 1 282 1 408 1/2 4/239/f Pam 7",
  "Farmer's Lunch": "195 1 24 1/60 1/240/s Farming 3",
  "Survival Burger": "216 1 78 1 272 1/70 1/241/s Foraging 2",
  "Dish o' The Sea": "131 2 210 1/38 2/242/s Fishing 3",
  "Miner's Treat": "78 2 245 1 -6 1/60 1/243/s Mining 3",
  "Roots Platter": "78 1 412 1/1 10/244/s Combat 3",
  "Algae Soup": "153 4/1 5/456/f Clint 3",
  "Pale Broth": "157 2/1 4/457/f Marnie 3",
  "Plum Pudding": "406 2 246 1 245 1/1 10/604/l 100",
  "Artichoke Dip": "274 1 -6 1/1 10/605/l 100",
  "Stir Fry": "78 1 404 1 250 1 247 1/1 10/606/l 100",
  "Roasted Hazelnuts": "408 3/1 10/607/l 100",
  "Pumpkin Pie": "276 1 246 1 -6 1 245 1/1 10/608/l 100",
  "Radish Salad": "247 1 419 1 264 1/1 10/609/l 100",
  "Fruit Salad": "258 1 254 1 634 1/1 10/610/l 100",
  "Blackberry Cobbler": "410 2 245 1 246 1/1 10/611/l 100",
  "Cranberry Candy": "282 1 613 1 245 1/1 10/612/l 100",
  "Bruschetta": "216 1 247 1 256 1/1 10/618/l 100",
  "Coleslaw": "266 1 419 1 306 1/1 10/648/l 100",
  "Fiddlehead Risotto": "247 1 259 1 248 1/1 10/649/l 100",
  "Poppyseed Muffin": "376 1 246 1 245 1/1 10/651/l 100",
  "Chowder": "372 1 -6 1/1 10/727/f Willy 3",
  "Lobster Bisque": "715 1 -6 1/1 10/730/f Willy 9",
  "Fish Stew": "716 1 719 1 722 1 256 1/1 10/728/f Willy 7",
  "Escargot": "721 1 248 1/1 10/729/f Willy 5",
  "Maple Bar": "724 1 245 1 246 1/1 10/731/l 100",
  "Crab Cakes": "717 1 246 1 -5 1 247 1/1 10/732/l 100",
  "Triple Shot Espresso": "395 3/1 10/253/l 100",
  "Shrimp Cocktail": "720 1 256 1 16 1/1 10/733/l 100",
  "Seafoam Pudding": "267 1 269 1 814 1/1 10/265/s Fishing 9"
}

Crafting recipes

Crafting recipe data is stored in Content\Data\CraftingRecipes.xnb, which can be unpacked for editing. Here's the raw data as of 1.4.5 for reference:

Data 
{
  "Wood Fence": "388 2/Field/322/false/l 0",
  "Stone Fence": "390 2/Field/323/false/Farming 2",
  "Iron Fence": "335 1/Field/324 10/false/Farming 4",
  "Hardwood Fence": "709 1/Field/298/false/Farming 6",
  "Grass Starter": "771 10/Field/297/false/null",
  "Gate": "388 10/Home/325/false/l 0",
  "Chest": "388 50/Home/130/true/null",
  "Torch": "388 1 92 2/Field/93/false/l 0",
  "Scarecrow": "388 50 382 1 771 20/Home/8/true/Farming 1",
  "Deluxe Scarecrow": "388 50 386 1 771 40/Home/167/true/null",
  "Bee House": "388 40 382 8 335 1 724 1/Home/10/true/Farming 3",
  "Keg": "388 30 334 1 335 1 725 1/Home/12/true/Farming 8",
  "Cask": "388 20 709 1/Home/163/true/null",
  "Furnace": "378 20 390 25/Home/13/true/l 2",
  "Garden Pot": "330 1 390 10 338 1/Home/62/true/null",
  "Wood Sign": "388 25/Home/37/true/null",
  "Stone Sign": "390 25/Home/38/true/null",
  "Cheese Press": "388 45 390 45 709 10 334 1/Home/16/true/Farming 6",
  "Mayonnaise Machine": "388 15 390 15 86 1 334 1/Home/24/true/Farming 2",
  "Seed Maker": "388 25 382 10 336 1/Home/25/true/Farming 9",
  "Loom": "388 60 771 30 726 1/Home/17/true/Farming 7",
  "Oil Maker": "766 50 709 20 336 1/Home/19/true/Farming 8",
  "Recycling Machine": "388 25 390 25 335 1/Home/20/true/Fishing 4",
  "Worm Bin": "709 25 336 1 335 1 771 50/Home/154/true/Fishing 8",
  "Preserves Jar": "388 50 390 40 382 8/Home/15/true/Farming 4",
  "Charcoal Kiln": "388 20 334 2/Home/114/true/Foraging 4",
  "Tapper": "388 40 334 2/Home/105/true/Foraging 3",
  "Lightning Rod": "335 1 338 1 767 5/Home/9/true/Foraging 6",
  "Slime Incubator": "337 2 766 100/Home/156/true/Combat 8",
  "Slime Egg-Press": "382 25 82 1 787 1/Home/158/true/Combat 6",
  "Crystalarium": "390 99 336 5 337 2 787 1/Home/21/true/Mining 9",
  "Mini-Jukebox": "335 2 787 1/Home/209/true/null",
  "Sprinkler": "334 1 335 1/Home/599/false/Farming 2",
  "Quality Sprinkler": "335 1 336 1 338 1/Home/621/false/Farming 6",
  "Iridium Sprinkler": "336 1 337 1 787 1/Home/645/false/Farming 9",
  "Staircase": "390 99/Field/71/true/Mining 2",
  "Flute Block": "388 10 378 2 771 20/Home/464/false/null",
  "Drum Block": "390 10 378 2 771 20/Home/463/false/null",
  "Basic Fertilizer": "92 2/Field/368/false/s Farming 1",
  "Tree Fertilizer": "771 5 390 5/Field/805/false/s Foraging 7",
  "Quality Fertilizer": "92 2 -4 1/Field/369/false/s Farming 9",
  "Basic Retaining Soil": "390 2/Field/370/false/s Farming 4",
  "Quality Retaining Soil": "390 3 330 1/Field/371 2/false/s Farming 7",
  "Speed-Gro": "726 1 372 1/Field/465 5/false/s Farming 3",
  "Deluxe Speed-Gro": "725 1 393 1/Field/466 5/false/s Farming 8",
  "Cherry Bomb": "378 4 382 1/Field/286/false/Mining 1",
  "Bomb": "380 4 382 1/Field/287/false/Mining 6",
  "Mega Bomb": "384 4 768 1 769 1/Field/288/false/Mining 8",
  "Explosive Ammo": "335 1 382 2/Home/441 5/false/Combat 8",
  "Transmute (Fe)": "334 3/Home/335/false/Mining 4",
  "Transmute (Au)": "335 2/Home/336/false/Mining 7",
  "Ancient Seeds": "114 1/Field/499/false/null",
  "Wild Seeds (Sp)": "16 1 18 1 20 1 22 1/Field/495 10/false/Foraging 1",
  "Wild Seeds (Su)": "396 1 398 1 402 1/Field/496 10/false/Foraging 4",
  "Wild Seeds (Fa)": "404 1 406 1 408 1 410 1/Field/497 10/false/Foraging 6",
  "Wild Seeds (Wi)": "412 1 414 1 416 1 418 1/Field/498 10/false/Foraging 7",
  "Tea Sapling": "-777 2 771 5 388 5/Field/251/false/null",
  "Warp Totem: Farm": "709 1 340 1 771 20/Field/688/false/Foraging 8",
  "Warp Totem: Mountains": "709 1 335 1 390 25/Field/689/false/Foraging 7",
  "Warp Totem: Beach": "709 1 393 2 771 10/Field/690/false/Foraging 6",
  "Warp Totem: Desert": "709 2 88 1 386 4/Field/261/false/null",
  "Rain Totem": "709 1 432 1 726 5/Field/681/false/Foraging 9",
  "Field Snack": "309 1 310 1 311 1/Home/403/false/Foraging 1",
  "Jack-O-Lantern": "276 1 93 1/Home/746/false/null",
  "Wood Floor": "388 1/Field/328/false/l 0",
  "Straw Floor": "388 1 771 1/Field/401/false/l 0",
  "Weathered Floor": "388 1/Field/331/false/l 0",
  "Crystal Floor": "338 1/Field/333 5/false/l 0",
  "Stone Floor": "390 1/Field/329/false/l 0",
  "Brick Floor": "330 2 390 5/Field/293 5/false/l 0",
  "Wood Path": "388 1/Field/405/false/l 0",
  "Gravel Path": "390 1/Field/407/false/l 0",
  "Cobblestone Path": "390 1/Field/411/false/l 0",
  "Stepping Stone Path": "390 1/Field/415/false/l 0",
  "Crystal Path": "338 1/Field/409 5/false/l 0",
  "Wild Bait": "771 10 684 5 766 5/Home/774 5/false/null",
  "Bait": "684 1/Home/685 5/false/Fishing 2",
  "Spinner": "335 2/Home/686/false/Fishing 6",
  "Magnet": "335 1/Home/703 3/false/Fishing 9",
  "Trap Bobber": "334 1 92 10/Home/694/false/Fishing 6",
  "Cork Bobber": "388 10 709 5 766 10/Home/695/false/Fishing 7",
  "Dressed Spinner": "335 2 428 1/Home/687/false/Fishing 8",
  "Treasure Hunter": "336 2/Home/693/false/Fishing 7",
  "Barbed Hook": "334 1 335 1 336 1/Home/691/false/Fishing 8",
  "Oil Of Garlic": "248 10 247 1/Home/772 1/false/Combat 6",
  "Life Elixir": "420 1 422 1 257 1 281 1/Home/773 1/false/Combat 2",
  "Crab Pot": "388 40 335 3/Home/710/false/Fishing 3",
  "Iridium Band": "337 5 768 50 769 50/Home/527/false/Combat 9",
  "Wedding Ring": "337 5 74 1/Home/801/false/null",
  "Ring of Yoba": "336 5 335 5 72 1/Home/524/false/Combat 7",
  "Sturdy Ring": "334 2 684 25 766 25/Home/525/false/Combat 1",
  "Warrior Ring": "335 10 382 25 84 10/Home/521/false/Combat 4",
  "Tub o' Flowers": "388 15 427 1 429 1 453 1 455 1/Home/108/true/null",
  "Wooden Brazier": "388 10 382 1 771 5/Home/143/true/null",
  "Wicked Statue": "382 5 390 25/Home/83/true/null",
  "Stone Brazier": "390 10 382 1 771 5/Home/144/true/null",
  "Gold Brazier": "336 1 382 1 771 5/Home/145/true/null",
  "Campfire": "390 10 388 10 771 10/Home/146/true/null",
  "Stump Brazier": "709 5 382 1/Home/147/true/null",
  "Carved Brazier": "709 10 382 1/Home/148/true/null",
  "Skull Brazier": "709 10 768 1 382 1/Home/149/true/null",
  "Barrel Brazier": "388 50 768 1 382 1/Home/150/true/null",
  "Marble Brazier": "567 1 62 1 390 100/Home/151/true/null",
  "Wood Lamp-post": "388 50 787 1/Home/152/true/null",
  "Iron Lamp-post": "335 1 787 1/Home/153/true/null"
}

Format

Index Field Example Value
Cooking Crafting Cooking Crafting
Key Name Salad Stone Fence
0 Ingredients 20 1 22 1 419 1 390 2
1 (Unused) 25 5 Field
2 Yield 196 323
3 Big craftable? false
3 4 Unlock conditions f Emily 3 Farming 2
4 5 Display name
(not for English)
Ensalada Valla de piedra

In English, the display name is the same as the name from the key and cannot be changed. In other languages, the separate display name field applies.

The values in field 1 are of different types for cooking and crafting recipes, but both kinds of value are unused by the game. For cooking, the field is set to a pair of numbers. For crafting, the field is set to Home or Field.

Ingredients and yield

The ingredients are a space-separated list of numbers in pairs. The first number of each pair is an object index from ObjectInformation.xnb. (Negative numbers refer to categories, also listed in that article.) The second number of each pair is the quantity of that object that is required for the recipe.

The yield is also a space-separated list of numbers in pairs. The first number of each pair is an object index from ObjectInformation.xnb or, for big craftables, an index from BigCraftablesInformation.xnb. The second number of each pair is the quantity of that object (or big craftable) that is created by the recipe. If there is only one object/craftable yielded, the quantity is optional and defaults to one.

Unlock conditions

The unlock conditions field supports any one of these condition types, depending on recipe type:

Syntax Applicability Description
<NPC> <hearts> Cooking When the player reaches the given number of hearts of friendship with the named NPC, a letter with the key <NPC>Cooking will be queued for delivery tomorrow. That letter then unlocks the recipe with the %item cookingRecipe %% token.
<level> both When the player reaches the given total skill level, the recipe will be unlocked.
<skill> <level> both When the player reaches the given level of the named skill, the recipe will be unlocked. The valid skill names are Farming, Mining, Fishing, Foraging, Luck, and Combat (but Luck is unimplemented).
<skill> <level> both This is an alternate form of the skill unlock above.
none both The recipe must be unlocked in some other way, such as an event. (See Exceptions below for starting recipes and other hard-coded unlocks.)

Exceptions

When the game cannot locate a recipe key in the data, the Torch recipe is loaded instead.

The Trapper profession is hard-coded to reset the ingredients for the Crab Pot recipe to 25 Wood and 2 Copper Bar.

The following recipes are hard-coded to be unlocked from the start of the game:

The Cask recipe is hard-coded to unlock when the cellar upgrade is complete.

Recipes that are unlocked during vanilla game events are hard-coded to be unlocked when those events are skipped.

The recipes unlocked by The Queen of Sauce TV channel are set in Content\Data\TV\CookingChannel.xnb.