Skip to content

First Custom Production

Build two Manual recipes and check the exact ingredients left after one Tomato soup.

Create a Manual restaurant that turns Tomato into Chopped tomato, then uses it with Water to produce Tomato soup. Each recipe performs one operation. Staff must start both operations separately; the production graph does not run the chain automatically.

All quantities, durations and prices below are teaching examples, not delivered product defaults.

Before you begin#

  • Complete installation, the three shared inventory items and administrator access.
  • Create a Manual restaurant named Soup Workshop, with TextUI for fixed interactions and no map preset. Keep it enabled. Use a global Restaurant administrator to create it; its active Owner can configure it afterward.
  • Use Staff Roster > Hire to select your online test player, assign Owner and keep the row active. The server resolves the loaded character; see the staff selector.
  • Leave room in inventory and carry at least 25 cash for the two example purchases. With Ox this is its inventory money currency; the supported QB/ESX cash path uses the framework wallet. Bank balance alone does not satisfy Supply.
  • Find accessible surfaces for Supply, Cutting and Cooking. No Packaging or Menu location is needed to produce the soup. Finish placing any optional Menu entry you add before publishing.

1. Add the four material definitions#

Open Kitchen > Materials > Add material. Add each row below with the exact logical Item Name and unit. Leave Inventory image empty and Item usage at Use item name for this inventory-production exercise. Click Add material after each entry, then Done adding materials.

Item LabelItem NameUnitPurpose
TomatotomatoGramRaw ingredient bought at Supply
Chopped tomatochopped_tomatoGramIntermediate made by the first recipe
WaterwaterMilliliterRaw ingredient bought at Supply
Tomato souptomato_soupCountFinished output of the second recipe

These are logical Restaurant definitions, not four extra framework inventory items. Shared restaurant_material packets hold ingredient quantities in metadata1. The finished soup uses restaurant_product.

For form details, see Add a Material. A Count unit alone does not make soup edible. To eat the finished soup, configure a suitable consumption profile as described at the end of this guide.

2. Add and place one Supply point#

Open Kitchen > Operation Points > Add operation point. Choose Supply, name it Soup ingredients, and use Point mode. Place its interaction on a reachable shelf or counter using the world picker. Supply has no separate processing-tool pose.

In Supply offers, click the trailing + / Add Supply offer. Add:

MaterialQuantity per packetPrice per packet
Tomato250 Gram20
Water500 Milliliter5

Save each offer dialog back to the point form. Then click the parent point form's Save. Saving only an offer dialog leaves the parent changes local. You will save and publish the whole restaurant after adding the recipes and work points.

Do not add Chopped tomato or Tomato soup as a Supply offer. Chopped tomato will be produced; the finished soup must not also be supplied as an ingredient. See Supply.

3. Add Chop tomato#

Open Kitchen > Recipes and add a custom recipe:

FieldValue
Recipe nameChop tomato
OperationCutting
Duration5 seconds
Output roleReusable intermediate material
InputTomato — 100 Gram
OutputChopped tomato — 100 Gram

Apply the recipe form. Use positive quantities in the material's unit; do not enter kilograms in a Gram field.

Initial custom recipe form with Cutting, one second and finished output selected before editing

Initial form only. For Chop tomato, change the duration to 5 seconds, choose Reusable intermediate material and enter the input/output rows above. The pictured initial values are not this completed recipe.

4. Add Cook tomato soup#

Add the second custom recipe and apply its form:

FieldValue
Recipe nameCook tomato soup
OperationCooking
Duration30 seconds
Output roleFinished food or drink
Input 1Chopped tomato — 100 Gram
Input 2Water — 150 Milliliter
OutputTomato soup — 1 Count

Keep Tomato soup exclusive to its finished-output role: do not use it as an input, intermediate output or Supply offer. The selected role and Count unit must agree. Custom Recipes explains those rules.

5. Place two compatible work points#

Return to Kitchen > Operation Points. Add these two points, with Point mode and Allow all compatible recipes enabled:

Point nameOperationPlacement
Soup cutting boardCuttingPosition the cutting work/tool pose on an accessible counter
Soup cookerCookingPosition the cooking tool at a suitable cooking surface

Save each point form after accepting its world placement. Point mode adds no permanent counter, so use an existing surface. Object mode is an alternative requiring an installed station model and separate object/tool placements; it is unnecessary for this example.

The final point list has three points: one Supply, one Cutting and one Cooking. Each work point holds one production at a time in its world instance. If you choose Selected recipes only instead, explicitly allow Chop tomato at Cutting and Cook tomato soup at Cooking; an empty selection allows none.

Cooking has a fixed load → wait → collect flow. Cutting requires attended work. There is no attended/unattended selector. See Operation Points.

6. Save and publish the whole restaurant#

Check all four materials, both complete recipes, the three placed points and active test staff. Apply open forms, click Save draft, resolve any reported field, then Publish. Confirm Published in the header. A form's Save and the header's Save draft have different jobs.

The production graph can help inspect Tomato → Chop tomato → Chopped tomato → Cook tomato soup → Tomato soup, with Water feeding the second recipe. Moving graph cards changes the diagram layout; it does not move the world points or start either recipe.

7. Buy the ingredients as active staff#

Close the panel and use Soup ingredients. Buy one Tomato packet for 20 and one Water packet for 5. Check their logical contents: 250 g Tomato and 500 ml Water. Those amounts do not mean 250 and 500 physical inventory items.

If a purchase fails, check cash, space and its error before retrying. Do not manually edit metadata to make the next step work.

8. Complete both operations#

  1. Use Soup cutting board and select Chop tomato. Complete the 5-second attended action and check its 100 g Chopped tomato output in inventory. The recipe uses 100 g Tomato.
  2. Move to Soup cooker and explicitly select Cook tomato soup. Complete loading. Successful loading consumes 100 g Chopped tomato and 150 ml Water.
  3. Wait for the 30-second cooking duration. Use Collect when ready and leave enough capacity for 1 Tomato soup.

Starting Chop tomato does not queue the soup. While the cooker runs, do not restart Restaurant. For leaving, collection timeouts or another employee continuing the work, read Shared Work.

9. Check the quantities#

For the two packets bought in this exercise and one successful soup:

MaterialStartUsed / producedExpected end
Tomato250 gUsed 100 g150 g
Water500 mlUsed 150 ml350 ml
Chopped tomato0 gProduced 100 g, then used 100 g0 g from this exercise
Tomato soup0Produced 1 Count1 finished product

If you already owned these materials, compare the relevant packets or the change from your starting quantities. Keep existing stock. Logical amounts can be spread across inventory entries; the slot count is not the gram or milliliter total.

If output is missing or an amount differs, record the last successful step and check Inventory Problems before repeating a transfer.

Optional: consumption and sales#

To eat the soup, first configure an appropriate enabled soup profile in Item Usage, select it on the Tomato soup Material, Save draft and Publish, then produce a new soup. Use item name resolves to tomato_soup; it does not create that profile. Do not select an unrelated product just to suppress a missing-profile error.

To sell the finished soup, place the required Menu and Packaging locations and follow Business and Orders. Adding a finished output alone does not enable its sale or price.

Footnotes

  1. A shared inventory item holding a logical material amount and unit, rather than one physical item per gram. Read the definition. ↩