Skip to content

๐Ÿ“œ Recipe Engineering Guide (config/recipes.lua) โ€‹

Every recipe in the compendium supports detailed historical lore, level locks, job restrictions, custom animations, and ingredient alternatives.


๐Ÿ“‹ Complete Recipe Field Reference โ€‹

ParameterTypeDescription
titlestringDisplay name of the item in the compendium.
subtitlestringHistorical subtext / description line.
descriptionstringDetailed lore text displayed in the recipe sidebar.
categorystringCompendium category ('food', 'saloon', 'smithing', 'moonshine', 'supplies', 'criminal').
imagestringPreview icon image located in ui/img/ or native inventory name.
craftTimenumberActive hand-crafting duration in seconds.
queueTimenumberBackground asynchronous station brewing duration in seconds.
requiredLevelnumberMinimum trade / outlaw level required to craft (1 to 10).
xpnumberExperience points awarded upon successful craft.
jobstable|number0 for all players, or table of allowed jobs { 'saloon', 'bartender' }.
stationstable|number0 for anywhere, or table of allowed station IDs { 'criminal_thieves' }.
materialstableList of consumed ingredient items (item, amount, take, alternatives).
outputtableList of rewarded items (item, amount).
typestring'item' or 'weapon'.
animationstringKey from Config.Animations executed during workbench crafting.
campfireAnimationstringKey from Config.Animations executed when crafted at a campfire.

๐Ÿ– Example 1: Campfire Trail Ration Recipe โ€‹

lua
Config.Recipes['venison_roasted'] = {
    title             = 'Roasted Venison',
    subtitle          = 'Cooked over hardwood coals',
    description       = 'Tender deer venison steak seasoned with salt over slow burning coals.',
    category          = 'food',
    image             = 'items/cooked_meat.png',
    craftTime         = 5,
    queueTime         = 30,
    requiredLevel     = 1,
    xp                = 15,
    jobs              = 0,
    stations          = 0,
    materials         = {
        { item = 'meat', amount = 1 },
        { item = 'salt', amount = 1 },
    },
    output            = {
        { item = 'cooked_meat', amount = 1 },
    },
    type              = 'item',
    campfireAnimation = 'knifecooking', -- Holds meat and knife over fire
}

๐Ÿงจ Example 2: Location-Locked Outlaw Explosive โ€‹

Only craftable at the secret Thieves Landing Outlaw Cache:

lua
Config.Recipes['dynamite_stick'] = {
    title         = 'Blasting Dynamite Stick',
    subtitle      = 'Nitroglycerin wrapped in sawdust paper',
    description   = 'Frontier explosive charge engineered for bank vaults and quarry boulders.',
    category      = 'criminal',
    image         = 'items/dynamite.png',
    craftTime     = 12,
    queueTime     = 45,
    requiredLevel = 3,
    xp            = 40,
    jobs          = 0,
    stations      = { 'criminal_thieves' }, -- Strictly exclusive to Thieves Landing Cache!
    materials     = {
        { item = 'gunpowder', amount = 2 },
        { item = 'paper',     amount = 1 },
    },
    output        = {
        { item = 'dynamite', amount = 1 },
    },
    type          = 'item',
    animation     = 'craft',
}

๐Ÿ”„ Ingredient Alternatives โ€‹

Allow players to substitute different herbs or meats for the same recipe:

lua
materials = {
    {
        item = 'wild_mint',
        amount = 1,
        alternatives = { 'oregano', 'thyme' } -- Accepts mint, oregano, or thyme
    }
}

Developed with passion by Dynamic Development.