[Free] ElgEditorScripting - Editor Utility Widget Extension (Events and stuff)

ElgEditorScripting is an Unreal Engine 4.22 editor only plugin created to extend the possibilities of Editor Utility Widget scripting.

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 in the level editor, 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.

The plugin and test/example project can be found on github.

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

http://elgsoft.com/Images/EditorScripting/LEC_OnActorSelectionChanged.png

Example of spawn an Actor in the world on the mouse cursor position on middle mouse button click.

http://elgsoft.com/Images/EditorScripting/LEC_SpawnOnClick.png

ContentBrowser events that are exposed are:
OnAssetCreated, OnAssetRemoved, OnAssetRenamed,
OnAssetSelectionChanged, OnAssetSelected, OnAssetDeselected.

http://elgsoft.com/Images/EditorScripting/CBC_OnAssetAdded.png

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.

http://elgsoft.com/Images/EditorScripting/CC_ReadInt.png

The plugin expose Module Manager functionality to blueprints so you can Load/Unload/Recompile module from Editor Widgets.
Example of editor widget that recompile the ElgEditorScripting plugin so I don’t have to use the Module tab :slight_smile:

http://elgsoft.com/Images/EditorScripting/ModuleManager_Recompile.png

The SlowTask progress bar UI is exposed so your tool can show the progress of longer task. It has an option if the user should be able to cancel the progress.

http://elgsoft.com/Images/EditorScripting/slowtask.gif

Comes with helper blueprint nodes to work on Blueprint Objects, like the possibility to add/remove Components, add/remove Interfaces and Compile them.

http://elgsoft.com/Images/EditorScripting/Ublueprint_add_remove_component.png

Helper blueprint nodes for working with AssetData and AssetObject.

http://elgsoft.com/Images/EditorScripting/asset_nodes.png

Blueprint nodes that add the possibility to change the tab name, *open or close another Editor Widget tab.
*Opening and closing of Editor Widgets only work if the widget has been Run before.

http://elgsoft.com/Images/EditorScripting/EditorWidgetToggle.gif

http://elgsoft.com/Images/EditorScripting/BP_OpenEditorWidget.png

**1.0.1 **Exposed PluginManager to Blueprints. So now you can Enable/Disable, get information about all plugins etc.

I made a custom PluginBrowser in EditorWidgets using the new PluginManager nodes.

This is pure gold! I’m in love with “run construction scrips” and mouse events)
Thank you so much! :slight_smile:

This is really useful, thanks a lot for this!

This is amazing! Than you so much for your work!

I know you just updated it for 24, but I’m unable to get it to build for Macs with Xcode 11.4.1. There were errors where some function and property declarations lacked a category specifier. Other errors included out-of-line definitions in UElgEditorContext_LevelEditor, undeclared identifiers, and so forth.

man… you are really amazing …
i have some question if you dont mind
how can i change folders color in content browser or in world outliner …
and how can i make a material creater the diffuse in the albedo and the relection map connected to the mettalic … etc
and thank you …
finally are there any doc about your plugin … it will be very helpfull

thankx …
amr srour

and i found something really bad
there is some BP nodes not found in 4.25 and 2.26 like Creat Texture Node !!!

Does this still work? I am currently using version 4.25.3 and it throws a lot of errors on compile.

Hi!
I created pull request:
Fixed compile errors for plugin after migration to UE 5.0.0

Have a epic day!

I’m hitting a snag with the LaneTrace function that things like GetMousePosition etc require.

Basically I can’t seem to figure out a way to use this without first clicking into the viewport window. I’m trying to create some drag & drop functionality with a Utility Widget and because you loose focus of the viewport when I click and drag from the Utility Widget basically any function that requires this LineTrace function fails.

Just wondering if next iteration of this you might consider adding something that can get around this.

Hey ElgEditor users!

I’m struggling to implement something, I wonder if anyone can help:

The readme says the plugin exposes OnInputKey - does this mean we can fire custom hotkeys outside of PIE? That is what I’m trying to implement, but I’m not sure how to proceed. Love to hear if anyone had any thoughts on this. Pic shows a comically simple example.

Thanks!

Hi. How do I use this? Any tips or examples?

UPD: Uh nevermind. I think I found the reason why it wasnt doing anything and it was a mistake in my widgets logic.

Also I was woundering. Is it possible to make so the user can open multiple instances of the same utility widged? Like when you call Open Editor Widged you get a reference to it as well and every time you call this “Open Editor Widged” you get a new one or lets say with another function something like “Register New Editor Widged” you can convert it to a new instance.

Something like that. What do you think?