ohhh, i used the "player touch" trigger to determine the type of the last tile the character is on. maybe that's why it doesn't register unless the movement is finished.
i thought about using coordinates but didn't know how to code it without having to manually write down the coordinates of every swappable tile lol. but i'll look into scripts, i really want to learn how to use them for future games! thank you for the info!! :D