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.plankherb_mintore_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.plankshows a dotted styleherb_mint/ore_ironshow 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 containerherb_*→ 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
RecipeCorestructure - 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