{"id":3405,"date":"2022-05-23T08:52:06","date_gmt":"2022-05-23T06:52:06","guid":{"rendered":"https:\/\/store.algosyntax.com\/?post_type=asx-lms-tutorial-cpt&#038;p=3405"},"modified":"2026-03-09T00:34:08","modified_gmt":"2026-03-08T22:34:08","slug":"unreal-cpp-delegates-in-blueprints","status":"publish","type":"asx-lms-tutorial-cpt","link":"https:\/\/store.algosyntax.com\/tutorials\/unreal-engine\/unreal-cpp-delegates-in-blueprints\/","title":{"rendered":"[Tutorial] Unreal C++ Delegates In Blueprints"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"3405\" class=\"elementor elementor-3405\" 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-7e6b20a elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"7e6b20a\" 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-7742d89\" data-id=\"7742d89\" 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-9e6c639 elementor-widget elementor-widget-text-editor\" data-id=\"9e6c639\" 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>Our goal in this tutorial is to make a C++ Delegate (<a href=\"https:\/\/docs.unrealengine.com\/4.27\/en-US\/ProgrammingAndScripting\/Blueprints\/UserGuide\/EventDispatcher\/\" target=\"_blank\" rel=\"noopener\">Event Dispatcher<\/a>) that other developers can use and see in Blueprints. Designers\/Developers should be able to bind to this delegate and call their desired functions when it&#8217;s broadcast.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-981ec7f elementor-widget elementor-widget-heading\" data-id=\"981ec7f\" 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\">Choosing The Correct Delegate Type<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-678db38 elementor-widget elementor-widget-text-editor\" data-id=\"678db38\" 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>Anytime you want your C++ code to work with BP, it has to support <strong>reflection.\u00a0\u00a0<\/strong> The keyword is <strong>Reflection,<\/strong> and of the four types of delegates listed, only 1 supports Reflection.<\/p><p>\u00a0<\/p><p>According to the Documentation, <a href=\"https:\/\/docs.unrealengine.com\/4.27\/en-US\/ProgrammingAndScripting\/ProgrammingWithCPP\/UnrealArchitecture\/Delegates\/Dynamic\/\" target=\"_blank\" rel=\"noopener\"><strong>Dynamic Delegates<\/strong><\/a> are Delegates that can be serialized and support <strong>reflection<\/strong>. This is the only type of C++ delegate Blueprints will see and bind to.\u00a0<\/p><p>\u00a0<\/p><p>Unreal Engine has so far 4 Types of delegates in their Documentation. They are Single Cast Delegates, Multi-Cast Delegates, Event Delegates, and Dynamic Delegates.\u00a0<\/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>\n\t\t","protected":false},"featured_media":0,"template":"","asx-lms-tutorial-categories":[58,45],"asx-lms-tutorial-tags":[46],"class_list":["post-3405","asx-lms-tutorial-cpt","type-asx-lms-tutorial-cpt","status-publish","hentry","asx-lms-tutorial-categories-unreal-c-api","asx-lms-tutorial-categories-unreal-engine","asx-lms-tutorial-tags-cpp","entry"],"acf":[],"_links":{"self":[{"href":"https:\/\/store.algosyntax.com\/asx-rest\/wp\/v2\/asx-lms-tutorial-cpt\/3405","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\/3405\/revisions"}],"wp:attachment":[{"href":"https:\/\/store.algosyntax.com\/asx-rest\/wp\/v2\/media?parent=3405"}],"wp:term":[{"taxonomy":"asx-lms-tutorial-categories","embeddable":true,"href":"https:\/\/store.algosyntax.com\/asx-rest\/wp\/v2\/asx-lms-tutorial-categories?post=3405"},{"taxonomy":"asx-lms-tutorial-tags","embeddable":true,"href":"https:\/\/store.algosyntax.com\/asx-rest\/wp\/v2\/asx-lms-tutorial-tags?post=3405"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}