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

private:
// The emitter needs to be set in blueprint
UPROPERTY(EditAnywhere, meta = (AllowPrivateAccess = "true"))
UParticleSystem* ExampleEmitter;#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.