(39) 's Extra Blueprint Nodes for You as a Plugin, No C++ Required!

Hey ! Been a while, it’s great to see plugin continuously expanding, great work as always! :slight_smile:

Is there a public document or link for the plugin guidelines? I don’t plan to put a plugin on the marketplace (not yet at least), but I would be interested in reading up on their coding standard for my free plugins.

If it’s something they give you when you submit, then no worries I’ll contact the marketplace team and ask for a copy.

Thanks ! :wink:

How to Package Plugins Using UE4 Marketplace C++ Coding Standard

Dear Community,

Here is the process you can use to package your plugin using Epic’s Clang compiling process that will automatically generate the binaries for you!

** is the process that UE4 Marketplace engineers use to prepare C++ plugins for world distribution!**

Again, the output of automation process is every packaged binary for every platform you have whitelisted (see below). It is an extremely handy tool!

Please note you should be sure to** specify your whitelist** to avoid having the automation tool trying to compile for platforms you dont/can’t support, especially true if you dont have the runtime installed on your computer.

is the same process I used in tandem with UE4 Marketplace engineers to get my Melee Plugin on the Marketplace. The CLang compiler is more rigorous than Visual Studio and so if process works for you, you are set!


**.Uplugin White List**

Here is my Victory Plugin .uplugin descriptor file:



```


{
	"FileVersion" : 3,
	"Version" : 1,
	"VersionName" : "1.0",
	"FriendlyName" : "Victory Plugin",
	"Description" : "120+ Custom Blueprint Nodes For You! <3",
	"Category" : "",
	"CreatedBy" : "",
	"CreatedByURL" : "http://www.",
	"DocsURL" : "http://www.",
	"MarketplaceURL" : "http://www.",
	"SupportURL" : "http://www.",
	"EnabledByDefault" : true,
	"CanContainContent" : false,
	"IsBetaVersion" : false,
	"Installed" : true,
	"RequiresBuildPlatform" : false,
	"Modules" :
	
		{
			"Name" : "VictoryBPLibrary",
			"Type" : "Runtime",
			"LoadingPhase" : "PreDefault",
			**"WhitelistPlatforms" :**
			
				"Win64",
				"Win32",
				"HTML5"
			]
		}
	]
}


```



The above is how you avoid getting errors when you are not trying to support android.

You could also specify Mac, Linux, or IOS or PS4 or XboxOne if you support those :)

The Batch File

JoyCompilePlugin.bat



@echo ~~~ Dont run  in your project dir, IT DELETES EVERYTHING IN ITS PATH ~~~ 
@echo ~~~ Also make sure you are using the correct Engine version for RunUAT for your project ~~~
@echo ~~~ Enjoy! - ~~~ 

"C:\Program Files (x86)\Epic Games\**4.12**\Engine\Build\BatchFiles\RunUAT.bat" BuildPlugin -Plugin="C:\Users\\Documents\Unreal Projects\Sun\Plugins\VictoryPlugin\VictoryBPLibrary.uplugin" -Package="%CD%\PluginPackaged" -Rocket


You can create a text file and rename it to .bat, if windows doesnt complain about extension change and it stays as text make sure you have enabled showing of file extensions in windows. (google “windows show file extensions”)


**Extremely Important Major Look At  First Please**

**Recommended Work Flow**

First  I used  tool it nuked my entire project because I specified output directory to be same place where my .uproject was located!

I recommend you do the following

1. Put my batch file above in its own subdirectory of your project, or somewhere completely different
2. Even then, specify a subdirectory of  new directory, just to avoid your .bat file getting nuked.
3. Subdirectory can be specified as %CD%/subdir for ease of use.

****!!! Warning !!!****

I hope I have made it clear, do NOT run  .bat file in the same directory as your .uproject, **your  entire project will get nuked with no recycle bin hope of recovery! ( I know from experience ;) )**

So to be safe, simply dont ever run  .bat file anywhere near your actual project!

**Safe Use Case**

Put my .bat file above here:



```


C:/NiceIsolatedUnusedDirectoryThatCanGetNuked


```



and then specify output directory:



```


C:/NiceIsolatedUnusedDirectoryThatCanGetNuked/output


```



Now when you run the .bat file you will get to keep the bat file, and your project!

:)

PS: I have to say   loudly since  is a public document and can be read/translated in many languages.

What is %CD% ?

will be translated as the current directory that you launched the .bat file from.

So if you store my batchfile here:



C:/MyStagingDir/JoyCompilePlugin.bat


then



%CD%/output 


will turn into



C:/MyStagingDir/output



**How to see the output? The screen disappears?**

Dont run the .bat file from within windows explorer, instead

1. right click on the folder where you put the .bat file
2. hold down left shift
3. right click with shift held down
4. now you will see an additional option "Open Command Prompt here"
5. now run the bat file, type Joy and then press tab and it will auto complete

Now if you get any errors, the errors will stay visible to you!

Victory!

Now you can compile your plugin using the UE4 Marketplace C++ coding standard too!

Enjoy!

[FONT=Comic Sans MS]:heart:

Perfect!

Thanks so much, much appreciated! :o

Increment Float and Int by Any amount, No Get/Set combo required!

Dear Community,

I’ve now released both a Increment Int and Increment Float BP node that streamlines your mathematical workflow!

These nodes change the value of the original input so you can not have to make a get/set combo of nodes.

Because these nodes change the value of the passed in parameter, an execution pin is required to control the order of events during gametime :slight_smile:

Here is an example of the += operator in C++



float x = 5;
x += 5; //value is now 10
x += 14; //value is now 24 


As you can see += operator greatly expedites the process of adding to an existing value!


**New Download for UE4 4.12 (55mb, Media Fire)**
https://www.mediafire.com/?ieovbd5l9d7yub2

♥ Please note I now use the UE4 Marketplace C++ Plugin Standard when packaging Victory plugin for you ♥

1. Win64 Development
2. Win64 Shipping  **&lt;~~~~~~ NEW!**
3. Win32 Development
4. Win32 Shipping
4. HTML5 Development
5. HTML5 Shipping **&lt;~~~~~~ NEW!**

Please see my instructions for [Packaging UE4 Plugins With Your Game](https://forums.unrealengine.com/showthread.php?3851-(39)--s-Extra-Blueprint-Nodes-for-You-as-a-Plugin-No-C-Required!&p=476476&viewfull=1#post476476).

Prior Engine Versions

**4.11: **VictoryPlugin11


**Donations can be sent to me via:**
http://lightningfitness.org/donate/

♥

Hi,

I had great fun with tool in v4.10.0, now I’m trying to take the project I built in that version over to v4.12.2. I heavily used the ISM tool from the Victory Editor plugin in v4.10.0, but it sounds like it no longer works in v4.12.2. Is correct, and is there any way to move my project over?

I’ve not used Visual Studio before, and I’m currently trying to figure out what to do with it, but any help would be appreciated.

Hi, any possible update on VictoryEdEngine 4.12? :stuck_out_tongue:

Its already … Working with it on my 4.12.2. Check above for link.

teak

Fundamental changes that Epic made to the InstancedStaticMesh component have made it harder for me to support the Victory ISM tool, it would require a lot of for me to make it work with the editor now, though if I understand correctly Epic took the spirit of my Victory ISM tool (github pull request) and turned into an actor merging that is now in 4.12. I saw it in the release notes somewhere :slight_smile:

Ouch, I was just told to use your plugin to mess with instanced static meshes :frowning:

Do you happen to have a tutorial about working with instanced and hierarchical instanced static meshes? I couldn’t find any tutorials, especially for the latter :frowning:

If you are wanting to learn how to use instanced static meshes in C++ my code that is still the VictoryEdEngine plugin will definitely be useful for anything you do during runtime!

The thing that doesnt work right now is having the instanced data get serialized on the property itself, so when the constructor runs the instances are cleared.

If you are working with ISM’s during runtime of my code will be extremely useful :slight_smile:

Unfortunately I don’t know much of C++ and I’d simply want to know how to make hierarchical instanced static meshes to build modular maps offline.

I’m sorry, but I really can’t manage to find it. Could you please post the link?
Are you sure we’re both talking about VictoryEdEngine and not VictoryEngine?

Thank you in advance.

Hi,
I noticed crash on in 4534 line in VictoryBPFunctionLibrary.cpp file (/EverNewJoy/VictoryPlugin/blob//Source/VictoryBPLibrary/Private/VictoryBPFunctionLibrary.cpp#L4534) when I try to load cooked texture larger than 500x500.

I get the error:

and nothing more… Any additional message and even not stack trace.

What’s interesting, the same texture but downloaded by DownloadImage node works good.

So let’s me introduce cases:

  1. 500x500 with DownloadImage works
  2. 960x960 with DownloadImage works
  3. 500x500 with cooked texture works
  4. 960x960 with cooked texture doesn’t work

Anyone knows what’s wrong?

Latest version of Victory Ed Engine (Vertex snapping!) is here:

https://wiki.unrealengine.com/File:VictoryEdEngine.zip#Latest_Version

Again please note I could not update the Victory ISM editor to 4.12 due to engine changes which have no simple workaround. I will have to examine indepth when permits :slight_smile:

Have fun with vertex snapping!

Strange that that only happens on Android, re: large textures, I will investigate at my nearest opportunity and let you know what I uncover, if anyone else has any contributions on the matter let us know!

:slight_smile:

UMG Suite of BP Nodes for You! Remove Widgets Of Class, Get First Widget of Class, and many more!

Dear Community,

Our lovely UE4 Community member contributed some new UMG nodes to Victory BP library, and I decided to take the opportunity to let you know about the full Suite of UMG BP nodes that are available to you in my Victory Plugin!

New From :

Get First Widget Of Class

Get Widget From Name

Widget Get Children Of Class

Widget Get Parent Of Class

Widget Is Child Of

Existing UMG Nodes From Me, For You

Is Widget Of Class

Remove Widgets Of Class

Get Widgets Of Class: //<~~~~ one has been in the main UE4 Engine since 4.7 ! :heart:


**New Download for UE4 4.12 (55mb, Media Fire)**
https://www.mediafire.com/?ieovbd5l9d7yub2

♥ Please note I now use the UE4 Marketplace C++ Plugin Standard when packaging Victory plugin for you ♥

1. Win64 Development
2. Win64 Shipping  **&lt;~~~~~~ NEW!**
3. Win32 Development
4. Win32 Shipping
4. HTML5 Development
5. HTML5 Shipping **&lt;~~~~~~ NEW!**

Please see my instructions for [Packaging UE4 Plugins With Your Game](https://forums.unrealengine.com/showthread.php?3851-(39)--s-Extra-Blueprint-Nodes-for-You-as-a-Plugin-No-C-Required!&p=476476&viewfull=1#post476476).

Prior Engine Versions

**4.11: **VictoryPlugin11


**Donations can be sent to me via:**
http://lightningfitness.org/donate/

♥

Figure a quick explanation of these widgets is order, for those who aren’t sure of their usage.

Get First Widget Of Class
is just for conveniences sake.
If there is only ever one version of a particular widget at a (such as a menu screen), will get it as quickly as possible without having an existing reference to it.

Get Widget From Name
Exposes existing C++ function that the user widget class already had.

We use it in GB to create different screens that do not share a base class or layout through the same macros/function, without the need to pass along a reference to a particular.
Instead, the macro/function finds a Widget Switcher that uses the name “ScreenContainer” and continues.

Widget Get Children Of Class
Finds widgets of a certain class that are children to an existing widget.
They do not have to be direct children or visible.
If they are in the chain of widgets somewhere below the parent widget, the function will find them.

If you want to generate a bunch of similar entries in multiple lists, then assign them later, makes it very easy.

Widget Get Parent Of Class
Finds a widget of a certain class that is a parent to an existing widget.
They do not have to be a direct parent or visible.
It doesn’t matter how far down the chain of widgets you are when you call function - if the a widgets exists somewhere up the chain, it will find it.

one has been particularly useful in GB, allowing us to get a reference to the parent manager without passing around references or cycling through widgets of a similar class.

Widget Is Child Of
Exposes existing C++ function that the widget class already had.
Superseded by GetChildOfClass, but still might come in handy.

Does it work on Android?

Btw, if instanced mesh editor doesn’t work with 4.12, how do I manually turn bunch of static meshes into hierarchical instanced static meshes ?

@: Is it possible to build a scene element (rock formation, comprised of many copies of the same static mesh) and then add those meshes it’s made of to HISM BP without using your plugin?

@

Thanks for sharing the in-depth explanations!



[QUOTE=;549603]
@: Is it possible to build a scene element (rock formation, comprised of many copies of the same static mesh) and then add those meshes it's made of to HISM BP without using your plugin?
[/QUOTE]


As I mentioned Epic has integrated the spirit of my very old pull request for an Instanced Static Mesh Editor  in their Actor Merging experimental (now no longer experimental!) !

I'd love to know how you get along with using  new !

:heart: