Interaction Methods
SF's interaction system supports a total of 5 different Interaction Methods. These are used to create a variety of interactable objects. From simple pickups, to fully movable objects, these interaction methods each function completely differently from one-another. Interaction Methods are broken up into 2 categories. These would be the Primary Interaction Method (PIM), and Secondary Interaction Method (SIM).
An interactables PIM can be set to any one of these 5 different Interaction Methods, where as the SIM is set to either "None", or "Inspect". This means any interactable object can give the player the option to inspect an item/object on top of our PIM.
Interaction inside SF will call the Event Interacted With
BPI function that is found inside an interactable blueprint. We use interface functions to easily communicate with any actor that implements the SFInteraction_BPI
Blueprint Interface. The mentioned BPI function above that get's called also consists of a DataString
input variable. This string value gets utilized to add further interaction options to already existing Interaction Methods.

Below will break down all of the 5 different Interaction Methods, and how they're used.
— Default Interaction
- The generic interaction method primarily used when setting up custom functionality when the player interacts with your object. There is no custom logic that gets executed when this interaction method is used. The Event Interacted With
BPI function is the only function that get's called.
— Inspect Interaction
- This interaction method will spawn the InspectActor_BP
blueprint class that displays a rotatable 3D mesh of your interactable, or this can create a text overlay for players to read through depending on your Inspect Method. The 3D inspectable supports usage of both Static and Skeletal meshes, as well as setting a custom actor to create when inspecting your object. This interaction method has options to define the current customizable properties,
Inspect Method (Pan to Object, 3D Inspect, Readable, or 3D Inspect + Readable)
Enum
Inspect Actor Class (Optional)
Actor Class
Can Item be Picked Up when Inspecting
Bool
3D Inspect Object Distance from Camera
Float
3D Inspect Object Offset
Vector3D
Readable Text Color
Color
Readable Text Pages, and Page Images (Optional)
String & Texture2D
This interaction method will also call the Event Interacted With
BPI function.
— Quick Pickup - An interaction method used to quickly create items that the player can pickup, and add to the players Quick-Inventory. Here, you can define the following properties,
Item Inventory Icon
Texture2D
Can Use, Can Combine, or Can Drop
Bools
The Quick Pickup interaction method does not call the Event Interacted With
BPI function, as this interaction method will destroy your interactable and add it to your players inventory before that function can be called. To setup custom logic before picking up an item, you should rather use the Default interaction method, set up your custom logic, and then call the Add Item to Inventory
function from the Inventory Manager actor component after.

— Has Item Interaction
- The Has Item interaction method requires you to define items to search for in the players inventory to execute 2 different types of interaction through the Data String
value (Found & Not Found). Other properties that can be defined are,
Inventory Items (Name & Quantity)
Text & Int
Consume Items
Bool
Must Player Have All Items (If left false, the player can execute the Found option if they have the correct quantity of any singular item listed in the Inventory Items list)
Bool
Prompt Item Data (An optional property that if setup, will display the items and their quantities needed on-top of the interaction prompt. Requires the target item name, and an icon to display)
String & Texture2D
This interaction method will call the Event Interacted With
BPI function, whilest feeding in 2 different Data String
values (Found & Not Found). This string value can then be connected up to a Switch On String
node to execute specific logic depending on whether or not the required items were found when interacting with an object utilizing this interaction method.

— Drag Interaction - Drag interaction is allows the player to physically drag their crosshair to move an object. This interaction method can effect both location or rotation. Values that can be customized are,
Effected Axis (Should define a single axis, setting the value to "1,0")
Vector3D
Drag Speed Multiplier
Float
Drag Distance from Origin (Min & Max values)
Floats
Swing/Rotate (Will use the Effected Axis as the rotation axis)
Bool
Camera Focus Mode (How the players camera will track or not track the object being moved)
Enum
Play Moving Sounds (Assign sounds for when the object is moving, and when it is moved near it's origin)
Sound Base
When "dragging", the Event Interacted With
BPI function is called continuously as the players crosshair moves, while feeding the amount the player has moved/rotated the interactable object into the Data String
value. This can be utilized to set up puzzles or logic that only gets executed if the player has moved or rotated your "Drag" interactable in a certain direction or distance.
Last updated