Osero Suite by Jeren Osero
FabYouTubeJeren Osero
  • Osero Suite
  • About
  • Frequently Asked Questions
  • Support
  • Featured Assets
    • [FEATURED] Module Creator
  • Supported Assets
    • Module Creator
      • About
      • Changelog
      • How to Use (5.2+)
        • Tutorial
        • Accessing the Module Creator
        • UI Outline
        • Module Templates
        • Plugin Content
        • Project Settings
      • How To Use (Legacy 5.1)
      • Frequently Asked Questions
    • Plugin Sync Tool
      • About
      • Changelog
      • How to Use (5.2+)
        • Tutorial
        • Accessing the Plugin Sync Tool
        • UI Outline
        • Project Settings
      • How to Use (Legacy 5.1)
    • Render Results Screen
      • About
      • Changelog
      • How to Use (5.2+)
        • Tutorial
        • Making Sure the Plugin is Active
        • Movie Render Queue Job Additions
        • UI Outline
          • Render Results Window
          • Render Graph
          • Contact Sheet
        • Accessing Previous Render Results
        • Data Handler
        • Plugin Content
        • Project Settings
        • Code Reference
          • Classes
            • UOS_RRS_DataHandler
            • UOS_RRS_RenderDataLibrary
          • Structs
            • FOS_RRS_JobData
            • FOS_RRS_ResultData
            • FOS_RRS_ShotData
          • Enums
            • EOS_RRS_RenderResult
      • How to Use (Legacy 5.1)
  • TECHNICAL NOTES
    • Foreword
    • Unreal Engine Notes
      • Actor Components
        • Component Transforms
      • Blueprints
        • Add Function to Promotable Operator Nodes
      • Compile Errors
        • Implicit Capture of 'This' via '[=]' is Deprecated
        • Specified Type Modifiers Are Not Allowed Here
        • Static Function in Namespace Not Defined
        • Circular Dependency Detected
        • Inconsistent Dll Linkage
        • Overloaded Member Function Note Found (Compile Error in .gen File)
      • Debugging
        • UIAction.h Line 139
      • Details Customisation
        • Add External Property to Details Panel
        • Default Slate Styles
      • Ed Modes
        • Registering Editor Modes
      • Editor/Engine
        • Get Engine Version in C++
        • Extending the Editor with FExtender
      • Input
        • Get Key or Mouse Button in C++
        • Mouse Cursor Location in World (3D Space)
      • Level Editor
        • Select Actor Component via C++
      • Meta Specifiers
        • Reference
        • Edit Condition
        • Bind Widget
      • Rendering
        • Set Graphics Card Timeout
      • Sequencer
        • Project Default: Completion Mode
      • Slate
        • Default Editor Icons
        • Test Suite
        • Set Default Value for Slate Arguments
        • Cast Between Different Slate Classes
        • Set UObject Delegate for TAttribute<T>
      • Trace
        • Simple Line Trace
        • Complex Traces
          • ETraceTypeQuery
          • EObjectTypeQuery
      • UObject
        • "Config" Specifier Does not Work Properly in 5.4+
      • UPlugins
        • Loading Phases
      • UPROPERTIES
        • GetOptions (meta)
      • Viewport
        • Get Piloted Viewport Actor
        • Update Pivot Location
      • Water Plugin
        • General
        • C++ Summary
        • Details Customisation
        • Classes Overview
          • UWaterSplineMetadata
          • FWaterSplineComponentVisualizer
        • Water Meshes
    • Windows Notes
      • Get Around "This App Has Been Blocked For Your Protection"
      • Windows Keyboard Layout Boot Loop
      • Disable Copilot
      • Disable "Search the Web" in Windows Search
    • Visual Studio Notes
      • Turn Off Auto Brackets
      • Disable Unreal Engine Integration Log
  • BUY OSERO SUITE PRODUCTS
    • Fab
  • SOCIALS
    • YouTube
    • Rumble
    • Twitter/X
    • Instagram
    • LinkedIn
    • Jeren Osero Website
Powered by GitBook
On this page
  • Example
  • Extensibility Managers
  1. TECHNICAL NOTES
  2. Unreal Engine Notes
  3. Editor/Engine

Extending the Editor with FExtender

Example

TSharedPtr<FExtender> TestExtender = MakeShareable(new FExtender);
TestExtender->AddToolBarExtension("CommonActions", EExtensionHook::After, NULL, FToolBarExtensionDelegate::CreateStatic(&FOS_SLV_CommandsCallbacks::BuildToolbar));

FLevelEditorModule& LevelEditorModule = FModuleManager::LoadModuleChecked<FLevelEditorModule>("LevelEditor");
LevelEditorModule.GetToolBarExtensibilityManager()->AddExtender(TestExtender);
  1. Create the extender.

  2. Add the toolbar (or menu) extension, defining where it should be placed and the create function.

  3. Find the correct module.

  4. Add the extender to the Extensibility Manager

Extensibility Managers

Global

Add to all asset editors - ie, Actor Blueprint, Animation Blueprint, Data Asset, etc

FAssetEditorToolkit::GetSharedToolBarExtensibilityManager()->AddExtender(TestExtender);

Level Editor

FLevelEditorModule& LevelEditorModule = FModuleManager::LoadModuleChecked<FLevelEditorModule>("LevelEditor");
LevelEditorModule.GetToolBarExtensibilityManager()->AddExtender(TestExtender);

Persona

FPersonaModule& PersonaModule = FModuleManager::LoadModuleChecked<FPersonaModule>("PersonaModule");
PersonaModule.GetToolBarExtensibilityManager()->AddExtender(TestExtender);

Animation Blueprint

IAnimationEditorModule& AnimationEditorModule = FModuleManager::GetModuleChecked<IAnimationEditorModule>("AnimationEditor");
AnimationEditorModule.GetToolBarExtensibilityManager()->AddExtender(TestExtender);

Actor/Object Blueprints

NOT Animations, Data Assets, etc - ones that have a normal Blueprint Graph

FBlueprintEditorModule& BlueprintEditorModule = FModuleManager::LoadModuleChecked<FBlueprintEditorModule>("Kismet");
BlueprintEditorModule.GetMenuExtensibilityManager()->AddExtender(TestExtender);

Last updated 3 days ago