Shutdown Protocol Dev log – Day 4

· ·

Dev log – Day 4

Summary

Today focused on recovering from the asset loss of Day 3 by reconstructing most of the destroyed meshes, materials, and Blueprints and returning the project to its previous state. Building on that restored base, work continued on improving door and interaction logic, expanding button functionality, and polishing key gameplay systems. A major portion of the day went into developing the inventory system, including data assets, pickup logic, an inventory component, and functional add/remove operations. Several quality-of-life improvements were made along the way, rounding out a productive recovery and systems-focused day.


What I Worked on Today

Reconstructing Lost Assets

Managed to reconstruct most of the destroyed Day 3 assets and return to the previous project state.
Did not implement version control yet, but performed manual project backups twice a day.
Must create a script for automatic backups.


BP_Door Enhancements

Made the IsLocked variable instance-editable for quick door setup.
Added a Trigger variable (object reference, instance-editable) set to BP_Trigger.
From this variable, the OnTriggered event can be added via the Details panel.
Added a Branch to check IsTriggered; if true, the door executes UnlockDoor.


BP_Button Interaction Setup

Worked on BP_Button as a test element for BP_Door locking and unlocking.
Implemented BPI_Interact via Class Settings → Implemented Interfaces.


Door & Button Logic Recap


Additional BP_Button Features

Indented the button mesh when pressed:


Testing Door–Button Interaction

Placed BP_Door and BP_Button in the test area.
Set BP_Door IsLocked = true and assigned the nearby BP_Button as its Trigger.
Walking into the door’s sensor does not open the door (correct behavior).
LookAt shows “Press Button.”
Pressing the button indents it.
The door now opens when stepping into the sensor after pressing the button.


Button Reset Functionality

Added button reset behavior:

Button now resets one second after being pressed.


Door Lock Indicator Light

Added light slot to the door mesh.
Added cube mesh with MI_EmergencyLight applied.
In Construction Script:


Making BP_Door Interactable

Implemented BPI_Interact.
In LookAt:


Starting the Inventory System

Goal: Simple inventory to pick up Fuse and Keycard, display HUD items, and allow item use.

Steps taken:


Inventory System Improvements

Added DataAsset variable to BP_Pickup (type: DA_Item, instance-editable).
Added static mesh component.
In Construction Script:

BP_PickUp now properly displays data asset values.


Adding Interaction to BP_Pickup

Confirmed interact channel blocked by static mesh collision (correct).
Implemented BPI_Interact.
LookAt:

Pickup interactions now display unique item names.


Expanding Inventory System

Created AC_InventorySystem actor component.
Added to BP_FirstPersonCharacter.

Created variables:

Created functions:


Implementing AddToInventory

Inside AddToInventory:


Implementing RemoveFromInventory

Inside RemoveFromInventory:


Quality of Life Changes

Resized Keycard and Fuse static meshes via Modeling Tools → Transform Scale → Bake Transform for better world fit.


Technical Notes


Challenges & Lessons Learned


Next Steps

  1. Build the HUD display for the inventory, showing acquired items.
  2. Finalize item usage logic (Fuse insertion, Keycard readers).
  3. Implement automatic backup script or full version-control setup.