Skip to content

Crafting — Sample Recipes

This folder contains sample RecipeCore assets used by Crafting demo scenes, Teachables, and sample scripts.


Purpose

These assets exist to:

  • Support demo scenes and teaching workflows
  • Provide simple, ready-to-use data for testing Crafting flows
  • Exercise systems such as:

  • Preflight and enqueue

  • Workbenches and station tags
  • Validators and modifiers
  • Persistence and offline progress

Important

  • These are sample data assets, not gameplay-ready content
  • They are not part of the supported Crafting API or contract
  • They are not balanced for real gameplay
  • They may rely on assumptions specific to demo scenes (containers, item IDs, adapters, etc.)

Item IDs and Naming (Read This)

Item identifiers in these samples use different naming styles on purpose, for example:

  • item.plank
  • herb_mint
  • ore_iron

This is intentional.

Why they look inconsistent

The Crafting system treats item IDs as plain strings. It does not enforce any naming convention.

These samples deliberately mix styles to show:

👉 The system does not care how you name your items

Different styles are used side-by-side on purpose:

  • item.plank shows a dotted style
  • herb_mint / ore_iron show a prefix style used in routing demos

These are just examples — they do not represent required formats.


Prefix-based routing in demos

Some demo scenes (for example Routing teachables) use prefix-based routing, where:

  • ore_* → routes to one container
  • herb_* → routes to another container

This works by simple string matching on the start of the item ID.

Important

  • This is a demo convention, not a requirement
  • Prefixes are not part of the Crafting system itself
  • You can use any naming scheme you want

What this means for you

  • Use whatever ID format fits your project
  • Prefixes are optional and only used in certain demos
  • Real projects should implement their own routing logic if needed

👉 Treat these IDs as examples only, not a required format

Routing setup (for demos and simple projects)

If you want to control where outputs are delivered:

  • A simple router (OutputToContainerRouter) is included in the framework
  • Assign it to the CraftingService and set a container name
  • All outputs will be delivered to that container

For more advanced behaviour, you can implement your own ICraftingOutputRouter.


What they are NOT

These recipes are not:

  • Reference implementations for game design
  • Balanced progression or economy data
  • A required format beyond the RecipeCore structure
  • Intended for direct use in production without modification

Using these samples

You can:

  • Use them to test and explore Crafting behaviour
  • Modify them freely to understand how systems react
  • Replace them entirely with your own data

For production games:

👉 Create your own recipes with values appropriate to your design, balance, and progression 👉 Treat these as examples only — not as a baseline for gameplay decisions