Skip to content

Cooking Recipes

spigbop edited this page Jun 16, 2026 · 2 revisions

Cooking recipes should be inside the directory data/<namespace>/constant_cooking_recipes. From there, any number of subdirectories can nest the contents. Keep in mind that, like any other minecraft identifier, when using these recipes in other places, the subdirectories should also be present.

Example usages in other places:

  • <namespace>:myrecipe will point to data/<namespace>/constant_cooking_recipes/myrecipe.
  • <namespace>:dir/otherrecipe will point to data/<namespace>/constant_cooking_recipes/dir/otherrecipe.

Formatting of cooking recipes follow the same principal of the prepared food from the Don't Starve series. Recipes are checked with a list of predicates and the highest priority recipe(s) get cooked:

{
  // a signed integer, higher means the recipe will be prioritized
  // (-1)- : fallback recipes (wet goop)
  //   0-9 : regular recipes
  //   10+ : higher priority recipes (mandrake soup)
  "priority": 0,
  // predicates to check if this meal can be cooked
  // custom predicates can be registered by external mods
  "predicates": [
    {
      "type": "hotc:contains",
      "ingredient": {
        "tag": "hotc:butters"
      }
    },
    {
      "type": "hotc:filler_at_least",
      "category": "hotc:veggie",
      "value": 0.5
    },
    // more predicates...
  ],
  // time it takes to cook this meal, multiplied by 20 seconds (400 ticks)
  "time": 1.0,
  // the resulting item in minecraft item stack serialization format
  "result": {
    "id": "mymod:myitem",
    "count": 1
  }
}

See also: Cooking Recipe Predicates

Clone this wiki locally