Download

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

The june 11th 7.91mb version shows up fine on the website, and loads/runs/etc. just fine in both C++ and BP based new and old projects for me.

As to the linking errors. I only got those when I had bad code as in errors, and to the response on that thread “I disabled the substance plugin” I have the 4.8 substance-ue4 plugin installed in all my projects :S

I guess the wiki link was still broken when I downloaded it or something, tried it now with the mediafire link and it compiles fine.

Just tested downloading the 11th june 7.91mb version from the wiki and from the mediafire and the mediafire one appears to be newer then the wiki one, it’s files are bigger and have newer dates then the wiki one.

Edit: Just tried it again with both links on new projects and now I suddenly can’t get it to work again.

Edit2: Found out that if I verify my 4.8 version I can package new projects until I attempt to package my 4.7.6 project which somehow breaks it for all projects.

I’m having no problems with the wiki link on fresh projects or old. Make sure you select engine version -> 4.8 on any old projects first, and try deleting ALL intermediate folders, or are you talkuing about just linking errors?

These are very strange errors indeed!

Please post on Answerhub about this!

It sounds like it could be related to the new unification of all Editor Settings across all projects (and apparently all versions?)

:slight_smile:
Rama

Welcome ot the forums Ozzie!

“Hey quick question, I’m installing the plugin step by step but it just doesn’t work in the editor”

Can you explain more? What’s not working? BP nodes not showing up or the vertex snap editor not working?

Please make sure you are using 4.8 and download from my Media Fire link due to issues with wiki download system for some people / browser cache stuff

You can ensure you have the latest version by using this download link!

Please note clicking this link will not start a download instantly, it will just take you to the Media Fire file.

Victory Plugin on Media Fire
(6/11/15 build from Wiki, 7.91 mb)

Have fun today!

Rama


(as of 6/11/15)

Reminder of my new node that I just released amidst all the support posts :slight_smile:

Dear Community,

I’ve made a new BP node for you!

HasSubstring compliments the functionality of FindSubstring.

FinsSubstring requires more inputs and returns an index within the source string.

My node, HasSubstring, requires only 1 input and only returns whether or not the supplied substring is in the source string.

I use the C++ version of HasSubstring all the time so I felt you would all enjoy having it in BP as well!


**Example Usage ~ Search Feature**

If you wanted to make a string-based search feature, that iterated over the contents of a list of UMG Texts, you can take the user's supplied search string and use my **HasSubstring **node to find all the UMG Text widgets that contain the user's supplied search string.

**Latest plugin download is here: (about 8 mb) **


You can ensure you have the latest version by using this download link!

Please note clicking this link will not start a download instantly, it will just take you to the Media Fire file.

**Victory Plugin on Media Fire**
(6/11/15 build from Wiki, 7.91 mb)

https://www.mediafire.com/?g6uf9kt5ueb2upj

Enjoy!

:)

Rama

Yeah got an answer on answerhub already. Packaging is failing in 4.8 - UE4 AnswerHub

Packaging Plugins for upgraded project in 4.8, Workaround

Dear Community,

Here’s the solution to the packaging with plugins errors that Tekoppar posted:


**Epic Response on Answerhub**


[QUOTE=Epic Staff Pete;309191]

Ok, there is definitely an issue in 4.8. We're looking in to a fix. In the meantime, you can fix the issue by the following:

Create a new code-based project (the template chosen doesn't matter, I chose FPS)

After the newly created project has been opened in the editor, use explorer to browse to the location of that project on your computer

Search for PCLaunch.rc.res in that project (it will be found in the Intermediate directory)

Copy that file to /Engine/Intermediate/Build/Win64/Development/Launch/ and/or /Engine/Intermediate/Build/Win32/Development/Launch/ (you may have to make the Launch directory)

Open the broken project

Uncheck Rebuild in the Package Settings

Package should now work

Not ideal, but should get you unbroken and still be able to have the enabled plugins.

-Pete

[/QUOTE]


**Full Thread**
https://answers.unrealengine.com/questions/241581/packaging-is-failing-in-48.html


:)

Rama

Hey,

I’m using the file from your link, also working on 4.8.0 version.
BP nodes are working fine, but vertex snap editor just doesn’t show up, I’m selecting static meshes but no Victory Editor HotKeys button shows up, no vertices are being highlighted.
I tried toggling it on and off, etc. nothing helps. I also deleted engine cache just to be sure.

Hi there!

To enable my Vertex Snap Editor you need to make a change to your DefaultEngine.ini!

Installation Instructions

Enjoy!

Rama

Array ~ Valid Index & Get Actor Time Alive & Get Actor Creation Time

TimeAlive and CreationTime

b2e56d51c00aef1532aad0a13d6e6656cc00598d.jpeg

The above nodes let you know when a particular Actor was created (World Seconds) and for how many seconds an actor has been alive!


**Valid Index (Array)**

![ValidIndex.jpg|1280x960](upload://6XEK2boqLAfOT0v5UH4eosnn1Jq.jpeg)

This node let's you always know in advance if a particular index is valid for your chosen array!

This node simplifies the process of protecting against "array out of bounds" errors with arrays!

Many thanks to Kris for contributing these nodes!

:)

Rama

Thank you Rama and Kris for the new nodes.
This entire BP suite makes working more convenient with every update!
Thank you again Rama for working on this!

@Rama - I’m getting these errors when I try and compile the 4.8 plugin:

As far as I can tell the methods do exist. I’ve tried cleaning, rebuilding etc. This is with the launcher engine rather than a Github one.


1>------ Rebuild All started: Project: OceanProject, Configuration: DebugGame_Editor x64 ------
2>------ Skipped Rebuild All: Project: UE4, Configuration: BuiltWithUnrealBuildTool Win32 ------
2>Project not selected to build for this solution configuration 
1>  Cleaning OceanProjectEditor Binaries...
1>  Parsing headers for OceanProjectEditor
1>  Reflection code generated for OceanProjectEditor
1>  Performing 47 actions (4 in parallel)
1>  PCH.VictoryEdEngine.VictoryEdEnginePCH.h.cpp
1>  PCH.OceanPlugin.OceanPluginPrivatePCH.h.cpp
1>  PCH.OceanProject.OceanProject.h.cpp
1>  PCH.VictoryBPLibrary.VictoryBPLibraryPrivatePCH.h.cpp
1>  DummyPackagedBuildClass.cpp
1>  OceanPlugin.generated.cpp
1>  CustomVehicleController.cpp
1>  TerrainGenerationWorker.cpp
1>C:\Users\r\Documents\Unreal Projects\OceanProject 4.8\Plugins\OceanPlugin\Source\OceanPlugin\Private\Terrain\TerrainGenerationWorker.cpp(31): warning C4996: 'FRunnableThread::Create': Function deprecated. Use FRunnableThread::Create without bAutoDeleteSelf and bAutoDeleteRunnable params and delete thread and runnable manually. Please update your code to the new API before upgrading to the next release, otherwise your project will no longer compile.
1>          C:\Program Files\Epic Games\4.7\Engine\Source\Runtime\Core\Public\HAL\ThreadingBase.h(263) : see declaration of 'FRunnableThread::Create'
1>  ProceduralTerrain.cpp
1>  BuoyantDestructible.cpp
1>  FlockFish.cpp
1>  FishState.cpp
1>  FishManager.cpp
1>  MarchingCubes.cpp
1>  VictoryBPLibrary.generated.cpp
1>  VictoryPC.cpp
1>  TKMathFunctionLibrary.cpp
1>  VictoryBPFunctionLibrary.cpp
1>  VictoryEdEngine.cpp
1>C:\Program Files\Epic Games\4.7\Engine\Source\Runtime\Slate\Public\Slate.h(5): warning C4996: including Slate.h is deprecated. Please include SlateBasics.h and then individual widget headers instead.
1>  VictoryEdEngine.generated.cpp
1>  VictoryEdAlignMode.cpp
1>C:\Users\r\Documents\Unreal Projects\OceanProject 4.8\Plugins\VictoryPlugin\Source\VictoryEdEngine\Private\VictoryEdAlignMode.cpp(484): error C2039: 'LineTraceSingleByChannel' : is not a member of 'UWorld'
1>          C:\Program Files\Epic Games\4.7\Engine\Source\Runtime\Engine\Classes\Engine/World.h(503) : see declaration of 'UWorld'
1>C:\Users\r\Documents\Unreal Projects\OceanProject 4.8\Plugins\VictoryPlugin\Source\VictoryEdEngine\Private\VictoryEdAlignMode.cpp(853): error C2039: 'LineTraceSingleByChannel' : is not a member of 'UWorld'
1>          C:\Program Files\Epic Games\4.7\Engine\Source\Runtime\Engine\Classes\Engine/World.h(503) : see declaration of 'UWorld'
1>  VictoryEdEngineModule.cpp
1>  JoyISM.cpp
1>  VictoryTMapComp.cpp
1>  VictoryISM.cpp
1>  VictoryBPLibraryModule.cpp
1>  BuoyancyForceComponent.cpp
1>  BuoyancyComponent.cpp
1>  TerrainMeshComponent.cpp
1>  Noise.cpp
1>  OceanManager.cpp
1>  CustomFunctionLibrary.cpp
1>  OceanPlugin.cpp
1>  SimplexNoise.cpp
1>  OceanProject.cpp
1>  [36/47] Resource ModuleVersionResource.rc.inl
1>  [37/47] Resource ModuleVersionResource.rc.inl
1>  [38/47] Resource ModuleVersionResource.rc.inl
1>  [39/47] Resource ModuleVersionResource.rc.inl
1>  [40/47] Resource PCLaunch.rc
1>  [41/47] Resource PCLaunch.rc
1>  [42/47] Resource PCLaunch.rc
1>  [43/47] Resource OceanProject.rc
1>  [44/47] Link UE4Editor-OceanPlugin-Win64-DebugGame.dll
1>  [45/47] Link UE4Editor-OceanProject-Win64-DebugGame.dll
1>C:\Users\r\Documents\Unreal Projects\OceanProject 4.8\Plugins\VictoryPlugin\Source\VictoryBPLibrary\Private\VictoryBPFunctionLibrary.cpp(788): error C2039: 'GetMainAudioDevice' : is not a member of 'UEngine'
1>          C:\Program Files\Epic Games\4.7\Engine\Source\Runtime\Engine\Classes\Engine/Engine.h(535) : see declaration of 'UEngine'
1>C:\Users\r\Documents\Unreal Projects\OceanProject 4.8\Plugins\VictoryPlugin\Source\VictoryBPLibrary\Private\VictoryBPFunctionLibrary.cpp(1127): error C2664: 'T *NewObject<UPrimitiveComponent>(UObject *,UClass *)' : cannot convert argument 2 from 'FName' to 'UClass *'
1>          with
1>          
1>              T=UPrimitiveComponent
1>          ]
1>          No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
1>     Creating library C:\Users\r\Documents\Unreal Projects\OceanProject 4.8\Intermediate\Build\Win64\OceanProjectEditor\DebugGame\UE4Editor-OceanProject-Win64-DebugGame.lib and object C:\Users\r\Documents\Unreal Projects\OceanProject 4.8\Intermediate\Build\Win64\OceanProjectEditor\DebugGame\UE4Editor-OceanProject-Win64-DebugGame.exp
1>C:\Users\r\Documents\Unreal Projects\OceanProject 4.8\Plugins\VictoryPlugin\Source\VictoryBPLibrary\Private\VictoryBPFunctionLibrary.cpp(3841): error C2039: 'GetMainAudioDevice' : is not a member of 'UEngine'
1>          C:\Program Files\Epic Games\4.7\Engine\Source\Runtime\Engine\Classes\Engine/Engine.h(535) : see declaration of 'UEngine'
1>     Creating library C:\Users\r\Documents\Unreal Projects\OceanProject 4.8\Intermediate\Build\Win64\OceanProjectEditor\DebugGame\Plugins\Dynamic\UE4Editor-OceanPlugin-Win64-DebugGame.lib and object C:\Users\r\Documents\Unreal Projects\OceanProject 4.8\Intermediate\Build\Win64\OceanProjectEditor\DebugGame\Plugins\Dynamic\UE4Editor-OceanPlugin-Win64-DebugGame.exp
1>  -------- End Detailed Actions Stats -----------------------------------------------------------
1>ERROR : UBT error : Failed to produce item: C:\Users\r\Documents\Unreal Projects\OceanProject 4.8\Plugins\VictoryPlugin\Binaries\Win64\UE4Editor-VictoryBPLibrary-Win64-DebugGame.dll
1>  Cumulative action seconds (8 processors): 0.00 building projects, 343.98 compiling, 0.00 creating app bundles, 0.00 generating debug info, 3.47 linking, 0.00 other
1>  UBT execution time: 324.45 seconds
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.MakeFile.Targets(43,5): error MSB3073: The command ""C:\Program Files\Epic Games\4.7\Engine\Build\BatchFiles\Rebuild.bat" OceanProjectEditor Win64 DebugGame "C:\Users\r\Documents\Unreal Projects\OceanProject 4.8\OceanProject.uproject" -rocket" exited with code 2.
========== Rebuild All: 0 succeeded, 1 failed, 1 skipped ==========


Hi there!

Well the tip off is right here:



C:\Users\r\Documents\Unreal Projects\OceanProject 4.8\Plugins\VictoryPlugin\Source\VictoryEdEngine\Private\VictoryEdAlignMode.cpp(484): error C2039: 'LineTraceSingleByChannel' : is not a member of 'UWorld'
1>          C:\Program Files\Epic Games\4.7\Engine\Source\Runtime\Engine\Classes\Engine/World.h(503) : see declaration of 'UWorld'
1>C:\Users\r\Documents\Unreal Projects\OceanProject 4.8\Plugins\VictoryPlugin\Source\VictoryEdEngine\Private\VictoryEdAlignMode.cpp(853): error C2039: 'LineTraceSingleByChannel' : is not a member of 'UWorld'


LineTraceSingleByChannel is absolutely a function in UWorld in 4.8!

You must not be compiling with 4.8 somehow?

There’s no way the compiler should miss finding LineTraceSingleByChannel !

GetMainAudioDevice is also new in 4.8

I’d recommend doing this:

  1. delete intermmediate folder for the plugin and your main project
  2. delete sln,suo,sdf for main project
  3. right click on .uproject, and select switch engine version to 4.8
  4. recompile both main project and plugin

I’ve been compiling just fine in 4.8 and you simply should not be getting told by compiler that functions are missing that are new in 4.8


You could also try compiling for Development Editor 64 just for more test data.

Do keep me updated on your progress with this issue!



[QUOTE=Dakraid;311109]
Thank you Rama and Kris for the new nodes.
This entire BP suite makes working more convenient with every update!
Thank you again Rama for working on this!
[/QUOTE]


Woohoo!

Glad you are enjoying my Victory Plug Dakraid!

:)

:)

:)

Rama

**Load Texture 2D From File!

JPG, PNG, BMP, ICO, EXR, and ICNS are Supported File Formats !**

With this node you can load a Texture 2D from a file during runtime!

I output for you the width and height of the loaded image!

Now you can easily create Texture 2D’s from image files in Blueprints, during runtime!

Special Note!

Tim Sweeney liked this node!

Enjoy!

Rama

PS: Make sure to include the file extension when you use this node!

5e04c4d83d602f944fb2cfd946e90787f3b20f70.jpeg


**C++ Code For You**

Here is the core C++ function involved, entire source is in the download! I wrote my own Enum for the file formats.



```


UTexture2D* UVictoryBPFunctionLibrary::Victory_LoadTexture2D_FromFile(const FString& FullFilePath,EJoyImageFormats ImageFormat, bool& IsValid,int32& Width, int32& Height)
{
	IsValid = false;
	UTexture2D* LoadedT2D = NULL;
	
	IImageWrapperModule& ImageWrapperModule = FModuleManager::LoadModuleChecked<IImageWrapperModule>(FName("ImageWrapper"));
	
	IImageWrapperPtr ImageWrapper = ImageWrapperModule.CreateImageWrapper(GetJoyImageFormat(ImageFormat));
 
	//Load From File
	TArray<uint8> RawFileData;
	if (!FFileHelper::LoadFileToArray(RawFileData, * FullFilePath)) 
	{
		return NULL;
	}
	
	  
	//Create T2D!
	if (ImageWrapper.IsValid() && ImageWrapper->SetCompressed(RawFileData.GetData(), RawFileData.Num()))
	{ 
		const TArray<uint8>* UncompressedBGRA = NULL;
		if (ImageWrapper->GetRaw(ERGBFormat::BGRA, 8, UncompressedBGRA))
		{
			LoadedT2D = UTexture2D::CreateTransient(ImageWrapper->GetWidth(), ImageWrapper->GetHeight(), PF_B8G8R8A8);
			
			//Valid?
			if (!LoadedT2D) 
			{
				return NULL;
			}
			
			//Out!
			Width = ImageWrapper->GetWidth();
			Height = ImageWrapper->GetHeight();
			 
			//Copy!
			void* TextureData = LoadedT2D->PlatformData->Mips[0].BulkData.Lock(LOCK_READ_WRITE);
			FMemory::Memcpy(TextureData, UncompressedBGRA->GetData(), UncompressedBGRA->Num());
			LoadedT2D->PlatformData->Mips[0].BulkData.Unlock();

			//Update!
			LoadedT2D->UpdateResource();
		}
	}
	 
	// Success!
	IsValid = true;
	return LoadedT2D;
}


```



**Latest plugin download on the UE4 Wiki: (7.91 mb) **


**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.

https://www.mediafire.com/?g6uf9kt5ueb2upj

Enjoy!

:)

Rama

@Rama - Hah yeah, that’s why I posted, it’s definitely there and is compiling against the 4.8 source. Really weird.

Edit: Switch engine version on the project did it, for some reason making a copy for 4.8 didn’t already do that. Thanks!

Wow, I’d been looking for an image importer for what feels like forever. Thanks so much!
One question: How should I go about translating heightmap values to coordinates/z values?
I’m trying to export my heightmap from UE4, then import it with the image reader to determine the z coordinates when spawning objects, but there’s obviously going to be a difference in magnitude.
I’ve managed to get the coordinates somewhat close with hand drawn maps, but anything exported from UE4 and reimported for reference is pretty off.

For reference, if I set the landscape’s location to 0,0,0, I can get almost kind of accurate Z values by dividing the X/Y Coordinates by 100 and rounding, then adjusting the Z value until it matches up with one coordinate, at which point it generally matches up with the others.

Woohoo! You’re welcome! :slight_smile:

Yea it sounds like you are going to have arbitrary scaling values that you need to apply until you end up in the proper range, and it sounds like it could vary per image.

If you come up with a formula for that I can get you a node to iteratively test faster, or you can create a Blueprint Function Library, the BP asset kind, and do the equation there and then you’ve created your own node to iteratively test with :slight_smile:

Good luck!

:slight_smile:

Rama

Rama’s BP Config File (.ini) Suite

Rama’ Suite of Custom Config Section BP Nodes!

Using my new suite of BP nodes, you can create as many of your own custom config file sections as you want!

You can both create and retrieve ini variables with any name and fundamental type that you want!


**Supported Types:**

Bool
Int
Float
Rotator
Vector
Color
String

Why Use a Config Var?

Config vars have several benefits

  1. Persistent data storage without using a SaveGame struct or GameInstance, store simple quantities of data and player customization this way! Data is stored between level loads and even after the current instance of the game is shut down.

So in this way config vars have greater persistence than the GameInstance class!

  1. Player-Driven Customization, Players of your game can tweak the config vars that you make available for them on their hard disk, by editing the .ini file directly, just like AAA games! This is the most significant advantage of using config files, and their real core purpose. :slight_smile:

  2. Simplicity, simpler to use than the BP SaveSystem (which is quite wonderful by the way), but not quite as powerful in that you can only store basic data types, not UObjects and Actors.

  3. **Organization, **you can create as many config header sections as you want using my nodes, organizing all your custom settings this way!


**Game.ini**

All of your custom created config vars and sections are stored in:

**Saved/Config/Windows/Game.ini**

Players can navigate to this location on their harddrive to edit your ini files just like any AAA game would allow!

Here's what my **Game.ini** file looks like after running some tests!



```


[DebugWindows]
ConsoleWidth=160
ConsoleHeight=4000
ConsoleX=-32000
ConsoleY=-32000

[/Script/UnrealEd.ProjectPackagingSettings]
BuildConfiguration=PPBC_Development
StagingDirectory=(Path="E:/MYPROJECT_DELETE")
FullRebuild=True
ForDistribution=False
UsePakFile=True
UseOBB_InAPK=False
CulturesToStage=en

[Victory]
BoolVar=True
VectorVar=X=1.000 Y=2.000 Z=9000.123
StrVar=Yay For Custom Config Vars!!!
FloatVar=234.000000


```



**Now you have fully featured ability to use config variables entirely in BP!**

Usage

Here’s an example usage!


**Latest plugin download on the UE4 Wiki: (7.91 mb) **
https://wiki.unrealengine.com/File:VictoryPlugin.zip

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.

Enjoy!

:slight_smile:

Rama

Silly me. I had forgotten to account for the elevation’s negative range values. Works like a charm now! :slight_smile: