Skip to content

Stations and fuel

A station is an actor with a Craftwright Station component (UTACraftwrightStationComponent): a workbench, a forge, a campfire, a sawmill. Recipes list the station types that can craft them in Stations; a crafter crafts them by passing the station to Request Craft.

A station has its own queue. Its jobs keep running when the player walks away or closes the menu, and every player who uses the station shares that queue.

Property Category Default Meaning
Station Tag Station None The station type, a gameplay tag such as Station.Forge. Recipes list the station types that can craft them.
Display Name Station Empty The station’s name in menus. When empty, the crafting menu shows the actor’s name.
Icon Station None Shown next to the name in crafting menus.
Interaction Range Station 400 cm Crafters must be this close to use the station, checked on the server. 0 = no limit.
Output Mode Station To Crafter Where results go. See Output mode.
Linked Actors Station Empty Other actors whose inventories the station uses for ingredients, for example a chest next to the forge.
Pull Radius Station 0 cm Also take ingredients from shared containers within this distance. 0 = off.
Use Crafter Speed Station Off Also multiply the speed by the crafting speed of the crafter who queues the job. See Speed.
Fuel Items Fuel Empty Items that can be burnt and how many seconds of work each gives. Empty = no fuel needed.
Max Jobs Queue 8 The most jobs in the station’s queue at once, from all players together.
Crafting Speed Queue 1 Speed multiplier for new jobs at this station (2 = twice as fast).
Max Offline Seconds Queue 0 s The longest offline time simulated when a save is loaded; 0 = no limit. See Save games.

A station can craft a recipe when its Station Tag is one of the recipe’s Stations, or a child of one. A station tagged Station.Forge.Masterwork crafts everything listed for Station.Forge plus recipes listed only for Station.Forge.Masterwork.

Get Available Recipes (Station) on the crafter returns the known recipes that this station can craft. Hand recipes are not included; open the menu without a station for those.

A crafter must be within Interaction Range of the station actor to:

  • request a craft there (Out Of Range, “Too far from the station.”),
  • cancel a job there (Not Allowed),
  • collect the station’s tray (Out Of Range).

The distance is measured from the crafter’s pawn (or its owner when there is no pawn) to the station actor, and checked on the server. It is not checked while a job runs: the station keeps working and delivers to the crafter wherever they are.

A job’s seconds per unit are the recipe’s Craft Time (its Salvage Time for salvage jobs) divided by the station’s speed when the job is queued:

  • Get Station Speed: the station’s Crafting Speed. Override it in a Blueprint subclass of the station component (or in C++), or use the Craftwright Station GAS, which multiplies it by an attribute of the station actor: an upgraded forge, a buff from a Gameplay Effect.
  • times the crafter’s Get Crafting Speed (a skill, a perk, or an attribute with the GAS module) when Use Crafter Speed is on. When it is off, the crafter’s own speed doesn’t apply at the station.

Get Speed For (Crafter) returns that speed for a crafter: the station speed times, with Use Crafter Speed, the crafter’s speed.

The speed is fixed when the job is queued, so saves and offline time keep it. Change Crafting Speed at runtime (it is Blueprint-writable) for upgraded stations; jobs already queued keep their speed.

Output Mode Results
To Crafter (default) Go to the crafter who ordered them, into their inventories as far as there is room. Only what fits nowhere waits in the station’s tray.
To Station Tray Wait in the station’s tray until someone collects them, like a furnace’s output slot.

Refunds go back to the crafter who paid, whatever the output mode. When that crafter is gone, results and refunds wait in the tray. Any crafter in range collects the tray into their output inventory with Request Collect Tray (Station); the example menu shows a Collect button with “N finished item(s) waiting”.

At a station, ingredients come from the crafter’s own sources and from the station’s, in this order: the station actor’s inventories, the Linked Actors’ inventories, then shared containers within Pull Radius (measured from the station actor). See Where ingredients come from.

  • Linked Actors: for storage that always belongs to this station, wherever it stands. Linked actors don’t need to be shared.
  • Pull Radius: for storage players place freely. A container is shared when it is a Craftwright Inventory with Share With Nearby Crafting on, or any inventory registered with Register Shared Inventory.

Get Ingredient Sources on the station returns the station, linked and nearby inventories without the crafter’s. Get Station Inventories returns only the inventories on the station actor.

Fuel Items maps items to seconds of work. When it is empty, the station needs no fuel.

  • Fuel is taken from inventories on the station actor only (add a Craftwright Inventory to the station actor for it), not from linked or nearby containers.
  • Fuel burns only while a job works. One fuel item is taken when the job starts and the previous item is used up; its seconds count down while the job works, at real time, so a station with Crafting Speed 2 makes twice as much per item of fuel.
  • What is left of a burning item is kept when the queue runs empty and used by the next job.
  • When there is no fuel left, the job at the front pauses (state Paused, “Paused: no fuel or power” in the example menu). It resumes by itself as soon as fuel arrives in the station’s inventory.
  • When several fuel items are available, the station burns them inventory by inventory, and within an inventory in the alphabetical order of the items’ asset paths, so the same fuel is used first every time.
Function Returns
Needs Fuel True when Fuel Items isn’t empty
Get Fuel Remaining Seconds left on the item that is burning (counted down smoothly on clients)
Get Total Fuel Time Seconds of work from fuel in the station’s inventories plus what is burning
Is Paused True while the job at the front waits for fuel or power

The example menu shows Get Total Fuel Time as Fuel: <time>, for example Fuel: 36s for the example forge with 3 Coal. Fuel isn’t needed for instant recipes.

Is Powered decides whether the station can work at all: electricity, a switch, a finished building. By default it returns true. Override it in a Blueprint subclass of the station component (or in C++); fuel is checked separately.

While Is Powered returns false, the job at the front is paused like a station without fuel. After something it depends on changes, call Wake Up on the server so a paused job resumes.

Station Station Tag Fuel Items Storage Pull Radius Recipes
Workbench Craftwright.Example.Station.Workbench None Empty 0 Planks, Hammer, Iron Nails, Pickaxe
Forge Craftwright.Example.Station.Forge Coal 12 s, Oak Log 5 s, Pine Log 4 s 3 Coal 500 cm Iron Ingot, Iron Sword
Campfire Craftwright.Example.Station.Campfire Pine Log 6 s, Oak Log 8 s 3 Pine Log 0 Cooked Meat

All three use the default Interaction Range (400 cm), Crafting Speed (1) and Output Mode (To Crafter), with Use Crafter Speed off. Each example station actor has a 6-slot Craftwright Inventory for fuel and storage. The Workbench also salvages Hammers and Pickaxes, and the Forge Iron Swords.

  • Forge: its 3 Coal give 36 seconds of work, enough for 12 Iron Ingots at 3 seconds each. Its pull radius reaches the shared Ore Chest (16 Iron Ore, 6 Coal), so Iron Ingots use ore from the chest when your bags don’t have enough. Coal is burnt before logs because Item_Coal sorts before Item_OakLog and Item_PineLog.
  • Campfire: its 3 Pine Logs give 18 seconds of work, four and a half Cooked Meat at 4 seconds each; then the job pauses until more fuel arrives.

The example has no way to put items into a station’s storage; your game decides how players refuel (a drag and drop UI, an “add fuel” interaction that calls Add Items on the server).