@fredetmumu I have to use the for each loops because if I don't the particles will fall through the floor; the Particle Spray Object takes control because it has a gravity parameter, setting the particles to Y once doesn't stop them, it needs to be set to Y continuously until the particle is destroyed.
@marbenx Unfortunately didn't work, kind of like what I mentioned to fredetmumu above, the particle somehow escapes being considered "overlapping" because of the gravity setting, and once it stops being considered an overlap it will just keep falling down into the floor. If you look at the code in my most recent post I put a Ypos variable on the particle object so that the saved Ypos will translate across event lines, this works perfectly but it still doesn't work for the slopes, it sticks to the YTop of the slopes, but since it's a slope the YTop is the top of the transparent collision box and not the actual slope, even though both the particle and slope use Fine Detection.
Seems a lot of the issues stem from it being the Particle Spray, and moreso that it doesn't let you turn off the gravity for individual particles. I need to go out but in a little bit I'll probably try experimenting with my own particle system and see if I can come up with something more simple.