Food Properties¶
Food properties are gameplay tags stored on the item. They are not just wiki categories: when you eat the item, Heirloom loops over every stored property and applies the matching behavior.
Where Properties Come From¶
A property can be added by a recipe action, usually ADD_METADATA with key food_property, or it can already exist on an ingredient. When a recipe finishes, Heirloom starts with properties already on the output, then adds every property found on every input item. The result is stored back on the output and shown in lore.
That means properties can stack through recipe chains.
Worked Example: Powerful Pancakes¶
- Make jam in the Boiling Pot with
CHORUS_FRUIT. The jam rule addsCHORUS. - Make another jam with
GOLDEN_APPLE. The jam rule addsGOLDEN. - Use property-bearing jam as a pancake topping in the Frying Pan. Pancakes inherit the jam's stored properties.
- Eat the pancakes. The food applies every stored food property, then any JSON-defined effects, then favourite-food effects if pancakes are your favourite.
In bundled data, honey pancakes add honey naming, quality, and bottle return behavior. Honey does not add SWEET to pancakes unless a recipe or custom item explicitly stores SWEET as a food property. Server owners can add that behavior with recipe actions.
Exact Property Effects¶
| Property | Effect when eaten |
|---|---|
GLOWING |
Glowing I for 30 seconds, beacon-style sound/message |
GOLDEN |
Regeneration II for 5 seconds and Absorption I for 2 minutes |
CHORUS |
Attempts a safe random teleport, like chorus fruit |
SWEET |
Speed I and Haste I for 10 seconds |
SPICY |
Fire Resistance I for 20 seconds, plus 1 second of visual fire |
COLD |
Slowness I for 5 seconds and Resistance II for 10 seconds |
ENERGIZING |
Speed II, Haste II, and Jump Boost I for 30 seconds |
NOURISHING |
Saturation III for 5 seconds |
HEALING |
Instant Health II |
AFFINITY |
If cooked by another player, Regeneration I for 10 seconds; Regeneration II if it is also your favourite food |
SOBERING |
If Distillery is loaded and inebriation is enabled, drains drunkenness by the configured amount, default 15 |
What Players See¶
The recipe browser preview can show food-property lore based on the selected ingredients. Finished items also carry the property lore. If the final food is placed as a serving food, the placed block stores the properties too, so bites can still apply the behavior.
Server Owner Pattern¶
Use properties for intentional power chains. For example, a server could make maple syrup add SWEET, then pancakes made with GOLDEN jam and syrup would carry both the inherited jam property and the syrup property.
{
"type": "ADD_METADATA",
"key": "food_property",
"value": "SWEET"
}
Avoid relying on hidden balance. If a food should heal, sober, teleport, energize, or become a strong favourite-food candidate, put that behavior in the recipe or ingredient data.