Skip to content

Interactable Workstations

Workstations are physical station actors that operate on freeform-placed salvage. Item placement is no longer a workstation interaction path: the player uses placement mode to release salvage anywhere inside station bounds, and workstation screens query nearby items when used.

The shared base is:

AAndromedaWorkstation

It is inherited by:

AAndromedaScannerWorkstation
AAndromedaPackagerWorkstation

Components

AAndromedaWorkstation creates:

RootSceneComponent
MeshComponent
PlacementValidatorComponent
DefaultPlacementVolumeComponent
ScreenComponent
CapabilityEventsComponent

RootSceneComponent is the neutral actor root. The mesh, default placement volume, and screen are siblings under that root, so gameplay component transforms do not depend on mesh-relative hierarchy. The mesh is visual and is also the placement aim surface. Workstation mesh collision is gameplay-critical: the tabletop or intended placement surface must block ECC_Visibility so placement mode can trace to it. ScreenComponent is the only workstation operation interactable. PlacementValidatorComponent owns spatial validation logic, while DefaultPlacementVolumeComponent is the default positive query shape used to decide whether a freeform-placed salvage item is correctly positioned for the workstation.

Blueprint workstation assets tune the mesh/collision and the default positive volume separately. They may add extra box, sphere, or capsule primitives tagged WorkstationPlacementVolume for extra allowed space and WorkstationPlacementAntiVolume for spill/protrusion rejection.

Spatial Use Rule

The workstation screen is usable only when the workstation can find exactly one acceptable spatial item:

item overlaps at least one positive placement volume
item overlaps no anti-volume
item is acceptable for the workstation type
no second acceptable item is also valid

Zero valid items means no screen prompt. Multiple valid acceptable items are rejected as ambiguous.

Screen Interaction

The screen component forwards to the owning workstation:

CanInteractWithScreen()
InteractWithScreen()

InteractWithScreen resolves the single usable spatial item and passes that item to subclass behavior. Scanner and packager logic do not assign, mount, disable pickup, or otherwise take ownership of the item.

Base And Derived Rules

Base workstation acceptance only requires a salvage item. Derived classes add workflow rules:

Scanner: accepts any salvage item, then suppresses repeated display for the last scanned item id.
Packager: accepts and uses only unpackaged items with a valid scan record in the station databank.

Prompt text reflects the current spatial query result. It is not a separate source of truth.