C++ Newbie - Please judge my C++ code.

Without looking at too much what your code is doing, one area you may want to consider (unless I read it wrong):



void UCustomBlueprintNodes::SnapVectorToGrid(FVector Vector, float GridSize, FVector& SnappedVector)
{
	float SnappedX = (float)((int)(Vector.X / GridSize))*GridSize;
	float SnappedY = (float)((int)(Vector.Y / GridSize))*GridSize;
	float SnappedZ = (float)((int)(Vector.Z / GridSize))*GridSize;

	if (FMath::Fmod(Vector.X, GridSize) >= GridSize / 2)
		SnappedX += GridSize;


	if (FMath::Fmod(Vector.Y, GridSize) >= GridSize / 2)
		SnappedY += GridSize;

	if (FMath::Fmod(Vector.Z, GridSize) >= GridSize / 2)
		SnappedZ += GridSize;

	SnappedVector = FVector(SnappedX, SnappedY, SnappedZ);
}


Also I like to make sure that GridSize is not zero, and would precede the code with a check for zero and assign it one if so.