Using Blueprint Path in a shipped game (Loading/ Spawning Actors MP)?

Hello i was wondering is it ok to use a blueprint path for things like spawning actors for a shiped game?

e.g: i have a Blueprint with the path

“Blueprint’/Game/Blueprints/BP_MyBlueprintDerivedFromCpp.BP_MyBlueprintDerivedFromCpp”

I havent realy figuerd out if the path changes for a client/ shipping build.
But am thinking it be a realy easy to store paths in a data sheet with a user Friendly name and a ID for item lists and so forth.

But runing under a singel process i can see that the Blueprint Path is.

18941-path+example+runing+use+singel+process+(true).png

I Have no idea where the start of that path is coming from.

/…/UEDPIE_1_1

Thanks for any advice.

If i cant use the path from the editor in a shipped game, how do i refrence them?
With out having to store subclass of every item class available to the player, server and/ or client side?

The resson for asking is that when trying to spawn some Blueprint actors e.g: ABaseWeapon::

It is never spawned unless am running PIE and with no server, as soon as a server is introduced it dont work.

Unless running under “Use Singel Process” (true). (So the network code should not be the issue .)

So am thinking the solution to my problem is this.
https://docs.unrealengine.com/latest/INT/Programming/Assets/AsyncLoading/index.html

And there is a great example .

It just seems like a lot of work just to get a hold of a asset/ actors/ blueprint generated classes.

Am i totoly off the board on this?

Questions go bump in the night. :slight_smile:

Ok so i figuerd out the problem, the solution was Asynchronous Asset Loading.
I know now that any item list should be implemented in a singelton class for obvious reasons.

But for any one trying to do this with a Blueprint it left me with a “issue” that i could only load UObject::`s
I did this in the following way for anyone intrested.

Loading the object curtesy of (Wiki)

//TEMPLATE Load Obj From Path
template <typename ObjClass>
static FORCEINLINE ObjClass* LoadObjFromPath(const FName& Path)
{
	if (Path == NAME_None) return NULL;
	//~
	return Cast<ObjClass>(StaticLoadObject(ObjClass::StaticClass(), NULL, *Path.ToString()));
}

After this i just did a cast to a Blueprint like so,

static FORCEINLINE UBlueprint* LoadBPFromPath(const FName& PathToBP)
{
	UBlueprint* GeneratedBP = Cast<UBlueprint>(LoadObjFromPath<UObject>(PathToBP));
	return GeneratedBP;
}