Skip to content

Events and delegates

DRW exposes a handful of Blueprint-assignable delegates for gameplay glue: driving HUDs, audio, animation, and gameplay state from the systems’ own state changes. This page is the cheatsheet.

For each delegate, the parameter signature is shown: wire your Blueprint event with these inputs.

Owner: ADRW_GridManager (e.g. BP_DynamicRealWater).

Signature: (): no parameters.

Fires: once, when the grid has spawned and the depth map is ready.

Bind for: unblocking HUDs that show ocean state, gating level-streaming triggers, splash-loading screens that wait for water.

Owner: UDRW_BuoyancyComponent.

Signature: (UpdatedOutputs : Array<FDRW_BuoyancyOutput>).

Fires: every time the buoyancy snapshot updates (typically each fixed-timestep tick).

Bind for: swimming-state on character pawns, splash audio, water-line decals, anything that needs frequent per-body submersion data.

Owner: UDRW_VesselMovementComponent.

Signature: (NewState : EDRW_VesselMovementState): Displacement, Transition, Planing, or Foiling.

Fires: when the hull crosses a regime boundary.

Bind for: engine FX swaps (idle vs full plane), camera FOV punches on planing, audio-bus crossfades, HUD speed indicators that change colour.

Owner: ADRW_Vessel.

Signature: (Vessel, NewController : UObject).

Fires: when a controller is assigned or cleared on the vessel.

Bind for: HUD ownership swaps when AI takes / releases the helm, hand-off cinematics, gameplay-state changes (“the captain is at the wheel”).

Owner: ADRW_VesselSeat.

Signature: (Seat, PreviousOccupant, NewOccupant).

Fires: whenever the seat’s occupant changes.

Bind for: door / hatch animation, seat-specific cameras, “press F to enter” prompts, multi-crew gameplay logic.

Owner: UDRW_SeatOccupantComponent (on the character pawn, not the seat).

Signature: (Component, Seat).

Fires: when this character occupant enters or exits any seat.

Bind for: character animation transitions (sit / stand), input rebinding, third-person camera adjustments.

Owner: UDRW_VesselPossessionComponent.

Signatures: (Component, Vessel) for both.

Fires: when the player’s controller transitions onto a vessel (Possessed) or back to the original pawn (Returned).

Bind for: UI swaps between “on foot” and “driving” HUDs, audio-listener reassignment, gameplay mode flags.

Owner: UDRW_SmoothReplicationComponent.

Signature: (ErrorMagnitude : float).

Fires: when the smoother gives up interpolating and snaps to the latest replicated transform: typically because the buffer underran or the actor moved further than PositionSnapThreshold between snapshots.

Bind for: suppressing motion blur and interpolation FX during the snap, logging network quality issues, optional UI hint.

These are all standard BlueprintAssignable MulticastDelegates: bind them in the Construction Script of an actor that has the component, in BeginPlay on the level Blueprint, or via Bind Event nodes in the Event Graph. The pattern is identical to any UE delegate.