{ }Blueprint → C++

Unreal Engine 5 · Blueprint → C++

Spawn Emitter at Location in Unreal Engine 5 C++

Spawn Emitter at Location maps to UGameplayStatics::SpawnEmitterAtLocation, which spawns a Cascade UParticleSystem and returns a UParticleSystemComponent*.

Blueprint node & C++ equivalent

Spawn Emitter at Location Blueprint node and its C++ equivalent in Unreal Engine 5
The “Spawn Emitter at Location” Blueprint node.
.h File
private:
	// The emitter needs to be set in blueprint
	UPROPERTY(EditAnywhere, meta = (AllowPrivateAccess = "true"))
	UParticleSystem* ExampleEmitter;
.cpp File
#include "Kismet/GameplayStatics.h"

UParticleSystemComponent* SpawnedEmitter;
FTransform SpawnTransform;

if (ExampleEmitter)
{
	SpawnedEmitter = UGameplayStatics::SpawnEmitterAtLocation(
		GetWorld(),        // World object
		ExampleEmitter,    // Emitter
		SpawnTransform     // Spawn transform
	);
}

Set up the particle system reference

Declare the emitter as a UPROPERTY(EditAnywhere) of type UParticleSystem* in your header so it can be assigned in the editor. The meta = (AllowPrivateAccess = "true") specifier keeps the member private while still exposing it to the details panel.

The C++ equivalent

In the .cpp, include Kismet/GameplayStatics.h and call UGameplayStatics::SpawnEmitterAtLocation(GetWorld(), ExampleEmitter, SpawnTransform). Pass the world from GetWorld(), the assigned UParticleSystem, and an FTransform for placement. The function returns a UParticleSystemComponent* you can store and later stop or modify.

Always check that ExampleEmitter is valid before spawning, since an unassigned reference would otherwise pass null into the function.

Common mistakes

This node is for the older Cascade particle system. If your asset is a Niagara system, use UNiagaraFunctionLibrary::SpawnSystemAtLocation and a UNiagaraSystem* instead. Mixing the two types will fail to compile or refuse to assign in the editor.

Frequently asked questions

How do I spawn a particle emitter at a location in UE5 C++?+

Call UGameplayStatics::SpawnEmitterAtLocation(GetWorld(), Emitter, Transform) after including Kismet/GameplayStatics.h, where Emitter is a UParticleSystem* set in the editor.

Does SpawnEmitterAtLocation work with Niagara?+

No. SpawnEmitterAtLocation is for Cascade UParticleSystem assets. For Niagara use UNiagaraFunctionLibrary::SpawnSystemAtLocation with a UNiagaraSystem.

Related Utilities nodes

View all Utilities nodes →