Node after delay node on character blueprint event graph not always firing?

could it be that another zombie run into one that in converting period and then stopped current event call?

maybe you can try putting a “doOnce” node right after the event trigger and see if this problem goes away.

I’m working on an infection type of project where 100 white characters spawn along with 2 red ones. The red ones chase the white ones and convert them to red, so on and so forth. I placed a collision sphere on the front of the characters and I do the white to red conversion on overlap with the sphere. In an attempt to slow down the rate of conversion in big masses of characters, I tried to implement a two second delay between when characters get converted and when they can start converting other characters. I did this by turning off “Generate Overlap Events” on the sphere component, then placing a 2 second delay, and then turning overlap events back on. For what it’s worth, I also tried turning off and on collision in general for the sphere component.

What happens is some characters never get their overlap events turned back on. They’ll run straight into the white characters but nothing happens. It does seem to happen less often if I make the duration of the delay lower. I can’t figure out why this is happening, and am thinking it could possibly be a bug, but I’m not sure. Does anyone know of any other way to achieve my goal?

I wouldn’t have the off and on in the same line of operation like that. Since I cannot see the rest of the blueprint I would guess that theres something that happens and fires off the change I think it may happen again sort of in a loop so it keeps triggering the disable.

What you could do is put the overlap change in a function and call it with a timer. You could probably accomplish this some other ways as well with a bool check.
Delay is really not efficient to be used in this way since the change is important and you have no way of knowing if it fired off or not until it’s too late.

Hey, thanks. I hadn’t realized that the execution process could be interrupted in this case.

Thanks a lot. I wasn’t aware of those methods, nor the risks of using delay.