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

Hello , quick question. I don’t know the networking capabilities of UE4 but would it be possible to have a function that would allow you to communicate with a server by using an IP adress? So you could talk to a server without joining it’s “game”. Thanks in advance.

Edit: Checked the marketplace and someone has a plugin for more or less what I wanted. :slight_smile:

Hee hee!

You’re welcome!

:heart:

Ahh that’s an interesting idea, does anyone have bandwidth to help do , is for the keyRebinding system. I myself am in crunch mode with my game at the moment. If anyone can help and make PR or even just send me code I can integrate.

:heart:

Victory Math Helper BP Nodes

Dear Community,

I have 4 Math BP nodes for you!


**Efficiently Sort Integer / Float Array**

Now you can easily and efficiently sort an integer or float array, with the smallest entry being put at index 0!

 modifies the original array, saving you from creating unnecessary duplicate array data.

So my BP sort node is very efficient!

![bbca2414d736997bb47f825479abe221c9369d8a.jpeg|1042x777](upload://qNgn3LnIAFwIWUcYraeqbrNSavw.jpeg)

Plus Equals and Minus Equals Integer Math Operators

Typically you have to Get an integer variable and then Set it with some value added/subtracted in order to modify an integer value.

I find rather cumbersome, especially because in C++ there is the += and -= operators which make adding and subtracting from integers very fast!

Using my new BP Operators you can easily add a value to an integer or subtract a value from an integer!

Note my operator modifies the original value and returns it, so I cannot make these operators Pure. Execution pins are required because the value is getting modified.


**The C++ Code Involved**

In order to make these 4 new nodes I took advantage of UPARAM(ref) which allows a BP variable to be modified in C++ and returned back to Blueprints.

I wrote a [wiki on UPARAM(ref)](https://wiki.unrealengine.com/How_To_Modify_Blueprint_Variable_References_In_C%2B%2B_Without_Copying)that you can enjoy!



```


void UVictoryBPFunctionLibrary::VictoryIntPlusEquals(UPARAM(ref) int32& Int, int32 Add, int32& IntOut)
{  
	Int += Add;
	IntOut = Int; 
} 
void UVictoryBPFunctionLibrary::VictoryIntMinusEquals(UPARAM(ref) int32& Int, int32 Sub, int32& IntOut)
{ 
	Int -= Sub;
	IntOut = Int; 
}


```



Download Links

4.17 Build (win32, win64, editor, dev packaged, and shipping)

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

  1. Win64 Development
  2. Win64 Shipping <~~~~~~ NEW!
  3. Win32 Development
  4. Win32 Shipping

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


**Prior Engine Versions**

**4.11: **http://www.mediafire.com/download/jp91b9atphm2obt/VictoryPlugin11.zip

**4.12: **http://www.mediafire.com/download/g441k2815r5b045/VictoryPlugin12.zip

**4.13: **https://www.mediafire.com/?7kt9fepwa1pgs0y

**4.14: ** http://www.mediafire.com/file/7915cuk19c3nbfw/VictoryPlugin14.zip

**4.15: ** https://www.mediafire.com/?6nne04gd74emnzu

**4.16: ** http://www.mediafire.com/file/ieovbd5l9d7yub2/VictoryPlugin16.zip

Donations can be sent to me via:

:heart:

, can we expect a pull request to the engine for change? I think would be perfect to be included to the binary.

oooh those still aren’t in the engine yet? I can make a PR yes, great idea :slight_smile:

And very nice to hear from you!

:heart:

Hi!
I’m going through same situation, but i can’t save my screenshots.
Did you use “capture 2d save image” node to save your screenshot?
My problem is probably that i can’t load the"Texture render target" as target of the node…
Any suggestions?
Thanks!

e297a3e0d181b84656b1f88e4034d9374e5d2cf3.jpeg

The Capture 2D Save Image node requires a SceneCapture2D actor or SceneCaptureComponent2D as the Target, depending on which one you use.

Hey, I have 2 requests if possible.

1 - I ıntegrate Nvidia Ansel to my project. Key to open it is Alt+F2. I tried to use your Simulate Key Press node and hooked it to a button on UMG. But it doesnt work with modifiers such as Alt. Can you make it work with modifiers too?
441e6eb5927594b47df750e8eb5dc06412af8165.jpeg


2 - Get Desktop Path node

Thank you so much for you awesome work :slight_smile:

Warning and Error

Hello ! I hope to have your attention!!

I know that your plugin is not officially developed for but I have been using it in 4.16 for a while now and it just works amazing!

But when I updated to 4.17.1 (and of course, downloaded the updated plugin and again adding to the Whitelist and compiling for the plataforms in VS) while compiling for in the Editor warning is showed:

and then at the very end it shows error:

Then I reported here thinking it was an Engine error rather than have to see with the plugin itself, but other projects without the plugin compile just fine :frowning:

It is possible to you see what’s wrong? Or tell us how to fix ? :c
Thanks a lot, you have very much for us already <3

Hi there

It seems the: “Joy File IO Get Files” might not be working correctly.

The boolean return valleu always return true, even if there was no files to be found in the specified directory. Not sure if is the way it is suposed to function?

Hi and Community!

First, I love the plugin! thread has been full of great ideas and support.
Second, , I see you everywhere! You show up in the odd forum posts that I read and often times in the answer hub too. You’re a legend.

I have a big ask. I’ve created and finished a project using a few of the Victory blueprints. On windows it packages nicely and I haven’t had any problems. I’ve run it on a variety of devices and it’s good to go. However I also need to package my game for a Mac, so I’ve transferred my project to a Mac laptop, rebuilt with xcode, and everything (even other plugins) work except the Victory plugin. I’m using UE4 4.15.3.

Is there a way you or somebody could make Mac compatible? Is there anything that I have to do to compile it on my Mac? I’m very open to any suggestions.

Thank you!

Hi there @DavidHuizing ! Welcome to the UE4 forums!!

I made a mac version of the Victory plugin a while back, if you are using only nodes found in the older version you’d probably find it easier to start from version:

Victory Plugin for Mac (several versions old)

Again please note there have been engine changes since mac version you might have to incorporate, but most engine changes have been minor in recent engine versions and you could compare with current / 4.15 build and probably sort it out pretty quick.

:heart:

PS: if you or anyone gets a 4.15+ mac build going I’d be happy to host it on my media fire account.

“Get Desktop Path node”

What do you mean by ? sounds windows specific? If you had the Username of the owner of the windows machine getting desktop path is easy, I could see about a Get Computer User Name node, but I will need to make sure the solution is cross platform.

:heart:

​​​​​​​

Oh good point! I am indeed returning true even if no files were found.

My intention was that the boolean would indicate if there was a file IO error, as in the disk could not be read or the file path was wrong.

There’s still room to improve the code though because currently I am not validating the path specified.

I’ve made an improvement and change will be in the next version of Victory BP Library :slight_smile:

For now you can just do array -> length > 0 boolean check to know if there’s anything for your logic to do :slight_smile:

:heart:

**Get Vertex Locations of Static Mesh

Works in Packaged Games**


**My C++ Code For You**

See my PhysX wiki for the basic build.cs setup:
[https://wiki.unrealengine.com/PhysX,...o_Your_Project](https://wiki.unrealengine.com/PhysX,_Integrating_PhysX_Code_into_Your_Project)

Here is the code I wrote to get  of the transformed vertex positions using the Body Instance and PhysX code!

I am doing many safety checks to ensure the Body Instance data is valid before utilizing it, and the result is that now you can get accurate vertex locations in packaged games!



```


//~~~ PhysX ~~~
#include "PhysXIncludes.h"
#include "PhysicsPublic.h" //For the ptou conversions
//~~~~~~~~~~~

//Get Transformed Vertex positions of any static mesh! -
bool UVictoryBPFunctionLibrary::GetStaticMeshVertexLocations(UStaticMeshComponent* Comp, TArray<FVector>& VertexPositions)
{

if(!Comp || !Comp->IsValidLowLevel())
{
return false;
}
//~~~~~~~~~~~~~~~~~~~~~~~

//Component Transform
FTransform RV_Transform = Comp->GetComponentTransform();

//Body Setup valid?
UBodySetup* BodySetup = Comp->GetBodySetup();

if(!BodySetup || !BodySetup->IsValidLowLevel())
{
return false;
}

//Get the Px Mesh!
PxTriangleMesh* TriMesh = BodySetup->TriMesh;

if(!TriMesh)
{
return false;
}
//~~~~~~~~~~~~~~~~

//Number of vertices
PxU32 VertexCount = TriMesh->getNbVertices();

//Vertex array
const PxVec3* Vertices = TriMesh->getVertices();

//For each vertex, transform the position to match the component Transform
for(PxU32 v = 0; v < VertexCount; v++)
{
VertexPositions.Add(RV_Transform.TransformPosition(P2UVector(Vertices[v])));
}

return true;
}


```





Download Links

4.17 Build (win32, win64, editor, dev packaged, and shipping)
http://www.mediafire.com/file/8slx62…toryPlugin.zip

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

  1. Win64 Development
  2. Win64 Shipping <~~~~~~ NEW!
  3. Win32 Development
  4. Win32 Shipping

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


**Prior Engine Versions**

**4.11: **[http://www.mediafire.com/download/jp...ryPlugin11.zip](http://www.mediafire.com/download/jp91b9atphm2obt/VictoryPlugin11.zip)

**4.12: **[http://www.mediafire.com/download/g4...ryPlugin12.zip](http://www.mediafire.com/download/g441k2815r5b045/VictoryPlugin12.zip)

**4.13: **https://www.mediafire.com/?7kt9fepwa1pgs0y

**4.14: ** [http://www.mediafire.com/file/7915cu...ryPlugin14.zip](http://www.mediafire.com/file/7915cuk19c3nbfw/VictoryPlugin14.zip)

**4.15: ** https://www.mediafire.com/?6nne04gd74emnzu

**4.16: ** [http://www.mediafire.com/file/ieovbd...ryPlugin16.zip](http://www.mediafire.com/file/ieovbd5l9d7yub2/VictoryPlugin16.zip)

Donations can be sent to me via:

:heart:

Yes, I asked that for windows. Get Computer User Name would be great too

Hi,

I am having some issues compiling for Linux (pulled plugin from your git)

Cheers

Hello there!

Is there a version for 4.17.1 yet?

I tried the 4.17 posted above into my engine/plugins folder but it says not compatible? :frowning:

Dear Community,

Here in the Victory Plugin I am providing you with platform-agnostic nodes to obtain absolute paths to your game in editor or packaged form from BP !

:heart:

Hi, what a great plugin, thanks.
It’s easy to use for me who knows blueprint only. unfortunately, I can not pre-compile the plugin for android. it would be great if anyone can share it, or teach me how to compile it. I am really a noob and need that for gear vr development. thanks anyway.

Hello, . Looks like there is an with a couple of your functions: GetConsoleVariableFloat and GetConsoleVariableInt. Check it out:



int32 UTKMathFunctionLibrary::GetConsoleVariableInt(FString VariableName)
{
**static** const auto CVar = IConsoleManager::Get().FindTConsoleVariableDataInt(*VariableName);

    if (CVar)
    {
        return CVar->GetValueOnGameThread();
        //return CVar->GetValueOnAnyThread();
    }
    return 0;
}


Note the “static” there. While it’s valid in Epic documentation[SUP]1[/SUP], it isn’t in your case, since they search for text literal in their example, i.e. same variable every , and your function gets variable name as a parameter, so the search result should differ every . If I’m not missing anything and you agree with my conclusion, please fix in both functions.

(1) .unrealengine.com/latest/INT/Programming/Development/Tools/ConsoleManager/#gettingthestateofaconsolevariable