Particle system component does not become 'visible in game'

I have a blueprint with a static mesh component in it. It’s a hint arrow for the tutorial. The blueprint actor itself is set to “Actor Hidden in Game” on the instance, and at a certain point, the level script actor does some stuff that ends up calling SetActorHiddenInGame() to false (via C++) to show the arrow.

That worked fine when the static mesh component was the only component.

I’m now trying to replace that static mesh component with a particle system component. I’ve got the properties set up the same on the particle system component, but it never appears. The particle system itself is continuous and its “Seconds Before Inactive” is set to 0, so I know it’s not being deactivated …

So I can have both components in the BP, and when the blueprint gets un-hidden, the static mesh component shows up, and the particle system doesn’t.

This really looks like a UE4 bug.

Hello Mothership peeps!

I wouldnt hide the particle, but just disable it in the blueprint, and enable it once you need it.
This would be a decent workaround until someone from epic looks at it and can tell us if its indeed a bug.

Thanks, Luos … I’ve hacked around it for now by teleporting the particles below the landscape instead of using HiddenInGame …

Ouch, thats quite the hack!
that said, I would still disable/enable them to be sure they arent taking up valueble cpu/gpu power.

Yeah, good thought, although it’s just for the tutorial which is the least demanding level we have. Perf is definitely not a problem in the tutorial.

my solution is

Actor->SetActorHiddenInGame(false);

UParticleSystemComponent* Component =
Cast<
UParticleSystemComponent>
(Actor->GetComponentByClass(UParticleSystemComponent::StaticClass()));

if (Component)
{
Component->Activate(true);
}