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

[FONT=Comic Sans MS]Teleport Actor To Actor

can be used after ending ragdoll, to send the player to a player start, or a trigger, a check point, or any actor really :slight_smile:

My node causes the player to face the exact rotation of the playerstart/trigger/checkpoint/ other actor :slight_smile:

Returns false if one of the inputs was not valid.

Enjoy!


**C++ Source Code**

Remember I always include the entire C++ source code for  of the Victory BP Library Nodes in the actual plugin download!

Here's the .cpp for  new node



```

bool UVictoryBPFunctionLibrary::Actor__TeleportToActor(AActor* ActorToTeleport, AActor* DestinationActor)
{
	if(!ActorToTeleport) return false;
	if(!ActorToTeleport->IsValidLowLevel()) return false;
	if(!DestinationActor) return false;
	if(!DestinationActor->IsValidLowLevel()) return false;
	
	//Set Loc
	ActorToTeleport->SetActorLocation(DestinationActor->GetActorLocation());
	
	//Set Rot
	ActorToTeleport->SetActorRotation(DestinationActor->GetActorRotation());
	
	return true;
}

```
1 Like

[FONT=Comic Sans MS]More Pics

Here’s some more pics of nodes I am giving you in plugin, no C++ compile required!

Find out if game is the foreground window, and freeze/unfreeze Render Thread

Distance from point to Surface of Mesh

Save Text to Hard Disk

Viewport Functions

Determine if current world is Editor or PIE or Game Instance

1 Like

I did that, but I don’t see any Victory Plugin.

But if I put it inside the engine plugin folder instead, it shows.

1 Like

Make sure it looks something like: Unreal Projects->YourProjectName->Plugins->PLUGIN_VictoryBPLibrary

1 Like

I tried that, but the plugin didn’t appear on the plugins list. But if I put it inside the engine plugin folder( UnrealEngine-4.1\Engine\Plugins ) instead, it shows.

1 Like

Hmm, I’ve got it working fine from the project folder. It doesn’t appear in the default list of plugins on the right, it’s in a category at the bottom of the list on the left. I almost overlooked it.

1 Like

Yes the engine plugins are at the top, and the bottom is for project context, I believe :slight_smile:

Alex3d let us know if info helps at !

Here’s a pic

1 Like

New BP Node

Clone Static Mesh Actor

Clones the mesh, materials, rotation, location, and physics state of a Static Mesh Actor.

You can set an optional offset of location and rotation from the original!

is during game-!

You can clone the output of node, to creating a series of actors rotated / translated from the original (like an array in 3ds )

Or, you can numerically increment the location and rotation offsets and keep using the original in a for loop !

:slight_smile:


**Picture**

![4c4bf184ee26f08aef760fe5c670efb017557b23.jpeg|1440x1080](upload://aSWZJTY8PrNb4rR6FbAtFjt3M1d.jpeg)

C++ Code


AStaticMeshActor* UVictoryBPFunctionLibrary::Clone__StaticMeshActor(UObject* WorldContextObject, bool&IsValid, AStaticMeshActor* ToClone, FVector LocationOffset,FRotator RotationOffset)
{
	IsValid = NULL;
	if(!ToClone) return NULL;
	if(!ToClone->IsValidLowLevel()) return NULL;
	//~~~~~~~~~~~~~~~~~~~~~~~~~~~
	
	if(!WorldContextObject) return NULL;
	
	//using a context  to get the world!
    UWorld* const World = GEngine->GetWorldFromContextObject(WorldContextObject);
	if(!World) return NULL;
	//~~~~~~~~~~~
	
	//For BPS
	UClass* SpawnClass = ToClone->GetClass();
	
	FActorSpawnParameters SpawnInfo;
	SpawnInfo.bNoCollisionFail 		= true;
	SpawnInfo.Owner 				= ToClone;
	SpawnInfo.Instigator				= NULL;
	SpawnInfo.bDeferConstruction 	= NULL;
	
	AStaticMeshActor* NewSMA = World->SpawnActor<AStaticMeshActor>(SpawnClass, ToClone->GetActorLocation() + FVector(0,0,512) ,ToClone->GetActorRotation(), SpawnInfo );
	
	if(!NewSMA) return NULL;
	
	//Copy Transform
	NewSMA->SetActorTransform(ToClone->GetTransform());
	
	//Mobility
	NewSMA->StaticMeshComponent->SetMobility(EComponentMobility::Movable	);
	
	//copy static mesh
	NewSMA->StaticMeshComponent->SetStaticMesh(ToClone->StaticMeshComponent->StaticMesh);
	
	//~~~
	
	//copy materials
	TArray<UMaterialInterface*> Mats;
	ToClone->StaticMeshComponent->GetUsedMaterials(Mats);
	
	const int32 Total = Mats.Num();
	for(int32 v = 0; v < Total; v++ )
	{
		NewSMA->StaticMeshComponent->SetMaterial(v,Mats[v]);
	}
	
	//~~~
	
	//copy physics state
	if(ToClone->StaticMeshComponent->IsSimulatingPhysics())
	{
		NewSMA->StaticMeshComponent->SetSimulatePhysics(true);
	}
	
	//~~~
	
	//Add Location Offset
	const FVector SpawnLoc = ToClone->GetActorLocation() + LocationOffset;
	NewSMA->SetActorLocation(SpawnLoc);
	
	//Add Rotation offset
	FTransform TheTransform = NewSMA->GetTransform();
	TheTransform.ConcatenateRotation(RotationOffset.Quaternion());
	TheTransform.NormalizeRotation();
	
	//Set Transform
	NewSMA->SetActorTransform(TheTransform);
	
	IsValid = true;
	return NewSMA;
}

1 Like

Thanks. I probably overlooked it, because it is there.

Looking at your wiki…

I don’t see at . Only the V snap to vertice is working. U and Y does nothing.

1 Like

I’ve noticed it doesn’t seem to work with meshes that are in a blueprint(Did I miss something?), Y doesn’t work if the is over a brush/CSG geometry, works fine when over another static mesh or landscape.

1 Like

The vertex snap and the U and Y keys are something that have to be activated via config file :slight_smile:

Did you do that part?

https://wiki.unrealengine.com/'s_Vertex_Snap_Editor_Plugin#Installation

None of required to use the Blueprint nodes though! They will work as soon as editor is restarted after checking my plugin as active.


**I am giving my Vertex Snap  To Epic**

I am currently reworking the vertex snap  to be integrated directly into the engine, no longer a plugin,

![2e14576c31d1833e7d7fc6208633b6c1cad77cb9.jpeg|751x633](upload://6zDxNkGn5ZFGjIGwdlDLBL5sdlv.jpeg)

![acf0bb09fe2b65ba33df013efce5e030beeec616.jpeg|923x636](upload://oFTT3489lBgfZaig4il8XUJVNTU.jpeg)

![5efd65da42eb723a2a376f30831a80d835464d1d.jpeg|925x650](upload://dyjME8XsQ4g9aEKNAiVtR1Ylpgx.jpeg)

you can vote for it here!

https://forums.unrealengine.com/showthread.php?3275-Giving-my-Vertex-Snap-Editor--to-Epic-as-Pull-Request

ooooh, yea that makes sense Xodroc! Cause BSP is not getting detected by my trace method with the Y drop-to-nearest surface !

Thanks for clarifying that!

I’ve not put much energy into the Plugin vertex snap and other Victory Editor Mode features since I’m busy integrating vertex snap directly into the Engine :slight_smile:


**Video of UE4 Vertex Snap Editor Integration**

 is an alpha footage video of UE4 Vertex Snapping, as a built in  that will come with the Editor!


https://www./fW23S0DlF3g


You can vote for it here!

https://forums.unrealengine.com/showthread.php?3275-Giving-my-Vertex-Snap-Editor--to-Epic-as-Pull-Request
1 Like

that not for a noob like me but i like see people share ‘open’ here work and ideas, that help others learn. thx

1 Like

Yes, I did. But
Anyway, I will wait for the Vertex Snap Editor Integration. :wink: Thanks

1 Like

Get Screen Resolutions & Combine String

Two New BP Nodes

The download link in original post is now updated with two new nodes!


**Get Screen Resolutions**

Obtains a list of  the screen resolutions supported by the user's current display adapter!

**Option to include or exclude the refresh rates that are available for each resolution!**


**New version of Get Screen Resolutions**
![3975ab3d6a15f4e36483e111fc160973adf7e86d.jpeg|1280x960](upload://8cjjRazEUm77M7U8S6HTegXHO5n.jpeg)

Combine Strings

Combine two strings with an optional separator and labels that will appear in front of each member of the pair.


Picture

I used the two nodes above to print out a listing of  supported screen resolutions, on the press of a key, using blueprints!

(open in new tab to see full size)

https://d3ar1piqh1oeli.cloudfront.net/e/e0/ScreenResolutions.jpg/1400px-ScreenResolutions.jpg
1 Like

Dear ,

Have i ever told you how crazy awesome you are?

1 Like

**** , you are unstoppable! Thank you for .

Quick suggestion: Arrow keys move actors in the X/Y via the snap grid amount

1 Like

excelent! thank you!

1 Like

I just wanted to thank you for contribution to the community.
It’s great! and yeah you are awesome :smiley:

1 Like

Rawrrr!!

(nice suggestion too, have you tried ctrl + LMB, RMB, and both mouse buttons? That is already built in :slight_smile: )

CTRL + LMB + mouse move = x axis
CTRL + RMB + mouse move = y axis
CTRL + Both + mouse move = z axis

Hee hee! Thanks !

Hee heeee!

1 Like

I didn’t know that, but now I do! :slight_smile:

I guess I should have explained my suggestion better (but I was trying to be quick hehe). I meant using the arrow keys to nudge the actor a one (grid) slot. Sometimes you want to move that actor one space over and but the mouse moves it two, or three. It really becomes a pain when working with large objects, etc.

1 Like