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

Hi there!

Very nice to hear from you!

You can accomplish async loading by doing this

“servertravel mapname”

See pic!

I used one of my BP nodes that generates a space between string entries



New BP Node ~ Get Actor Time In Play! How long has it been since this actor was created?

Dear UE4 Community,

In this latest node release I am giving you built in easy way to know how long an actor has been alive, since the time it was spawned!

This node does not cause any extra load on UE4, I am simply dynamically calculating the time based on the actor’s creation time, relative to Get World Time Seconds.

New Download (28mb, Media Fire)

Please note my downloads also include these packaged binaries:

  1. Win64 Development
  2. Win32 Shipping
  3. HTML5 Development

Please see my instructions for Packaging UE4 Plugins With Your Game.

Donations can be sent to me via:



Thank you so much Rama for answering my question :slight_smile: Love your work by the way.
Another quick question, I’ve yet to use the Vertex plugin, I’m looking at it for the combine meshes instance ability.
Is it similar to the one in testing “merge actors” in the UE4 currently?
I’m having problems with that as it loses the collision box and overlaps the UVs on merge.

wow, thanks for the fast reply! :slight_smile: is this making a difference from the node “server travel”? because either way, my loading screen still freeze at some point, its kinda weird…

also what is the node “Rendering UnFreeze Game Rendering” doing? tried to execute it right after the server travel has started, still frozen.

Hi Rama,
First off, this is some amazing stuff! Thank you!

I’m trying to use get mouse position and set mouse position to control the mouse with the gamepad thumb stick and it’s working almost perfectly, except that I can set the position to go beyond the screen edge. And while the mouse stays at the edge, the mouse position is still being updated, so if I want to move the mouse back close to the character than it will take a while until the position gets to a value lower than the screen edge.
So what I’m trying to figure out is a way to stop the set mouse position from setting a value that’s greater than the screen edge, so it won’t go beyond that.

Solve it and it was ridiculously easy: I just needed to place a clamp node for the X and Y to keep the values between 0 and the screen size on X and Y.

Thank you,

Hi Rama! Since the last launcher update I can’t open any project in 4.10 with victory plugin. It says “This project requires the Victory Plugin” I’ve tried moving the plugin into runtime and I’ve tried having it in the project directory but nothing seems to work. When I click on Installed Plugins it says there are no plugins installed under 4.10. I tried on 4.11.6 and 4.11.7 as well.

EDIT: I found out it was trying to call the build tool from 4.11 on 4.10 project. I removed 4.11 completely but whenever I try to open it asks me to rebuild the .dll file. Doing so fails even though the log finishes by saying “Target up to date” and I can rebuild fine in visual studio with no errors but for some reason it always asks to rebuild the .dll

Final: For some reason forcing my project to 4.11 and converting it in place with the new 4.11 version of victorybp solved the issue but I was forced to abandon 4.10 which could be seen as risky to some people with their main project but it works for me!


I have been trying to change the texture on a dynamic material and then set that dynamic material on a 3d model for days now with no luck! I have tried a million combinations using the “Victory Load Texture 2D from File” blueprint but nothing is working.

Basically I want to load a texture from the file system and set it on my mesh/model.

hi rama! I made the mistake to put the plugin inside my project folder instead of inside the engine, now how can I migrate the plugin to the engine without breaking my project? Because I just realised that the plugin folder was 2.8Gb…

edit: ok I found the solution myself by accident. Had to move all my content to another project I have created after moving the plugins to the engine and activating them, then remove all content from my old project so the engine would be able to open it without crashing, then export my input settings and all.

Now I got the exact same project as before with no broken references or anything, and wright 147Mb instead of 2.8Gb :slight_smile:

Hey Malcolm, first you can remove the block mesh refs from the create dynamic material nodes - this should make them both just say ‘self’. Most importantly you need to choose a source material in those same nodes where it says ‘source material - select asset’. Also you only need to make this material once. Once you’ve created it and assigned it to a mesh you can go on changing the texture parameter or other values. You also need to make sure you’ve actually made a material with a parameterised texture node (which is the one you select in the create dynamic material node) - I’ve shown how to do that a few posts back.

Good luck, and don’t give up.

Edit: just realised you posted the same image twice - I thought the top one linked to the bottom one and you’d split a long image in two! The answer still applies though.

Thanks for the help! The main issue was the texture parameter was not defined. Can you please take a look at my solution and let me know if it is the optimal one?


Hey Rama, hate to bother you, but which download works with 4.10? I tried the February 6th link to no avail (looks like the .zip doesn’t contain a plugin asset?) Thank you so much for all the crazy work you do on this for the community!

EDIT: I figured it out, it was working but the new editor just organizes the plugins differently so i didn’t see it there nicely filed under “Rama” in the list!

Lovely to hear from you all!

Dear Everyone,

I find the most recent string of posts particularly entertaining, because for each of your questions you later posted that you found the answer!


I am happy to provide what appears to be a thread that is conducive to spontaneous solution-finding :slight_smile:

And thank you to those who are helping others in this thread, like @Dannington!

Also I like it when you folks post questions and then post the answers you found to your own questions, because this still helps others who maybe did not yet figure out the solution!

Lovely to hear from you all!

[FONT=Comic Sans MS]:heart:


BP Node ~ Set Mouse Position, move the OS cursor to any position!

Dear Community,

I was doing some coding on one of my projects and realized anew just how useful Set Mouse Position is!

For those of you who were not aware, one of the nodes in my plugin enables you to SET the position of the OS cursor to any location you want!


Here is the source code!


/** SET the Mouse Position! Returns false if the operation could not occur */
UFUNCTION(BlueprintCallable, Category = "VictoryBPLibrary")
static bool Viewport__SetMousePosition(const APlayerController* ThePC, const float& PosX, const float& PosY);


bool UVictoryBPFunctionLibrary::Viewport__SetMousePosition(const APlayerController* ThePC, const float& PosX, const float& PosY)
	if (!ThePC) return false;
	//Get Player
	const ULocalPlayer * VictoryPlayer = Cast<ULocalPlayer>(ThePC->Player); 
											//PlayerController::Player is UPlayer
	if (!VictoryPlayer) return false;
	//get view port ptr
	const UGameViewportClient * VictoryViewportClient = 
		Cast < UGameViewportClient > (VictoryPlayer->ViewportClient);
	if (!VictoryViewportClient) return false;
	FViewport * VictoryViewport = VictoryViewportClient->Viewport;
	if (!VictoryViewport) return false;
	//Set Mouse
	VictoryViewport->SetMouse(int32(PosX), int32(PosY));
	return true;



PS: Please note that community member @AdrianLazar recently posted his discoveries with SetMousePosition when used with gamepad :slight_smile:

Wait, really? I was just about to go into the whole “Level streaming” thing, but I didn’t realize offline games could use ServerTravel…

The issue at hand is that (as of 4.10.4), the Instanced Static Mesh Component’s variable for storing FInstancedStaticMeshInstanceData is marked as ‘DuplicateTransient’. Now, I’m no C++ expert, but I’m pretty sure that means that variable doesn’t get duplicated (copied) with the rest of the component. Unfortunately, said variable is the bit responsible for storing all the actual instances of the mesh. So copying appears to be a bit difficult.

EDIT: Which ISM plugin are you using? I’m probably behind the times, but I only know of the one in the VictoryEdEngine and the plugin I fixed up from Rama’s github PR.

It seems that i have a problem with ISM. Every option from the victory editor plugin works, except the instanced mesh one. I press I, i press shift+i, nothing happens (yes the items are staticmeshactor). Any idea on that? I have 4.10.4 and the latest victoryed plugin.

Edit: Fixed it by adding the VideoISM BP. I dont remember having to use that before for testing, but who cares, it works now ^^.
Edit2: Aaaaand my instanced mesh disappeared after building the light, wtf?

These plugins are a life saver. I can’t get the set fullscreen mode to work though. No matter what, it never changes. I did my own sort of work around where I load in the default user config ini file and see if it is already in full screen mode and then if I am wanting to set it to windowed, I run the fullscreen console command and then save it to the ini file by creating a string array and saving it to the file. Would there be a way to make a blueprint node that can more cleanly edit the ini file? Pretty much what I am doing now is loading in the file to a string array, editing what I want in the string array by searching through it, and then saving the string array to a file that overwrites the old ini file. It works, but it is probably not the best way to do it I imagine.

Dear Community,

This node is sufficiently cutting-edge that I decided to make a video of it!

This node allows you to destroy individual pieces of a destructible mesh after it has been fractured!

Enjoy the video!


New Download (28mb, Media Fire)

Please note my downloads also include these packaged binaries:

  1. Win64 Development
  2. Win32 Shipping
  3. HTML5 Development

Please see my instructions for Packaging UE4 Plugins With Your Game.

Donations can be sent to me via:



Server travel launches a nice async load of the level for you, even in single player! :slight_smile:

Yes you have to create or pick a class that you want to use that has an instanced static mesh component, I did this because you need to pick a class that will package with your game, unlike any classes I include with the editor-only plugin, and I did not want to involve a dependency on my Victory Plugin for this, so you just have to make your own simple BP that has the component.

When I do the 4.11 upgrade for ISM, once 4.11 is released, I can check out issues with duplicating ISM actors and lighting.

[QUOTE=Axtel Sturnclaw;492836]
The issue at hand is that (as of 4.10.4), the Instanced Static Mesh Component's variable for storing FInstancedStaticMeshInstanceData is marked as 'DuplicateTransient'.  Now, I'm no C++ expert, but I'm pretty sure that means that variable doesn't get duplicated (copied) with the rest of the component.  Unfortunately, said variable is the bit responsible for storing all the actual instances of the mesh.  So copying appears to be a bit difficult.

As part of my Victory Ed Engine editor mode I could implement an additional button press that would duplicate current ISM, another thing I can add in the 4.11 version :)


Hi, am new to ue4, d plugin doesn’t seem to work in 4.10.2. How do I create the effect using download image node. specifically, if I want to change the texture in a widget.