Coder Social home page Coder Social logo

houssinemehnik / ue4-editorscriptingtoolsplugin Goto Github PK

View Code? Open in Web Editor NEW
217.0 18.0 33.0 57.13 MB

Extend and customize some part the Unreal Editor using Blueprints. The plugin comes with some basic tools samples.

Home Page: https://unrealengineresources.com

License: Other

C++ 99.17% C 0.31% C# 0.52%

ue4-editorscriptingtoolsplugin's Introduction

To Download Examples project or Compiled plugin version

Visit https://unrealengineresources.com/plugins

Editor Scripting Tools

What is Editor Scripting Tools Plugin ?

Editor Scripting Tools is an ue4 editor plugin providing a set of tools and utilities allowing to extend and customize some parts the unreal editor using Blueprints.

What are the current available Utilities and Features ?

  • Editor Mode Tool Utility
  • Component Visualizer Utility
  • Detail Customization Utility
  • User Defined Settings Utility
  • User Defined Actions
  • Editor User Widget
  • User Defined Placement Categories

Utilities

Utilities Blueprints & Assets

Assets Category

Utilities Common :

Utilities Common

ue4-editorscriptingtoolsplugin's People

Contributors

houssinemehnik avatar moppius avatar ryan-dowlingsoka avatar theenbywitch avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ue4-editorscriptingtoolsplugin's Issues

Editor User Defined Settings - Edit to saved local configs instead of default.

Hi! Another thing I was looking to learn how to do is save some user configuration of the edit-tool per user. This may not be what the EditorUserDefinedSettings are for.

Making
image
this change lets me change the user saved, but I'm not sure how I would guarantee that this is registered.

I think in my particular case I think I might put my config stuff in code, since that is relatively easy to do, but was wondering if you had thoughts on how to save editor mode like configuration settings per user.

( As example: I have a tool that has 2 sub-modes, I want to save which mode the user used last since in my tool most users will only ever use one of the two modes. )

DetailCustomization Changed the default value of UPROPERTY which class using EditInlineNew.

UCLASS(DefaultToInstanced, Blueprintable, EditInlineNew)
class DEMO_CLIENT_API UAttributeSet : public UObject
{
    GENERATED_UCLASS_BODY()
public:
...
};


USTRUCT(BlueprintType)
struct FAttrKeyValuePair
{
	GENERATED_BODY()
	UPROPERTY(BlueprintReadWrite, EditAnywhere)
	String Type;

	UPROPERTY(BlueprintReadWrite, EditAnywhere)
	TObjectPtr<UAttributeSet > AttrSet;
};

In DetailCustomizationInstance Blueprint, I get the customization object, read the data and override it with construct object by class, refresh the panel can see the instance has config in panel. However, when I changed the Map or closed the editor, the instance object is reset to None. It seems like the Construct Object is destory.
How can I overrider the blueprint default instance.

AssetThumbnailWidget header name conflict

error : Two headers with the same name is not allowed. 'Plugins\EditorScriptingTools\Source\EditorScriptingTools\Private\Widgets\AssetThumbnailWidget\AssetThumbnailWidget.h' conflicts with 'ue5\Engine\Source\Editor\UMGEditor\Public\Components\AssetThumbnailWidget.h'

Missing Icon for AssetThumbnailWidget_16x.png

https://github.com/mhousse1247/UE4-EditorScriptingToolsPlugin/blob/c40c768e1c4b75f59d531551b31d580b0936b5cd/Plugins/EditorScriptingTools/Source/EditorScriptingTools/Private/EditorScriptingToolsStyle.cpp#L139

Hi!

We've hit a warning on the referenced icon that seems to be missing.
"Resources/Icons/AssetThumbnailWidget_16x.png"

Isn't in the project, but is referenced in EditorScriptingToolsStyle.cpp#L139

My guess is this icon just got missed from being added, but if we need to remove the style like that works too.

Monolithic headers in an engine plugin warning.

1>Module.EditorScriptingTools.cpp (0:40.79 at +0:00)
warning : Monolithic headers should not be used by this module. Please change it to explicitly include the headers it needs.

Hi, great plugin! This warning shows up during compilation. The use of #include "Engine.h" or #include "Engine/Engine.h" can greatly bloat module startup and build times. Would be good to have those removed.

Register OnExecuteUserDefinedAction on tool start and end.

Hi!

I was trying to use UserDefinedActions as a way to do particular user events in an Editor Mode Tool. I found that the Event On Execute User Defined Action was not bound to.

image

I found that if on ReloadTool and UnloadTool I could register the OnExecuteUserDefinedAction to get around this, but then was wondering if I was just using these used defined actions wrong. Perhaps I should just be checking for particular inputs in the editor mode instead? I could do that in the receive tick and check the currently down keys, but that felt wrong to me: but I realized I might be missing something more obvious.

BluEdMode.cpp::ReloadTool()

				ToolBlueprint->OnRegisterDone();

				if (GEditor)
				{
					GEditor->OnBlueprintReinstanced().AddSP(this, &FBluEdMode::HandleAnyBlueprintReinstanced);

					//Addition: Bind to execute user defined action.
					UEditorEventsSubsystem* EditorEventsSubsystem = GEditor->GetEditorSubsystem<UEditorEventsSubsystem>();
					if (EditorEventsSubsystem)
					{
						EditorEventsSubsystem->OnExecuteUserDefinedAction.AddDynamic(ActiveToolWeakPtr.Get(false), &UEditorModeToolInstance::OnExecuteUserDefinedAction);
					}
				}
void FBluEdMode::UnloadTool(bool bRefreshSlateWidget /*= true*/)
{
	if (GEditor)
	{
		GEditor->OnBlueprintReinstanced().RemoveAll(this);

		//Addition: Unbind to execute user defined action.
		UEditorEventsSubsystem* EditorEventsSubsystem = GEditor->GetEditorSubsystem<UEditorEventsSubsystem>();
		if (EditorEventsSubsystem)
		{
			if (ActiveToolWeakPtr.IsValid(true))
			{
				EditorEventsSubsystem->OnExecuteUserDefinedAction.RemoveAll(ActiveToolWeakPtr.Get(true));
			}
		}
	}

(Again, I can't say how much I am absurdly impressed with this plugin. Really fantastic. πŸ‘ πŸ‘ πŸ‘ )

Editor Mode : On Level Save Override

Would it be possible to consume and handle an On Level Save call?
In the tool I am creating a lot of work while in the editor mode is in a 'live' state. When the editor mode closes, currently, I bake all of the live information into static information. The problem then is if someone saves before closing the editor mode, the data is still in the live state, and isn't actually cached.

I was looking to see if there was an On Level Save hook I could handle in the Editor Mode, to catch that, and force a bake to the static mode, or forcibly close the editormode.

Component Visualizers and Details Customizations dont work inside BlueprintEditorViewport

When editing a blueprint, and showing the viewport, then selecting on a component, the component visualizer doesn't seem to be running any of its functions.

Details Customizations do show up in the details tab, however, the customized object(s) they return, are immutable and calls to them will result in warnings about missing World, and data changes won't be reflected to the component instance inside of the Blueprint Actor they are in

Question: Ability to create a dedicated editor mode for a specific blueprint class?

Hi! I've been really really impressed with this plugin, and it has helped me make a very complicated editor mode in a fraction of the time it would've taken in slate.

Thanks very much!

A question I have, is if you believe it is possible (and where should I start) if I wanted to create an editor module that started a particular edmode tool's blueprint.

I can see some places I could hack it into the existing setup, but I'd prefer to create a new edmode in C++ and then spawn the widget. I can probably figure my way around it, but if you have any insight or places to start looking, I'd appreciate it.

Does not build with No-Unity or No-PCH

This plugin runs great when AdaptiveUnity and PCH files are built, but fails non-unity non-pch builds quite dramatically. Lots of missing includes across .h and .cpp files.

Adding these lines to the EditorScriptingTools.Build.cs can help discover these issues:

    //PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs;
    PCHUsage = ModuleRules.PCHUsageMode.NoPCHs;
    bUseUnity = false;

[Suggestion] Make this plugin more convenient to be used in other project

Because it is a project right now, we can't simply clone it to our project's plugins folder.

Maybe you could create a new reposition which contains only the EditorScriptingTools plugin, and let this repo refer it as a submodule.

Or turn this project into a plugin, move the content to plugin content, and so on.

These are just my humble opinion. And this plugin is great, thanks a lot.

Feature Request: Option to `Register` Per-Project instead of Per-User

Currently when a ComponentVisualizer or DetailsCustomization is registered, it is only registered for the current user, and not for the whole project.

  • Collaborators have to be told to manually register these customizations when they are created.
  • It would be ideal if there was an option to register these on a project level. So once a dev is finished implementing one, they can set enable it for everyone.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.