Rollbot isn't just a solo variant or alternate challenge. It is an artificial intelligence that plays the entire full game by standard rules. It follows logic to select its phases based on the current game state, giving other players the opportunity to predict and benefit from its phase selection. Any number of Rollbots can play in a game with any number of humans (up to the game's normal total count of 5.) You may want to do any of the following:
Play solo against one Rollbot, using the usual extra white die for phase selection in two-player
Play solo against two, three, or four Rollbots
Two human players can play with a Rollbot as a third player rather than rolling an extra die for phase selection
How Rollbot works
Rollbot works by rolling dice, choosing a phase, assigning its dice, and playing through all chosen phases just as in the standard game of Roll for the Galaxy. Rollbot follows all the standard rules of the game as a human player would, with all of its choices defined by these rules.
Rollbot begins the game as usual, with a faction tile and home world, and gains the dice and other modifiers associated with them. Rollbot also begins by drawing two tiles as usual. It chooses the cheaper world to place on the Settle side; if that is tied it chooses the cheaper development to place on the development side; if that is also tied it picks randomly.
1. Roll dice and choose phase
Rollbot begins each turn by rolling all its dice as a human player would. Now Rollbot chooses a preference level for each phase based on the following logic. Note that for each phase, Rollbot must determine how many dice could be assigned to it. Rollbot uses all available capabilities to determine and reach that maximum, including Reassign and extra dice powers in its tableau, wild dice, and Dictate.
Explore: Rollbot's preference level is the total number of dice that it could assign to Explore to accomplish the following goals:
Stock to increase its money total up to at least $5.
Scout to increase its construction stacks up to two tiles each, except that Rollbot does not want more than 13 total tiles in its tableau plus construction stacks.
Develop: Rollbot's preference level is the higher of the following two numbers:
The total number of dice that it could assign to Develop and spend on its construction stack (to figure what could be spent, subtract discounts from developments and dice already waiting in the construction zone.)
The total point value of developments that it could bring into play. This includes any bonus points from 6+ developments. (This encourages Rollbot to finish partially-completed developments with dice waiting in the construction zone.)
Settle: Same as Develop.
Produce: Rollbot's preference level is the number of dice that it could assign to Produce and place onto empty worlds.
Ship: Rollbot's preference level is twice the number of dice that it could assign to Ship with a good available to ship with it.
Rollbot now chooses its phase to call by the highest preference. If there is a tie, break it as follows:
Explore: the number of dice waiting in the Citizenry
Develop: the number of dice waiting in the Develop construction zone
Settle: the number of dice waiting in the Settle construction zone
Produce: the number of worlds on which Rollbot could place a matching-colored good
Ship: the number of dice waiting on worlds as goods
If there is still a tie, Rollbot picks randomly, by rolling a spare white die until it shows one of the tied phases.
2. Assign dice
Rollbot now assigns dice to its chosen phase. It does so by using the available methods in this order:
1. Assign any dice that naturally rolled its chosen phase
2. If calling Produce or Ship, assign Wild dice that match the color of an empty (for Produce) or full (for Ship) world that isn't already matched by another die
3*. Assign a phase-selection die (don't use a Wild)
4*. Use any Reassign powers in its tableau (don't reassign a Wild)
5. Assign remaining wild faces
6*. Use Dictate
Rollbot stops assigning dice to its chosen phase at the following thresholds:
Develop: the total cost of its construction stack (subtract discounts and dice already waiting)
Settle: the total cost of its construction stack (subtract discounts and dice already waiting)
Produce: the number of its empty worlds (or, if Rollbot detects an endgame situation, when it will have as many goods as it could assign shippers)
Ship: the number of its goods on worlds
Once Rollbot stops assigning to its chosen phase, it continues as follows:
If calling Produce: assign to Ship up to the number of goods Rollbot will have on worlds after producing.
If calling Ship: If Rollbot has an empty production world, assign one die to Produce if possible. Then assign one more to Ship if possible. If it was, repeat this step.
If Rollbot isn't calling Develop or Settle but could assign enough dice to complete one or more tiles, do so, in whatever configuration would complete the maximum number of points. (If tied, favor Settle.)
Use any remaining reassign powers or wild faces to assign dice to Explore. (Don't use Dictate.)
Any remaining dice remain on the phase they rolled.
If Rollbot stops assigning to its chosen phase before it picks a phase-selection die, it uses a die already on that phase for selection.
Rollbot counts "act as if you have an extra die" powers in its tableau towards the number of dice assigned to a phase.
If Rollbot detects an endgame situation, and is calling Produce, it will attempt to balance its dice between Produce and Ship, intending to ship every good it can produce. (This is covered by the rule limiting Rollbot's Produce threshold to the number of goods it could ship.)
Choosing dice to reassign
The assignment steps marked by * in the above list require Rollbot to consider where it is reassigning dice from.
Pool 1: Rollbot identifies unspendable dice beyond its possible capacity to spend on each phase:
dice on Develop beyond the cost that could be spent on the stack (exception: if calling Explore, leave dice beyond capacity)
dice on Settle (same as for Develop)
dice on Produce beyond the number of empty worlds
dice on Ship beyond the number of full worlds (except if calling Produce, add the number of goods Rollbot will produce to the number of full worlds)
Dice from pool 1 are considered all together and are reassigned by color regardless of what phase they show.
If pool 1 is exhausted, continue as follows to keep reassigning dice. Identify dice in the following sequence of pools depending on which phase Rollbot is calling:
Color-matching on Develop/Settle/Explore
Nonmatching on Develop/Settle/Explore
Color-matching on Develop/Settle/Explore
Nonmatching on Develop/Settle/Explore
"Color-matching" means a die that matches a color of an empty (for Produce) or full (for Ship) world that isn't already matched by another die. Purple dice always match.
Always exhaust each pool before proceeding to the next, even if the next pool has dice of a better color.
Assigning dice requires Rollbot to choose what colors it is using. Rollbot considers the dice colors to rank in the following hierarchy as listed on the game screen: Yellow > Green > Brown > Cyan > Purple > Red > White.
When reassigning dice to Explore/Develop/Settle:
Use the lowest colors first. (This is because higher colors might remain on an uncalled phase, and are more valuable to be refunded back into the cup.)
When reassigning dice to Produce or Ship:
Use the highest color dice that match the color of an empty (for Produce) or full (for Ship) world
Use purple dice
Use nonmatching dice, lowest colors first.
When Dictating, Rollbot will choose the sources of the two dice, then assign one as the dictator and the other as the dictate target as appropriate:
If calling Produce/Ship and there is an available die in the chosen sources whose color matches an empty (for Produce) or full (for Ship) world, that die becomes the dictate target.
Otherwise, the lowest available color becomes the dictate target.
The highest available color in the chosen sources then becomes the dictator.
If Rollbot has a Dictate die that is a lower color than its phase-selection die and the phase-selection die doesn't color-match a world for Produce or Ship, swap the phase-selection die and the Dictate die.
3. Execute phases
During the turn sequence, Rollbot executes each phase chosen by anyone in the game, as a human player would. It gets all effects triggered by any of its developments during any of the phases. It returns dice assigned to uncalled phases or Dictate back into its cup, as normal.
Before beginning, Rollbot projects how many dice will be in its Citizenry at the end of the round. Add up the following:
All dice already in the Citizenry
All dice on Explore
All dice on Develop or Settle that will complete a tile and be returned to the citizenry
Any dice that will be added (or removed) to the citizenry by completed developments and worlds
All dice that will Ship plus the goods dice shipped by them
Rollbot remembers this number as its projected Citizenry count for use in the following phases.
Rollbot resolves Explore dice (including any extra dice granted by its developments) in the following order:
Rollbot will Stock to increase its money total until it is within $1 of its projected Citizenry count.
Rollbot will Scout to increase each construction stack to 2 tiles (but not beyond 13 total tiles in the tableau plus construction zone.)
Rollbot will Stock to increase its money total to at least $9.
Rollbot will Scout with any remaining dice (even beyond 13 tiles total.)
When Scouting, Rollbot always takes one new tile and never discards any. It places that tile on the bottom of one stack as follows:
The stack that would cost the least to complete, adjusting for development discounts and any dice already waiting in the construction zone
If that is tied, the stack with more dice waiting in the construction zone
If that is tied, the shorter stack with fewer tiles
If that is tied, choose the world side by default
If Rollbot is the Alien Archaeology faction (Stocking with a yellow explorer yields +$4), it will Stock with yellow explorers before non-yellow, and Scout with non-yellow explorers before yellow.
Rollbot will place all Development dice into its construction zone and complete any developments according to standard rules.
If Rollbot will spend some dice and leave some waiting in the construction zone, it chooses the higher colors to spend into the citizenry and the lower colors to leave in wait.
If Rollbot will spend some dice and end up with extra unspendable dice refunded into its cup, it chooses the lower colors to spend into the citizenry and the higher colors to get refunded.
If a development or world instructs Rollbot to remove one of its dice, and there is no white die in the citizenry, Rollbot will spend one lowest-colored develop/settle die on that development or world. Then Rollbot removes the lowest-colored die in the citizenry. If there are none, it removes the lowest-colored die in its cup.
Same as Develop.
Rollbot places yellow, green, brown, and cyan dice on a matching colored world if available.
Rollbot places white and red dice on the highest available value worlds.
Rollbot places purple dice on the highest available value worlds.
Rollbot places cyan, brown, green, and yellow dice on the highest available value worlds.
If a condition that ends the game has been reached, or if all players consuming all their goods would exhaust the VP stock, Rollbot consumes everything for the maximum points possible. If not, proceed as follows.
Rollbot pairs as many shippers as possible to worlds that will result in a 3-point consume action, starting with the highest value worlds. (But it doesn't ship just yet.)
Rollbot pairs as many shippers as possible to worlds that will result in a 2-point consume action, starting with the highest value worlds.
Rollbot pairs its remaining shippers and worlds for 1-point consume actions, starting with the highest value worlds and lowest-colored shippers.
While Rollbot's money total is below its projected Citizenry count, it trades its highest value pair that would be a 1-point consume action, then repeats this step.
While Rollbot's money total is $2 or more below its projected Citizenry count, it trades its highest value pair that would be a 2-point consume action, then repeats this step.
While Rollbot's money total is $4 or more below its projected Citizenry count, it trades its highest value pair that would be a 3-point consume action, then repeats this step.
Rollbot consumes all remaining pairs.
Rollbot recruits the maximum possible dice from its Citizenry, starting with the highest available colors.
If Rollbot has no dice in the citizenry or cup and must recall one, it chooses by the following priority order:
A good whose color doesn't match its world, lowest-value world first
A color-matching good, lowest-value world first
A die in the construction zone on whichever of Develop or Settle needs more dice to complete the topmost tile
If that is tied, whichever of Develop or Settle has fewer dice
If that is tied, recall from Develop
If the game has not ended, Rollbot now begins the next round as usual.
Rollbot thinks the game is likely to end this round if either of the following conditions is true:
Any player has enough tiles in the tableau plus one construction stack to reach 12 total and is rolling enough dice to potentially complete them.
The remaining VP chips are less than or equal to 2x the number of goods on all worlds.
Rollbot's endgame logic changes as follows:
Before rolling, it will look for any dice in the construction zone that couldn't possibly complete a tile because Rollbot's cup doesn't have enough dice to do so, and recall those dice into the cup.
It will apply a preference modifier of -2 to Explore.
If it has at least one good on a world, it will apply a preference modifier of +1 to Ship.
After choosing its phase, it will look for develop or settle dice that would not complete a tile in the construction zone, and consider them beyond capacity and in the step 1 pool for reassignment.
If calling Produce, it will attempt not to produce more goods than it could ship (as mentioned in the section on assignment.)
To allow Rollbot a handicap to make for a stronger opponent, grant it a higher minimum on its money track at the end of each round.
Easy: $1 minimum (the standard rule)
Medium: $2 minimum
Hard: $3 minimum
Insane: $4 minimum and try to keep up with this monster!