RepoDocsMinecraft

Datapack setup and catalog reference

Place cooking catalogs in this directory:

<datapack>/
└── data/
    └── <namespace>/
        └── well_seasoned/
            └── cooking/
                └── <catalog>.json

Each catalog is one JSON object. It can contain an intrinsics array, a foods array, or both. Definitions can refer to definitions in other catalog files.

This complete example defines one intrinsic and assigns it to one food:

{
  "intrinsics": [
    {
      "id": "example:fortifying",
      "effects": [
        {
          "id": "minecraft:resistance",
          "duration": 240,
          "amplifier": 0,
          "maximum_duration": 4800,
          "maximum_amplifier": 1,
          "ambient": false,
          "show_particles": true
        }
      ]
    }
  ],
  "foods": [
    {
      "item": "example:pumpkin_jam",
      "tier": "preserved",
      "healing": 3,
      "mode": "append",
      "intrinsics": [
        "example:fortifying"
      ]
    }
  ]
}

A food entry can select all food items in an item tag. Use tag instead of item:

{
  "foods": [
    {
      "tag": "example:fruit",
      "tier": "simple",
      "healing": 2,
      "intrinsics": [
        "example:refreshing"
      ]
    }
  ]
}

The tag uses the normal datapack item-tag format. For the example above, define the tag at data/example/tags/item/fruit.json. Do not add a # before the tag ID. Missing and empty tags are allowed. Non-food items in a tag are ignored.

An explicit item entry overrides a matching tag entry. If two configured tags contain the same food and there is no explicit item entry, reload fails.

Run /reload after you change a catalog. Well Seasoned validates all catalogs as one set. If any catalog is invalid, the reload fails and the last valid set stays active. Intrinsic IDs, explicit food item IDs, and food tag IDs must be unique across the full set.

Preparation tiers

The tier changes the base healing and effect duration. A special meal also adds one effect level. The configured maximum values still apply.

Tier Healing Effect duration Effect level
simple 1.00x 1.00x +0
preserved 1.35x 2.50x +0
meal 1.75x 5.00x +0
special_meal 2.00x 8.00x +1

For example, a preserved food with healing: 3 restores 4.05 health points.

Catalog reference

Intrinsic fields

Field Required Default Description
id Yes Unique namespaced ID for the intrinsic.
effects Yes One or more effect objects.

Effect fields

Field Required Default Description
id Yes Namespaced mob-effect ID.
duration No 1 Base duration in ticks. Must be positive.
amplifier No 0 Base effect level, where 0 is level I.
maximum_duration No 24000 Duration cap in ticks.
maximum_amplifier No 2 Effect-level cap, where 2 is level III.
ambient No false Uses the ambient effect style.
show_particles No true Shows effect particles.
chance No 1.0 Probability from 0.0 through 1.0 that the configured effect is applied when the food is consumed.

There are 20 ticks in one second. The tier multiplier is applied before the duration and amplifier caps.

A chance below 1.0 is rolled separately for each configured effect each time the food is consumed. The roll happens server-side when the food is eaten. It does not happen during loading, tooltip rendering, or profile creation. A failed roll adds no effect. It does not merge durations or extend an active effect. Healing always applies normally. This example has a 30% chance:

{
  "id": "minecraft:nausea",
  "duration": 100,
  "amplifier": 0,
  "chance": 0.3
}

If a player already has the same effect at the same level, Well Seasoned adds a reduced portion of the incoming duration. The reduction follows a logarithmic curve based on the ratio between the active duration and the incoming duration.

The first application grants the full duration. Repeated stacking remains beneficial but becomes progressively less efficient. The more duration a player already has, the less the next food adds. Waiting for an effect to tick down makes the next food more efficient again.

The final duration still cannot exceed maximum_duration. A weaker food effect does not replace a stronger active effect.

When several food sources supply the same effect, the strongest amplifier wins. Effects with the same amplifier add their durations. The result cannot exceed the largest maximum_duration from those sources. Built-in item effect probabilities are preserved. With mode: "append", the built-in effect probabilities of vanilla items stay intact alongside the configured effects. For example, this applies to the 60% Poison chance of a poisonous potato.

Food fields

Field Required Description
item Conditional Namespaced ID of an existing food item. Use either item or tag.
tag Conditional Namespaced ID of an item tag. Use either tag or item.
tier Yes One of the four preparation tiers.
healing Yes Base health points from 0 through 40.
mode No append keeps built-in item effects. replace removes them. The default is append.
intrinsics Yes One or more intrinsic IDs. May be empty for a food that only restores health.
1 day agoLast edited 2026-08-21T19:59:27.000Z1 day agoCreated 2026-08-21T19:49:25.000ZSalad