{"id":5122,"date":"2022-07-10T09:21:45","date_gmt":"2022-07-10T07:21:45","guid":{"rendered":"https:\/\/store.algosyntax.com\/?post_type=asx-lms-tutorial-cpt&#038;p=5122"},"modified":"2026-03-09T11:19:15","modified_gmt":"2026-03-09T09:19:15","slug":"ue5-how-to-use-the-level-sequence-director","status":"publish","type":"asx-lms-tutorial-cpt","link":"https:\/\/store.algosyntax.com\/tutorials\/unreal-engine\/ue5-how-to-use-the-level-sequence-director\/","title":{"rendered":"UE5 How To Use The Level Sequence Director"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"5122\" class=\"elementor elementor-5122\" data-elementor-post-type=\"asx-lms-tutorial-cpt\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-8004e02 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"8004e02\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-d1c8738\" data-id=\"d1c8738\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-003cfca elementor-widget elementor-widget-text-editor\" data-id=\"003cfca\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>We are going to explain the Level Sequence Director Blueprint with the assumption that you understand what <a href=\"https:\/\/docs.unrealengine.com\/5.0\/en-US\/delegates-and-lamba-functions-in-unreal-engine\/\" target=\"_blank\" rel=\"noopener\">Delegates<\/a>\u00a0in C++ are, so if you don&#8217;t understand them you&#8217;re probably not going to follow this tutorial well.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-ecc3509 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"ecc3509\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-93859b1\" data-id=\"93859b1\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-81e22ff elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"81e22ff\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-inner-column elementor-element elementor-element-86f2cf2\" data-id=\"86f2cf2\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-0eddc0b elementor-widget elementor-widget-heading\" data-id=\"0eddc0b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">The Level Sequence Event Track(s)<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b9d9003 elementor-widget elementor-widget-text-editor\" data-id=\"b9d9003\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Before we can understand the purpose of the level sequence director blueprint, We first need to understand what the &#8220;<strong>events<\/strong>&#8221; inside a level sequence <a href=\"https:\/\/docs.unrealengine.com\/5.0\/en-US\/cinematic-event-track-in-unreal-engine\/\" target=\"_blank\" rel=\"noopener\">events track<\/a> mean.\u00a0<\/p><p>The events track gives you the ability to &#8220;fire off <a href=\"https:\/\/docs.unrealengine.com\/5.0\/en-US\/fire-blueprint-events-during-cinematics-in-unreal-engine\/\" target=\"_blank\" rel=\"noopener\">events<\/a>&#8221; from sequencer.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-06e0f96 elementor-widget elementor-widget-heading\" data-id=\"06e0f96\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">What does firing off events really mean<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-51aa826 elementor-widget elementor-widget-text-editor\" data-id=\"51aa826\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p><strong>Events<\/strong> in a level sequence track behave just the same as Single-Cast <a href=\"https:\/\/docs.unrealengine.com\/4.27\/en-US\/ProgrammingAndScripting\/ProgrammingWithCPP\/UnrealArchitecture\/Delegates\/\" target=\"_blank\" rel=\"noopener\"><strong>Delegates.<\/strong><\/a><\/p><p>\u00a0<\/p><p>So &#8220;<strong>firing off events<\/strong>&#8221; in sequencer is the same as Broadcasting\/Executing the delegate. Every time you add a keyframe in an events track, you&#8217;re broadcasting\/executing the delegate.<\/p><p>\u00a0<\/p><p>This then brings us to the Level Sequence <strong>Director Blueprint.\u00a0<\/strong><\/p><p>Which hosts the callback functions that will be called when this delegate(event) is executed\/broadcast.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-bf81039 elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"bf81039\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-inner-column elementor-element elementor-element-c4bb416\" data-id=\"c4bb416\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-291800a elementor-widget elementor-widget-heading\" data-id=\"291800a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">The purpose of the level sequence director blueprint<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fe33582 elementor-widget elementor-widget-text-editor\" data-id=\"fe33582\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>The main purpose of the Level Sequence Director Blueprint is to host and define the callback functions that will be bound and run to the delegates(event) when the delegates are broadcast.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6912ea7 elementor-widget elementor-widget-heading\" data-id=\"6912ea7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">The Events Payload Data<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-bdda9ef elementor-widget elementor-widget-text-editor\" data-id=\"bdda9ef\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>&#8220;<strong>Events<\/strong>&#8221; keyframes have a section for &#8220;<strong>payload data<\/strong>&#8221; under properties when you right click the keyframe.<\/p><p>This payload data is the same as <a href=\"https:\/\/store.algosyntax.com\/tutorials\/unreal-engine\/ue5-delegate-params-vs-payload-data\/\">payloads<strong> in a c++ delegate.<\/strong><\/a><br \/><br \/><\/p><p>Meaning the function we define in the Director Blueprint MUST match our payload data in terms of arguments, just like a C++ delegate binding function.<\/p><p>And it works exactly the same, the data we add as payload data will get passed to our functions in the Director BP.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9802300 elementor-widget elementor-widget-heading\" data-id=\"9802300\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Level Sequence Player Reference<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b8c9c73 elementor-widget elementor-widget-text-editor\" data-id=\"b8c9c73\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>The director BP class already contains a reference to the <a href=\"https:\/\/docs.unrealengine.com\/4.27\/en-US\/API\/Runtime\/LevelSequence\/ULevelSequencePlayer\/\" target=\"_blank\" rel=\"noopener\"><strong>U<\/strong><strong>LevelSequencePlayer<\/strong> <\/a>that&#8217;s playing the level sequence.<\/p><p>This means you can already query data like current playtime, the Level Sequence Tracks, etc.. right within the Director Blueprint.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b881126 elementor-widget elementor-widget-text-editor\" data-id=\"b881126\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-0243758 elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"0243758\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-inner-column elementor-element elementor-element-b15c2a6\" data-id=\"b15c2a6\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-462c7fe elementor-widget elementor-widget-heading\" data-id=\"462c7fe\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Use Case Examples of the Director BP<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8db5415 elementor-widget elementor-widget-text-editor\" data-id=\"8db5415\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>You can either use the Director BP to respond to event tracks OR respond to pre-existing ULevelSequencePlayer Delegates.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<div class=\"elementor-element elementor-element-d526aa2 elementor-widget elementor-widget-text-editor\" data-id=\"d526aa2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<ol><li>Create an event at the 0 time, and when that event is called bind another function to LevelSequencePlayer delegates.<\/li><li>Create an event that passes the current actors in the world , where you can query their location or other variables. This is mostly useful for spawnables as they only exist within the Level Sequence. The actors can be passed as payload data.<\/li><li>Create events that switch the current Animation blueprint of the actor in the level Sequence at different times of playbacks. The anime bp can also be passed in as payload data.<\/li><li>Create events that modify spawnable variables and more&#8230; possibilities are endless.<\/li><\/ol>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"featured_media":0,"template":"","asx-lms-tutorial-categories":[63,60,45],"asx-lms-tutorial-tags":[59],"class_list":["post-5122","asx-lms-tutorial-cpt","type-asx-lms-tutorial-cpt","status-publish","hentry","asx-lms-tutorial-categories-sequencer","asx-lms-tutorial-categories-animation-system","asx-lms-tutorial-categories-unreal-engine","asx-lms-tutorial-tags-animation","entry"],"acf":[],"_links":{"self":[{"href":"https:\/\/store.algosyntax.com\/asx-rest\/wp\/v2\/asx-lms-tutorial-cpt\/5122","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/store.algosyntax.com\/asx-rest\/wp\/v2\/asx-lms-tutorial-cpt"}],"about":[{"href":"https:\/\/store.algosyntax.com\/asx-rest\/wp\/v2\/types\/asx-lms-tutorial-cpt"}],"version-history":[{"count":0,"href":"https:\/\/store.algosyntax.com\/asx-rest\/wp\/v2\/asx-lms-tutorial-cpt\/5122\/revisions"}],"wp:attachment":[{"href":"https:\/\/store.algosyntax.com\/asx-rest\/wp\/v2\/media?parent=5122"}],"wp:term":[{"taxonomy":"asx-lms-tutorial-categories","embeddable":true,"href":"https:\/\/store.algosyntax.com\/asx-rest\/wp\/v2\/asx-lms-tutorial-categories?post=5122"},{"taxonomy":"asx-lms-tutorial-tags","embeddable":true,"href":"https:\/\/store.algosyntax.com\/asx-rest\/wp\/v2\/asx-lms-tutorial-tags?post=5122"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}