Sanctum | Strategy, Sorcery, Subterfuge download rules and faq

create account edit account

news maillist

top players

Sanctum | Strategy, Sorcery, SubterfugeSanctum | Strategy, Sorcery, Subterfuge



The Movement Pipeline

The Two-Pass Movement Algorithm

The Movement Pipeline


How do movement-changing spell effects interact with each other?


Why is it called a moonwalk?

Why do moonwalks happen?

Show me an easy diagram of a moonwalk!

How can I create a moonwalk in general?

The Flying Leap Deck

The Two-Pass Movement Algorithm. Sanctum uses a two-pass movement algorithm.

  1. Overstacking. In pass I, all groups “move” without regard to the normal stacking limit of 1 group per square. Each square can have any number of groups, friendly or enemy. This pass is not animated, so you can't see it.
  2. Unstacking (overstack resolution). In pass II, all groups in a square “vote” for exactly 1 winner. That group “wins” the square. All other groups join it if they can, or bounce back if they can't. Each group animates its result. This pass is what you've always seen.

At the end of movement execution, the stacking limit is restored for all squares.

The Movement Pipeline. Pass I is applied to all groups, in player initiative sequence, as follows:

  • For the initiative player:
  • For the non-initiative player:
    • All of its player-controlled groups; then
    • All of its computer-controlled groups.
  • For the neutral player:
    • Bot stop: All of its player-controlled groups remain stationary.
    • All of its computer-controlled groups.






If the group has no movement order, it stands still.

Otherwise, check all of the following.

  1. If it can “move”. Some spells prevent moving.
  2. If it can “exit” its current square.
  3. If it can “enter” its destination square.
  4. The destination square must be unoccupied, or have a friendly group (of any type). This does consider overstacks from earlier (1.b)s.

If any of these fail, the group bounces (stands still).



The group “moves” into its destination square, ignoring the normal stacking limit. This is not animated.

Pass II is then checked for all squares on the board.






If a square has only 1 group, that group trivially “wins” the square.

Otherwise, all groups in the square “vote” for exactly 1 winner. Ties are broken in the following order:

  1. Stationary group. A group that started the turn in this square, and stood still (didn't move), beats everybody.
  2. Initiative. The group belonging to the player with higher initiative wins. Corollary: If two groups tie here, they must both be owned by the same player.
  3. Larger group. The group with more minions wins.
  4. Movement orders sequence. The group that is earlier in its player's movement orders sequence wins. For two neutral groups, the movement orders sequence is identical to the neutral player's group sequence.



For every group in a square except the winning group:

  • Hostile. If this group is hostile to the winning group, it bounces back to its starting square. This is animated.
  • Can't join. If this group is friendly to the winning group, but cannot join it, it also bounces back. This is animated.

A friendly group that could join the winning group now does the following. (If the winning group itself wasn't stationary, then it also does the following.)

  • All “on exit” effects from its starting square.
  • It animates walking in.
  • All “on move” effects.
  • All “on enter” effects for this square.

If the group survives these effects, it joins the winning group.



It is possible for a group G to (I.b) “move” away during overstacking, (II.c) lose its starting square to another group H, and then (II.d) bounce back to its starting square. This is resolved as another overstack between G and H in G's starting square.

If group G cannot join with H, and must “bounce back” again, then G moonwalks instead. G moves to:

  • an empty, unoccupied square
  • that is closest (or tied for closest) by straight-line distance
  • that group G can legally “enter”

If no such square exists on the board, then group G is removed from the game!

Otherwise, group G moves from its starting square directly to the moonwalk landing square, ignoring all intervening squares. G still suffers all “on exit” effects for its starting square, “on move” effects, and “on enter” effects for the moonwalk landing square. Because of this, a moonwalk is not a teleportation.


How do movement-changing spell effects interact with each other? The key concept is: Movement orders can be overwritten, but this happens in a specific sequence. The last movement order assigned to a group “wins”, and that's how the group will move.





Player Orders

The player issues a movement order to a player-controlled group.


Spell Execution

Targeted spells overwrite movement orders immediately.

  • “moves in a random legal direction”: Amok, Disorient.
  • “movement orders are cancelled”: Binding Cube, Complacency, Fear, Lienna's Steed, Possession, Sandstorm, Sentinel.



Any “before movement” effects overwrite movement orders now.

  • “attracts”: Mirage, Siren Song.
  • “moves in a random legal direction”: Fingle, Zurzavar.

Finally, each computer-controlled group calls its movement AI, which overwrites its movement order. Corollary: Computer-controlled groups are effectively immune to all forced-movement effects, because they always overwrite their own movement order last.


Why is it called a moonwalk? The group doesn't change its facing prior to moonwalking, so it may appear to move sideways on the board, or even backward.

Why do moonwalks happen? Step (II.c) of the Movement Pipeline is a deliberately simplified explanation. In reality, the “voting” is done between only two groups at a time. A square with N groups actually votes -  1 times. These votes are interleaved with all the other squares, in parallel. Thus, if square A has 4 groups and square B has 1 group, then square B will finish its “voting” before 2 of the groups in square A have even been considered!

Show me an easy diagram of a moonwalk! Here's a simple diagram for one specific moonwalk solution. Group A will moonwalk.





  • D up. First, order group D with 5 recruits “upward” (into A's square).
  • A left. Second, order group A with 4 recruits “leftward” (into B's square).
  • C up. Third, order group C with 5 recruits “upward” (into B's square).
  • B stand. Have group B, with 1 recruit, stand still.

How can I create a moonwalk in general? Here, we give a more verbose description for the general solution. First, some nomenclature:

  • Upper-case letters A, B, C, D are groups.
  • Lower-case letters a, b, c, d are squares.
  • + denotes two groups joining.
  • > compares two groups' sizes.

To force group A in square a to moonwalk, do this:

  • Have group B in b next to a.
  • Have group C in c next to b.
  • Have group D in d next to a.


  1. A+B looks like a legal joining, and C+B looks legal. (In the above example, A+B = 5, and C+B = 6.)
    This is what allows you to order both A and C to move into b.
  2. C is “faster than” A. Simplest method: C > A. (In the above example, C = 5 and A = 4.)
    This creates the race condition that puts A into “limbo”, giving D time to sneak in behind it and steal its square away.
  3. A+B+C isn't legal.
    This is what makes A bounce back. (In the above example, A+B+C = 10, which violates the maximum group size.)
  4. A+D isn't legal.
    Simplest method: A+D > 8. Or, Ostracize D. This is what forces A to moonwalk. (In the above example, A+D = 9.)

Assign the following movement orders, in exactly this sequence:

  1. D to a.
  2. A to b.
  3. C to b.
  4. (Have B stand still in b.)

Here's how it will execute.

  • (I.b) Overstack.
    • D can move to a.
    • A can move to b, and A+B looks legal.
    • C can move to b, and C+B looks legal.
    • Now D is alone in a, and A, B, C are overstacked in b.
  • (II.c) Voting.
    • D is alone in a. D “wins”, and now owns a. (This is why you issue D's movement order before A's.)
    • 3 groups vie for square b. Unstacking processes 2 groups at a time. (This is why you use 3 groups.)
    • A group that didn't move is automatically fastest. That's B.
    • C is faster than A, by construction in (j). So C is the second-fastest group.
  • (II.d) Unstacking.
    • B and C are chosen, in that order. B+C looks legal, by (i). So they join.
    • Now BC + A is checked. It is not a legal joining, by (k).
    • A bounces back to a.
  • (II.e) Moonwalking.
    • D already owns a, from step (iii).
    • D+A is not a legal joining, by (l).
    • A moonwalks.

The Flying Leap Deck. This deck demonstrates the spectacular effect of a controlled moonwalk. It is not recommended that you try this deck in ranked play, due to the sheer difficulty of its winning combination.






























C^ D^



  1. Play in Badlands (so that there are no forest squares).
  2. Cast a forest at f, diagonally adjacent to enemy Sanctum.
  3. Cast two forests at A and B.
  4. Terrain-Bind group A (into forest).
  5. If your opponent inconveniently creates any other forest squares, you'll have to change their terrain to something else.
  6. Force group A to moonwalk, as described above.

Group A must moonwalk. Corollary: It must be the case that A can't legally enter either squares A or B (which is why it's moonwalking). Because of the Terrain-Bind, the only other square on the board that group A can legally enter is f. Hence, A leaps directly to f.

  1. Somehow ensure that your opponent has no novices left in her Sanctum.
  2. Cast Lienna's Steed for the win. (Or, make group A big enough, and just fight your way in.)

v2.20.00 Last updated 2009/03/21




Home | Usage Agreement | Privacy Policy | FAQ | Contact | Mailing Lists