Skip to content

Waiting for Things

Several of the features in SUDS Pro are animated over time, such as fades, camera animations, character emotes, etc. Unless otherwise specified, following lines in a script are executed immediately without waiting for that animated effect to complete,
so for example:

[event FadeIn]
[event CameraDolly -100, 0]

In the above script, the fade in and camera dolly will occur at the same time. the dialogue only pauses at speaker lines, normally.

But, what if you want to wait for something before doing the next thing? Or, what if you want to just add a delay generally, say for a dramatic pause?

This section describes how to do that.

Wait Seconds

Need to delay the next thing in the script by a fixed amount of time? Sure:

[event WaitSeconds 2.5]

Wait for Notification

If you need dialogue to wait until you send a notification, use the WaitNotify event.

To wait for any notification:

[event WaitNotify]

To wait for a specific notification:

[event WaitNotify `NotificationName`]

Notifications are raised by your code, via the Blueprint node "Notify Waiting Dialogue of Event", or in C++ via USudsProExtWait::NotifyWaitingDialogue.

Wait For Camera Fade

Need to wait for a fade out / fade in to finish?

[event WaitFade]

Wait For Camera Effects

If you want to wait for all camera effects to finish (shake, dolly, whatever):

[event WaitCamera]

Wait for Character Animations

Need to wait for a character animation to finish? This is how you do that:

[event WaitCharacter `CharacterName`]

Wait for Sequences

Wait for a Sequence to End

If you don't want the next thing in the script to happen until the Level Sequence has finished, then do this:

[event WaitSequenceEnd]

Wait for Sequence Notification

To wait until a sequence sends any notification via "Notify Dialogue Of Sequence Event":

[event WaitSequenceNotify]

To wait for a specific notification via "Notify Dialogue Of Sequence Event":

[event WaitSequenceNotify `NotificationName`]

Wait for Everything

Say you just want to wait for anything that's animated / delayed by SUDS Pro; you can do that too:

[event WaitAll]

Waiting and Custom Events

If you use the standard ISudsParticipant function "On Dialogue Event", your custom events will be received as soon as they in are scope in between speaker lines. Take this example:

Manny: Bye!
[event CharacterAnim `Manny`, `Wave`, 3]
[event WaitCharacter `Manny`]
[event FadeOut]
[event MyCustomEvent]

In this case, the SUDS Pro event FadeOut will not execute until the WaitCharacter completes. However, your participant will receive the MyCustomEvent signal via "On Dialogue Event" immediately after the player continues after the "Bye!" line - it won't wait.

This might be what you want. In fact, SUDS Pro receives all these events immediately too, but it queues them so that the FadeOut doesn't happen until after the WaitCharacter.

If you also want to queue your events, implement ISudsProQueuedEventHandler on your participant, and instead of using "On Dialogue Event", use "On Queued Dialogue Event". This will only be called after the wait is resolved.


See Also