If you launch this in debug you might find that it does run the function and create 12 blood particles but they're spawning on your original BloodPool that you have off screen somewhere, not on the one that was created. You call the function when the new bloodpool is created but then on the function for spawning the particles, it does this on the bloodpool with the lowest UID, not necessarily the one that was just created. Logic needs tweaking a bit to link the spawned bloodpool to the particle spawn, something like On bloodpool created > For particles 1 to 12 > create blood. i.e. in your second image replace the function call with 'Spawn bloodpool on enemy' and the 'on function' with 'On bloodpool created'.