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

As of 4.6.1, a code-based project is required to package the game, but a BP-only project can use the plugin during development.

is going to be fixed by Epic soon :slight_smile:



[QUOTE=Pampers;206799]
Do I need a 4.7 to get it to work with packed games? Great work btw, everytime I open  thread, I find nodes I never knew I couldn't live without :)
[/QUOTE]


Hee hee! Glad you like my various BP node offerings!

I will have to look into that, I am just using Epic’s function internally, so perhaps there is something going on with the function itself, send me a PM if I haven’t gotten to within 2 weeks or so.

Giving Me Credit for Victory BP Library

Victory BP Library Copyright Permissions

Yes the code is free to use anywhere you want!

I only request that you mention me in the credits for your game in the way that feels most appropriate to you, thereby honoring my contributions.

I prefer to be mentioned as simply “”

:slight_smile:

Yea! Epic has been telling me that getting plugins working in BP only packaged games is very high priority for them :slight_smile:

**New Release!

’ 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 way! Data is stored between level loads and even after the current instance of the game is shut down.

So in 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! 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 your custom settings way!


**Game.ini**

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

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

Players can navigate to  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!**



PS: Here's example usage!

![Usage.jpg|1280x960](upload://vJ8VyiQCZXj6G59JXlBNDrMdZow.jpeg)

**New Node: Load Texture 2D From File!

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

With 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!

Enjoy!

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


**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;
}


```



Download Link (6.5mb)

UE4 Wiki, Plugin Download Page

Yeah, i cant find words to appreciate his awesomeness anymore, so yeah…

Thanks ! :slight_smile:

Hee hee!

Great to hear from you !

Hee hee!! * Blushes *

:slight_smile:

New Sound Node For you

Keep in mind you can now get/set the volume of any sound class to any value you want, anywhere in BP, any!

:slight_smile:

But it will not be possible in 4.7, right?

Hi there ,

first of , thank you very much for content to provide us with.

I have a question referring your Rebindable Key.

I tried to figure out from where you used OnKeyDown Event, which seems to be a reply to any Key Event occuring.
I looked through the Engine and couldnt find any Function which describe that behaviour. How did you do that?

best regards

, thank you for another excellent Unreal Engine 4 contribution!

I just found out that the function i need is implemented in UserWidget.h.

But how is the intention of getting inside an UMG widget, is event automatically consumed within widgets parent, when the child is in focus?

Hi ,

Its been a while since I posted on forum. Took a break from my thesis.

I am facing some limitations with your current vertex manipulation blueprints. One of that is I have a class called Interactive_Actor. actor class holds the thermodynamic properties of a static mesh. It also has a component called Default Mesh which gets changed to a user set static mesh through a Set Static Mesh node in the constructor. However, when I drag out the blueprint into the scene, there are no vertices highlighted. It seems the codes only work directly on static meshes dropped into the scene. Is there a way to make it work also on custom blueprint actors (static meshes with custom properties)?

Cheers!!!

omg… sorry for the disturbance i missed the “show inherit variables”…

You’re welcome !

Thank you so much for UE4!

I am having fun with UE4 every day!

You should use StaticMeshActor as your base class for your BP, hopefully then it will work right!

Replace uses of your custom static mesh component with StaticMeshComponent ref.

Try it as a test and see how it goes!

Good luck!

BP Node to Get Your Computer’s IP Address!

Dear Community,

I’ve finally succeeded at implementing a node that many have been trying to implement since the Beta!

is a BP node that gets the IP address of your computer!

My node relies on http://api.ipify.org, a free and easy way to get your current IP address.

Because node involves an HTTP request I can’t make it a static library node, so I instead made a VictoryPC class that contains only functionality.

You can easily re-parent your current player controller blueprint to use my plugin VictoryPC class!

File->Reparent

and if you are not using a PC already, make sure to go to World Settings and use my VictoryPC as your player controller!

As long as my Victory BP Library is an active plugin for you, then VictoryPC class will show up!

Download:


**Celebration!**

Yay!

Now we can  get the IP address of the local computer for use with multiplayer games or webserver activities!

Enjoy!



Pic

Here’s the setup you should create in your Blueprinted version of my VictoryPC!


**C++ Source Code For You**

Here is the C++ source code I wrote just earlier today!



```


bool AVictoryPC::VictoryPC_GetMyIP_SendRequest()
{
	FHttpModule* Http = &FHttpModule::Get();
	
	if(!Http)
	{
		return false;
	}
	 
	if(!Http->IsHttpEnabled()) 
	{
		return false;
	} 
	//~~~~~~~~~~~~~~~~~~~
	
	FString TargetHost = "http://api.ipify.org";
	TSharedRef < IHttpRequest > Request = Http->CreateRequest(); 
	Request->SetVerb("GET");
	Request->SetURL(TargetHost);
	Request->SetHeader("User-Agent", "VictoryBPLibrary/1.0");
	Request->SetHeader("Content-Type" ,"text/html");
 
	Request->OnProcessRequestComplete().BindUObject(, &AVictoryPC::HTTPOnResponseReceived);
	if (!Request->ProcessRequest())
	{
		return false;
	}
	  
	return true;
}
	
void AVictoryPC::HTTPOnResponseReceived(FHttpRequestPtr Request, FHttpResponsePtr Response, bool bWasSuccessful)
{
	->VictoryPC_GetMyIP_DataReceived(Response->GetContentAsString());
}
 


```



♥

I was stuck with dynamic generated arrays in BP… and then I found a way to load image sequences with your plugin. You saved my life! ;D
I used the LoadObjectFromAssetPath node, but I’m gonna try the LoadImage node soon as well!
I’m eagerly waiting for 4.7 and see if I can deploy to apk directly…
Thx again dude!

Hi !

What about a Bp that enables/disables subtitles during runtime? Can be posible?

In fact, could be posible to change the culture (cultures are the game’s languages people) during runtime?

With two features, your already graphics, custom ini’s settings and key rebinding we could have an entire game menu 100% functional without game launcher working ingame in any plataform! :smiley:

Anyways, thank you for the already well work! Porting Mind: Path to Thalamus to Vr and UE4 is being soo much easier thanks to your nodes :wink:

Hi! Oh you’re welcome, yay! Glad my Victory BP Library helped you out!

I know there’s a command to change localization at runtime, if you can find it via Epic’s tutorials or answerhub then I can work with it as a BP node :slight_smile: