Skip to content

01 — Workbench Basics (2D or 3D)

Goal

Learn how crafting workbenches integrate with the Crafting system and how bench configuration influences which recipes can be crafted in both 2D and 3D.


⚠️ Intentional Validation Warning (Editor)

This demo scene is intentionally configured to trigger a warning in the Unity Editor.

One of the workbenches has a stationTagFilter that does not match the selected recipe’s required station tag.

Example warning you may see:

[CraftingWorkbench3D_Core] stationTagFilter='MetalBench' does not match selected recipe tag='WoodBench'.
This bench will reject that recipe at runtime.

This is expected behaviour and is included on purpose to demonstrate:

  • How station tag gating works on crafting benches
  • Why certain recipes are rejected at runtime
  • How RevFramework surfaces clear editor-time warnings instead of silent failure

You can resolve the warning by: - Changing the bench’s stationTagFilter, or
- Selecting a recipe with a matching station tag

For this demo, leave it as-is.


🎓 What This Scene Demonstrates

This scene introduces interactive crafting workbenches and their runtime behaviour.

You’ll see how to:

  • Configure 2D and 3D workbenches to drive crafting
  • Trigger crafting via proximity + input
  • Gate recipes using station tag filters
  • Bind multiple workbenches to a shared CraftingServiceCore
  • Adjust recipe selection and cooldown values at runtime
  • Observe job state and progress managed by the service

Scope Reminder
RevFramework does not implement networking, replication, prediction, rollback, or reconciliation.
These samples demonstrate authority-gating patterns only — all networking behaviour is your responsibility.


⚠️ Authority Note

No Authority Binder is assigned in this scene.

Leaving the Authority Binder field on CraftingServiceCore unassigned allows crafting to be tested locally without authority checks.

To enforce authority, you must assign an Authority Binder to the service.
Adding the component alone does not automatically block crafting.


🧩 How to Use

  1. Enter Play Mode
  2. Move the Player object into a bench’s trigger zone (2D or 3D)
  3. Hold the Craft Key (F) to attempt crafting
  4. Adjust the Recipe Index in the Inspector or via the panel to switch recipes
  5. Change or clear the stationTagFilter to test recipe gating behaviour
  6. Modify the Repeat Cooldown to control craft pacing
  7. Observe how jobs are enqueued and completed by CraftingServiceCore

⚙️ Behind the Scenes

  • CraftingWorkbench2D_Core and CraftingWorkbench3D_Core follow the same workbench pattern
  • Each bench references a list of recipes (RecipeCore or supported wrappers)
  • While the player remains in range and provides input:
  • The bench queries the service for availability
  • If allowed, it enqueues a craft request via CraftingServiceCore
  • Station tags are evaluated as part of crafting eligibility checks
  • Optional IInputService integration allows input abstraction

This scene shows conceptual flow, not a guaranteed execution order.


💡 Key Takeaway

Workbench components provide a designer-friendly, scene-driven way to trigger crafting:

  • No custom scripting required to get started
  • Works consistently in both 2D and 3D
  • Integrates with station tags, cooldowns, and the Crafting Service
  • Well suited for world-based crafting, upgrades, and interaction points

Panel: CraftingWorkbenchBasicsPanel
Scene Path:
Assets/RevFramework/Samples/Crafting/Scenes/01_Workbench_Basics_2D_or_3D/