Physics object pickup/throw system (with weight check)
A line trace for interacting with objects (opening doors, pressing buttons)
A line trace for detecting UI elements
A minimal UI for immersion
In order for users to become comfortable with how the blueprint works - most actions are not exposed as variables - this is intentional, as you can look around the blueprint and understand how they behave with the rest of the graph. These are outlined below.
Object Pickup System + Interact
The object system works by firing a trace to detect if an asset is simulating physics, checks the asset's weight in KG and then attaches it to the 'Physics Handle' component. The player can drop the object (Interact/E) or throw it (Left Mouse Button).
Players can also interact with non-physics elements and fire an interaction trace. This is designed for buttons, doors and other interactable elements.
The blueprint is designated into commented sections, this should allow you to understand what each section of blueprint is doing.
Players can adjust the distance objects are picked up from by adjusting this variable
The location of the held object can be adjusted by moving the "HeldObjectLocation" in the viewport
The maximum weight a player can pick up can be adjusted here. This unit is in kilograms
If the object the player interacts with doesn't implement physics, the character controller checks to see if it implements an interface instead - this is the main component for the interaction system.
This section at the bottom is the foundation for the UI, the trace distance can be adjusted in the same way as the object pickup.
Sprint Speed and Walk Speed are best adjusted in these variables
Character movement settings can be adjusted under the Character Movement Component