"Ignore if can't move" command is not working

So I have a simple furniture system that’s basically complete.

When the player places down a piece of furniture, the game runs this precise set of commands.

>Set Furniture Variable to Table

Set Table to “Through” Mode
Move Player Back 1 and Turn On Switch 150, Ignore If Can’t Move
(If 150 is Off…)
Turn Player Up and Move Player Back 1 and Turn On Switch 150, Ignore If Can’t Move, Wait
(If 150 is Off…)
Turn Player and Move Player Back 1 and Turn On Switch 150, Ignore If Can’t Move, Wait
(If 150 is Off…)
Turn Player Left and Move Player Back 1 and Turn On Switch 150, Ignore If Can’t Move, Wait
(If 150 is Off…)
Turn Player Right and Move Player Back 1 and Turn On Switch 150, Ignore If Can’t Move, Wait
(If 150 is Off…)
Teleport Player to room entrance

>Set Table to “Not Through” Mode

(If 150 is On…)

Turn Off Switch 150

Basically, this places the furniture down, makes it Through, then tries to move the player back 1 step in all directions so they’re not stuck inside the furniture. If the player can’t move, like they’ve boxed themself into a corner, they will be teleported to where its clear.

However, the “Ignore if Can’t Move” part of the commands doesn’t seem to be working. If the player can’t move, it turns on Switch 150 regardless and nothing happens. Help?

You’re misunderstanding what “Skip if cannot move” does. It doesn’t mean it aborts the route – it means it skips the one move command that failed and moves on to the next one. So, the Switch ON command will always run. In short, using a switch to figure out whether they were able to move is not going to work.

I think what you’ll need to do is store the player’s current location before this all starts, then store them again (in different variables) after running a move route. If either coordinate changed, then they were able to move. Otherwise, try the next direction.