Best practices for undo during simultaneous play

My module has a planning phase when multiple players simultaneously draft cards, build units, and spend resources. The activities need to be kept secret so nothing gets reported in the log. A problem arises when a player wants to undo an action because nothing shows in the log (since the action was never reported in the first place). It is a multi-player game, so clicking undo during this planning phase is basically a chaotic trainwreck. I’ve thought about adding right-click undo options to individual pieces, but many activities involve sending pieces to/from hidden decks and negative x-y coordinates so it’s often not feasible. Furthermore, there was a point in time when my logic was clean and simple, but the game has nearly 400 cards, each with unique effects (think Terraforming Mars or Agricola), so thanks to my uber-aggressive efforts at automation, I’ve now reached the point where the once simple prototypes are a hot mess of GKCs and Restrict Commands to allow for every imaginable card action. I shudder at the thought of adding undo buttons and how they might impact the layers and layers of logic.

Anybody faced a similar issue and have thoughts on how to mitigate this problem? I can’t think of much other than adding a handful of undo buttons and screaming at the players in the help file to think twice before clicking on a purchase that has no right-click undo.

Adding individual undo buttons sounds like a cure worse than the disease :slight_smile:

When playing the module, you could have the players each do their draft-and-spend phases sequentially, and then results revealed all at once, so the net effect is as if it had been done simultaneously, but undo-ing is safe for each player. You could even facilitate that with a little “planning phase track” and a counter to move along it.


In this situation I would take a snapshot of the player’s state at the start of the phase and have a “clear” button that resets them them to that state, in effect a mass undo. Slightly more work for the player when they stuff up, but will encourage them to be careful!

I must admit I hadn’t thought of this problem. My module also has a hidden simultaneous phase. Is there some way a custom class could disable “undo” during the phase? That would work for me, because there really should be no pressing need for the function.