Packaged game can't spawn actor from plugin using StringAssetReference

loadPlug.zip (11.1 MB)

Recreated your plugin structure + asset path

use ConstructorHelpers::FClassFinder to get the class and spawn the actor on begin play

header .h

// Fill out your copyright notice in the Description page of Project Settings.

#pragma once

#include "CoreMinimal.h"
#include "GameFramework/Actor.h"
#include "Loader.generated.h"

UCLASS()
class LOADPLUG_API ALoader : public AActor
{
	GENERATED_BODY()
	
public:	

	ALoader();

protected:

	virtual void BeginPlay() override;

public:	

	virtual void Tick(float DeltaTime) override;

	bool bSpawn = false;

	UClass* ActorClass = nullptr;

};

.cpp

#include "Loader.h"

// Sets default values
ALoader::ALoader()
{

	PrimaryActorTick.bCanEverTick = true;

	bSpawn = false;

	static ConstructorHelpers::FClassFinder<AActor>actorC(TEXT("/MyPlugin/BP/BP_Helicopter.BP_Helicopter_C"));
	ActorClass = actorC.Class;

	if (actorC.Succeeded()) {
		bSpawn = true;		
	}

}

void ALoader::BeginPlay()
{
	Super::BeginPlay();
	
	if (bSpawn == true && ActorClass != nullptr) {
		FActorSpawnParameters sp;
		sp.bNoFail = true;
		FTransform t;
		AActor* act = GetWorld()->SpawnActor<AActor>(ActorClass, t, sp);
	}	
}

void ALoader::Tick(float DeltaTime)
{
	Super::Tick(DeltaTime);
}

Object loads from plugin content path and spawns the blueprint at 0,0,0

1 Like