Skip to content

ElgEditorScripting is an Unreal Engine 5 editor only plugin created to extend the possibilities of Editor Utility Widgets.


Notifications You must be signed in to change notification settings


Folders and files

Last commit message
Last commit date

Latest commit



61 Commits

Repository files navigation


ElgEditorScripting is an Unreal Engine 5.0 editor only plugin created to extend the possibilities of Editor Utility Widgets.

The plugin add basic Level Editor events like OnActorAdded/Deleted/Selected, OnBegin/EndPIE, OnMouseClick, OnInputKey and more.
For the Content Browser it has events like OnAssetCreated/Removed/Renamed and Selected/Deselected.

It also add nodes to get the MousePosition, Read/Write to config files, Load/Reload/Compile Modules, Show the SlowTask UI, Add/Remove Components/Interfaces. Open/Close EditorWidgets* and set the EditorWidget tab Label and tooltip., Unreal Forum thread

1.0.5 Fixed so SlowTask work again in UE5.

1.0.4 Added support to get an Editor Widget instace so you can access it and do cool stuff. GetEditorWidget

1.0.2 Exposed Notifications to Blueprints.

1.0.1 Exposed PluginManager to Blueprints.

Here is a Custom PluginBrowser created in EditorWidgets using the new PluginManager nodes. PluginBrowser

Level Editor Context

Thru the Level Editor Context object, you can bind events and query level editor specific data like mouse position or if the level editor viewport are in focus.

Examples can be found in EW_EditorContexts_LevelEditor.

Events that are exposed in the plugin are:
OnLevelActorAdded, OnLevelActorDeleted, OnLevelActorAttached, OnLevelActorDetached, OnActorMoved, OnActorSelectionChanged, OnActorSelected, OnActorDeselected, OnWorldAdded, OnWorldDestroyed, OnMapOpened, OnMapChanged, OnEditorModeChanged, OnEnterMode, OnExitMode, OnEditorCameraMoved, OnFocusViewportOnActors, OnBeginPIE, OnPausePIE, OnResumePIE, OnEndPIE, OnBeginStandaloneLocalPlay, OnLeftMouseClick, OnMiddleMouseClick, OnRightMouseClick, OnInputKey.

Blueprint Nodes:
GetMousePosition, GetMousePositionWorld, GetActorUnderMouse, LineTrace, HasFocus, GetEditorMode, IsInPIE, IsInEditor, IsViewportRealtime, SetViewportRealtime, RestoreViewportRealtime, MoveViewportCameraToActor.

Example of spawning and actor on the mouse cursor position in the level editor on middle mouse click. LevelEditorContext_spawn

Asset Browser Context

Thru the Asset Browser Context object, you can bind asset related events.

Examples can be found in EW_EditorContexts_AssetBrowser.

Events that are exposed in the plugin are:
OnAssetCreated, OnAssetRemoved, OnAssetRenamed, OnAssetSelectionChanged, OnAssetSelected, OnAssetDeselected

Config Context

The Config Context let you read/write to config ini files in the "Project/Config/" folder by specifying the Config filename and the config section.

Examples can be found in EW_EditorContexts_Config.

Supported data types are:
String, Int, Float, Text, Bool, StringArray, Color, Vector2d, Vector, Vector4, Rotator.

Module Manager

The plugin expose Module Manager functionality to blueprints so you can Load/Unload/Recompile module from Editor Widgets.

Examples can be found in EW_BlueprintNodes_ModuleManager and EW_ToolbarButton_Compiler.

GetModuleNames, GetModulesStatus, GetModuleStatus, RecompileModule, LoadModule, UnloadModule, ReloadModule, CanShutdownModule, CanRecompileModule, IsModuleLoaded, CanHotReloadModule, CanDynamicReloadModule.

Slow Task

The plugin exposes the SlowTask progress bar UI so your tool can show the progress. It has an option if the user should be able to cancel the progress.

Examples can be found in EW_ToolbarButton_SlowTask.

BeginSlowTask, EndSlowTask, StatusUpdate, UpdateProgress, RecivedUserCancel.


The plugin has a bunch of helper blueprint nodes to work on Blueprint Objects, like the possibility to add/remove Components, add/remove Interfaces and Compile them.

Examples can be found in EW_BlueprintNodes_UBlueprint.

AddComponent, RemoveComponent, GetInterfaces, ImplementInerface, AddInterface, RemoveInterface, CompileBlueprint, GetBlueprintFromAssetData, GetComponents, GetComponentsOfClass, GetComponentOfClass.


Helper blueprint nodes for working with AssetData and AssetObject.

Examples can be found in EW_BlueprintNodes_Assets.

FixRedirectors, GetAssetDateModified, GetAssetDiskPath, GetAssetObjects, GetAssetObjectsMetaData, GetAssetObjectsWithMetaDataKey, GetMetaDataBranch, GetAssetMetaData.


Blueprint nodes that add the possibility to change the tab name, open or close another Editor Widget.

  • Opening and closing of Editor Widgets only work if the widget has been Run before.



Examples can be found in EW_BlueprintNodes_EditorWidget.

OpenEditorWidget*, CloseEditorWidget*, ToggleEditorWidget*, IsEditorWidgetOpen, IsEditorWidgetRegistered, SetEditorWidgetLabel, GetEditorWidgetLabel, SetEditorWidgetToolTip, EditorWidgetDrawAttention.


If you modify a Level Actors transformation in an Editor Widget the editor won't be notified about the change and wont prompt if you want to save the change when closing the map, so the plugin comes with the MarkActorAsDirty node that will fix that.

Examples can be found in EW_ToolbarButton_MoveSelectedToMouse and EW_ToolbarButton_RunConstructionScript.

RunConstructionScript, MarkActorAsDirty

Plugin Manager

Expose plugin functionality to blueprints so you can Enable/Disable plugins, Package a plugin or get the description with information about the plugin.

Examples can be found in EW_BlueprintNodes_PluginManager.

EnablePlugin, DisablePlugin, SetPluginEnabled, GetPluginIconTexture, GetPluginDescription, GetPluginDescriptions, GetPluginCategory, PackagePlugin.


Expose Notification functionality to blueprints so you can show notifications from blueprint nodes.



Just drag the Plugins/ElgEditorScripting folder into your /Plugins/ folder (create it at the same level as your content folder if you don't have one already) and open your project.


Copyright © 2019, Elg Soft. Licensed under the MIT License, see the file LICENSE for details.