You could do place_meeting+speed to check for spikes before allowing a succesful save.
If !place_meeting(x+hspeed,y+vspeed,playerKiller) and keyboard_check_direct(ord('S')) { saveGame(); }
You should probably add a key to allow the player to restart at the start of the room.