The editor writes these files for you. This page is for when you want to know exactly what a field does, or use Edit raw JSON. Field names are case-insensitive. Leaving a field out uses the default.

items.json

A list of items: [ { ... }, { ... } ].

Basics

Field Type Default What it does
id text required Unique lowercase ID, no spaces.
name text the ID Name shown in-game.
description text empty Tooltip text.
sprite text required Image file in the pack's Assets/ folder.
category text food if edible, else material Loot pool. Vanilla pools: food, water, medical, drug, tool, container, utility, trash, custom, unobtainable. Also decides the "unknown ___" name before the item is recognised.
weight number 0.4 Carry weight.
value whole number 5 Trade value.
decayMinutes number 180 Spoilage time.
recognition whole number 2 INT needed to identify the item.
tags text cangetwet Comma separated tags, e.g. cangetwet,medicine.
spawnFrequency number 1 How often it spawns in the world. 0 = never, 0.2 = rare.
slotRotation number 0 Rotation of the icon in inventory slots.
destroyAtZeroCondition yes/no yes for food, no for containers Delete the item when condition hits 0.

Size

Field Type What it does
imageSize text A vanilla item ID (e.g. geofruit) to copy its in-game size, or a raw pixels-per-unit number.
pixelsPerUnit number Direct pixels-per-unit. Wins over imageSize. Without either, the image is 1 world unit across.
spriteScale number Extra world sprite scale.
inventoryIconScale number Inventory icon scale.

Food (isFood and effects)

Field Type What it does
isFood yes/no Makes the item usable (eat/drink). Without it, effects do nothing.
effects.foodType whole number 0 processed (default), 1 meat, 2 plant. The game uses this for diet rules.
effects.hunger number Hunger restored.
effects.thirst number Thirst restored.
effects.weightGain number Body weight gain.
effects.happiness number Happiness change.
effects.sickness number Sickness added.
effects.temperature number Body temperature change (positive warms).
effects.conditionCost number Condition used per use. Default 1.0 (one use eats it all).
effects.sound text Sound ID: eatCrunch, eatFlesh, drink, useItem.
effects.dialogue text Line the character says.
effects.eatGood / effects.eatBad yes/no Positive or negative reaction line. Ignored if dialogue is set.

Liquid containers

Setting capacity turns the item into a container. Edible containers are drunk from.

Field Type Default What it does
capacity number none Max liquid in ml.
autoFill yes/no game default Refill when standing in liquid.
combineable yes/no yes Pour into / out of other containers.
scaleWeightWithCondition yes/no yes Weight follows the fill level.
liquidMask text none Greyscale fill overlay image in Assets/.
defaultContents list empty Starting liquids: [ { "liquidId": "water", "amount": 250 } ].

Crafting qualities

qualities: what the item counts as in recipes, e.g. [ { "id": "cutting", "amount": 1 } ]. Vanilla qualities: blood, condiment, cutting, disinfectant, dressing, fat, firestarter, flammable, flour, foliage, hammering, heatsource, meat, nails, opiate, produce, rippable, water.

recipes.json

A list of recipes.

Field Type Default What it does
resultId text required Item or liquid that gets made.
resultAmount whole number 1 How many are made.
resultCondition number 1.0 Starting condition (0-1), or ml for liquid results.
isLiquidResult yes/no no Result is a liquid poured into a container.
dontDrainResultLiquid yes/no no Don't empty the result container first.
category text Food Crafting tab: Materials, Tools, Medicine, Utilities, Food.
intRequirement whole number 2 INT needed.
specialKnown yes/no yes Always visible. No = hidden until INT is high enough.
isRepair yes/no no Marks it as a repair recipe.
ingredients list See below.

Ingredients

Each ingredient is one of three kinds:

  • Specific item: { "id": "woodscraps", "count": 2, "minimumCondition": 0.5 }. count defaults to 1, minimumCondition to 0.9. Used up unless "destroyItem": false.
  • Liquid: { "id": "water", "isLiquid": true, "amount": 100 }. amount is ml (default 100). Drained from a container.
  • Quality: { "quality": "heatsource", "amount": 1 }. Any item with that quality. Not used up by default (good for tools and fires).

destroyItem: false keeps tools: they lose condition instead of disappearing.

Example

[
  {
    "id": "fire.smokedmeat",
    "name": "Smoked meat",
    "description": "Tough, salty, keeps for ages.",
    "sprite": "smokedmeat.png",
    "imageSize": "geofruit",
    "category": "food",
    "decayMinutes": 2000,
    "isFood": true,
    "effects": { "foodType": 1, "hunger": 30, "sound": "eatFlesh", "eatGood": true }
  }
]
[
  {
    "resultId": "fire.smokedmeat",
    "category": "Food",
    "ingredients": [
      { "id": "animalflesh", "count": 1 },
      { "quality": "heatsource", "amount": 1 }
    ]
  }
]