Before I made a custom engine, I was using the "set position" event a lot, i.e. collision with object= set player at (x,y). But now when this happens, the positions of the detectors get messed up. Is there a way to make it so they always stay at the positions they were originally set?
If your problem is what I think it is, then you need an ALWAYS trigger that constantly sets your detectors to the correct location, and it has to be positioned after the lines that change the position of the player object. Otherwise they'll be lagging behind for one frame (which often isn't a big deal, but might be in this case).
If I've misunderstood you, you might need to explain the problem in more detail.