Resources & Recipes

Crafting Recipes

Access every craftable recipe in Dinkum and its unlock source. It's the largest recipe module in the package, with 235 recipes.


Type

interface Recipe {
  id: string
  name: string
  img: string
  source?: string[]
  baseSellPrice: number
  buyPrice?: number
  outputCount?: number | 'Varies'
  variants: ResourceVariant[]
  buffs?: Buffs
}
FieldTypeDescription
idstringStable identifier.
namestringDisplay name.
imgstringPath to the item's icon, relative to images/.
sourcestring[]?Where the recipe is unlocked.
baseSellPricenumberBase sell price in Dinks.
buyPricenumber?Purchase price, if purchasable.
outputCountnumber | 'Varies'?Quantity produced per craft.
variantsResourceVariant[]Ingredient sets that produce this item.
buffsBuffs?Consumable buff effects, if any.

ResourceVariant is { id: string; outputCount?: number; inputs: Resource[] }. See TypeScript integration for the full shape.


Factory

import { craftingRecipes } from 'dinkum-data'

craftingRecipes() // all 235 recipes
craftingRecipes(source) // wrap a pre-filtered array

Filters

bySource(source: string)

Filter to recipes obtainable from the given source (case-insensitive substring match).

craftingRecipes().bySource('Building Licence').get()

Sorts

sortByBaseSellPrice(order?: 'asc' | 'desc')

Sort by base sell price. Defaults to 'desc' (most valuable first).


Terminal methods

MethodReturnsDescription
.get()Recipe[]All results
.first()Recipe | undefinedFirst result
.find(id)Recipe | undefinedFind by id
.findByName(name)Recipe | undefinedCase-insensitive exact name match
.search(query)Recipe[]Case-insensitive partial name match
.count()numberNumber of results

Examples

import { craftingRecipes } from 'dinkum-data'

// Everything unlocked through a Building Licence
craftingRecipes().bySource('Building Licence').get()

Next steps

Previous
Cooking recipes