Interactions
SBZ has a custom interaction class called SBZInteraction. You can add this component to any blueprint to make it interactable.
Interaction location
By default, the interaction is bound locally to 0 0 0 in the blueprint’s local location. To change this:
-
Add a new component (typically a static mesh) and move it to the location you want the interaction to be.
-
In
SBZBase Interactable Component, openShapes. -
Set the component type to the type of the component you just made, and the component name to that component’s name.
The interaction is now located at that component’s transform.
Interaction settings
-
Use
Completed Commentto add a voiceline to whoever interacts with the component. -
Use the
Interaction queryandshared key item queryto require an item for this interaction (e.g., a keycard is needed to use it). -
Use
gameplay effects on interactto give players an item when they interact. -
Use
Normal distanceto change the interaction distance. -
durationto change how long it takes (0 = instant). -
textto change the interaction text that appears before interacting. -
Change
animated interaction datato change the animation that gets played while a player interacts. -
Use the checkboxes in the
SBZInteractablecomponent to change key properties, such as whether the interaction is illegal, allowed in casing, or enabled on startup of the heist.
Common objectives
PAYDAY 3 includes many common objectives that you can use and follow, but you can also create completely new objectives that suit your level.
See Objectives for how the objectives in the HUD are activated, progressed, and completed.
Below is a list of common objective actors:
Pocket drills
-
The standard blueprint is located at
Gameplay/Breaching/Tools/PocketDrill/BP_PocketDrill. -
This interaction is enabled by default. To disable it, disable the
Is Enabledbool. You also want to set the state tonot assembled. -
The
On Breaching Equipment Completedevent signifies that the drill has been picked up after it finished drilling.On Disassembly Neededis used when the player needs to pick up the drill. -
To enable the drill mid-heist, use the
set activeevent in theBP_PocketDrillclass. -
You can set the number of adjusts needed, and how long each adjust takes.
-
Change
duration time secondsto change how long the drill takes to finish.
Computer hacks
-
The generic hack computer is located at
Gameplay/Props/HackableActor/BP_GenericHackableComputer. -
Interaction is enabled by default. While it is enabled, a waypoint is applied automatically. You can disable the waypoint by removing the data asset.
-
You can change the progress and success text. This is useful for customizing the screens to say different things.
-
Set duration secondscan be used to change how long the hack takes mid-heist. -
The
On Hacking Completeevent is executed when the hack is complete. -
Setting the
unlock modechanges the hack between needing a key item, a hack timer, or no hack (no security).
Keycards
-
The Red and Blue keycards are located at
Gameplay/Props/KeycardReader/BP_(COLOR)Keycard. -
The Red and Blue keycard readers are located at
Gameplay/Props/KeycardReader/BP_(COLOR)KeycardReader. -
Both are interaction-enabled by default.
-
The keycard reader’s
On State Changed Delegateevent indicates when the keycard reader has been interacted with. -
On Server Complete Interaction Eventindicates when the keycard is interacted with.
|
To ensure the keycard shows up on the HUD, you also need to populate your level’s world settings Key Item Data Map with the correct tag and data asset for the keycard. See World Settings for more details. |
Keypads
-
The keypad is located at
Gameplay/Props/Keypad/BP_Keypad. -
BP_DigitPassword_Decalis used for the password shown in the world.
|
This objective still requires further documentation. |
WiFi circles
To get WiFi circles to work, the level requires two actors: SBZHackingZoneController and one or more SBZHackingZone.
-
Place
SBZHackingZoneactors around the level in predefined locations, with the enabled bool set to false. -
For each hacking objective, place an
SBZHackingZoneControllerin the level (it can be anywhere). In the actor’s defaults, populate the Hacking zone array with theSBZHackingZoneactors you placed. -
When the objective is activated, change the hacking controller state to running and set the interaction to enabled. Bind an event to
OnProgressionReachedto handle the objective’s progression.
|
This section predates this objective’s rework. It still needs to be verified that this objective is handled this way. |