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:

  1. Add a new component (typically a static mesh) and move it to the location you want the interaction to be.

  2. In SBZBase Interactable Component, open Shapes.

  3. 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 Comment to add a voiceline to whoever interacts with the component.

  • Use the Interaction query and shared key item query to require an item for this interaction (e.g., a keycard is needed to use it).

  • Use gameplay effects on interact to give players an item when they interact.

  • Use Normal distance to change the interaction distance.

  • duration to change how long it takes (0 = instant).

  • text to change the interaction text that appears before interacting.

  • Change animated interaction data to change the animation that gets played while a player interacts.

  • Use the checkboxes in the SBZInteractable component 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 Enabled bool. You also want to set the state to not assembled.

  • The On Breaching Equipment Completed event signifies that the drill has been picked up after it finished drilling. On Disassembly Needed is used when the player needs to pick up the drill.

  • To enable the drill mid-heist, use the set active event in the BP_PocketDrill class.

  • You can set the number of adjusts needed, and how long each adjust takes.

  • Change duration time seconds to 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 seconds can be used to change how long the hack takes mid-heist.

  • The On Hacking Complete event is executed when the hack is complete.

  • Setting the unlock mode changes 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 Delegate event indicates when the keycard reader has been interacted with.

  • On Server Complete Interaction Event indicates 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_Decal is 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.

  1. Place SBZHackingZone actors around the level in predefined locations, with the enabled bool set to false.

  2. For each hacking objective, place an SBZHackingZoneController in the level (it can be anywhere). In the actor’s defaults, populate the Hacking zone array with the SBZHackingZone actors you placed.

  3. When the objective is activated, change the hacking controller state to running and set the interaction to enabled. Bind an event to OnProgressionReached to 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.

Not yet documented

The following objectives have not been documented yet.

  • Thermal Lances

  • QR Codes/Phone Hacks

  • Authenticators/Cleaners

  • Retinal Scans

  • Metal Detectors

  • Cables

  • Safes

  • Switch Flip Box

  • Thermite

  • Lockpick