What I would like to see is for the way players are referenced in the engine to be changed from by-color to by-seat-number. Likewise, any features that currently distinguish players by color, like hands and hidden zones, would be updated to reference players by their seat number. This would not need to be a new variable, but a replacement of the existing player color variable. The current names of player colors could be kept as named constants for compatibility with existing mods, but would no longer be hard coded to the colors seen by users. Cosmetic colors would then become a new variable (also open to scripting), with new names if needed (or simply keep the named constants as references to the same colors when used as cosmetic color inputs).
Instead, the visual colors seen by users, spectators, and anything else displaying the front end would be a new variable assigned to players regardless of their seat in the back end, and this color can be freely changed as an additional option on the player list context menu, separate from the player’s “seat” which would now be automatically assigned in order as players join the room. Each seat could have a default color assigned by the mod, but unless the (newly added) permission to change colors is disabled, players could change this at any time. Doing so mid-game would automatically update the color of all zones assigned to the seat, their colors in UI elements like the “Deal” wheel, and their username, without altering the components assigned to them or their position at the table. This includes black and grey. Allow the DM to be any player color, as well as spectators. Make spectators exempt from checks that would otherwise prevent them from selecting a color in use, but only the colors used by other spectators. They should still be prevented from choosing colors in use by active players or the DM. Additionally, I would see a tint option added that is not any color, but “player color.” Objects using this tint option would automatically adopt the color of the player’s seat, and update automatically when the seat’s color changes.
Lastly, I would like to see an option to randomize the seating of all players already seated, excluding the DM and spectators. Many games base things like turn order or neighbors off player seating, and we currently have to manually randomize such things with die rolls or other methods. It would be very convenient to simply have all players join a room and then randomize our table positioning with a simple context menu option. This should also be added as a built-in scripting function as well, so new mod authors can easily randomize all or select seats without writing new code for it. Randomizing color would be a nice bonus, but is far less impactful than seating. In my imagining of TTS with these features, players would select their colors either on preference before randomizing seats, or based on whatever character or faction they select if the game has such things. While we’re at it, how about a “randomize current turn” option as well, for selecting first player?
I’ve seen the color switching already done in a few mods, most notably the main Twilight Imperium 4th Edition mod using a special scripting tool in one of the toolbags, but I realized how much I would appreciate this as a built-in feature after playing Nemesis and not having player colors match the colors of the characters we were controlling, which made parsing the game state much more of a hassle than it should have been. This would also make writing scripts to automatically color players according to factions or characters they choose MUCH simpler, especially in games where seating order matters. Scripts would no longer need to go through as many steps to swap around everything assigned to a player seat just to put the right colors in the right positions, and many more mods could automate player color for improved readability. And a “player color” tint option along with encouragement to create more assets in white for use with in-game tinting would make many mods more satisfying for players with strong color preferences.