Reactor is a conventional framework oriented around giving, receiving, and taking safe actions. Players expect to receive safe actions from clues if they are the next player without one. When players receive information, the primary type of information they expect to recieve is actionable information. While every system has to provide actions to a degree, Reactor implementations take that idea to a limit. Reactor is built with the belief that in most gamestates, immediately actionable information is significantly better than inactionable information.
Reactor began as an attempt to tackle the Winter 2022 Holiday Mix Hanabi competition. Referential Sieve originally motivated Reactor: one perspective is that Reactor 1.0 transforms Referential Sieve to further appeal to players who love giving playful positionals.
Why play Reactor?
All basic conventions from Referential Sieve are required to play Reactor 1.0. A complete list of them can be found here: https://hanabi.wiki/en/conventions/ref-sieve-intro
No other Referential Sieve conventions should be used besides a select number of imported conventions detailed below (mostly under the Advanced Conventions section).
The reacter is the first player starting from Bob with no pending (signaled or good touched) plays.
A player is said to be stacked if a player has a pending (signaled or good touched) plays.
If everyone else is stacked, there is no designated reactor and Alice's clues to either player become stable clues - unless Alice gives a bad stable clue to Cathy, to which Bob must react immediately. Details on this type of reactive clue is provided in the Bad Stable Clues and Response Inversion section.
Known trash in a player's hand do not count for the purposes of determining the reacter. Most of the time in a typical game, Bob will be the reacter - so unless specified, we will use Bob and reacter, as well as Cathy and receiver, interchangeably in the sections below.
Clues from Alice to the reacter are one of the following types of Referential Sieve style stable clues described in https://hanabi.wiki/en/conventions/ref-sieve-intro:
Usually Alice gives such a clue when she is worried about their chop and wants to give them some alternative safe action.
Unlike in referential sieve, any unloaded rank clue which touches the reacter's rightmost previously-unclued card is a lock clue. They should not discard unless they receive another instruction while locked. This is desirable because if we really wanted Bob to discard something, we would often have ways of signaling that with a reactive clue instead.
The exception is for Clue Starved variants, where rank clues work the same way as in referential sieve even if a rank clue touches the rightmost card. For example, a rank clue touching slots 2 and 5 in Clue Starved calls for slot 3 to discard.
A rank clue to Bob's rightmost previously-unclued card from a locked player or a player at 8 clues is still a lock clue.
In a three player game, each reactive clue provides one safe action to both the reacter and the receiver.
To give a reactive clue, add together the slots of the two actions you're signaling, and give a clue to the receiver focusing that slot number (modulo 5). The focus is defined in the same way as referential play clues, except that the whole hand is treated as unclued: the focus is the leftmost (not necessarily newly) touched card, except that slot 1 has the lowest precedence. This means slot 1 can only be the focus if it is the only card touched.
For example, consider the following hands:
Bob: g4 r1 g1 g4 g5
Cathy: y2 p3 b1 y1 y4
To get Bob to play red 1 from slot 2 and Cathy to play blue 1 from slot 3, Alice would clue rank 4 to Cathy which focuses Cathy's slot 5, since the sum of the targeted slots (2 and 3) is 5.
Alice can also get Bob to play green 1 from slot 3 and Cathy to play blue 1 from slot 3. The sum of the slots (3 and 3) is 6, which itself is not a valid slot but wraps back around to slot 1. Thus Alice needs to find a clue which focus Cathy's slot 1 - a rank 2 clue to Cathy would work!
Alice can also get Bob to discard his duped green 4 on slot 1 while getting Cathy to play her blue 1 from slot 3. The sum of these slots is 4, so now Alice needs a color clue that focuses slot 4. Yellow to Cathy would do the trick, because even though yellow touches the yellow 2 on slot 1, that slot has the lowest precedence so the focus of the clue would be the next leftmost card touched, which is slot 4.
Unfortunately, it is not possible for Alice to get any two cards in Bob and Cathy's hands - like green 1 from slot 3 and yellow 1 from slot 4 for example. Alice and Bob must agree about what action in Cathy's hand a reactive clue is getting. This is accomplished using the concept of targeting priority:
The status of cards ("clued"/"obviously playable") is determined before the reactive clue touches the reciever's cards. For example, an unclued trash card becomes clued, it is still considered an unclued trash card. Similarly, if a cards becomes obviously playable by empathy, it is still targetable.
For example, consider the following hands, where cards in bold are globally known. Red 1 and green 1 have been played on the stacks.
Bob: b1 r2 g3 y3 y4
Cathy: p5 r4 b3 y5 g4
Cathy is currently locked and the team is in a difficult position while being low on clues, so we need to unlock Cathy by telling her to discard something. To determine the card to sacrifice, first determining how far away from playable each non-critical card is.
Since blue 3 and green 4 are both 2 away from playable, tiebreak rules picks the higher ranking card (green 4) to sacrifice. Therefore, Alice can clue Cathy purple (focusing slot 1) to get b1 to play from slot 1 and g4 to discard from slot 5.
If a card by empathy can only be playable or trash, it is considered a queued play. It can be fixed by a fill-in clue, a reactive clue telling it to discard, or another reactive or RS clue providing empathy of it being trash (these retain their reactive / RS interpretations).
While we follow good touch principle, we typically do not overly worry about bad touching. Often, reactive clues that appear to bad touch do not due to the receiver making inferences about her hand given the targeting priority chosen.
For example, consider the following hands. Yellow 1, green 1, and blue 1 have been played on the stacks.
Bob: g4 g5 g1 g2 g3
Cathy: b1 y1 y2 y3 y4
Alice gives a 1 clue to Cathy, touching both the blue 1 and the yellow 1 on slots 1 and 2 and thus focusing slot 2. From Bob's perspective, the leftmost non-obvious play in Cathy's hand is the yellow 2 on slot 3. For this reactive clue to work, Bob must play the slot which when added to slot 3 produces the focused slot of 2, or 2 - 3 = 7 - 3 = 4 (mod 5).
Bob blind plays the green 2 from slot 4. Cathy now works out which slot she must play, which is 2 - 4 = 7 - 4 = 3 (mod 5). Cathy blind plays yellow 2 from slot 3. However, Cathy also knows from the targeting priority that the yellow 2 was the leftmost non-obviously playable card in her hand! This means that none of the clued 1s could have been playable, as otherwise Bob would have reacted by playing a different slot. Even though Cathy has two clued 1s which look like they would be playable from empathy, everyone should mark known trash on the two clued 1s because of targeting priority.
When Bob has no pending plays (so that Cathy is the reacter) and Alice gives Cathy a clue, Cathy should expect to interpret it as a Referential Sieve stable clue. However, if Bob sees that the clue is a bad referential sieve clue, it is actually a reactive clue where Bob is the reacter - even though Bob already has more pending plays than Cathy! Bob should react to the clue before Cathy has the chance to respond to the RS interpretation.
Specifically, the following apply:
Bad play clue - Alice gave a direct play clue to an unplayable card, or a referential/tempo/fill-in play clue to an unplayable card in Cathy's hand that cannot be playable through any single card already called to play in Bob's hand. In the rare case that Bob has multiple pending plays that could bridge the gap, Bob is expected to play the rightmost one.
Bad discard clue - Alice gave a referential discard clue to a critical card in Cathy's hand, or Alice gave a referential discard clue to a playable card in Cathy's hand when she could have given a clean direct or referential play clue instead.
These conventions apply equally to players who are either locked or have 8 clue tokens on their turn.
If Alice is locked, clue that Alice gives to the receiver are usually respected as a true Referential Sieve stable clue. However, if the reacter sees any of the following the clue turns into a reactive clue.
Alice is allowed to lock Bob by cluing rank to his rightmost unclued card even if Alice herself is locked, if the team expects one of the players to be unlocked in the near future.
Sometimes a locked player has no good stable referential play or discard clues available to give. In that case, the following types of clues are permitted as stalls:
The endgame threshold is reached when pace is strictly less than the number of players. Clues in the endgame follow the same conventions as in the Locked and 8 Clue Players section.
When a stable rank clue is given with a rank all of whose members are known trash, it is a Referential Play Clue on the card to the left of the leftmost clued trash card (wrapping around if necessary).
The exception is for Brown, Muddy Rainbow, and Null variants, where trash clues with rank must be respected as Direct Discard Clues unless one of the trash cards is on chop or all cards of the special suit has been accounted for. It simply indicates to discard the touched cards.
The intentional discard of a playable card goes to the rightmost possible slot of the player possessing the other copy of the card. This is allowed to be stacked behind other playable cards, akin to how a layered finesse works in H-Group conventions.
The term Gentleman's Discard is used for situations where none of the clued cards in the target player's hand match the discarded playable card. For example:
Alice has a known playable blue 1 and Bob's hand is completely unclued:
Bob: r5 b5 y5 b1 g1
Alice is allowed to toss her blue 1, since the blue 1 goes to the rightmost slot in Bob's hand who will play it and continue "digging" to the left until he finds the promised card.
If there are matching clued cards, it is a Sarcastic Discard instead and the target player is promised that all matching cards leading up to the discarded card are playable from the right. For example:
Red 2 and Blue 2 are played on the stacks and nothing else. Alice has a known playable blue 3 and Bob's hand has three 3s clued (highlighted in bold):
Bob: g2 y3 b3 r3 g5
Once Alice tosses her blue 3, Bob is allowed to immediately start playing his clued 3s (which match the discarded blue 3) from right to left until the blue 3 is found.
In either scenario, if Alice discards a card that passes through unplayable cards, a fix clue must be given before the target player has an opportunity to start playing the discarded card. Example:
Suppose Red 2 and Blue 2 have been played, as before, and Alice discards a known playable blue 3. Cathy's hand has three 3s clued (highlighted in bold):
Cathy: g2 b3 r3 y3 g5
Bob must give a yellow fix clue (a blue clue is also possible but worse in this particular situation since it stops the red 3 from playing for free) to Cathy before she has the opportunity to bomb the yellow 3.
When a player gives a clue that takes the team down to 0 or 0.5 clues, every player must mark ZCSP on their leftmost unclued card that has not been explicitly sieved in by a previous safe action.
If Alice has a card marked ZCSP and the player before Alice had 0 or 0.5 clues on their turn, Alice's next discard must be the card marked ZCSP. Otherwise, Alice may discard her normal chop.
When a card is called to play in Alice's hand but the identity of that card is unknown, then Alice is expected to play all of the cards (known or unknown) that were previously called to play which could lead into the new unknown playable card before playing that card.
However, if Alice has multiple globally known playable cards, the expected order of play of these cards follows the below priority table:
If Alice has multiple globally known playables and does not respect this priority table from the perspective of another player, it triggers one or more priority plays on the first such player, who is said to have been "prioritized". The prioritized player is promised that they hold the card which Alice's card leads into, and are also promised that they may repeatedly play the rightmost possible card, starting from clued cards and continuing into the unclued cards, until they find the promised card.
For example, Alice has a globally known red 2 and a green 3 in her hand, both of which are playable. Alice has no other playable cards in her hand. Blue 3 and yellow 3 are also played on the stacks. Cathy has two cards clued in her hand - a yellow 4 clued as 4 on slot 5, an unclued blue 4 on slot 4, and an unclued green 4 on slot 3. Cathy knows that red 2 should play before green 3 since it has a lower rank, so Cathy knows she has been prioritized for green 4. Cathy will first play the yellow 4 from slot 5 since that card could match, and then blind play the remaining cards starting from the right until she finds green 4.
Fix clues can be given to a player who will bomb a card from a priority play at some point. This is referred to as a load clue.
The exception is if the prioritized player is Bob and Bob has no clued cards that could match the card being prioritized. In this case, Bob is expected to blind play his rightmost unclued card and nothing else. This is referred to as a priority bluff.
Our reactive clue values change to be based on the value of the clue given rather than what cards it touches. Pinkish variants impact the reactive rank clues, while rainbowy variants impact the reactive color clues.
For example, if Alice clued 4 to Cathy in a pinkish variant, it means the sum of the targeted slots is 4 regardless of which slots the rank 4 clue touched in Cathy's hand. Similarly, if Alice clues the third leftmost color in a rainbowy variant, it means the sum of the targeted slots is 3 regardless of which slots were touched.
Pinkish and rainbowy variant rules apply to any variant with special ones or special fives with a pink or rainbow property, respectively. Both apply if an omni suit, omni special ones, or omni special 5s are present.
In rainbowy variants with 6 available color clues, the 6th color has the same meaning as the 1st color, unless the excess color clue tech (below) is used.
Additionally, the following are considered to be pinkish variants:
and the following are considered to be rainbowy variants:
If a stable 1 clue touches multiple cards, the touched cards must be played from right to left.
A passively playing 1s is a card that was touched by a stable 1 clue
with the exception of the rightmost touched card.
In some rainbowy variants, it may be beneficial to have color clues call for two plays or two discards, and rank clues call for one play + one discard.
Examples of common variants where this may be helpful:
This convention applies to variants with 6 different color clues available and both a pinkish + rainbowy suit.
In a special-ones/fives variant where a rank 1/5 clue is not possible, the 6th color has the same meaning as a rank value of 1/5 (respectively).
This convention applies to variants with 2 or 3 different color clues available and both a pinkish + rainbowy suit.
It may be beneficial to assign a rank clue value from a play signal to a discard signal to improve action diversity. A rank value of 1 is generally the least useful and can be assigned to the highest color clue value plus one.
For example, clue value assignment in Omni (4 suits) might look like:
Clue value assignment in Valentine Mix (5/6 suits) might look like:
This convention applies to variants containing a Brown suit, Muddy Rainbow suit, or Null suit.
Trash clues with rank must be respected as Direct Discard Clues unless one of the trash cards is on chop or all cards of the special suit has been accounted for. It simply indicates to discard the touched cards.
This convention applies to variants containing a non-dark Pinkish suit, Muddy Rainbow suit, or Brown suit.
Cards in these suits whose empathy is revealed to be either playable or trash are not obvious plays for the purposes of reactive clues, due to the high chance of bad touching and potential difficulties in fixing these cards.
This also applies to special-ones with the respective properties.
This convention applies to variants containing a Pink suit, Light Pink suit, or Omni suit.
A lock clue (rank clue to Bob's rightmost unclued card) promises the rank of the rightmost unclued card.
As mentioned previously, rank clues that touch Bob's rightmost unclued card is to be treated as a normal referential discard clue rather than a lock.
Zero clue safety promise is especially important in these variants - all players should write zcsp on everyone's leftmost unclued card that was not called to play and not cm'ed by context whenever a clue brings the team down to 0 or 0.5 clues.
Brown trash, also called junk, has targeting priority over other non-null trash of the same quality (i.e. cluedness).
Suppose blue 1 and brown 1 have been played on stacks. Consider the following hands:
Bob: g1 r1 n2 n3 n4
Cathy: b1 n1 y5 g5 r5
If Alice gives a yellow clue to Cathy (focusing slot 3), Bob should play his green 1 from slot 1 since the trash brown 1 has targeting priority over the trash blue 1. However, if Cathy's blue 1 had been touched with a blue clue, Bob should play red 1 from slot 2 as usual since the two trash are not of the same quality, and clued trash always has precedence over unclued trash.
Trash cards in a muddy rainbow suit are not considered to be brown trash. However, brown 1s are considered to be brown trash.
Null playable cards have targeting priority over other playable cards. For example:
Nothing is played on the stacks. Alice sees the following hands:
Bob: b1 r1 p1 y5 g5
Cathy: g1 y1 u1 p4 b5
Alice gives a rank 4 clue to Cathy. By null playable priority targeting, Bob targets the null 1 over the other playable cards to the left, and thus plays his blue 1 (slot 4 - 3 = 1).
This convention does not apply to null finesses.
Null trash, also called waste, has the highest targeting priority over other trash of the same quality (i.e. cluedness). In particular, null trash has higher targeting priority than brown trash (junk), which has targeting priority over normal trash.
The reasoning is that null cards inhibit our ability to give effective clues the most, and thus we want them out of players' hands as soon as possible.
Trash null 1s are also considered to be null trash.
The START card has a higher targeting priority than the 1 or the 5 of the same suit. For example, consider the following starting hands.
Bob: g4 g5 g1 gS g2
Cathy: b1 b5 bS b4 b3
Alice gives a 3 clue to Cathy as a reactive play clue focusing slot 5. Since bS has a higher targeting priority than b1 and b5, Bob should blind play slot 5 - 3 = 2 into this clue.
Additionally, START trash is considered junk, and thus has targeting priority over other non-null trash of the same quality (see the Brown Trash section).
In a 4 player game, there are up to two reacters.
Thus, there are three types of clues:
Since there are 4 cards in each player's hand, the sum of the slots is computed modulo 4:
If all players (excluding Alice) are stacked, all clues are stable clues.
If all players (starting from Bob) up to the reciever are stacked excluding the receiver, the clue is stable.
If at least one player between Alice and the reciever is not stacked then the clue is "forward" reactive. Only players that are not stacked can be reacters.
If all the players (starting from Bob) up to the reciever are stacked including the reciever are stacked then the clue is reverse reactive. Only players that are not stacked can be reacters.
Edge case
Alice clues Cathy. Bob is stacked, Cathy is stacked, Donald is not stacked.
This is a double reverse reactive clue where Donald is the first reacter and Bob is
always the second reacter even if Bob is stacked with multiple playable cards.
In 4-player reactor, double reactive clues must always proceed in a cyclic manner:
Suppose, without loss of generality, that Bob is the first reacter, Cathy is the second reacter and Donald is the reciever.
The parity of the number of plays called for by rank and color clues do not change compared to 3 players. When Alice clues Donald:
The focused slot will be the sum of the slots of three actions by Bob, Cathy, and Donald (modulo 4). When Alice gives a reactive clue to Donald, Bob uses the following priority table to determine the appropriate action:
Todo: replace leftmost when looking for a bridge card in a finesse by the
(1 -> 5 -> 4 -> 3 -> 2) order, whenever considering
a finesse or double finesse. This is to be consistent with the 3p-reactor conventions.
Suppose that Donald has no immediately playable cards. When Bob plays in response to a double reactive clue and Cathy sees that this play makes a previously unplayable card in Donald's hand now playable, Cathy must not act to make this card playable when Donald has any trash or dupes originally in his hand! Everyone must be synced according to the priority table above which means that originally trash cards in Donald's hand always have a higher targeting priority than Bob - Donald finesses.
Example 1:
Bob: b1 r1 p1 g1
Cathy: g2 y1 g2 g3
Donald: y1 g4 g1 b5
Donald has a playable on slot 1, so that slot is "locked in". Since y1 is being called to play, Bob will always target the leftmost g2 trash in Cathy's hand, so that card is also locked in. Alice has a choice of cluing 1, 4, or 5 to get b1 (slot 1), g1 (slot 4), or r1 (slot 2) respectively.
Example 2:
Bob: b1 b2 b3 b4
Cathy: g2 y1 g2 g3
Donald: y2 g4 g5 b5
Alice sees a finesse from Cathy to Donald is possible if Cathy + Donald's targeted slots sum to 3. A blue clue to Donald (focusing slot 4) would get three plays - b1 from Bob, y1 from Cathy, and y2 from Donald.
Example 3:
Bob: b1 b2 b3 b4
Cathy: g2 y1 g2 g3
Donald: y4 y4 g4 r3
No finesse is possible from Cathy to Donald, but Donald does have two duped y4s. The target for Donald would be the y4 on slot 1, so a good clue here would be 3 to Donald (focusing slot 4), getting b1 + y1 played and the left y4 discarded.
Example 4:
Bob: b1 r1 p1 g1
Cathy: g2 y1 g2 g3
Donald: b2 y4 g4 r3
Donald has no trash and no playables and a finesse from Cathy to Donald isn't available. However, Cathy has a playable y1 on slot 2 so that will be the target. Alice can then clue red to Donald focusing slot 4 which will get 3 plays - Bob subtracts the slot 2 target in Cathy's hand to get a slot sum of 2 for himself and Donald, and playing b1 from slot 1 is a possible finesse into the slot 1 b2 in Donald's hand.
This follows from the principles given in "The Reacter(s) and the Reciever".
If all players (excluding Alice) are stacked, then all clues are stable clues.
There are 4 possibilies:
There are 3 possibilities:
In the last case, for simplicity, Bob must react even if he is still stacked after playing his first pending play.
There are 4 possibilities:
In a 5 player game, there could be up to three reacters.
Most of the conventions can be generalized from the 4-player and 3-player conventions.
Todo: define triple reactive clue and the priority table for triple reactive clues.
For now, one can play without triple reactive clues, if a clue would be triple reactive
(e.g Eve is the reciever and noone (except Alice) has pending plays) then it is a stable clue.