Action Object Blueprints

When making Action Objects for your project you will generally want to make a Blueprint Class of the StandardActionObject Class. You can use the ActionObjectModel but this is a very basic class that exists without activation and deactivation integrated into its functionality. There is a StandardActionMultiObject designed for if you want the same object as several locations, but it is buggy in its current state and is not advised for use currently. It is left here though if you wish to experiment with it. From these base Blueprint classes you will want to make child blueprints for each individual object. We will start here by explaining the base BP_StandardActionObject setup and then get into its child Blueprints.

Once inside the BP_StandardActionObject you will likely want to set variables for the Action Sequence Activity Monitor and Action Sequence Handler. The Activity Monitor deals with looking for when an Action Object sequence should begin and executing that sequence. The Handler will handle the sequences by setting them active when requested, assigning which actions are valid for the next sequence, and noting when a sequence is active or inactive.


One of the most useful functions for you is the Custom Sequence Call. This function is called from both Custom Type sequences and will execute from the switch whichever value is input for the Custom Type Identifier of the Action Guide. Given the Object References array that is passed in you can do most anything with your custom sequences. You can look at the BP_StandardActionObject in the plugin content folder to see an example of how I used this to pass in and play an SoundWave object. Make sure to end each new sequence with the Prep for Next Sequence call. Without this your object will never set the Next Sequence Option values or move forward in its sequence series.
The second most useful function might be the Action Options Call. This extends the Action Options section of the Action Guide by allowing you to make your own options that every child Action Object can then use. Similar to the Custom Sequence Call this will execute whichever switch option you input into the Custom Type Identifier. You can also pass in a String that you can use to help expand the functionality of these options. You can once again see an example of this in the BP_StandardActionObject in the plugin content folder.


Called whenever an Action Object is set active for the player to begin interacting with it. Is good to use in the BP_StandardActionObject if you want to set/reset a value every time a new object is made active. Also, if you want to do something on the activation of a specific ActionObject you could use this in a child blueprint.

Works similar to Check on Activity Monitor Object Activation but called when the object deactivated. Can be used to help build up systems of your own around the ActionObject system or for one off executions. Note this could execute more than once. This is not an execute on EndStage, but whenever the object deactivates.

The 'Inactive' in this case means the ActionObject itself is active, but there is not sequence currently executing. The ActionObject will check the NextSequenceOptions available to see if it is a non-player action that needs to be executed. This is called every tick the object is active and not executing a sequence to see if a new sequence becomes available.

This is called each time a sequence is made active. Will execute right before the Action Options are checked and executed. Will be called after sequence action is set into operation.
Called after the sequence values have been assigned (allowing you to use them in your blueprint functions) but before the sequence action is executed. By calling the on the ActiveActionSequence from the Action Sequence Handler you can get all the values of the active sequence.


Called after the sequence values have been assigned (allowing you to use them in your blueprint functions) but before the sequence action is executed. By calling the on the ActiveActionSequence from the Action Sequence Handler you can get all the values of the active sequence.

The Pause and Resume Sequence functions have very helpful when you want to do actions that take a longer amount of time. If you are using the built in audio or animation sequences, the ActionObjectSystem will delay the next sequence for the length of those inputs. If you are doing a custom sequence or option you can use these to delay sequence execution until your finished with your sequence.
Action Object Child Blueprints
This is checked whenever a sequence is made active. Will execute right before the Action Options are checked and executed. This is called once on the first tick a sequence is made active by the ActionSequenceHandler.


Each Action Object will have a setup section you can adjust. You will NEED to input an Action Guide Name value that matches this object's row in the Action Guide. The Deactivation Timeout is how long it waits between deactivation checks to see if the player is outside the Action Object's trigger box to attempt deactivation. Actor That Triggers will effect which objects will trigger the trigger box, in most cases this should be left as 'None'. Allow Activation will say whether the object can be activated upon level start. Un-check if you don't want to activated it till later in the level. Action Buffer Time is the time between sequences. Without this Audio actions would mesh together with no time in-between their calls making the flow of conversation feel very unnatural.