Vertical Slice Plan¶
Slice Goal¶
Build the smallest real version of Andromeda's handling loop:
One room, one salvage item, one scanner, one decision, one consequence.
The slice should validate inspection, package assignment, and physical station handling without prematurely locking in the final sale, quarantine, or cargo-transfer economy.
Player Flow¶
- Player starts in the salvage bay.
- A salvage item is available at the inspection table or near the cargo-side blast door.
- Player inspects the item.
- Player scans the item at the scanner.
- Scanner displays manifest and scan data.
- Player carries the item to the packager workstation and packages it.
- Player toggles placement mode and places the item freely inside the station.
- The item simulates physics after placement and can be picked up again.
First Salvage Item¶
Item:
Name: Damaged Reactor Coil
Manifest Claim: Civilian power component
Radiation: Low
Mass: Expected
Serial: Valid
Handling Direction: scan, package, and store physically before a later final-processing flow exists
The first item should be mechanically simple. It exists to prove interaction, scanning, package assignment, and physical placement.
The second prototype item is the Personal Effects Case. It should use the same scan/package/freeform-placement flow for now, but its scan data should imply that the manifest is misleading and that the item may be evidence rather than scrap.
Required Systems¶
Minimum gameplay systems for the slice:
- first-person player interaction trace
- interact prompt hook
- interactable interface or component
- carry item component
- cargo hangar salvage spawn point
- workstation spatial validation volumes
- salvage item actor
- salvage item data model
- scanner actor
- packager workstation actor
- freeform placement mode component
- scan result UI placeholder
- station-bounded item placement preview
- physics release after freeform placement
Required Room Elements¶
Minimum level elements:
- salvage bay blockout
- exterior view window
- cargo hangar-side blast door or blocked-out connection
- warehouse-side blast door or blocked-out connection
- inspection table
- scanner terminal or scanner workstation
- packager area
- warehouse storage area
- simple cart or storage drop-off marker
- simple lighting pass
The Cargo Hangar and Warehouse do not need to be fully playable for the first slice. They should exist as visible or blocked-out adjacent spaces so the station layout makes sense and does not rely on magic item hatches.
Explicit Non-Goals¶
Do not add these during the first slice:
- combat
- ship piloting
- inventory complexity
- procedural generation
- NPCs
- multiplayer
- station-wide simulation
- large asset packs
- runtime AI characters
- complex economy
- upgrade trees
- trade-ship scheduling
- scrapper processing
Completion Criteria¶
The vertical slice is complete when:
- the player can interact with a salvage item
- scan data can be shown to the player
- the player can package a scanned item
- the player can enter placement mode while carrying an item
- the player can rotate the placement preview on yaw, pitch, and roll
- the player can release the item with physics inside station bounds and pick it up again
- the room blockout communicates the Cargo Hangar -> Salvage Bay -> Warehouse logistics chain
- the project-specific content lives under
Content/Andromeda - the code is structured for extension rather than throwaway prototype logic
Station Blockout Direction¶
The first blockout should establish the facility as a practical logistics space:
The Salvage Bay remains the main playable room. The Cargo Hangar explains how bulky salvage enters the facility, and the Warehouse explains where processed, tagged, and packaged objects go after handling. Doors should be large blast doors or controlled industrial doors, not item-only hatches.
Recommended first blockout assets:
SM_Blockout_SalvageBayShellSM_Blockout_CargoHangarShellSM_Blockout_WarehouseShellSM_Blockout_BlastDoor_CargoHangarSM_Blockout_BlastDoor_WarehouseSM_Blockout_ExteriorWindowFrameSM_Blockout_WorkbenchSM_Blockout_Package_XSSM_Blockout_Package_SSM_Blockout_Package_MSM_Blockout_Package_LSM_Blockout_DamagedReactorCoilSM_Blockout_PersonalEffectsCase
Package category should eventually be expressed through a shared parent material, category-specific material instances, and signage, not separate meshes for each category/size combination. Current Blender blockouts remain material-free.
M_Blockout_PackageMI_Blockout_Package_NormalMI_Blockout_Package_QuarantineMI_Blockout_Package_FreezerMI_Blockout_Package_Radiation
This keeps the asset workload contained while supporting many gameplay variants later.
Placement Foundation Direction¶
The old Sell and Quarantine warehouse zones have been removed from the active slice. Freeform station placement is now an early architectural foundation, not a later warehouse-only feature. Final sale, quarantine, cargo transfer, and consequence handling will be designed after physical storage and placement ownership are proven.
Current Implementation Status¶
Implemented C++ scaffold:
- first-person interaction trace
- interact prompt widget creation and update
- interactable interface/component
- carry component for non-physics item pickup and placement
- salvage spawn point for cargo hangar item arrival
- salvage item actor
- salvage item data model
- scanner actor as a spatial workstation
- packager workstation actor for package assignment
- player-owned freeform placement mode component
- station-bounded freeform item release with physics
- scanner screen widget behavior
- scan recall UI input flow
- C++ screen/log debug message when salvage is inspected
Implemented editor/input setup:
Content/Andromedacontent folder scaffoldContent/Andromeda/Input/IA_InteractContent/Andromeda/Input/IA_JumpContent/Andromeda/Input/IA_MouseLookContent/Andromeda/Input/IA_MoveContent/Andromeda/Input/IA_TogglePlacementModeContent/Andromeda/Input/IA_CyclePlacementAxisContent/Andromeda/Input/IA_AdjustPlacementRotationContent/Andromeda/Input/IMC_PlayerEmapped toIA_Interact- placement mode input is mapped to
G,X, and mouse wheel - Andromeda player controller adds
IMC_Player - Andromeda player character has input actions assigned
Content/Andromeda/Data/DA_DamagedReactorCoilContent/Andromeda/Blueprints/Items/BP_DamagedReactorCoilContent/Andromeda/Blueprints/Station/BP_ScannerWorkstationContent/Andromeda/Blueprints/Station/BP_PackagerWorkstationContent/Andromeda/Maps/L_SalvageBay_Prototype- prototype map contains the salvage bay blockout, player start, reactor coil, scanner, packager, workstation placement volumes, and anti-volumes
- scanner and packager operate on exactly one spatially valid freeform-placed salvage item
Content/Andromeda/Blueprints/UI/WBP_ScannerScreen- scanner UI displays scan data
- scanner UI displays the salvage item's required/recommended package handling
- packager workstation assigns the current item's required package as a non-final handling step
- placement mode lets carried items be previewed, rotated, warned for workstation mismatch, and released with physics inside station bounds
Content/Andromeda/Blueprints/UI/WBP_InteractPrompt- player character creates the interact prompt widget and updates it from focus changes
- workstation screen UI is world-space and presentation-only
- suit scan recall is a non-modal HUD overlay that leaves game input active
Content/Andromeda/Blueprints/Core/BP_PlayerCharacterContent/Andromeda/Blueprints/Core/BP_PlayerControllerContent/Andromeda/Blueprints/Core/BP_SalvageBayGameMode- prototype map uses
BP_SalvageBayGameMode - movement, look, prompt, scanner UI, packaging, and placement flow work through Andromeda-owned core Blueprints
- widget Blueprints use Designer layout and named widget bindings; maintained vertical-slice logic lives in C++
- starter template dependencies were removed by recreating the project from the Blank template
Next Design Steps¶
Next steps after the current placement foundation:
- Refine placement feel, clipping checks, and item footprint handling.
- Make packaging physically visible through package meshes, labels, or containers.
- Design player-organized warehouse storage and later cargo/consequence flow.
- Defer save/progression until physical placement and storage ownership are stable.
Last Verified Build¶
The C++ scaffold was compiled with:
The build succeeded. There was an XGE license warning, but no project compile error.