I'm designing a game with loyalty mechanics similar to Secret Hitler or Battlestar Galactica. In it I have character abilities. One of the abilities will allow a player to choose three players, take their loyalty cards and shuffle them, look at the loyalty cards, and then RETURN them to the correct player. Basically the goal is to have it so the player with this character (and ONLY that player) can look at 3 people and know how many of them are on the bad team and how many are on the good team, without knowing which one is which. Now obviously there are a few problems with this, how can I have it so that who each loyalty card belongs to is hidden from the player using the ability, while still being able to return them to the right players?

Now I have ideas on how to achieve this, but I want to do it in the fewest amount of steps possible, hopefully without adding any extra cards other than the basic loyalty cards.

  • I strongly doubt that you'll be able to implement this without adding six cards to the components. Nov 24, 2018 at 21:02
  • 1
    i can achieve it without adding any extra cards by having the player doing the ability close their eyes, having the 3 chosen players place them in a random order, then he opens them and looks, then closes his eyes again, and the players take them back. but thats a huge pain and i think i would rather just add some loyalty cards that you dont need to give back to the players for stuff like this. but im hoping somebody has an idea i over looked
    – besto
    Nov 24, 2018 at 21:09
  • You mean the three players will agree on an arrangement/ordering of the cards while everyone is isn't looking, then the one player will look at all three, then the three will retrieve their cards?? That will not test well. Just add six cards. Nov 25, 2018 at 0:59
  • "I want to have a character that can do this;" Presumably, you mean a colon rather than a semicolon. Nov 25, 2018 at 21:43

5 Answers 5


Some variations on the Resistance mechanism, that may be more efficient depending on your design:

  1. Let each player being investigated take a "good" and "bad" token from a common stock, then put one of those tokens in a bag and the other back in the stock (in a way that you can't see what they put back.

  2. Use a pair of hand-held clicker counters with the displays covered up. When you get them, you click the one that matches your alignment, then the person doing the investigation gets to see the final counts.

  3. Do it like old-school Werewolf/Mafia, and just have a moderator handle all the secret information.


If you do not mind the other players knowing which person the ability player checked, you could do it this way:

  1. The player with the ability closes their eyes;
  2. The other players on the "mission" place their cards face down in front of the ability player in a random order;
  3. The ability player opens their eyes, checks 3 cards, then return each card to the same spot from which it was taken;
  4. The ability player closes their eyes again;
  5. The other players take their cards back;
  6. The ability player opens their eyes and game continues;

Have you played the game where you have to get the average salary of 3 people without anyone knowing the actual salary of others?

Let the people be A,B,C.

Tell a random number to A. He adds his salary gives the result to B. B adds his salary and gives the result to C. C adds his salary and gives the final result to you. You remove the number you had and divide by 3.

Nobody knows the actual salary but everyone knows the average.

Assumptions: A is Good. B is Bad. C is Good.

Now I am not sure what loyalty cards are but lets assume they have 1 parameter named GoodnessCount

Generate a random number and pass it to A. A will add 1 to this number and send it as GoodnessCount to B. B will add 0 to this number(b is not good) and pass to C. C will add 1 and pass it to you.

You can subtract your number and know how many people are good. Without knowing who is good.

  • There is a problem with this which is more serious than it appears. If the number is the lowest generatable (say 1) and A has the lowest-numbered card (0 in your example), then when B receives a 1, he knows A is not good. And if you say "re-roll any 1 before you pass the number to A", then if B receives a 2, he knows....etc. Dec 25, 2018 at 11:40
  • Lets say you generate a random number b/w 91 and 97, and then pass on, where's the problem? B should never know that your range is 91-97, its private to you, also B can never guess what value did A hold, 1 or 0. Dec 25, 2018 at 13:50

There is no way to destroy the information of which card belongs to which player and then recreate it, without some external storage of that information or providing (some of) that information to players who should not have it.

A common way to do this is use a moderator role - a neutral party or player who relays the information required without giving away any information disallowed. This has natural issues when finding a player or device to maintain that role, but can be done by a simple app if you have programming capability available.

A less common way, that is yet much cheaper and less demanding of the players available, is to use one set of loyalty cards for each player being checked, and using a process as follows.

  1. Each player being checked takes one set of loyalty indicators.

  2. Each player selects from the set, the indicator matching their current loyalty.

  3. The selected indicators are placed together in pile A.

  4. The player checking the loyalties shuffles pile A and views the loyalties added to it.

  5. The remaining cards from all sets are added to pile A, creating pile B.

  6. Pile B is shuffled (by any player).

  7. The cards are separated again into sets for the next use.

    • This prevents any other player from gaining any information about pile A, and prevents the checking player from gaining any information about individual indicators that is not determined by the entire pile together.

The Resistance already basically has such a mechanism: each player secretly places an indicator showing whether they're sabotaging the mission in a pile, then the contents of the pile is viewed. This essentially reveals how many of the people on the mission were spies (other than the fact that spies don't have to sabotage the mission). This requires that each player have extra cards equal the number of roles, so for only two roles, this is a good strategy.

If you have more than two possibles roles, here's a strategy that's superior: Put the cards in sleeves, and each player puts a unique card on top. So each sleeve contains an identity card and a role card, with only the role card visible. The sleeves are shuffled, the player looks at the role card, then puts the cards in the sleeves in the reverse order. The the sleeves are shuffled again and given back to the original players.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .