# Dynamic side-choice

**URL:** https://forum.vassalengine.org/t/dynamic-side-choice/73734
**Category:** Feature Requests
**Tags:** v3\_6
**Created:** [January 21, 2022, 10:31am UTC](https://forum.vassalengine.org/t/dynamic-side-choice/73734 "2022-01-21T10:31:17Z")
**Posts on this page:** 1
**Page:** 1

<div class="post-metadata">

### Author: ![marktb1961](https://forum.vassalengine.org/user_avatar/forum.vassalengine.org/marktb1961/32/231_2.png) [@marktb1961](https://forum.vassalengine.org/u/marktb1961)
#### Post date: [January 21, 2022, 10:31am UTC](https://forum.vassalengine.org/t/dynamic-side-choice/73734/1 "2022-01-21T10:31:17Z")

</div>

Continuing the discussion from [Is it expected that someone can log into an ongoing game as Referee?](https://forum.vassalengine.org/t/is-it-expected-that-someone-can-log-into-an-ongoing-game-as-referee/73730/6):

It occurs to me that it would be a useful feature if the module developer were able to dynamically adjust the list of available sides. That is to say, disable or enable the sides offered during a game.

Some use cases for how this feature might deliver added value when integrated into the module’s side-switching and turn workflow:-

1. To disable sides that aren’t applicable. For example, in a 3-6 player game that has been started with 3 players. So new-comers will only be offered \<observer\>.

2. To disable Solitaire mode once another side has been selected.

3. To disable all but the next side - to facilitate a solo-mode game where the solo player is switching sides at turn end. Solo / test mode side switching already works very well for 2 player games and games that proceed in a fixed sequence down the player side list. Dynamic side choice would allow this benefit to be extended to games with a variable player order.

**Implementation**  
Perhaps the feature could be incorporated by specifying a Global Property that, when set, would list the sides to be made available and the order. So, in this example,

 ![image](https://forum.vassalengine.org/uploads/default/original/2X/d/dff6c6e8a4b7f1dfa56cf9845098a7d0bc8cf091.png)  
The name of a Module level Global Property would be specified as a new field in this panel.  
The property would be set (by the module) to either null or to a regex specifying one or more of the available Side.  
When “Retire” dialog is offered, if the property is not null, Vassal would do a regular expression match on each available side against the global property before including that side in the offered list. \<observer\> would always be offered. The default side logic would continue to operate as now.
