Sending pieces/cards to dynamic locations

I’ve been working on creating a The Resistance: Avalon module, as I did not yet see one in the module database. One of the core features of this game is a set of randomly assigned role cards unknown to any other player (even those on your team), and the relationships they have with other cards. Essentially the “sides” aren’t chosen before the game, but are randomly assigned during the game and remain unknown throughout play.

Let me simplify the situation down to just three roles: a good guy, a bad guy, and Merlin. These three roles are randomly assigned to players during the game, and none of them knows who the other is except for Merlin. Merlin knows who the bad guy is. What I need is a way for the bad guy to indicate to the MErlin player that he is indeed the bad guy without knowing to which player he is giving the signal.

What I have set up now is having each player join a side, with one player to a side. They then draw a role card from a deck and put it into their player hand and that is there role. What I thought I could maybe do is set the Merlin card to have a property, and then each player has a player token they can send to that property indicate who they are to that role. So let’s say player 3 is the bad guy. He needs to indicate to Merlin he is the bad guy so he send his player 3 token to merlin. While player 3 knows he has sent his token to the player with the role of merlin, he does not know which player this is.

I’m still quite new to vassal and was unable to accomplish this. I’ve read through he manual, and thought the send to command with another counter, selected by properties was what I wanted, but I guess I don’t know the proper syntax to use when specifying where to send it.

Does anyone have suggestions for how I might accomplish this goal?

If I’m reading what you want correctly, this is how I would do it. Keep in mind that I’m writing this off the top of my head without any testing but I think it should work.

Create a Global Property called something like - BadGuy

On the Merlin card, place a Text Label trait somewhere on the card to display $BadGuy$.

On the bad guy’s card, set up a Set Global Property trait with the menu command “Notify Merlin” and have it set the value to $PlayerSide$.

So, when the bad guy right-clicks the card and selects “Notify Merlin” the card should set the Global Property which would be automatically displayed on Merlin’s card.

That worked out great. I appreciate the advice.

While that accomplishes most everything wanted, it does have one issue, which I failed to specify in the OP. Not only does one of the bad guy characters have to notify a specific role (Merlin) that he is a bad guy, without him knowing who Merlin is, but while MErlin knows who teh bad guys are, he does not know which is which.

To give an example let’s say the good guy team is made up of 2 players: Merlin and a good guy, while the bad guy team is also made up of 2 players: Morgana and a bad guy. Morgana and the other bad guy most both tell Merlin that they are on team bad guy, without knowing who Merlin is (you’ve accomplished this for me already), but Merlin must also not be able to know which one is Morgana and which one is the other bad guy.

The issue I’m having is that the text labels appear in a specific order. That is, the text label $badguy1$ is always first and $badguy2$ always second, so that it’s possible for the merlin player to know which bad guy is which. Is there some way I can randomize this? Perhaps some way to have it manipulate the text labels in the order that players select to notify the merlin player rather than having it linked back to their specific role card?

Sorry, I wish I could edit my previous posts but apparently I cannot.

One solution seems to be, although I cannot get the syntax correct, to give every role card that needs to know information a property (say the merlin card has the “merlin” property), and then give every player their own personal player tokens with the ability to send those tokens to the card with the merlin property. I attempted this before, but either I was unable to get the syntax correct or it is simply not doable. Can I not use send to location to send one card to another card with a specific property?

I think I got what you want to do so let’s try this.

Create 3 Global Properties

BadGuy1
BadGuy2
BGCount - Set this one to number with a min of 0 and a max of 2, starting value 0

On the BadGuy cards, set up the following:

Trigger Action trait with the Menu Command “Notify Merlin”. This trigger will Perform these keystrokes
IncreaseBGCount
TellMerlin

Set Global Property
Global Property Name - BGCount
Numeric
Min value = 0
Max value = 2
Key Command - IncreaseBGCount
Type - Increment number value
Increment by 1

Set Global Property
Global Property Name - BadGuy$BGCount$
Key Command - TellMerlin
Type - Set value directly to
Value - $PlayerSide$

Then you can have text traits on the Merlin card to display the values of $BadGuy1$ and $BadGuy2$. The order in which they appear will depend on who clicked first and who clicked second but you would have no way of knowing that.

Does that work?

It seems to work out great. There are a lot fo different relationships to add so it’ll take me some time to make sure it can work for the entire system, but you’ve given a fantastic framework to build off of. Much obliged.