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

I was working on a three month old build of Rama’s plugin on 4.6.1 not too long ago if I remember right.

Yep, just checked my repository.

I think the plugin versions dated around December 2014 will work for sure with v4.6 and likely newer versions too. (But I never tried them) Just trying to be helpful.

Everything and all the nodes work great, but for some reason any JoyISM objects vanish in a built version of my projects. They are there in editor and look/work fine, shadow building and everything, but as soon as the game is compiled, they just vanish. I’ve even tried promoting them to blueprints, and trying to spawn them in-game, with no error and no result. It’s a 4.7.3 C++ project. Since I am not getting any errors, I don’t know where I can look to try and fix it. Could there be something simple that I’m still missing? Many thanks in advance.

Yea I hope so too!




You’re welcome!

Any build before February 24th, release date of 4.7, should work!

Ahh this is a great idea for a node!

I will have to investigate this, you mean a packaged game right?


Correct! I can combine meshes fine in editor, and they work fine, but packaging the project (package for development, win-64bit), and they don’t appear. Interestingly enough I tried promoting a JoyISM to a full blueprint, and then tried to spawn it, which had the same result, worked in editor, but not in game.

All the nodes from the plugin work fine however. Any assistance is greatly appreciated!

Sounds like this is related to the same issue where instanced static mesh components do not copy correctly when you try to duplicate an actor that has an instanced static mesh component, I may have to do some extensive investigation of / modifcation to Epic code and this may take some time, but thanks for letting me know about this issue in friendly-fashion!



PS: summary, this could take a while, please dont be waiting/dependent on a solution happening within a 2-3 weeks.

I will get to it soon as I can :slight_smile:

Yeah, sure. You and no solution within 2-3 weeks?! I bet as soon as you start looking, you already have the solution, because you are you! :smiley:
But now to be serious, you’ve done so much and keep doing so much for the community, I think that we can be patient. :slight_smile:
I’m sure you are going to find a solution ^^


PS: That particular feature would be more or less something which I would use near the end of my project anyways, since I think it’s more of a way to optimize one’s project, or am I wrong?

Heh, understood and appreciated! I’ll wait patiently. I’m using some of your nodes in the project already, and those are working perfectly, and I’ll gladly wait to use the ISM conversion. Thanks for the reply!

Hee hee thanks DakRaid!

Yes its an optimization, not really ideal for development since you have to keep switching back and forth, but fabulously essential for optimizaiton!

I am glad you are enjoying my other nodes Kaitou! Have fun today!



**2 New Nodes For You

Create UObject (Absolute Power in BP!)

Create Primitive Component, Added to Scene at Location!**

Being able to create UObjects is essential if you really want absolute power in Blueprints!


These two nodes let you create UObjects at runtime!

Please note you absolutely must save off the return value to a variable or UE4 will Garbage Collect your new UObject within a short time!

Please especially note that if you create a Primitive Component, I actually add it to the world for you so it is visible and has collision!

**C++ Code For You**

Here's the code!


UObject* UVictoryBPFunctionLibrary::**CreateObject**(UObject* WorldContextObject,UClass* TheObjectClass, FName Name)
	if(!TheObjectClass) return NULL;
	//using a context object to get the world!
    UWorld* const World = GEngine->GetWorldFromContextObject(WorldContextObject);
	if(!World) return NULL;
	return StaticConstructObject( TheObjectClass, World, Name);



UPrimitiveComponent* UVictoryBPFunctionLibrary::**CreatePrimitiveComponent**(
	UObject* WorldContextObject, 
	TSubclassOf<UPrimitiveComponent> CompClass, 
	FName Name,
	FVector Location, 
	FRotator Rotation
	if(!CompClass) return NULL;
	//using a context object to get the world!
    UWorld* const World = GEngine->GetWorldFromContextObject(WorldContextObject);
	if(!World) return NULL;
	UPrimitiveComponent* NewComp = ConstructObject<UPrimitiveComponent>( CompClass, World, Name);
	if(!NewComp) return NULL;
	return NewComp;




Yet another fantastic set of tools!
It is honestly hard to keep up with how much you are contributing :smiley:

Keep up the awesome work :cool:


Rama you are Nominated here :wink:

I just built the master branch of UE4 and it refused to compile the VictoryPlugin. Something about a deprecated node. Please update soon.

Rama updates, as far as I know, the plugin only for every stable release, so there won’t be a update for a preview or the master branch (especially the master branch as it’s the most unstable version with the most changes).

So the Objects should be parent class object instead of Actor, right?

How to use your plugin with a version you haven’t compiled it for? Like the most recent 4.7 branch?

If I add a “Create Texture Render Target 2D” I’m unable to save the project if the BP actor is in the scene.

Any idea how to get around this?

Can’t save D:/GitHub/LeapProjectUE4/Content/FirstPersonBP/Maps/FirstPersonExampleMap.umap: Graph is linked to private object(s) in an external package.
External Object(s):

Rama, pls fix:

Theres an answer now.

Please dont use my plugin at the engine level, place it in your project level Plugins folder :slight_smile:

Dakraid is correct, though other community members are welcome to update my plugin to master branch or other versions and post it somewheres, I can’t do everything in the Universe by myself you know :slight_smile:

It’s odd to ask me to update to Master branch since Master branch is always changing! What are the odds that any two people even having the same version of Master Branch unless they both update several times a day?

For those who are not aware, Master Branch is Epic’s running branch of UE4 that has all of the most up-to-date additions to the engine, and it is constantly being contributed to by Epic staff! I’ts great fun to watch and know what’s coming, but you can’t ask me to keep my plugin updated to be binary compatible with a version of the engine that changes many times per day :slight_smile:

**I welcome anyone to post preview build versions on the wiki and in this thread! **

Most Recent Victory BP Plugin Download



Victory BP Library 4.7.3

**Plugin Up to 4.7.3

Solution to PhysXInclude IsFinite Issue**

Dear Eduard, Parvan, and Anyone with Linux/Android issues,

Please try getting my latest version (4.7.3) which I just uploaded!

**Thank You to Epic RCL**

**Epic Staff member RCL** posted extremely helpful solution to the issue!

The Issue

It seems that these math libraries, included for Saxon Rah’s random nodes, were causing the issues. See RCL’s post above for more information.

Originally in .h file of Victory BP Library

#include <chrono>
#include <random>

**My Solution**

I moved these included math libraries to AFTER the PhysXIncludes, so they dont conflict with PhysX function names.


//~~~ PhysX ~~~
#include "PhysXIncludes.h"
#include "PhysicsPublic.h"		//For the ptou conversions
//									Saxon Rah Random Nodes
// Chrono and Random

//Order Matters, 
//		has to be after PhysX includes to avoid isfinite name definition issues
#include <chrono>
#include <random>


**Result:** We get to keep all of the PhysX code as well as Saxon Rah's awesome Random Number BP nodes.

Let Me Know

Let me know if this fix was sufficient or if a more advanced solution is required!


Most Recent Victory BP Plugin Download


Thank you for this nice library. I have downloaded the 25 of March version.
I am trying to use the “Save String Array To File”. The problem is that if I uncheck “Allow Over Writing” no data will be written in my file. I am quit sure that the path and file name are correct because once I check the “Allow Over Write” the very last data received will be written in the file. I need to save the data in every step, and expected that by unchecking the “Allow Over Write” should have all the data saved in my file which is not the case. Could you please help me with this?

Hi there!

[FONT=Comic Sans MS]Welcome to the forums Elahe!


Allow over-writing in the case of my plugin node determines whether or not I will delete a file if it already exists and update it with new contents.

It is a safety precaution to avoid overwriting existing files, and so if you want to keep updating a file, you should definitely allow over-writing!

The only reason to turn this feature off would be to protect a file from being changed at all, not updated, which is what you want, so just leave over-writing enabled and you will be set!

Have fun today!