If you want to save Vector data in human-readible format to your own custom file type, or to your own custom config file, you need to be able to convert back from the output of Vector to String back into a Vector from a String.
@Rama… Was using your BP library for my FPS tutorial. In 4.9 used the sound stuff, worked great, in 4.10 though … victory sound volume change to set… then victory get sound volume to get it… if I ‘volume change’ to say .5 for a class, then ‘get sound volume’ for that class, it always returns -1.0 …
@ rama, I messed with the source and rebuilt… It works, but it is very strange… not sure what was going on… the FAudioDevice I kept and it always found that… if I keep the Props bit, what I set it to != what it returns right after setting it… but if I skip the props and just return SoundClassObject->Properties.Volume they do match exactly.
[QUOTE=arbopa;426640]
@Rama... Was using your BP library for my FPS tutorial. In 4.9 used the sound stuff, worked great, in 4.10 though ... victory sound volume change to set... then victory get sound volume to get it... if I 'volume change' to say .5 for a class, then 'get sound volume' for that class, it always returns -1.0 ...
[/QUOTE]
[QUOTE=arbopa;426662]
@ rama, I messed with the source and rebuilt... It works, but it is very strange... not sure what was going on... the FAudioDevice I kept and it always found that... if I keep the Props bit, what I set it to != what it returns right after setting it... but if I skip the props and just return SoundClassObject->Properties.Volume they do match exactly.
```
float UVictoryBPFunctionLibrary::VictoryGetSoundVolume(USoundClass* SoundClassObject)
{
if (!SoundClassObject)
{
return -1;
}
return SoundClassObject->Properties.Volume;
}
```
seems to return it properly...
[/QUOTE]
Thanks for sharing this fix Arbopa!
Yes this new version does match the code I already have for VictorySoundVolumeChange, it was an oversight on my part to not change GetVolume to use the same new format.
Now both functions are using the same format!
**Thanks again for pointing this out!**
This fix will be in the next release of my Victory BP Library plugin!
♥
Rama
**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!
This modifies the original array, saving you from creating unnecessary duplicate array data.
So my BP sort node is very efficient!

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 this 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;
}
```
**Latest plugin download on the UE4 Wiki: **
**Latest plugin packaged binaries, Win32 Shipping and Win64 Development on UE4 Wiki: **
**Victory Plugin on Media Fire**
If your browser is not updating the Wiki download page to the most recent version, you can use my alternative Media Fire download link!
Please note clicking this link will not start a download instantly, it will just take you to the Media Fire file description.
**Editor binaries and Packaged binaries in one file:**
*Win32 Shipping and Win64 Development Supported*
https://www.mediafire.com/?ieovbd5l9d7yub2
I have everything put in the correct place. The Plugins folder under my project and the ini file edited. But getting this error when I load up that project. If I leave out the entry in the ini file, the project loads, so I assume there is an issue with that ini setting. My DefaultEngine.ini has this entry. I also removed +ActiveGameNameRedirects=(OldGameName=“TP_ThirdPersonBP”,NewGameName="/Script/gamename")
+ActiveGameNameRedirects=(OldGameName="/Script/TP_ThirdPersonBP",NewGameName="/Script/gamename") so that does not make any difference.
In the error message, it seems to be pointing to drives and folder that do no exist on my computer.
Unknown exception - code 00000001 (first/second chance not available)
"Assertion failed: Class [File:d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\coreuobject\public\uobject\UObjectGlobals.h] [Line: 1128]
NewObject called with a nullptr class
Hey Rama! I’ve got another idea for a node :rolleyes:
The command “stat unit” is telling you the frame time for game thread, render thread and GPU. As far as I know there is no way yet to access that information from blueprint. A node like “GetLastFrameStatUnitTimes” with 3 float as output (game, render, GPU) would be really helpful since it would allow to easily display to the player whether he is limited by his CPU or GPU.
There are a few games that do this and I always thought its really helpful. Often players experience low fps and turn down graphics settings so that the game is super ugly, but in some games that are CPU limited thats not giving any advantage in fps, it just makes the game ugly.
Being able to tell the player (in the graphics settings) that he is CPU limited would help a lot in these situations. Such a node would also allow to run graphics setting detection scenes that automatically set fitting graphics settings. At the moment you can only access the frame time, so such an automatic routine would set the graphics settings to super low for someone who has an old CPU and a new GPU. Such a routine would only work well if it could access the different frame times.
I first expected the “stat unit” information to not be available in a packaged game with shipping configuration, but it works there too!
Three New Key Rebinding Nodes, Remove Key Bind, Get All Key Binds For Key
Dear Community,
I’ve added 3 new nodes for your entertainment!
These nodes enhance my key binding BP nodes, by allowing you to remove axis or action mappings, and also get all axis/action mappings that use a particular key!
See pic!
**Latest plugin download on the UE4 Wiki: (7.16 mb) **
https://wiki.unrealengine.com/File:VictoryPlugin.zip
Not using the latest engine version? Check out my wiki section on which plugin release dates go with which engine version!
**Plugin Release Dates and UE4 Engine Versions**
https://wiki.unrealengine.com/Rama%27s_Vertex_Snap_Editor_Plugin#Plugin_Release_Dates_and_UE4_Engine_Versions
Victory Plugin Binaries for Packaged Games
**Victory Plugin on Media Fire**
**If your browser is not updating the Wiki download page** to the most recent version, you can use my alternative Media Fire download link!
Please note the mediafire version includes both the editor and packaged game binaries in the same file ♥ Rama
https://www.mediafire.com/?ieovbd5l9d7yub2
Rama - searching through this huge 33 page cumbersome thread to try and find an answer - can I use “Victory Save Pixels” node with a different file format that .png?