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

Sorry for the late reply, i forgot i had commented here :slight_smile:

Thanks for the link, it might be useful in the (near) future.

I’m currently trying to think of a way to handle ‘upgrades’ for the player, i want to create a ‘upgrade tree’. Since each of the upgrades do different things i figured it would be best to create different BPs when necessary. However because i don’t know how many upgrades will have to be created i thought it would be better to use Object as a base class instead of Actor. If you know a better way of doing this please let me know, i’m still not sure if my way is a good way to go :slight_smile:

What I would do is make a BP Structure asset, and then put the skill tree vars there

And then you can use a Dynamic Array of your BP Structure type!

right click->Blueprint->Structure

So now you have a custom data structure that you can easily copy/paste/replace/break, and yet you can have as many as you want due to the dynamic array!


New BP Node

Get Player Unique Net ID

While working with a client earlier today in Blueprints I came to realize that the essential variable, PlayerID, present in the PlayerState class, is not exposed to Blueprints!

I’ve submitted a pull request to have Epic address this, but in the meantime, I’ve also given you a BP node that gets you this very important variable!

You can use the PlayerID to uniquely identify players in a networked game using Blueprints!

This is an essential variable that lets you assign values to each unit to tell each player who owns which unit :slight_smile:

**Using it**

In your game mode in the post login, when you receive the player, you can then use my node to obtain that player's Net ID, and assign that unique ID wherever you like as an ID variable.

Make sure to replicate the variables that are storing the unique Net ID so all players on all machines know who owns which units!


Have fun!


That’s what i started out with, but i soon realised that most (if not all) upgrades will do different things so using one class + structs would make things really messy. For example, one upgrade might be a short boost in health, while another upgrade will permanently increase health regeneration, yet another one allows faster movement speed in certain areas. What i’m currently doing is spawning an upgrade that receives a notification when bought together with the buying playercontroller so it can do whatever it does.
I figured it would be easier to use different BPs for the upgrades so it’s easier to keep track of what a certain upgrade does and where things might be going wrong.


yea the big complication with my suggestion is that you cant add functions to Structures in BP, but you can in C++

So I can do everything I can do in a class in a USTRUCT in c++, but not so in BP, yet, maybe Epic will fix this at some point!

Once you can make BPs of UObjects I’d recommend going the Uboject route

having an Actor BP for every upgrade is pretty intense :slight_smile:


Get Screen Resolutions Now Works in Packaged Game

My Get Screen Resolution Nodes works in packaged games now!

In 4.3 the core function in C++ was not working in BP, but now it is! Epic fixed it!

Enjoy getting the screen resolutions of the end user’s hardware in your game now!

It is obtained from the user’s display adapter directly! No guessing or preset values!




I did not know there is a structure BP until this thread. Good Info.

Anyway Rama, a dumb question, I just need overwrite the last plugin with the latest plugin?

Will existing Victory nodes (using previous version of your plugin) need reconnecting, or jut work out of the box?

I used a few of your plugin like OS clock/Time & some others I forgot.

If you download the latest version of my plugin you will only be getting new nodes and your previous ones will still work!

top secret: my latest download already has a get vertices of static mesh node that I"ve not yet ahem officially publically announced yet

Thanks Rama.

Now, we only need a function node that make coffee…

Blueprint Node to access Vertex information of static meshes / collision blocks

Hi Rama,

I am currently working on my graduate thesis on fire propagation. My thesis explores what I have coined “material based fire propagation”; fire reacts and spreads differently when interacting with different surfaces. In the process, I am hoping to build an intelligent fire system. As a first step, I need to be able to access the vertices of a mesh so that i can propagate emitters along those vertices. What I have achieved so far is to be able to propagate along spline meshes. This is because of blueprint nodes available to calculate number of points along a spline, point locations along a spline and so on. But there are no blueprints available to do similar things with other types of meshes (e.g. static meshes). I am aware of other threads where you had posted codes to help people integrate it into their work. One such example, being “Accessing Vertex Positions of static mesh - C++ Gameplay Programming - Unreal Engine Forums”. However, when I tried to do the same with the codes posted, I keep getting compile errors which points to some default unreal api header files. Being primarily a texture artist and designer, I have difficulty trying to get codes to work and I am very rusty with c++. Would it be possible to help me out with blueprint nodes that can calculate and access vertex information of static meshes please? I am sure other artists and designers would benefit from mesh “vertex info access” blueprint nodes.


Hey Rama,

I think I got your victory plug-in to work. I am gonna play with it to see what it can do :). Thanks alot for the plug-in!!!


Thx for the plugin Rama!

**New Node

Get Static Mesh Vertex Locations!**

Dear CatchPhyre,

As per your request I have now made a node to get the rotated,scaled,translated positions of all vertices of a static mesh!

This node is live in the current most recent plugin version!

Please refer carefully to my picture of how to set up this node correctly!







Thx for the plugin Rama!

You're welcome!

**[FONT=Comic Sans MS]Congrats on your first post, welcome to the forums!**


Hey thanks for this awesome plugin! It didn’t work as is in UE 4.5. I only had to make two tiny updates to get it working. If anyone’s interested in downloading it until Rama posts a newer version, you can find it at

My thoughts exactly, hence the suggestion. That way i can actually use object based BPs.

I really hope functions in structures and structure inheritance will be added in the future for BP.

Okay Thommie I will work on getting this Spawn UObject node done soon!

**New Visitors**

Make sure you see that I just released a node to get all the vertex locations of any static mesh component!!&p=161019&viewfull=1#post161019


Lots of cool stuff, and many times when I look stuff up I end up either fully or partly in a piece of text or tutorial you wrote.
This time I actually read trough this blueprint library post just to make sure I don’t start creating features that you already provide. :slight_smile:

Also I will probably use your refers on how to write editor plugins to adapt the editor more to my personal projects.

Thanks for all the information and help you provide around the forum.

Thanks for sharing this with everyone StoneJonez!


I will do an official 4.5 build once 4.5 comes out!


Great to hear from you TheSpaceMan!

You’re welcome, hee hee!





**2 New Nodes For You

Create UObject

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

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;




Rama if could create a node that allows procedural spawning of actors into sub-levels it would be much appreciated! :slight_smile:

Right now it is hard to (procedurally) take advantage of streaming in a BP only project because all the nodes that spawn do so only in the persistent level and not the stream-able sub-levels.

For instance, I spawn 2 extra maps in the persistent level to simulate my world wrap, and that means up to 200,000 additional meshes in the world that I would prefer to stream in when you are actually looking at them.

Thanks for any help you can provide! :slight_smile: