Issue with particles not showing at runtime (fine in 2D editor)

Godot Version

4.3.dev1

Question

I have a straaaange issue with adding particles CPUParticles2D to my scene:

  • I have a 2DNode with a CPUParticles2D as a child in it. I’ve set up the particles as I need them. All good.
  • On my level scene, I have a chest (Node2D) which is an instantiated child scene (includes a sprite, a collisionshape). I want to have my particles play constantly on top of my treasure chest, so I instantiated the node containing the particles as a child to the chest node. In my 2D editor, it is working flawlessly, however, when I run the game, the particles are nowhere to be found. I print()-ed the emitting property on it, and it’s emitting.

Now after some debugging, I found out that if I add multiple instances of the particles, the one lower in the node tree will render, and the one higher up won’t (no matter if they’re siblings or not).
Another finding was that even if I have two as described above, the lower one will ONLY be rendered WHILE the higher up one has a particle rendered on screen. this is hard to explain so example:

  • level
    • chest
      • particles 1 (not rendering at all)
      • particles 2 (rendering, but only while particles 1 has at least 1 particle currently on screen)

so if particles 1 is a default particle with gravity with amount = 1, particles 2 will only be shown while that 1 particle drops, disappear once it’s gone, and reappear once once a new particle is dropping.

The only way I can make it work at the moment is to have 2 instances of the same node overlapping, one in place onlyto have the other one show.






1 Like

what is your script attached to the “omen” node2d? does it touch enabling/disabling the particle?

It has 2 functions to set emitting on/off, just so I can control it from the level later, but I tried removing it altogether and I’m getting the same behavior

I have the same issue…