<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://en.doc.boardgamearena.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Shadowphiar</id>
	<title>Board Game Arena - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://en.doc.boardgamearena.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Shadowphiar"/>
	<link rel="alternate" type="text/html" href="https://en.doc.boardgamearena.com/Special:Contributions/Shadowphiar"/>
	<updated>2026-09-22T01:00:53Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.0</generator>
	<entry>
		<id>https://en.doc.boardgamearena.com/index.php?title=Gamehelppi&amp;diff=17014</id>
		<title>Gamehelppi</title>
		<link rel="alternate" type="text/html" href="https://en.doc.boardgamearena.com/index.php?title=Gamehelppi&amp;diff=17014"/>
		<updated>2023-05-24T08:41:15Z</updated>

		<summary type="html">&lt;p&gt;Shadowphiar: Remove &amp;quot;the rules imply you can solve only once&amp;quot; - they really don&amp;#039;t.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Card games]]&lt;br /&gt;
For tips on how to play P.I., see &amp;lt;b&amp;gt;[[Tips_pi|Tips_PI]]&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
* P.I. (Private Investigator) is a simple deductive game consisting of 3 mini-games.&lt;br /&gt;
&lt;br /&gt;
== Objective ==&lt;br /&gt;
&lt;br /&gt;
* Each player has three cases that they need to solve.&lt;br /&gt;
* You win by getting the most points for solving the three cases.&lt;br /&gt;
* To solve a case you need to show the following elements: the &#039;&#039;&#039;criminal&#039;&#039;&#039;, the &#039;&#039;&#039;location&#039;&#039;&#039; of the crime and the &#039;&#039;&#039;type&#039;&#039;&#039; of crime.&lt;br /&gt;
* Each player solves their own unique case each in round.&lt;br /&gt;
** The player on your right has your Case Cards, which show the elements of the case you are solving.&lt;br /&gt;
&lt;br /&gt;
== Actions ==&lt;br /&gt;
&lt;br /&gt;
* Each turn you choose only one of the following actions:&lt;br /&gt;
*# Use an investigator on a location.&lt;br /&gt;
*#* &#039;&#039;You only have 5 for the entire game.&#039;&#039;&lt;br /&gt;
*# Pick an evidence card.&lt;br /&gt;
*# Attempt to solve the case.&lt;br /&gt;
&lt;br /&gt;
=== Using an Investigator ===&lt;br /&gt;
&lt;br /&gt;
* Each Location Card consists of a criminal tile, a location tile, and a crime tile.&lt;br /&gt;
* Using an Investigator on a Location Card tells you the number of tiles matching your Case Cards elements (the criminal and/or the location and/or the crime) in or near that location, as well as the number of elements.&lt;br /&gt;
* Discs and cubes are placed by the Investigator as follows:&lt;br /&gt;
** &#039;&#039;&#039;Disc&#039;&#039;&#039;: An element is in this Investigator&#039;s location.&lt;br /&gt;
** &#039;&#039;&#039;Cube&#039;&#039;&#039;: An element is in a location that is adjacent to this Investigator&#039;s location. It does not tell you what that element is.&lt;br /&gt;
* &#039;&#039;Note:&#039;&#039; You only have 5 Investigators and they are &#039;one use&#039; only for all three rounds of the entire game.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|+Possible results &lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;max-width:16rem;&amp;quot; | &#039;&#039;&#039;# Case cards matching in the Investigator&#039;s location&#039;&#039;&#039;&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; style=&amp;quot;max-width:12rem;&amp;quot; | &#039;&#039;&#039;The result represented in&lt;br /&gt;
Discs &amp;amp; cubes&#039;&#039;&#039;&lt;br /&gt;
!style=&amp;quot;max-width:16rem;&amp;quot; | &#039;&#039;&#039;# Case cards matching in a location &#039;&#039;adjacent&#039;&#039; to the Investigator&#039;&#039;&#039;&lt;br /&gt;
|- &lt;br /&gt;
|style=&amp;quot;color:#0a0;&amp;quot;|3 &lt;br /&gt;
|style=&amp;quot;color:#0a0;&amp;quot;|3 discs&lt;br /&gt;
|style=&amp;quot;color:#a70;&amp;quot;|0 cubes&lt;br /&gt;
|style=&amp;quot;color:#a70;&amp;quot;|0 &lt;br /&gt;
|- &lt;br /&gt;
|style=&amp;quot;color:#0a0;&amp;quot;|2&lt;br /&gt;
|style=&amp;quot;color:#0a0;&amp;quot;|2 discs&lt;br /&gt;
|style=&amp;quot;color:#a70;&amp;quot;|1 cube&lt;br /&gt;
|style=&amp;quot;color:#a70;&amp;quot;|1&lt;br /&gt;
|- &lt;br /&gt;
|style=&amp;quot;color:#0a0;&amp;quot;|1&lt;br /&gt;
|style=&amp;quot;color:#0a0;&amp;quot;|1 disc&lt;br /&gt;
|style=&amp;quot;color:#a70;&amp;quot;|2 cubes&lt;br /&gt;
|style=&amp;quot;color:#a70;&amp;quot;|2&lt;br /&gt;
|- &lt;br /&gt;
|style=&amp;quot;color:#0a0;&amp;quot;|0&lt;br /&gt;
|style=&amp;quot;color:#0a0;&amp;quot;|0 discs&lt;br /&gt;
|style=&amp;quot;color:#a70;&amp;quot;|3 cubes&lt;br /&gt;
|style=&amp;quot;color:#a70;&amp;quot;|3&lt;br /&gt;
|- &lt;br /&gt;
|style=&amp;quot;color:#0a0;&amp;quot;|2&lt;br /&gt;
|style=&amp;quot;color:#0a0;&amp;quot;|2 discs&lt;br /&gt;
|style=&amp;quot;color:#a70;&amp;quot;|0 cubes&lt;br /&gt;
|style=&amp;quot;color:#a70;&amp;quot;|0&lt;br /&gt;
|- &lt;br /&gt;
|style=&amp;quot;color:#0a0;&amp;quot;|1&lt;br /&gt;
|style=&amp;quot;color:#0a0;&amp;quot;|1 disc&lt;br /&gt;
|style=&amp;quot;color:#a70;&amp;quot;|1 cube&lt;br /&gt;
|style=&amp;quot;color:#a70;&amp;quot;|1&lt;br /&gt;
|- &lt;br /&gt;
|style=&amp;quot;color:#0a0;&amp;quot;|1&lt;br /&gt;
|style=&amp;quot;color:#0a0;&amp;quot;|1 disc&lt;br /&gt;
|style=&amp;quot;color:#a70;&amp;quot;|0 cubes&lt;br /&gt;
|style=&amp;quot;color:#a70;&amp;quot;|0&lt;br /&gt;
|- &lt;br /&gt;
|style=&amp;quot;color:#0a0;&amp;quot;|0&lt;br /&gt;
|style=&amp;quot;color:#0a0;&amp;quot;|0 discs&lt;br /&gt;
|style=&amp;quot;color:#a70;&amp;quot;|0 cubes&lt;br /&gt;
|style=&amp;quot;color:#a70;&amp;quot;|0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Using Evidence Cards ===&lt;br /&gt;
&lt;br /&gt;
* Using an Evidence Card allows you to investigate one particular element of your case.&lt;br /&gt;
* It will only tell you the matching tiles that are the same type as the selected Evidence Card.&lt;br /&gt;
** &#039;&#039;&#039;Disc&#039;&#039;&#039;: If the Evidence Card matches one of your Case Cards, a disc is placed on the matching tile.&lt;br /&gt;
** &#039;&#039;&#039;Cube&#039;&#039;&#039;: If the Case Card&#039;s tile is in an adjacent location to the Evidence Card&#039;s tile, then a cube will be placed on the tile.&lt;br /&gt;
&lt;br /&gt;
==== Additional Rules With Using Evidence Cards====&lt;br /&gt;
&lt;br /&gt;
* If you already have a disc/cube on one of your Investigator Counters and it corresponds with the selected Evidence Card then the disc/cube is moved from the Investigator Counter to the tile matching the selected Evidence Card.&lt;br /&gt;
* If a disc/cube is placed then it must be placed on the tile.&lt;br /&gt;
* If no disc/cube is placed then you place the Evidence Card in front of your position to remind you that no information was gained.&lt;br /&gt;
* If you do place a disc/cube then you discard the Evidence Card.&lt;br /&gt;
&lt;br /&gt;
=== Attempt to Solve the Case ===&lt;br /&gt;
&lt;br /&gt;
* Finally you can attempt to solve the case, click on a criminal, a location and a crime type.&lt;br /&gt;
** If you&#039;re right, then you get points according to how many players solve their cases before you.&lt;br /&gt;
*** &#039;&#039;7 for first, 5 for second, 3 for third and 1 for fourth.&#039;&#039;&lt;br /&gt;
** If you&#039;re wrong, then you lose 2 points. Next turn you can try again, but you accrue the VP penalties (and lose time).&lt;br /&gt;
** If everyone has solved but you, you get 0 points (and penalties you have accrued).&lt;br /&gt;
&lt;br /&gt;
== Phases ==&lt;br /&gt;
&lt;br /&gt;
* The game consists of 3 rounds, players are attempting to solve one case in every round.&lt;br /&gt;
* Each round is composed of phases where each player takes a turn playing one action.&lt;br /&gt;
** &#039;&#039;Beginning with the starting player.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Solving a case ==&lt;br /&gt;
&lt;br /&gt;
* Once a player solves a case for the first time in that round, (in phase 6 of the current round for example,) they get 7 points, and &#039;&#039;each&#039;&#039; subsequent player who solves their case in the same phase (phase 6 in our example) &#039;&#039;also&#039;&#039; gets 7 points.&lt;br /&gt;
* Once the phase ends, if there are at least two players who didn&#039;t solve the case yet, then the game continues, but on the phase the next player solves the case, they get 2 fewer points--and that goes for all players who solve the case in that same phase.&lt;br /&gt;
* This continues on and on, until only 1 (or 0) player remains.&lt;br /&gt;
** If one player remains at the end of a phase, that player won&#039;t gain any points for the round, and the next round starts.&lt;br /&gt;
&lt;br /&gt;
== Tiebreakers ==&lt;br /&gt;
&lt;br /&gt;
* In the case of a tie, the winner is the tied player who has the:&lt;br /&gt;
*# Most Investigator pieces.&lt;br /&gt;
*# Fewest penalty points.&lt;/div&gt;</summary>
		<author><name>Shadowphiar</name></author>
	</entry>
	<entry>
		<id>https://en.doc.boardgamearena.com/index.php?title=Game_interface_stylesheet:_yourgamename.css&amp;diff=13668</id>
		<title>Game interface stylesheet: yourgamename.css</title>
		<link rel="alternate" type="text/html" href="https://en.doc.boardgamearena.com/index.php?title=Game_interface_stylesheet:_yourgamename.css&amp;diff=13668"/>
		<updated>2022-06-21T08:59:37Z</updated>

		<summary type="html">&lt;p&gt;Shadowphiar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Studio_Framework_Navigation}}&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
This is the CSS stylesheet of your game User Interface.&lt;br /&gt;
    &lt;br /&gt;
Styles defined on this file will be applied to the HTML elements you define in your HTML template (yourgame_yourgame.tpl), and to HTML elements you create dynamically with Javascript.&lt;br /&gt;
    &lt;br /&gt;
Usually, you are using CSS to:&lt;br /&gt;
    &lt;br /&gt;
1°) define the overall layout of your game&lt;br /&gt;
(ex: place the board on the top left, place player&#039;s hand beside, place the deck on the right, ...).&lt;br /&gt;
&lt;br /&gt;
2°) create your CSS-sprites:&lt;br /&gt;
All images of your games should be gathered into a small number of image files. Then, using background-image and background-position CSS properties, you create HTML blocks that can display these images correctly.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    Example of CSS sprites (a black token and a white token, 20x20px each, embedded in the same &amp;quot;tokens.png&amp;quot; 40x20px image):&lt;br /&gt;
&lt;br /&gt;
    .white_token {&lt;br /&gt;
        background-image: url(&#039;img/tokens.png&#039;);&lt;br /&gt;
        background-position: 0px 0px;&lt;br /&gt;
    }&lt;br /&gt;
    .black_token {&lt;br /&gt;
        background-image: url(&#039;img/tokens.png&#039;);&lt;br /&gt;
        background-position: -20px 0px;&lt;br /&gt;
    }&lt;br /&gt;
    .token {&lt;br /&gt;
        width: 20px;&lt;br /&gt;
        height: 20px;&lt;br /&gt;
        background-repeat: none;&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
3°) ... anything else:&lt;br /&gt;
&lt;br /&gt;
It is really easy to add and remove CSS classes dynamically from your Javascript with dojo.addClass and dojo.removeClass. It is also easy to check if an element has a class (dojo.hasClass) or to get all elements with a specific class (dojo.query). &lt;br /&gt;
&lt;br /&gt;
This is why, very often, using CSS classes for the logic of your user interface allow you to do complex thing easily.&lt;br /&gt;
        &lt;br /&gt;
Note: on the production platform, this file will be compressed and comments will be removed. Consequently, don&#039;t hesitate to put as many comments as necessary.&lt;br /&gt;
&lt;br /&gt;
Important: ALL the CSS directives for your game must be included in this CSS file. You can&#039;t create additional CSS files and import them.&lt;br /&gt;
&lt;br /&gt;
== Warning: using percentage in background-position ==&lt;br /&gt;
&lt;br /&gt;
In the example above, you will see &amp;quot;background-position: -20px 0px;&amp;quot; is used for the black token. You could also write this as &amp;quot;background-position: -100% 0%;&amp;quot; which displays the image at the same offset, because it is relative to the size of the .token bounding box, and this means the size of your image file doesn&#039;t need to precisely match the size of objects on the screen (this can be easier to write, and you can also substitute different image files without having to rewrite all the css.) However, it is strongly recommended that if you do this, you also specify &amp;lt;code&amp;gt;background-size&amp;lt;/code&amp;gt; as a percentage as well. &lt;br /&gt;
&lt;br /&gt;
This is because, if the size of the div on screen after any further scaling - which is done for you by the framework to fit games into small windows - is not a whole integer number of pixels, then rounding must occur at some points in the calculation; if the background-size and background-position are calculated in different ways, the difference in rounding can result int the final image offsets being incorrect. This is most significant on Safari (on MacOS, iPhone and iPad) where the discrepancy can be substantial enough to make a game &#039;&#039;illegible&#039;&#039;; but other browsers can be off by a few pixels as well. [https://jsfiddle.net/shadowphiar/yLq36mzt/ (external demo)]. To avoid this issue, either:&lt;br /&gt;
&lt;br /&gt;
* choose one unit (pixels, em, percentages etc) and specify &#039;&#039;&#039;all&#039;&#039;&#039; the background-size and background-position offsets of a div in the same unit.&lt;br /&gt;
* adjust the size of your div so that, after any global scaling (this.gameinterface_zoomFactor), it will occupy an integer number of pixels on the screen.&lt;br /&gt;
&lt;br /&gt;
== Warning: using Z-index ==&lt;br /&gt;
&lt;br /&gt;
You may use z-index CSS property in your game interface, but you should pay attention to the following: BGA dialogs are displayed with a z-index of 950. If you want to use z-index safely, you should use value &#039;&#039;&#039;lower than 900&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
About z-index: don&#039;t forget that if you are using a z-index, your element will be displayed above all elements that do not have a z-index. So it&#039;s no use to have big z-index values: 1 is enough most of the time :)&lt;br /&gt;
&lt;br /&gt;
== Tip: how to make your cards looks beautiful :) ==&lt;br /&gt;
&lt;br /&gt;
This piece of CSS (to adapt to your needs) is adding rounded corners + a shadow to your card.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    border-radius: 10px;&lt;br /&gt;
    border: 1px black solid;&lt;br /&gt;
&lt;br /&gt;
    -moz-box-shadow: 5px 5px 5px 0px rgba(0,0,0,0.4);&lt;br /&gt;
    -webkit-box-shadow: 5px 5px 5px 0px rgba(0,0,0,0.4);&lt;br /&gt;
    -o-box-shadow: 5px 5px 5px 0px rgba(0,0,0,0.4);&lt;br /&gt;
    box-shadow: 5px 5px 5px 0px rgba(0,0,0,0.4);&lt;br /&gt;
    filter:progid:DXImageTransform.Microsoft.Shadow(color=#656565, Direction=134, Strength=30);   &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== spectatorMode ==&lt;br /&gt;
&lt;br /&gt;
When a spectator (= a player that is not part of the game) is viewing a game, the BGA framework add the CSS class &amp;quot;spectatorMode&amp;quot; to the wrapping HTML tag of your game.&lt;br /&gt;
&lt;br /&gt;
This way, if you want to apply a special style to some elements of your game for spectators, you can do this in your CSS:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.spectatorMode #your_element_id {&lt;br /&gt;
    /* your special style */&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The most common usage of this is to hide some elements to spectators. For example, to hide &amp;quot;my hand&amp;quot; elements:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.spectatorMode #my_hand {&lt;br /&gt;
    display: none;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Studio]]&lt;/div&gt;</summary>
		<author><name>Shadowphiar</name></author>
	</entry>
	<entry>
		<id>https://en.doc.boardgamearena.com/index.php?title=BGA_Studio_Cookbook&amp;diff=7952</id>
		<title>BGA Studio Cookbook</title>
		<link rel="alternate" type="text/html" href="https://en.doc.boardgamearena.com/index.php?title=BGA_Studio_Cookbook&amp;diff=7952"/>
		<updated>2021-04-14T21:46:42Z</updated>

		<summary type="html">&lt;p&gt;Shadowphiar: /* Cool realistic shadow effect with CSS */ Downplay advice to use &amp;#039;&amp;#039;&amp;#039;filter: drop-shadow&amp;#039;&amp;#039;&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Studio_Framework_Navigation}}&lt;br /&gt;
&lt;br /&gt;
This page is collection of design and implementation recipes for BGA Studio framework.&lt;br /&gt;
For tooling and usage recipes see [[Tools and tips of BGA Studio]].&lt;br /&gt;
If you have your own recipes feel free to edit this page.&lt;br /&gt;
&lt;br /&gt;
== Visual Effects, Layout and Animation ==&lt;br /&gt;
&lt;br /&gt;
=== Create pieces dynamically (using template) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ingredients:&#039;&#039;&#039; ggg_ggg.tpl, ggg.js&lt;br /&gt;
&lt;br /&gt;
Note: this method is recommended by BGA guildlines&lt;br /&gt;
&lt;br /&gt;
Declared js template with variables in .tpl file, like this&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
    // Javascript HTML templates&lt;br /&gt;
    var jstpl_ipiece = &#039;&amp;lt;div class=&amp;quot;${type} ${type}_${color} inlineblock&amp;quot; aria-label=&amp;quot;${name}&amp;quot; title=&amp;quot;${name}&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&#039;;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use it like this in .js file&lt;br /&gt;
  div = this.format_block(&#039;jstpl_ipiece&#039;, {&lt;br /&gt;
                                type : &#039;meeple&#039;,&lt;br /&gt;
                                color : &#039;ff0000&#039;,&lt;br /&gt;
                                name : &#039;Bob&#039;,&lt;br /&gt;
                            });&lt;br /&gt;
  &lt;br /&gt;
Then you do whatever you need to do with that div, this one specifically design to go to log entries, because it has embedded title (otherwise its a picture only) and no id.&lt;br /&gt;
&lt;br /&gt;
Note: you could have place this variable in js itself, but keeping it in .tpl allows you to have your js code be free of HTML. Normally it never happens but&lt;br /&gt;
it is good to strive for it.&lt;br /&gt;
Note: you can also use string concatenation, its less readable. You can also use dojo dom object creation api&#039;s but its brutally verbose and its more unreadable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Create pieces dynamically (using string concatenation) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ingredients:&#039;&#039;&#039; ggg.js&lt;br /&gt;
&lt;br /&gt;
Note: Not recommended&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  div = &amp;quot;&amp;lt;div class=&#039;meeple &amp;quot;+color+&amp;quot;&#039;&amp;gt;&amp;lt;/div&amp;gt;&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Create all pieces statically ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ingredients:&#039;&#039;&#039; ggg_ggg.tpl, ggg.css, ggg.view.php (optional) &lt;br /&gt;
&lt;br /&gt;
* Create ALL game pieces in html template (.tpl)&lt;br /&gt;
* ALL pieces should have unique id, and it should be meaningful, i.e. meeple_red_1&lt;br /&gt;
* Do not use inline styling&lt;br /&gt;
* Id of player&#039;s specific pieces should use some sort of &#039;color&#039; identification, since player id cannot be used in static layout, you can use english color name, hex 6 char value, or color &amp;quot;number&amp;quot; (1,2,3...)&lt;br /&gt;
* Pieces should have separated class for its color, type, etc, so it can be easily styled in groups. In example below you now can style all meeples, all red meeples or all red tokens, or all &amp;quot;first&amp;quot; meeples&lt;br /&gt;
&lt;br /&gt;
ggg.tpl:&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
  &amp;lt;div id=&amp;quot;home_red&amp;quot; class=&amp;quot;home_red home&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;div id=&amp;quot;meeple_red_1&amp;quot; class=&amp;quot;meeple red n1&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
     &amp;lt;div id=&amp;quot;meeple_red_2&amp;quot; class=&amp;quot;meeple red n2&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ggg.css:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.meeple {&lt;br /&gt;
	width: 32px;&lt;br /&gt;
	height: 39px;&lt;br /&gt;
	background-image: url(img/78_64_stand_meeples.png);&lt;br /&gt;
	background-size: 352px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.meeple.red {&lt;br /&gt;
	background-position: 30% 0%;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* There should be straight forward mapping between server id and js id (or 1:1)&lt;br /&gt;
* You place objects in different zones of the layout, and setup css to take care of layout&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.home .meeple{&lt;br /&gt;
   display: inline-block;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* If you need to have a temporary object that look like original you can use dojo.clone (and change id to some temp id)&lt;br /&gt;
* If there is lots of repetition or zone grid you can use template generator, but inject style declaration in css instead of inline style for flexibility&lt;br /&gt;
&lt;br /&gt;
Note:&lt;br /&gt;
* If you use this model you cannot use premade js components such as Stock and Zone&lt;br /&gt;
* You have to use alternative methods of animation (slightly altered) since default method will leave object with inline style attributes which you don&#039;t need&lt;br /&gt;
&lt;br /&gt;
=== Use thematic fonts ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ingredients:&#039;&#039;&#039; ggg.css&lt;br /&gt;
&lt;br /&gt;
Sometime game elements use specific fonts of text, if you want to match it up you can load some specific font (IMPORTANT: from some &#039;&#039;&#039;free font&#039;&#039;&#039; source. See notes below).&lt;br /&gt;
&lt;br /&gt;
[[File:Dragonline_font.png]]&lt;br /&gt;
&lt;br /&gt;
.css&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/* latin-ext */&lt;br /&gt;
@font-face {&lt;br /&gt;
  font-family: &#039;Qwigley&#039;;&lt;br /&gt;
  font-style: normal;&lt;br /&gt;
  font-weight: 400;&lt;br /&gt;
  src: local(&#039;Qwigley&#039;), local(&#039;Qwigley-Regular&#039;), url(https://fonts.gstatic.com/s/qwigley/v6/2Dy1Unur1HJoklbsg4iPJ_Y6323mHUZFJMgTvxaG2iE.woff2) format(&#039;woff2&#039;);&lt;br /&gt;
  unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;&lt;br /&gt;
}&lt;br /&gt;
/* latin */&lt;br /&gt;
@font-face {&lt;br /&gt;
  font-family: &#039;Qwigley&#039;;&lt;br /&gt;
  font-style: normal;&lt;br /&gt;
  font-weight: normal;&lt;br /&gt;
  src: local(&#039;Qwigley&#039;), local(&#039;Qwigley-Regular&#039;), url(https://fonts.gstatic.com/s/qwigley/v6/gThgNuQB0o5ITpgpLi4Zpw.woff2) format(&#039;woff2&#039;);&lt;br /&gt;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;&lt;br /&gt;
}&lt;br /&gt;
@font-face {&lt;br /&gt;
  font-family: &#039;Qwigley&#039;;&lt;br /&gt;
  font-style: normal;&lt;br /&gt;
  font-weight: normal;&lt;br /&gt;
  src: local(&#039;Qwigley&#039;), local(&#039;Qwigley-Regular&#039;), url(http://ff.static.1001fonts.net/q/w/qwigley.regular.ttf) format(&#039;ttf&#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.zone_title {&lt;br /&gt;
	display: inline-block;&lt;br /&gt;
	position: absolute;&lt;br /&gt;
	font: italic 32px/32px &amp;quot;Qwigley&amp;quot;, cursive;	   &lt;br /&gt;
	height: 32px;&lt;br /&gt;
	width: auto;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NB:&#039;&#039;&#039; if you need to include a font that&#039;s not available online, an extra action will be needed from an admin. Please include the font file(s) in your img directory, and mention it to admins when requesting your game to be moved to alpha. &#039;&#039;&#039;Please remember that the font has to be free, and include a .txt with all appropriate license information about the font.&#039;&#039;&#039;&lt;br /&gt;
You can look for free fonts (for example) on https://fonts.google.com or https://www.fontsquirrel.com/)&lt;br /&gt;
&lt;br /&gt;
=== Use player color in template ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ingredients:&#039;&#039;&#039; ggg_ggg.tpl, ggg.view.php&lt;br /&gt;
&lt;br /&gt;
.view.php:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    function build_page($viewArgs) {&lt;br /&gt;
        // Get players &amp;amp; players number&lt;br /&gt;
        $players = $this-&amp;gt;game-&amp;gt;loadPlayersBasicInfos();&lt;br /&gt;
        $players_nbr = count($players);&lt;br /&gt;
        /**&lt;br /&gt;
         * ********* Place your code below: ***********&lt;br /&gt;
         */&lt;br /&gt;
        &lt;br /&gt;
        // Set PCOLOR to the current player color hex&lt;br /&gt;
        global $g_user;&lt;br /&gt;
        $cplayer = $g_user-&amp;gt;get_id();&lt;br /&gt;
        if (array_key_exists($cplayer, $players)) { // may be not set if spectator&lt;br /&gt;
            $player_color = $players [$cplayer] [&#039;player_color&#039;];&lt;br /&gt;
        } else {&lt;br /&gt;
            $player_color = &#039;ffffff&#039;; // spectator&lt;br /&gt;
        }&lt;br /&gt;
        $this-&amp;gt;tpl [&#039;PCOLOR&#039;] = $player_color;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Scale to fit for big boards ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ingredients:&#039;&#039;&#039; ggg_ggg.tpl, ggg.js&lt;br /&gt;
&lt;br /&gt;
Lets say you have huge game board, and lets say you want it to be 1400px wide. Besides the board there will be side bar which is 240 and trim. &lt;br /&gt;
My display is 1920 wide so it fits, but there is big chance other people won&#039;t have that width. What do you do?&lt;br /&gt;
Easiest thing I came up with is to scale whole content to fit (everything you declare in .tpl file). Tested or firefox and chrome.&lt;br /&gt;
&lt;br /&gt;
ggg_ggg.tpl:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   &amp;lt;div id=&amp;quot;thething&amp;quot; class=&amp;quot;thething&amp;quot; style=&amp;quot;width: 1400px;&amp;quot;&amp;gt;&lt;br /&gt;
            ... everything else you declare ...&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ggg.js:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    setup : function(gamedatas) {&lt;br /&gt;
          console.log(&amp;quot;Starting game setup&amp;quot;);&lt;br /&gt;
          ...&lt;br /&gt;
          this.interface_min_width = 740;&lt;br /&gt;
          this.interface_max_width = 1400;&lt;br /&gt;
          dojo.connect(window, &amp;quot;onresize&amp;quot;, this, dojo.hitch(this, &amp;quot;adaptViewportSize&amp;quot;));&lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
    adaptViewportSize : function() {&lt;br /&gt;
        var pageid = &amp;quot;page-content&amp;quot;;&lt;br /&gt;
        var nodeid = &amp;quot;thething&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        var bodycoords = dojo.marginBox(pageid);&lt;br /&gt;
        var contentWidth = bodycoords.w;&lt;br /&gt;
&lt;br /&gt;
        var browserZoomLevel = window.devicePixelRatio; &lt;br /&gt;
        //console.log(&amp;quot;zoom&amp;quot;,browserZoomLevel);&lt;br /&gt;
        if (contentWidth &amp;gt;= this.interface_max_width || browserZoomLevel &amp;gt;1  || this.control3dmode3d) {&lt;br /&gt;
            dojo.style(nodeid,&#039;transform&#039;,&#039;&#039;);&lt;br /&gt;
            return;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        var percentageOn1 = contentWidth / this.interface_max_width;&lt;br /&gt;
        dojo.style(nodeid, &amp;quot;transform&amp;quot;, &amp;quot;scale(&amp;quot; + percentageOn1 + &amp;quot;)&amp;quot;);&lt;br /&gt;
    },&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: this method does not seems to work to retina resolution displays, if you know better way let me know&lt;br /&gt;
&lt;br /&gt;
=== Dynamic tooltips ===&lt;br /&gt;
&lt;br /&gt;
If you really need a dynamic tooltip you can use this technique. (Only use it if the static tooltips provided by the BGA framework are not sufficient.)&lt;br /&gt;
&lt;br /&gt;
            new dijit.Tooltip({&lt;br /&gt;
                connectId: [&amp;quot;divItemId&amp;quot;],&lt;br /&gt;
                getContent: function(matchedNode){&lt;br /&gt;
                    return &amp;quot;... calculated ...&amp;quot;; &lt;br /&gt;
                }&lt;br /&gt;
            });&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is an out-of-the-box djit.Tooltip. It has a &#039;&#039;getContent&#039;&#039; method which is called dynamically.&lt;br /&gt;
&lt;br /&gt;
The string function return becomes the innerHTML of the tooltip, so it can be anything. In this example matchedNode is a dojo node representing dom object with id of &amp;quot;divItemId&amp;quot; but there are more parameters which I am not posting here which allows more sophisticated subnode queries (i.e. you can attach tooltip to all nodes with class or whatever).&lt;br /&gt;
&lt;br /&gt;
[https://dojotoolkit.org/reference-guide/1.10/dijit/Tooltip.html dijit.Tooltip]&lt;br /&gt;
&lt;br /&gt;
It&#039;s not part of the BGA API so use at your own risk.&lt;br /&gt;
&lt;br /&gt;
=== Accessing images from js ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ingredients:&#039;&#039;&#039; ggg.js&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
     // your game resources&lt;br /&gt;
     &lt;br /&gt;
     var my_img = &#039;&amp;lt;img src=&amp;quot;&#039;+g_gamethemeurl+&#039;img/cards.jpg&amp;quot;/&amp;gt;&#039;;&lt;br /&gt;
     &lt;br /&gt;
     // shared resources&lt;br /&gt;
     var my_help_img = &amp;quot;&amp;lt;img class=&#039;imgtext&#039; src=&#039;&amp;quot; + g_themeurl + &amp;quot;img/layout/help_click.png&#039; alt=&#039;action&#039; /&amp;gt; &amp;lt;span class=&#039;tooltiptext&#039;&amp;gt;&amp;quot; +&lt;br /&gt;
                    text + &amp;quot;&amp;lt;/span&amp;gt;&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Rendering text with players color and proper background ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ingredients:&#039;&#039;&#039; ggg.js&lt;br /&gt;
&lt;br /&gt;
This example actually writes &amp;quot;You&amp;quot; but you can replace this with player name as easily, drop translating function in this case&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        /* Implementation of proper colored You with background in case of white or light colors  */&lt;br /&gt;
 &lt;br /&gt;
        divYou : function() {&lt;br /&gt;
            var color = this.gamedatas.players[this.player_id].color;&lt;br /&gt;
            var color_bg = &amp;quot;&amp;quot;;&lt;br /&gt;
            if (this.gamedatas.players[this.player_id] &amp;amp;&amp;amp; this.gamedatas.players[this.player_id].color_back) {&lt;br /&gt;
                color_bg = &amp;quot;background-color:#&amp;quot; + this.gamedatas.players[this.player_id].color_back + &amp;quot;;&amp;quot;;&lt;br /&gt;
            }&lt;br /&gt;
            var you = &amp;quot;&amp;lt;span style=\&amp;quot;font-weight:bold;color:#&amp;quot; + color + &amp;quot;;&amp;quot; + color_bg + &amp;quot;\&amp;quot;&amp;gt;&amp;quot; + __(&amp;quot;lang_mainsite&amp;quot;, &amp;quot;You&amp;quot;) + &amp;quot;&amp;lt;/span&amp;gt;&amp;quot;;&lt;br /&gt;
            return you;&lt;br /&gt;
        },&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Inject icon images in the log ===&lt;br /&gt;
&lt;br /&gt;
Here is an example of what was done for Terra Mystica which is simple and straightforward:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//Define the proper message&lt;br /&gt;
		$message = clienttranslate(&#039;${player_name} gets ${power_income} via Structures&#039;);&lt;br /&gt;
		if ($price &amp;gt; 0) {&lt;br /&gt;
			self::DbQuery(&amp;quot;UPDATE player SET player_score = player_score - $price WHERE player_id = $player_id&amp;quot;);&lt;br /&gt;
			$message = clienttranslate(&#039;${player_name} pays ${vp_price} and gets ${power_income} via Structures&#039;);&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
// Notify&lt;br /&gt;
		self::notifyAllPlayers( &amp;quot;powerViaStructures&amp;quot;, $message, array(&lt;br /&gt;
			&#039;i18n&#039; =&amp;gt; array( ),&lt;br /&gt;
			&#039;player_id&#039; =&amp;gt; $player_id,&lt;br /&gt;
			&#039;player_name&#039; =&amp;gt; self::getUniqueValueFromDb( &amp;quot;SELECT player_name FROM player WHERE player_id = $player_id&amp;quot; ),&lt;br /&gt;
			&#039;power_tokens&#039; =&amp;gt; $power_tokens,&lt;br /&gt;
			&#039;vp_price&#039; =&amp;gt; self::getLogsVPAmount($price),&lt;br /&gt;
			&#039;power_income&#039; =&amp;gt; self::getLogsPowerAmount($power_income),&lt;br /&gt;
			&#039;newScore&#039; =&amp;gt; self::getUniqueValueFromDb( &amp;quot;SELECT player_score FROM player WHERE player_id = $player_id&amp;quot; ),&lt;br /&gt;
			&#039;counters&#039; =&amp;gt; $this-&amp;gt;getGameCounters(null),&lt;br /&gt;
		) );&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With some functions to have the needed html added inside the substitution variable, such as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function getLogsPowerAmount( $amount ) {&lt;br /&gt;
		return &amp;quot;&amp;lt;div class=&#039;tmlogs_icon&#039; title=&#039;Power&#039;&amp;gt;&amp;lt;div class=&#039;power_amount&#039;&amp;gt;$amount&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note: injecting html from php is not ideal but easy, if you want more clean solution, use method below but it is a lot more sophisticated.&lt;br /&gt;
&lt;br /&gt;
=== Inject images and styled html in the log ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ingredients:&#039;&#039;&#039; ggg.js, ggg.game.php&lt;br /&gt;
&lt;br /&gt;
So you want nice pictures in the game log. What do you do? The first idea that comes to mind is to send html from php in notifications (see method above). &lt;br /&gt;
&lt;br /&gt;
This is a bad idea for many reasons:&lt;br /&gt;
&lt;br /&gt;
* It&#039;s bad architecture. ui elements leak into the server, and now you have to manage the ui in multiple places.&lt;br /&gt;
* If you decided to change something in the ui in future version, replay logs for old games and tutorials may not work, since they use stored notifications.&lt;br /&gt;
* Log previews for old games become unreadable. (This is the log state before you enter the game replay, which is useful for troubleshooting and game analysis.)&lt;br /&gt;
* It&#039;s more data to transfer and store in the db.&lt;br /&gt;
* It&#039;s a nightmare for translators.&lt;br /&gt;
&lt;br /&gt;
So what else can you do? I use this recipe for &#039;&#039;&#039;client side log injection&#039;&#039;&#039; to intercept log arguments (which come from the server) and replace them with html on the client side.&lt;br /&gt;
&lt;br /&gt;
[[File:clientloginjection.png|left]] &lt;br /&gt;
&lt;br /&gt;
ggg.js&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
        /** Override this function to inject html into log items. This is a built-in BGA method.  */&lt;br /&gt;
&lt;br /&gt;
        /* @Override */&lt;br /&gt;
        format_string_recursive : function(log, args) {&lt;br /&gt;
            try {&lt;br /&gt;
                if (log &amp;amp;&amp;amp; args &amp;amp;&amp;amp; !args.processed) {&lt;br /&gt;
                    args.processed = true;&lt;br /&gt;
                    &lt;br /&gt;
&lt;br /&gt;
                    // list of special keys we want to replace with images&lt;br /&gt;
                    var keys = [&#039;place_name&#039;,&#039;token_name&#039;];&lt;br /&gt;
                    &lt;br /&gt;
                  &lt;br /&gt;
                    for ( var i in keys) {&lt;br /&gt;
                        var key = keys[i];&lt;br /&gt;
                        args[key] = this.getTokenDiv(key, args);                            &lt;br /&gt;
&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
            } catch (e) {&lt;br /&gt;
                console.error(log,args,&amp;quot;Exception thrown&amp;quot;, e.stack);&lt;br /&gt;
            }&lt;br /&gt;
            return this.inherited(arguments);&lt;br /&gt;
        },&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important:&#039;&#039;&#039; In the &#039;&#039;format_string_recursive&#039;&#039; method, the &#039;args&#039; parameter will only contain arguments passed to it from the notify method in ggg.game.php (see below).&lt;br /&gt;
&lt;br /&gt;
The &#039;log&#039; parameter is the actual string that is inserted into the logs. You can perform additional js string manipulation on it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        getTokenDiv : function(key, args) {&lt;br /&gt;
            // ... implement whatever html you want here, example from sharedcode.js&lt;br /&gt;
            var token_id = args[key];&lt;br /&gt;
            var item_type = getPart(token_id,0);&lt;br /&gt;
            var logid = &amp;quot;log&amp;quot; + (this.globalid++) + &amp;quot;_&amp;quot; + token_id;&lt;br /&gt;
            switch (item_type) {&lt;br /&gt;
                case &#039;wcube&#039;:&lt;br /&gt;
                    var tokenDiv = this.format_block(&#039;jstpl_resource_log&#039;, {&lt;br /&gt;
                        &amp;quot;id&amp;quot; : logid,&lt;br /&gt;
                        &amp;quot;type&amp;quot; : &amp;quot;wcube&amp;quot;,&lt;br /&gt;
                        &amp;quot;color&amp;quot; : getPart(token_id,1),&lt;br /&gt;
                    });&lt;br /&gt;
                    return tokenDiv;&lt;br /&gt;
                    break;&lt;br /&gt;
                case &#039;meeple&#039;:&lt;br /&gt;
                    if ($(token_id)) {&lt;br /&gt;
                        var clone = dojo.clone($(token_id));&lt;br /&gt;
    &lt;br /&gt;
                        dojo.attr(clone, &amp;quot;id&amp;quot;, logid);&lt;br /&gt;
                        this.stripPosition(clone);&lt;br /&gt;
                        dojo.addClass(clone, &amp;quot;logitem&amp;quot;);&lt;br /&gt;
                        return clone.outerHTML;&lt;br /&gt;
                    }&lt;br /&gt;
                    break;&lt;br /&gt;
     &lt;br /&gt;
                default:&lt;br /&gt;
                    break;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            return &amp;quot;&#039;&amp;quot; + this.clienttranslate_string(this.getTokenName(token_id)) + &amp;quot;&#039;&amp;quot;;&lt;br /&gt;
       },&lt;br /&gt;
       getTokenName : function(key) {&lt;br /&gt;
           return this.gamedatas.token_types[key].name; // get name for the key, from static table for example&lt;br /&gt;
       },&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that in this case the server simply injects token_id as a name, and the client substitutes it for the translated name or the picture.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ggg.game.php:&lt;br /&gt;
&lt;br /&gt;
           $this-&amp;gt;notifyAllPlayers(&#039;playerLog&#039;,clienttranslate(&#039;Game moves ${token_name}&#039;),[&#039;token_name&#039;=&amp;gt;$token_id]);&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important:&#039;&#039;&#039; As noted above, only arguments actually passed by this method are available to the args parameter received in the client-side &#039;&#039;format_string_recursive&#039;&#039; method.&lt;br /&gt;
&lt;br /&gt;
Sometimes it is the case that you want to pass arguments that are not actually included in the output message. For example, suppose we have a method like this:&lt;br /&gt;
&lt;br /&gt;
           $this-&amp;gt;notifyAllPlayers(&#039;tokenPlaced&#039;,clienttranslate(&#039;Player placed ${token_name}&#039;),array(&lt;br /&gt;
              &#039;token_name&#039; =&amp;gt; $token_id,&lt;br /&gt;
              &#039;zone_played&#039; =&amp;gt; $zone);&lt;br /&gt;
&lt;br /&gt;
This will output &amp;quot;Player placed ${token_name}&amp;quot; in the log, and if we subscribe to a notification method activated by the &amp;quot;tokenPlaced&amp;quot; event in the client-side code, that method can make use of the &#039;zone_played&#039; argument. &lt;br /&gt;
&lt;br /&gt;
Now if you want to make some really cool things with game log, most probably you would need more arguments than are included in log message. The problem with that,&lt;br /&gt;
it will work at first, but if you reload game using F5 or when the game loads in turn based mode, you will loose your additional parameters, why? Because when game reloads it does not actually send same notifications, it sends special &amp;quot;hitstorical_log&amp;quot; notification where all  parameters not listed in the message are removed. In example above, field zone_played would be removed from historical log as it is not included in message of the notification. You can till preserve specific arguments in historical log by adding special field preserve to notification arguments like this:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
           $this-&amp;gt;notifyAllPlayers(&#039;tokenPlaced&#039;,clienttranslate(&#039;Player placed ${token_name}&#039;),array(&lt;br /&gt;
              &#039;token_name&#039; =&amp;gt; $token_id,&lt;br /&gt;
              &#039;zone_played&#039; =&amp;gt; $zone,&lt;br /&gt;
              &#039;preserve&#039; =&amp;gt; [ 2 =&amp;gt; &#039;zone_played&#039; ]&lt;br /&gt;
           );&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you can use zone_player in format_string_recursive even in historical logs. Note that for this to work, you currently need to define your own indexes for the &#039;preserve&#039; array and avoid using 0 or 1.&lt;br /&gt;
&lt;br /&gt;
=== High-Definition Graphics ===&lt;br /&gt;
&lt;br /&gt;
Some users will have screens which can display text and images at a greater resolution than the usual 72 dpi, e.g. the &amp;quot;Retina&amp;quot; screens on the 5k iMac, all iPads, and high-DPI screens on laptops from many manufacturers. If you can get art assets at this size, they will make your game look extra beautiful. You &#039;&#039;could&#039;&#039; just use large graphics and scale them down, but that would increase the download time and bandwidth for users who can&#039;t display them. Instead, a good way is to prepare a separate graphics file at exactly twice the size you would use otherwise, and add &amp;quot;@2x&amp;quot; at the end of the filename, e.g. if pieces.png is 240x320, then pieces@2x.png is 480x640.&lt;br /&gt;
&lt;br /&gt;
There are two changes required in order to use the separate graphics files. First in your css, where you use a file, add a media query which overrides the original definition and uses the bigger version on devices which can display them. Ensuring that the &amp;quot;background-size&amp;quot; attribute is set means that the size of the displayed object doesn&#039;t change, but only is drawn at the improved dot pitch.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.piece {&lt;br /&gt;
    position: absolute;&lt;br /&gt;
    background-image: url(&#039;img/pieces.png&#039;);&lt;br /&gt;
    background-size:240px 320px;&lt;br /&gt;
    z-index: 10;&lt;br /&gt;
}&lt;br /&gt;
@media (-webkit-min-device-pixel-ratio: 2), (min-device-pixel-ratio: 2), (min-resolution: 192dpi)&lt;br /&gt;
{&lt;br /&gt;
    .piece {&lt;br /&gt;
        background-image: url(&#039;img/pieces@2x.png&#039;);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Secondly, in your setup function in javascript, you must ensure than only the appropriate one version of the file gets pre-loaded (otherwise you more than waste the bandwidth saved by maintaining the standard-resolution file). Note that the media query is the same in both cases:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            var isRetina = &amp;quot;(-webkit-min-device-pixel-ratio: 2), (min-device-pixel-ratio: 2), (min-resolution: 192dpi)&amp;quot;;&lt;br /&gt;
            if (window.matchMedia(isRetina).matches)&lt;br /&gt;
            {&lt;br /&gt;
                this.dontPreloadImage( &#039;pieces.png&#039; );&lt;br /&gt;
                this.dontPreloadImage( &#039;board.jpg&#039; );&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
                this.dontPreloadImage( &#039;pieces@2x.png&#039; );&lt;br /&gt;
                this.dontPreloadImage( &#039;board@2x.jpg&#039; );&lt;br /&gt;
            }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Cool realistic shadow effect with CSS ===&lt;br /&gt;
&lt;br /&gt;
==== Rectangles and circles ====&lt;br /&gt;
&lt;br /&gt;
It is often nice to have a drop shadow around tiles and tokens, to separate them from the table visually. It is very easy to add a shadow to rectangular elements, just add this to your css:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.xxx-tile {&lt;br /&gt;
    box-shadow: 3px 3px 3px #000000a0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
box-shadow obeys &#039;&#039;&#039;border-radius&#039;&#039;&#039; of the element, so it will look good for rounded rectangles, and hence also circles (if border-radius is set appropriately).&lt;br /&gt;
&lt;br /&gt;
box-shadow also supports various other parameters and can be used to achieve effects such as glowing, borders, inner shadows etc. If you need to animate a box-shadow, you may be able to get better performance (avoiding redraws) if you attach the shadow to another element (possibly an ::after pseudo-element) and change only the &#039;&#039;&#039;opacity&#039;&#039;&#039; of that element.&lt;br /&gt;
&lt;br /&gt;
==== Irregular Shapes ====&lt;br /&gt;
&lt;br /&gt;
If you wish to make a shadow effect for game pieces that are not a rectangle, but your game pieces are drawn from rectangles in a PNG image, you can apply the shadow to the piece using any art package and save it inside the image. This usually will yield the best performance. Remember to account for the size of the shadow when you lay out images in the sprite sheet.&lt;br /&gt;
&lt;br /&gt;
However that sometimes will not be an option, for example if the image needs to be rotated while the shadow remains offset in the same direction. In this case, one option is to not use box-shadow but use filter, which is supported by recent major browsers.  This way, you can use the alpha channel of your element to drop a shadow.  This even work for transparent backgrounds, so that if you are using the &amp;quot;CSS-sprite&amp;quot; method, it will work!&lt;br /&gt;
&lt;br /&gt;
For instance:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.xxx-token {&lt;br /&gt;
    filter: drop-shadow(0px 0px 1px #000000);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Beware that some browsers still do not always draw drop-shadow correctly. In particular, Safari frequently leaves bits of shadow behind when objects move around the screen. In Chrome, shadows sometimes flicker badly if another element is animating close by. Some of these correctness issues can be solved by adding &#039;&#039;&#039;isolation: isolate; will-change: filter;&#039;&#039;&#039; to affected elements, but this significantly affects redraw performance.&lt;br /&gt;
&lt;br /&gt;
Beware of performance issues - particularly on Safari (MacOS, iPhone and iPad). Keep in mind that drop-shadow are very GPU intensive. This becomes noticeable once you have about 40 components with drop-shadow filter. If that is your case, you can quite easily implement a user preference to disable shadows for users on slower machines:&lt;br /&gt;
&lt;br /&gt;
gameoptions.inc.php&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
100 =&amp;gt; array(&lt;br /&gt;
			&#039;name&#039; =&amp;gt; totranslate(&#039;Shadows&#039;),&lt;br /&gt;
			&#039;needReload&#039; =&amp;gt; true, // after user changes this preference game interface would auto-reload&lt;br /&gt;
			&#039;values&#039; =&amp;gt; array(&lt;br /&gt;
					1 =&amp;gt; array( &#039;name&#039; =&amp;gt; totranslate( &#039;Enabled&#039; ), &#039;cssPref&#039; =&amp;gt; &#039;&#039; ),&lt;br /&gt;
					2 =&amp;gt; array( &#039;name&#039; =&amp;gt; totranslate( &#039;Disabled&#039; ), &#039;cssPref&#039; =&amp;gt; &#039;no-shadow&#039; )&lt;br /&gt;
			)&lt;br /&gt;
	),&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[game].css&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.no-shadow * {&lt;br /&gt;
	filter: none !important; &lt;br /&gt;
} &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Shadows with clip-path ====&lt;br /&gt;
&lt;br /&gt;
For some reason, a shadow will not work together with clip-path on one element. To use both clip-path (when for example using .svg to cut out cardboard components from your .jpg spritesheet) and drop-shadow, you need to wrap the element into another one, and apply drop-shadow to the outer one, and clip-path to the inner one.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=&#039;my-token-wrap&#039;&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&#039;my-token&#039;&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.my-token-wrap {&lt;br /&gt;
    filter: drop-shadow(0px 0px 1px #000000);&lt;br /&gt;
}&lt;br /&gt;
.my-token-wrap .my-token {&lt;br /&gt;
    clip-path: url(#my-token-path);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Using the CSS classes from the state machine ===&lt;br /&gt;
&lt;br /&gt;
If you need to hide or show stuff depending on the state of your game, you can of course use javascript, but CSS is hand enough for that.  The #overall-content element does change class depending on the game state.  For instance, if you are in state &#039;&#039;playerTurn&#039;&#039;, it will have the class &#039;&#039;gamestate_playerTurn&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
So now, if you want to show the discard pile only during player turns, you may use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#discard_pile { display: none }&lt;br /&gt;
.gamestate_playerTurn #discard_pile { display: block }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This can be used if you want to change sizing of elements, position, layout or visual appearance.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Game Model and Database design ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Database for The euro game ===&lt;br /&gt;
Lets say we have a game with workers, dice, tokens, board, resources, money and vp. Workers and dice can be placed in various zones on the board, and you can get resources, money, tokens and vp in your home zone. Also tokens can be flipped or not flipped.&lt;br /&gt;
&lt;br /&gt;
[[File:Madeira board.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now lets try to map it, we have&lt;br /&gt;
* (meeple,zone)&lt;br /&gt;
* (die, zone, sideup)&lt;br /&gt;
* (resource cube/money token/vp token,player home zone)&lt;br /&gt;
* (token, player home zone, flip state)&lt;br /&gt;
We can notice that resource and money are uncountable, and don&#039;t need to be track individually so we can replace our mapping to&lt;br /&gt;
* (resource type/money,player home zone, count)&lt;br /&gt;
And vp stored already for us in player table, so we can remove it from that list.&lt;br /&gt;
&lt;br /&gt;
Now when we get to encode it we can see that everything can be encoded as (object,zone,state) form, where object and zone is string and state is integer. The resource mapping is slightly different semantically so you can go with two table, or counting using same table with state been used as count for resources.&lt;br /&gt;
&lt;br /&gt;
So the piece mapping for non-grid based games can be in most case represented by (string: token_key, string: token_location, int: token_state), example of such database schema can be found here: [https://github.com/elaskavaia/bga-sharedcode/blob/master/dbmodel.sql dbmodel.sql] and class implementing access to it here [https://github.com/elaskavaia/bga-sharedcode/blob/master/modules/tokens.php table.game.php].&lt;br /&gt;
&lt;br /&gt;
Variant 1: Minimalistic&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE IF NOT EXISTS `token` (&lt;br /&gt;
  `token_key` varchar(32) NOT NULL,&lt;br /&gt;
  `token_location` varchar(32) NOT NULL,&lt;br /&gt;
  `token_state` int(10),&lt;br /&gt;
  PRIMARY KEY (`token_key`)&lt;br /&gt;
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+token&lt;br /&gt;
! token_key&lt;br /&gt;
! token_location&lt;br /&gt;
! token_state&lt;br /&gt;
|-&lt;br /&gt;
|meeple_red_1&lt;br /&gt;
|home_red&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|dice_black_2&lt;br /&gt;
|board_guard&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|dice_green_1&lt;br /&gt;
|board_action_mayor&lt;br /&gt;
|3&lt;br /&gt;
|-&lt;br /&gt;
|bread&lt;br /&gt;
|home_red&lt;br /&gt;
|5&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Now how we represent resource counters such as bread?&lt;br /&gt;
Using same table from we simply add special counter token for bread and use state to indicate the count. Note to keep first column unique we have to add player identification for that counter, i.e. ff0000 is red player.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+token&lt;br /&gt;
! token_key&lt;br /&gt;
! token_location&lt;br /&gt;
! token_state&lt;br /&gt;
|-&lt;br /&gt;
|bread_ff0000&lt;br /&gt;
|tableau_ff0000&lt;br /&gt;
|5&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
See php module for this table here https://github.com/elaskavaia/bga-sharedcode/blob/master/modules/tokens.php&lt;br /&gt;
&lt;br /&gt;
Variant 2: Additional resource table, resource count for each player id&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE IF NOT EXISTS `resource` (&lt;br /&gt;
  `player_id` int(10) unsigned NOT NULL,&lt;br /&gt;
  `resource_key` varchar(32) NOT NULL,&lt;br /&gt;
  `resource_count` int(10) signed NOT NULL,&lt;br /&gt;
  PRIMARY KEY (`player_id`,`resource_key`)&lt;br /&gt;
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;&lt;br /&gt;
&lt;br /&gt;
 ALTER TABLE resource ADD CONSTRAINT fk_player_id FOREIGN KEY (player_id) REFERENCES player(player_id);&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+resource&lt;br /&gt;
! player_id&lt;br /&gt;
! resource_key&lt;br /&gt;
! resource_count&lt;br /&gt;
|-&lt;br /&gt;
|123456&lt;br /&gt;
|bread&lt;br /&gt;
|5&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Variant 3: More normalised&lt;br /&gt;
&lt;br /&gt;
This version is similar to &amp;quot;card&amp;quot; table from hearts tutorial, you can also use exact cards database schema and Deck implementation for most purposes (even you not dealing with cards). &lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE IF NOT EXISTS `token` (&lt;br /&gt;
  `token_id` int(10) unsigned NOT NULL AUTO_INCREMENT,&lt;br /&gt;
  `token_type` varchar(16) NOT NULL,&lt;br /&gt;
  `token_arg` int(11) NOT NULL,&lt;br /&gt;
  `token_location` varchar(32) NOT NULL,&lt;br /&gt;
  `token_state` int(10),&lt;br /&gt;
  PRIMARY KEY (`token_id`)&lt;br /&gt;
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+token&lt;br /&gt;
! token_id&lt;br /&gt;
! token_type&lt;br /&gt;
! token_arg&lt;br /&gt;
! token_location&lt;br /&gt;
! token_state&lt;br /&gt;
|-&lt;br /&gt;
|22&lt;br /&gt;
|meeple&lt;br /&gt;
|123456&lt;br /&gt;
|home_123456&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|23&lt;br /&gt;
|dice&lt;br /&gt;
|2&lt;br /&gt;
|board_guard&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|26&lt;br /&gt;
|dice&lt;br /&gt;
|1&lt;br /&gt;
|board_action_mayor&lt;br /&gt;
|3&lt;br /&gt;
|-&lt;br /&gt;
|49&lt;br /&gt;
|bread&lt;br /&gt;
|0&lt;br /&gt;
|home_123456&lt;br /&gt;
|5&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Advantages of this would be is a bit more straightforward to do some queries in db, disadvantage its hard to read (as you can compare with previous example, you&lt;br /&gt;
cannot just look at say, ah I know what it means). Another questionable advantage is it allows you to do id randomisation, so it hard to do crafted queries to &lt;br /&gt;
cheat, the down side of that you cannot understand it either, and handcraft db states for debugging or testing.&lt;br /&gt;
&lt;br /&gt;
=== Database for The card game ===&lt;br /&gt;
&lt;br /&gt;
Lets say you have a standard card game, player have hidden cards in hand, you can draw card from draw deck, play card on tableau and discard to discard pile.&lt;br /&gt;
We have to design database for such game.&lt;br /&gt;
&lt;br /&gt;
In real word to &amp;quot;save&amp;quot; the game we take a picture a play area, save cards from it, then put away draw deck, discard and hand of each player separately and mark it, also we will record current scoring (if any) and who&#039;s turn was it.&lt;br /&gt;
&lt;br /&gt;
* Framework handles state machine transition, so you don&#039;t have to worry about database design for that (i.e. who&#039;s turn it is, what phase of the game we are at, you still have to design it but part of state machine step)&lt;br /&gt;
* Also framework supports basic player information, color, order around the table, basic scoring, etc, so you don&#039;t have to worry about it either&lt;br /&gt;
* The only thing you need in our database is state of the &amp;quot;board&amp;quot;, which is &amp;quot;where each pieces is, and in what state&amp;quot;, or (position,rotation) pair.&lt;br /&gt;
&lt;br /&gt;
Lets see what we have for that:&lt;br /&gt;
* The card state is very simple, its usually &amp;quot;face up/face down&amp;quot;, &amp;quot;tapped/untapped&amp;quot;, &amp;quot;right side up/up side down&amp;quot;&lt;br /&gt;
* As position go we never need real coordinates x,y,z. We need to know what &amp;quot;zone&amp;quot; card was, and depending on the zone it may sometimes need an extra &amp;quot;z&amp;quot; or &amp;quot;x&amp;quot; as card order. The zone position usually static or irrelevant.&lt;br /&gt;
* So our model is: we have cards, which have some attributes, at any given point in time they belong to a &amp;quot;zone&amp;quot;, and can also have order and state&lt;br /&gt;
* Now for mapping we should consider what information changes and what information is static, later is always candidate for material file&lt;br /&gt;
* For dynamic information we should try to reduce amount of fields we need&lt;br /&gt;
**  we need at least a field for card, so its one&lt;br /&gt;
**  we need to know what zone cards belong to, its 2&lt;br /&gt;
**  and we have possibly few other fields, if you look closely at you game you may find out that most of the zone only need one attribute at a time, i.e. draw pile always have cards face down, hand always face up, also for hand and discard order does not matter at all (but for draw it does matter). So in majority of cases we can get away with one single extra integer field representing state or order&lt;br /&gt;
* In real database both card and zone will be integers as primary keys referring to additional tables, but in our case its total overkill, so they can be strings as easily&lt;br /&gt;
&lt;br /&gt;
Variant 1: Minimalistic&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CREATE TABLE IF NOT EXISTS `card` (&lt;br /&gt;
  `card_key` varchar(32) unsigned NOT NULL,&lt;br /&gt;
  `card_location` varchar(32) NOT NULL,&lt;br /&gt;
  `card_state` int(11) NOT NULL,&lt;br /&gt;
  PRIMARY KEY (`card_id`)&lt;br /&gt;
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Variant 2: More normalised&lt;br /&gt;
&lt;br /&gt;
This version supported by Deck php class, so unless you want to rewrite db access layer go with this one&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CREATE TABLE IF NOT EXISTS `card` (&lt;br /&gt;
  `card_id` int(10) unsigned NOT NULL AUTO_INCREMENT,&lt;br /&gt;
  `card_type` varchar(16) NOT NULL,&lt;br /&gt;
  `card_type_arg` int(11) NOT NULL,&lt;br /&gt;
  `card_location` varchar(16) NOT NULL,&lt;br /&gt;
  `card_location_arg` int(11) NOT NULL,&lt;br /&gt;
  PRIMARY KEY (`card_id`)&lt;br /&gt;
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: if you using this schema, some zones/locations have special semantic. The &#039;hand&#039; location is actually multiple locations - one per player, but player id is encoded as card_location_arg. If &#039;hand&#039; in your game is ordered, visible or can have some other card states, you cannot use hand location (replacement is hand_&amp;lt;player_id&amp;gt; or hand_&amp;lt;color_id&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
== Code Organization ==&lt;br /&gt;
&lt;br /&gt;
=== Including your own JavaScript module ===&lt;br /&gt;
&#039;&#039;&#039;Ingredients:&#039;&#039;&#039; ggg.js, modules/ggg_other.js&lt;br /&gt;
&lt;br /&gt;
* Create ggg_other.js in modules/ folder and sync&lt;br /&gt;
* Modify ggg.js to include it&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  define([ &amp;quot;dojo&amp;quot;, &amp;quot;dojo/_base/declare&amp;quot;, &amp;quot;ebg/core/gamegui&amp;quot;, &amp;quot;ebg/counter&amp;quot;,&lt;br /&gt;
    // load my own module!!!&lt;br /&gt;
    g_gamethemeurl + &amp;quot;modules/ggg_other.js&amp;quot; ], function(dojo,&lt;br /&gt;
        declare) {&lt;br /&gt;
&lt;br /&gt;
=== Including your own JavaScript module (II) ===&lt;br /&gt;
&lt;br /&gt;
* Create ggg_other.js in modules/ folder and sync&lt;br /&gt;
&lt;br /&gt;
  define([], function () {&lt;br /&gt;
    return &amp;quot;value&amp;quot;;&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
* Modify ggg.js to include it&lt;br /&gt;
&lt;br /&gt;
  define([ &lt;br /&gt;
    &amp;quot;dojo&amp;quot;, &lt;br /&gt;
    &amp;quot;dojo/_base/declare&amp;quot;, &lt;br /&gt;
    &amp;quot;bgagame/modules/ggg_other&amp;quot;, &lt;br /&gt;
    &amp;quot;ebg/core/gamegui&amp;quot;, &lt;br /&gt;
    &amp;quot;ebg/counter&amp;quot;&lt;br /&gt;
  ], function(dojo, declare, other) {&lt;br /&gt;
  &lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
This is maybe a little bit more the idea of the AMD Loader than the first option, although the first option should work as well.&lt;br /&gt;
&lt;br /&gt;
A little explanation to this:&lt;br /&gt;
The define function loads all the modules listed in the array and calls the following function with these loaded modules as parameters.&lt;br /&gt;
By putting your module at the third position in the array it is passed as the third parameter to the function. Be aware that the modules are resolved by position only, not by name. So you can load the module &#039;&#039;&#039;ggg_other&#039;&#039;&#039; and pass it as a parameter with the name &#039;&#039;&#039;other&#039;&#039;&#039;. &#039;&#039;&#039;gamegui&#039;&#039;&#039; and &#039;&#039;&#039;counter&#039;&#039;&#039; are passed in as well, but when the parameters are not defined they are just skipped. Because these modules put their content into the global scope it does not matter and you can use them from there.&lt;br /&gt;
&lt;br /&gt;
In the example above the string &amp;quot;value&amp;quot; is passed for the parameter &#039;&#039;&#039;other&#039;&#039;&#039;, but the function in your module can return whatever you want. It can be an object, an array, something you declared with dojo.declare, you can return even functions. &lt;br /&gt;
Your module can load other modules. Just put them in the array at the beginning and pass them as parameters to your function.&lt;br /&gt;
The advantage of passing the values as parameter is that you do not need to put these values in the global scope, so they can&#039;t be collisions with values defined in other scripts or the BGA Framework.&lt;br /&gt;
&lt;br /&gt;
The dojo toolkit provides good documentation to all of its components, the complete documentation for the AMD-Loader is here:&lt;br /&gt;
https://dojotoolkit.org/documentation/tutorials/1.10/modules/index.html It should be still correct, even as it seems to be only for version 1.10&lt;br /&gt;
&lt;br /&gt;
=== Including your own PHP module ===&lt;br /&gt;
&#039;&#039;&#039;Ingredients:&#039;&#039;&#039; ggg.game.php, modules/ggg_other.php&lt;br /&gt;
&lt;br /&gt;
* Create ggg_other.php in modules/ folder and sync&lt;br /&gt;
* Modify ggg.game.php to include it&lt;br /&gt;
&lt;br /&gt;
 require_once (&#039;modules/ggg_other.php&#039;);&lt;br /&gt;
&lt;br /&gt;
=== Creating a test class to run PHP locally ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ingredients:&#039;&#039;&#039; ggg.game.php, stubs&lt;br /&gt;
For this you need stubs of other method you can use this for example&lt;br /&gt;
https://github.com/elaskavaia/bga-sharedcode/raw/master/misc/module/table/table.game.php&lt;br /&gt;
&lt;br /&gt;
Create another php files, i.e ggg_test.php&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
define(&amp;quot;APP_GAMEMODULE_PATH&amp;quot;, &amp;quot;misc/&amp;quot;); // include path to stubs, which defines &amp;quot;table.game.php&amp;quot; and other classes&lt;br /&gt;
require_once (&#039;eminentdomaine.game.php&#039;);&lt;br /&gt;
&lt;br /&gt;
class MyGameTest1 extends MyGame { // this is your game class defined in ggg.game.php&lt;br /&gt;
    function __construct() {&lt;br /&gt;
        parent::__construct();&lt;br /&gt;
        include &#039;../material.inc.php&#039;;// this is how this normally included, from constructor&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // override/stub methods here that access db and stuff&lt;br /&gt;
    function getGameStateValue($var) {&lt;br /&gt;
        if ($var == &#039;round&#039;)&lt;br /&gt;
            return 3;&lt;br /&gt;
        return 0;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
$x = new MyGameTest1(); // instantiate your class&lt;br /&gt;
$p = $x-&amp;gt;getGameProgression(); // call one of the methods to test&lt;br /&gt;
if ($p != 50)&lt;br /&gt;
    echo &amp;quot;Test1: FAILED&amp;quot;;&lt;br /&gt;
else&lt;br /&gt;
    echo &amp;quot;Test1: PASSED&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Run from command line like&lt;br /&gt;
 php7 ggg_test.php&lt;br /&gt;
&lt;br /&gt;
If you do it this way - you can also use local php debugger (i.e. integrated with IDE or command line).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Avoiding code in dojo declare style ===&lt;br /&gt;
Dojo class declarations are rather bizzare and do not work with most IDEs.&lt;br /&gt;
If you want to write in plain JS with classes, you can stub all the dojo define/declare stuff&lt;br /&gt;
and hook your class into that, so the classes are outside of this mess.&lt;br /&gt;
&lt;br /&gt;
NOTE: this technique is for experienced developers, do not try it if you do not understand&lt;br /&gt;
the consequences.&lt;br /&gt;
&lt;br /&gt;
This is complete example of game .js class&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  // Testla is game name is has to be changed&lt;br /&gt;
class Testla {&lt;br /&gt;
	constructor(game) {&lt;br /&gt;
		console.log(&#039;game constructor&#039;);&lt;br /&gt;
		this.game = game;&lt;br /&gt;
		this.varfoo = new MyFoo(); // this example of class from custom module&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	setup(gamedatas) {&lt;br /&gt;
		console.log(&amp;quot;Starting game setup&amp;quot;, this.varfoo);&lt;br /&gt;
		this.gamedatas = gamedatas;&lt;br /&gt;
		this.dojo.create(&amp;quot;div&amp;quot;, { class: &#039;whiteblock&#039;, innerHTML: _(&amp;quot;hello&amp;quot;) }, &#039;thething&#039;);&lt;br /&gt;
		console.log(&amp;quot;Ending game setup&amp;quot;);&lt;br /&gt;
	};&lt;br /&gt;
	onEnteringState(stateName, args) {&lt;br /&gt;
		console.log(&#039;onEnteringState : &#039; + stateName, args);&lt;br /&gt;
		this.game.addActionButton(&#039;b1&#039;,_(&#039;Click Me&#039;), (e)=&amp;gt;this.onButtonClick(e));&lt;br /&gt;
	};&lt;br /&gt;
	onLeavingState(stateName) {&lt;br /&gt;
		console.log(&#039;onLeavingState : &#039; + stateName, args);&lt;br /&gt;
	};&lt;br /&gt;
	onUpdateActionButtons(stateName, args) {&lt;br /&gt;
		console.log(&#039;onUpdateActionButtons : &#039; + stateName, args);&lt;br /&gt;
	};&lt;br /&gt;
	onButtonClick(event) {&lt;br /&gt;
		console.log(&#039;onButtonClick&#039;,event);&lt;br /&gt;
	};&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
define([&lt;br /&gt;
	&amp;quot;dojo&amp;quot;, &amp;quot;dojo/_base/declare&amp;quot;,&lt;br /&gt;
	&amp;quot;ebg/core/gamegui&amp;quot;,&lt;br /&gt;
	&amp;quot;ebg/counter&amp;quot;,&lt;br /&gt;
	g_gamethemeurl + &#039;/modules/foo.js&#039; // custom module if needed&lt;br /&gt;
],&lt;br /&gt;
	function(dojo, declare) {&lt;br /&gt;
                // testla is game name is has to be changed&lt;br /&gt;
		return declare(&amp;quot;bgagame.testla&amp;quot;, ebg.core.gamegui, {&lt;br /&gt;
			constructor: function() {&lt;br /&gt;
				this.xapp = new Testla(this);&lt;br /&gt;
				this.xapp.dojo = dojo;&lt;br /&gt;
			},&lt;br /&gt;
			setup: function(gamedatas) {&lt;br /&gt;
				this.xapp.setup(gamedatas);&lt;br /&gt;
			},&lt;br /&gt;
			onEnteringState: function(stateName, args) {&lt;br /&gt;
				this.xapp.onEnteringState(stateName, args.args);&lt;br /&gt;
			},&lt;br /&gt;
			onLeavingState: function(stateName) {&lt;br /&gt;
				this.xapp.onLeavingState(stateName, args);&lt;br /&gt;
			},&lt;br /&gt;
			onUpdateActionButtons: function(stateName, args) {&lt;br /&gt;
				this.xapp.onUpdateActionButtons(stateName, args);&lt;br /&gt;
			},&lt;br /&gt;
		});&lt;br /&gt;
	});&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== More readable JS: onEnteringState ===&lt;br /&gt;
&lt;br /&gt;
If you have a lot of states onEnteringState and friends become rather wild, you can do this trick to call some method dynamically.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
     onEnteringState: function(stateName, args) {&lt;br /&gt;
       console.log(&#039;Entering state: &#039; + stateName, args);&lt;br /&gt;
&lt;br /&gt;
       // Call appropriate method&lt;br /&gt;
       var methodName = &amp;quot;onEnteringState_&amp;quot; + stateName;&lt;br /&gt;
       if (this[methodName] !== undefined) {             &lt;br /&gt;
          console.log(&#039;Calling &#039; + methodName, args.args);&lt;br /&gt;
          this[methodName](args.args);&lt;br /&gt;
       }&lt;br /&gt;
     },&lt;br /&gt;
&lt;br /&gt;
     onEnteringState_playerTurn: function(args) { // this is args directly, not args.args &lt;br /&gt;
         // process&lt;br /&gt;
     },&lt;br /&gt;
&lt;br /&gt;
     onEnteringState_playerSomethingElse: function(args) { &lt;br /&gt;
         // process&lt;br /&gt;
     },&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: since its ignores the undefined functions you don&#039;t have define function for each state, but on the other hand you cannot make typos.&lt;br /&gt;
Same applies to onUpdateActionButtons except you pass &#039;args&#039; to method, not args.args, and for onLeavingState where you don&#039;t pass anything.&lt;br /&gt;
&lt;br /&gt;
=== Frameworks and Preprocessors ===&lt;br /&gt;
&lt;br /&gt;
* [[Using Vue]] - work-in-progress guide on using the modern framework Vue.js to create a game&lt;br /&gt;
* [[Using Typescript and Scss]] - How to auto-build Typescript and SCSS files to make your code cleaner&lt;br /&gt;
&lt;br /&gt;
== Assorted Stuff ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Out-of-turn actions: Un-pass ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ingredients:&#039;&#039;&#039; ggg.js, ggg.game.php, ggg.action.php, states.inc.php&lt;br /&gt;
&lt;br /&gt;
In multiplayer game sometimes players passes but than they think more and want to un-Pass and redo their choice. &lt;br /&gt;
To re-active a player who passes some trickery required.&lt;br /&gt;
&lt;br /&gt;
Define a special action that does how and hook it up.&lt;br /&gt;
&lt;br /&gt;
In states.inc.php add an action to mmultipleactiveplayer state to &amp;quot;unpass&amp;quot;, lets call it &amp;quot;actionCancel&amp;quot;&lt;br /&gt;
&lt;br /&gt;
In ggg.action.php add action hook&lt;br /&gt;
    public function actionCancel() {&lt;br /&gt;
        self::setAjaxMode();&lt;br /&gt;
        $this-&amp;gt;game-&amp;gt;actionCancel();&lt;br /&gt;
        self::ajaxResponse();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
In ggg.game.php add action handler&lt;br /&gt;
    function actionCancel() {&lt;br /&gt;
        $this-&amp;gt;gamestate-&amp;gt;checkPossibleAction(&#039;actionCancel&#039;);&lt;br /&gt;
        $this-&amp;gt;gamestate-&amp;gt;setPlayersMultiactive(array ($this-&amp;gt;getCurrentPlayerId() ), &#039;error&#039;, false);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
Finally to call this in client ggg.js you would do something like:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 onUpdateActionButtons:  function(stateName, args) {&lt;br /&gt;
   if (this.isCurrentPlayerActive()) { &lt;br /&gt;
     // ...&lt;br /&gt;
   } else if (!this.isSpectator) { // player is NOT active but not spectatoe&lt;br /&gt;
       switch (stateName) {&lt;br /&gt;
          case &#039;playerTurnMuliPlayerState&#039;:&lt;br /&gt;
		this.addActionButton(&#039;button_unpass&#039;, _(&#039;Oh no!&#039;), &#039;onUnpass&#039;);&lt;br /&gt;
		break;&lt;br /&gt;
	}&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
				&lt;br /&gt;
 onUnpass: function(e) {&lt;br /&gt;
    this.ajaxcall(&amp;quot;/&amp;quot; + this.game_name + &amp;quot;/&amp;quot; +  this.game_name + &amp;quot;/actionCancel.html&amp;quot;, {}, this); // no checkAction!&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Although be careful that if the turn comes back to the player while he is about to click cancel, the action buttons will be updated and the player will misclick which can be quite frustrating. To avoid this, move the cancel button to another position, like to the left of pagemaintitletext:&lt;br /&gt;
  dojo.place(&#039;button_unpass&#039;, &#039;pagemaintitletext&#039;, &#039;before&#039;);&lt;br /&gt;
Being out of the generalactions div, it won&#039;t be automatically destroyed like normal buttons, so you&#039;ll have to handle that yourself in onLeavingState. You might also want to change the button color to red (blue buttons for active player only, red buttons also for inactive players?)&lt;br /&gt;
&lt;br /&gt;
=== Multi Step Interactions: Select Worker/Place Worker - Using Selection ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ingredients:&#039;&#039;&#039; ggg.js&lt;br /&gt;
&lt;br /&gt;
Simple way to implement something like that without extra states is to use &amp;quot;selection&amp;quot; mechanism. When user click on worker add some sort of class into that element i.e. &#039;selected&#039; (which also have to have some indication by css i.e. outline).&lt;br /&gt;
&lt;br /&gt;
Than user can click on placement zone, you can use dojo.query for &amp;quot;selected&amp;quot; element and use it along with zone id to send data to server. If proper worker is not selected yet can give a error message using this.showMessage(...) function.&lt;br /&gt;
&lt;br /&gt;
Extra code required to properly cleanup selection between states&lt;br /&gt;
&lt;br /&gt;
=== Multi Step Interactions: Select Worker/Place Worker - Using Client States ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ingredients:&#039;&#039;&#039; ggg.js&lt;br /&gt;
&lt;br /&gt;
I don&#039;t think its documented feature but there is a way to do client-only states, which is absolutely wonderful for few reasons&lt;br /&gt;
* When player interaction is two step process, such as select worker, place worker, or place worker, pick one of two resources of your choice&lt;br /&gt;
* When multi-step process can result of impossible situation and has to be undone (by rules)&lt;br /&gt;
* When multi-step process is triggered from multiple states (such as you can do same thing as activated card action, pass action or main action)&lt;br /&gt;
&lt;br /&gt;
So lets do Select Worker/Place Worker&lt;br /&gt;
&lt;br /&gt;
Define your server state as usual, i.e. playerMainTurn -&amp;gt; &amp;quot;You must pick up a worker&amp;quot;.&lt;br /&gt;
Now define a client state, we only need &amp;quot;name&amp;quot; and &amp;quot;descriptionmyturn&amp;quot;, lets say &amp;quot;client_playerPicksLocation&amp;quot;. Always prefix names of client state with &amp;quot;client_&amp;quot; to avoid confusion. Now we have to do the following:&lt;br /&gt;
* Have a handler for onUpdateActionButtons for playerMainTurn to activate all possible workers he can pick&lt;br /&gt;
* When player clicks workers, remember the worker in one of the members of the main class, I usually use one called this.clientStateArgs.&lt;br /&gt;
* Transition to new client state&lt;br /&gt;
  onWorker: function(e) {&lt;br /&gt;
      var id = event.currentTarget.id;&lt;br /&gt;
      dojo.stopEvent(event);&lt;br /&gt;
      ... // do validity checks&lt;br /&gt;
      this.clientStateArgs.worker_id = id;&lt;br /&gt;
      this.setClientState(&amp;quot;client_playerPicksLocation&amp;quot;, {&lt;br /&gt;
                                descriptionmyturn : &amp;quot;${you} must select location&amp;quot;,&lt;br /&gt;
                            });&lt;br /&gt;
   }&lt;br /&gt;
* Have a handler for onUpdateActionButtons for client_playerPicksLocation to activate all possible locations this worker can go AND add Cancel button (see below)&lt;br /&gt;
* Have a location handler which will eventually send a server request, using stored this.clientStateArgs.worker_id as worker id&lt;br /&gt;
* The cancel button should call a method to restore server state, also if you doing it for more than one state you can add this universally using this.on_client_state check&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        if (this.isCurrentPlayerActive()) {&lt;br /&gt;
          if (this.on_client_state &amp;amp;&amp;amp; !$(&#039;button_cancel&#039;)) {&lt;br /&gt;
               this.addActionButton(&#039;button_cancel&#039;, _(&#039;Cancel&#039;), dojo.hitch(this, function() {&lt;br /&gt;
                                             this.restoreServerGameState();&lt;br /&gt;
               }));&lt;br /&gt;
          }&lt;br /&gt;
        } &lt;br /&gt;
Note: usually I call my own function call this.cancelLocalStateEffects() which will do more stuff first then call restoreServerGameState(), same function is usually needs to be called when server request has failed (i.e. invalid move)&lt;br /&gt;
&lt;br /&gt;
Note: If you need more than 2 steps, you may have to do client side animation to reflect the new state, which gets trickier because you have to undo that also on cancellation.&lt;br /&gt;
&lt;br /&gt;
Code is available here [https://github.com/elaskavaia/bga-sharedcode/blob/master/sharedcode.js sharedcode.js] (its using playerTurnPlayCubes and client_selectCubeLocation).&lt;br /&gt;
&lt;br /&gt;
=== Assigning Player Order ===&lt;br /&gt;
Normally when game starts there is &amp;quot;natural&amp;quot; player order assigned randomly.&lt;br /&gt;
&lt;br /&gt;
If you want to deliberatly assign player order at the start of the game (for example, in a game with teams options), you can do so by retrieving the initialization-only player attribute &#039;&#039;&#039;player_table_order&#039;&#039;&#039; and using it to assign values to &#039;&#039;&#039;player_no&#039;&#039;&#039; (which is normally assigned at the start of a game in the order in which players come to the table). (See [https://en.doc.boardgamearena.com/Game_database_model:_dbmodel.sql#The_player_table Game database model] for more details.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                // Retrieve inital player order ([0=&amp;gt;playerId1, 1=&amp;gt;playerId2, ...])&lt;br /&gt;
		$playerInitialOrder = [];&lt;br /&gt;
		foreach ($players as $playerId =&amp;gt; $player) {&lt;br /&gt;
			$playerInitialOrder[$player[&#039;player_table_order&#039;]] = $playerId;&lt;br /&gt;
		}&lt;br /&gt;
		ksort($playerInitialOrder);&lt;br /&gt;
		$playerInitialOrder = array_flip(array_values($playerInitialOrder));&lt;br /&gt;
&lt;br /&gt;
		// Player order based on &#039;playerTeams&#039; option&lt;br /&gt;
		$playerOrder = [0, 1, 2, 3];&lt;br /&gt;
		switch (self::getGameStateValue(&#039;playerTeams&#039;)) {&lt;br /&gt;
			case self::TEAM_1_2:&lt;br /&gt;
				$playerOrder = [0, 2, 1, 3];&lt;br /&gt;
				break;&lt;br /&gt;
			case self::TEAM_1_4:&lt;br /&gt;
				$playerOrder = [0, 1, 3, 2];&lt;br /&gt;
				break;&lt;br /&gt;
			case self::TEAM_RANDOM:&lt;br /&gt;
				shuffle($playerOrder);&lt;br /&gt;
				break;&lt;br /&gt;
			default:&lt;br /&gt;
			case self::TEAM_1_3:&lt;br /&gt;
				// Default order&lt;br /&gt;
				break;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
                // Create players&lt;br /&gt;
		// Note: if you added some extra field on &amp;quot;player&amp;quot; table in the database (dbmodel.sql), you can initialize it there.&lt;br /&gt;
		$sql =&lt;br /&gt;
			&#039;INSERT INTO player (player_id, player_color, player_canal, player_name, player_avatar, player_no) VALUES &#039;;&lt;br /&gt;
		$values = [];&lt;br /&gt;
&lt;br /&gt;
		foreach ($players as $playerId =&amp;gt; $player) {&lt;br /&gt;
			$color = array_shift($default_colors);&lt;br /&gt;
			$values[] =&lt;br /&gt;
				&amp;quot;(&#039;&amp;quot; .&lt;br /&gt;
				$playerId .&lt;br /&gt;
				&amp;quot;&#039;,&#039;$color&#039;,&#039;&amp;quot; .&lt;br /&gt;
				$player[&#039;player_canal&#039;] .&lt;br /&gt;
				&amp;quot;&#039;,&#039;&amp;quot; .&lt;br /&gt;
				addslashes($player[&#039;player_name&#039;]) .&lt;br /&gt;
				&amp;quot;&#039;,&#039;&amp;quot; .&lt;br /&gt;
				addslashes($player[&#039;player_avatar&#039;]) .&lt;br /&gt;
				&amp;quot;&#039;,&#039;&amp;quot; .&lt;br /&gt;
				$playerOrder[$playerInitialOrder[$playerId]] .&lt;br /&gt;
				&amp;quot;&#039;)&amp;quot;;&lt;br /&gt;
		}&lt;br /&gt;
		$sql .= implode(&#039;,&#039;, $values);&lt;br /&gt;
		self::DbQuery($sql);&lt;br /&gt;
		self::reattributeColorsBasedOnPreferences(&lt;br /&gt;
			$players,&lt;br /&gt;
			$gameinfos[&#039;player_colors&#039;]&lt;br /&gt;
		);&lt;br /&gt;
		self::reloadPlayersBasicInfos();&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Send different notifications to active player vs everybody else ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ingredients:&#039;&#039;&#039; ggg.js&lt;br /&gt;
&lt;br /&gt;
Hack alert. This is a hack. We were hoping for proper solution by bga framework.&lt;br /&gt;
&lt;br /&gt;
This will allow you to send notification with two message one for specific player and one for everybody else including spectators.&lt;br /&gt;
Note that this does not split the data - all data must be shared.&lt;br /&gt;
&lt;br /&gt;
Add this to .js file (if you already overriding it merge obviously)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/** @Override */&lt;br /&gt;
format_string_recursive: function(log, args) {&lt;br /&gt;
   if (typeof args.log_others != &#039;undefined&#039; &amp;amp;&amp;amp; typeof args.player_id != &#039;undefined&#039; &amp;amp;&amp;amp; this.player_id != args.player_id)&lt;br /&gt;
	log = args.log_others;&lt;br /&gt;
   return this.inherited(arguments); // you must call this to call super &lt;br /&gt;
},&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example of usage (from eminentdomain)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    $this-&amp;gt;notifyAllPlayers(&#039;tokenMoved&#039;, &lt;br /&gt;
             clienttranslate(&#039;${player_name} adds +2 Colonies to ${place_name}&#039;), // notification with show for player with player_id&lt;br /&gt;
             [&#039;player_id&#039;=&amp;gt;$player_id, // this is mandatory&lt;br /&gt;
             &#039;log_others&#039;=&amp;gt;clienttranslate(&#039;${player_name} adds +2 Colonies to an unknown planet&#039;), // notification will show for others&lt;br /&gt;
              ...&lt;br /&gt;
             ]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Send transient notifications without incrementing move ID ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ingredients:&#039;&#039;&#039; ggg.php&lt;br /&gt;
&lt;br /&gt;
Hack alert. This is a hack.&lt;br /&gt;
&lt;br /&gt;
Use this if you need to send some transient notification that should not create a new move ID. The notification should be idempotent -- it should have no practical effect on the game state and would be &#039;&#039;&#039;safe to drop&#039;&#039;&#039; (e.g., it would not matter if a player never received this notification). For example, in a co-op game you want all players to see a real-time preview of some action, before the active player commits their turn.&lt;br /&gt;
&lt;br /&gt;
Doing this mainly affects the instant replay &amp;amp; archive modes. During replay, the BGA framework automatically inserts a 1.5-second pause between each &amp;quot;move&amp;quot;. With this hack, your transient notifications are not considered to be a &amp;quot;move&amp;quot;, so no pause gets added.&lt;br /&gt;
&lt;br /&gt;
; In ggg.php&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$this-&amp;gt;not_a_move_notification = true; // note: do not increase the move counter&lt;br /&gt;
$this-&amp;gt;notifyAllPlayers(&#039;cardsPreview&#039;, &#039;&#039;, $args);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Shadowphiar</name></author>
	</entry>
	<entry>
		<id>https://en.doc.boardgamearena.com/index.php?title=Gamehelpsteamworks&amp;diff=7459</id>
		<title>Gamehelpsteamworks</title>
		<link rel="alternate" type="text/html" href="https://en.doc.boardgamearena.com/index.php?title=Gamehelpsteamworks&amp;diff=7459"/>
		<updated>2021-02-25T00:36:09Z</updated>

		<summary type="html">&lt;p&gt;Shadowphiar: Longer game house rule&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
Steam Works is a worker placement game in which you are an inventor of ingenious devices, competing for the favour of Her Majesty Queen Victoria. Over the course of the game you will take components from the conveyor belts on the main board, and combine them with power sources to manufacture Devices which function as action spaces for all players. You gain prestige points when an opponent uses a device you manufactured, and from activating certain certain components, and for the components in devices you own.&lt;br /&gt;
&lt;br /&gt;
Each player takes one persona board (these can be distributed randomly, or drafted in reverse order of play), and elects to play side A or B. The side A of all boards have different starting resources but the same action spaces available, while side B of each board also has differing action spaces and some special rules.&lt;br /&gt;
&lt;br /&gt;
Each turn, you place your leftmost mechanic onto an unoccupied action space (one on your own persona board, or on a power source in any built device). The cost to place a mechanic is printed below that mechanic&#039;s space on the persona board; if you cannot (or do not wish to) pay that cost, you may instead pass with that mechanic and collect the same cost instead of paying it.&lt;br /&gt;
&lt;br /&gt;
When all players have placed all their mechanics, the round ends. All mechanics return to their owner&#039;s persona board, the conveyor belts fill up, and the first player marker advances. If the current age&#039;s clock tokens have all been awarded or if there aren&#039;t enough tiles left to refill all the open conveyor belts, then the next Age opens: each player gains a mechanic, and a new supply of more powerful tiles becomes available. At the end of Age III the game is over and the player who has the most prestige is declared the winner.&lt;br /&gt;
&lt;br /&gt;
== Action Spaces ==&lt;br /&gt;
&lt;br /&gt;
The action spaces on side A of the persona board have the following effects:&lt;br /&gt;
&lt;br /&gt;
# Take the rightmost tile of any conveyor belt.&lt;br /&gt;
# Take a basic power source of your choice.&lt;br /&gt;
# Manufacture a device containing exactly two tiles from your hand.&lt;br /&gt;
# Activate one power source in a device you have already built, without placing a mechanic on it.&lt;br /&gt;
&lt;br /&gt;
To manufacture a device you may drag sources and components from your hand and drop them onto the highlighted area of the table. Alternatively, you may click on a tile to select it (giving it a red border), and click again on a destination to move it. You may double-click on a tile to move it from your hand to the manufacturing zone, or from the zone back to your hand.&lt;br /&gt;
&lt;br /&gt;
A manufactured device must contain at least one source, and at least one component. A source and a component are connected when the source provides at least one type of power that the component accepts. Invalid connections are allowed to exist in your device but every tile is required to have at least one valid connection. &lt;br /&gt;
&lt;br /&gt;
When a mechanic is placed on the power source of a built device, every component connected to it may be activated in the order of the player&#039;s choice. Some components have different effects depending on whether they are supplied with clockwork, steam or electrickal power - if the source is capable of providing more than one of these, you have the choice of which effect is applied.&lt;br /&gt;
&lt;br /&gt;
=== Age I components ===&lt;br /&gt;
&lt;br /&gt;
; Collecting Resources&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Condenser&#039;&#039;&#039; you may take two basic sources of whichever type of power is supplying the Condenser.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Innovation Turbine&#039;&#039;&#039; you may take a tile from an unlocked supply deck, or pay £1 to choose one tile from two revealed. (Note: You cannot Undo past the point that the tiles are revealed.)&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Librarifier&#039;&#039;&#039; you may take any component from the Age I conveyor belts if powered by Clockwork, from the Age II belt if powered by Steam, or the Age III belt if powered by Electrickal.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Miscellanerie&#039;&#039;&#039; you take 2 coins and a basic power source of your choice. If an opponent owns the device, they get one basic source of the same type.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Monetiser&#039;&#039;&#039; you collect 3 coins.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Scroll Rack&#039;&#039;&#039;&#039; you may take any component from the conveyor belts, paying some coins depending on where it is located.&lt;br /&gt;
; Building Devices&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Manufacturer&#039;&#039;&#039; you may use sources and components from your hand to build a new device, containing exactly 2 tiles if the Manufacturer is powered by Clockwork, exactly 3 tiles if the Manufacturer is powered by Steam, or exactly 4 tiles if the Manufacturer is powered by Electrickal (though the device does not have to be the same &#039;&#039;shape&#039;&#039; as the examples on the Manufacturer tile). &lt;br /&gt;
: When you activate the &#039;&#039;&#039;Sourcer&#039;&#039;&#039; you may select a basic source from the supplies and add it to any device on the table. (It must be a valid connection). If the device containing the Sourcer is owned by an opponent, they get a coin.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Upgrader&#039;&#039;&#039; you may select any source or component from your hand and add it to any device on the table that previous contained 2/3/4 tiles, when Upgrader is powered by Clockwork/Steam/Electrickal respectively. The new tile must have a valid connection. &lt;br /&gt;
; Other Effects&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Alarm Chronometer&#039;&#039;&#039; you advance the start player marker, once for free, and again for each £1 spent. (Remember it will still advance once more at the end of the round).&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Distiller&#039;&#039;&#039; you may discard one source from your hand to gain £5.&lt;br /&gt;
&lt;br /&gt;
=== Age II components ===&lt;br /&gt;
; Collecting Resources&lt;br /&gt;
: The &#039;&#039;&#039;Amplicondenser&#039;&#039;&#039; works like the Condenser, but you take three sources when you activate it. If the device is owned by an opponent, they get one too.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Resonator&#039;&#039;&#039; you may take from the conveyor belts any component which contains a Clockwork/Steam/Electrickal connector that is the same as the one powering the resonator.&lt;br /&gt;
; Building Devices&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Insta-factor&#039;&#039;&#039; you must pay 2 coins, then you take a Manufacturer action, then you may immediately activate one of the sources in your new device.&lt;br /&gt;
; Powering Devices&lt;br /&gt;
: &#039;&#039;&#039;ElectroClock&#039;&#039;&#039;, &#039;&#039;&#039;ElectroSteam&#039;&#039;&#039; and &#039;&#039;&#039;SteamWork&#039;&#039;&#039; sources supply your choice of two power types in each direction.&lt;br /&gt;
: The &#039;&#039;&#039;Iterator&#039;&#039;&#039; is placed adjacent to another component (and may be rotated to fit your device). Immediately after that component is activated, you may activate it once again with the same power input.&lt;br /&gt;
: The &#039;&#039;&#039;Power Converter&#039;&#039;&#039; is placed between a source and up to three other components (and may be rotated to fit your device). &lt;br /&gt;
; Earning Prestige&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Anthem Organ&#039;&#039;&#039; you may trade one source for 1 Prestige, or three sources for 2 Prestige.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Patriotic Haiku Generator&#039;&#039;&#039; you may trade one coin for 1 Prestige, or three coins for 2 Prestige.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Statue Sculptifier&#039;&#039;&#039; you may trade any two sources for 1 Prestige, or exactly a Steam source and an Electrickal source for 2 Prestige.&lt;br /&gt;
; Other Effects&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Automaton&#039;&#039;&#039; you may move your Automaton token from the main board onto your persona board. On your next turn you may use the Automaton as a mechanic. At the end of the round it goes back to the main board. This can only be used once per round, if your automaton is not on the main board then activating the component has no effect.&lt;br /&gt;
&lt;br /&gt;
=== Age III components ===&lt;br /&gt;
; Collecting Resources&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Ubiquity Conveyor&#039;&#039;&#039; you may take any tile from the conveyor belts, or you may pay 2 coins to take any two tiles.&lt;br /&gt;
; Building Devices&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Expander&#039;&#039;&#039; you may select any source or component from your hand and add it to any device on the table. The new tile must have a valid connection. &lt;br /&gt;
; Powering Devices&lt;br /&gt;
: The &#039;&#039;&#039;Iteration Gears&#039;&#039;&#039; supplies clockwork power in each direction. After the device has been activated once, it is immediately activated again.&lt;br /&gt;
: The &#039;&#039;&#039;Universal Source&#039;&#039;&#039; supplies your choice of power in each direction. Two mechanics can be placed on this tile, either by different players or by the same player in another turn.&lt;br /&gt;
; Earning Prestige &lt;br /&gt;
: &#039;&#039;&#039;Chrome&#039;&#039;&#039; has no activation effect, However when built in a device it is worth 2 Prestige points rather than the usual 1.&lt;br /&gt;
: &#039;&#039;&#039;Crescendo Organ&#039;&#039;&#039; works similarly to the Anthem Organ, but you may trade two sources for 2 Prestige or three sources for 3 Prestige.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Inflater&#039;&#039;&#039; you gain 1 Prestige. If the device containing the Inflater is owned by an opponent, they also get 1 Prestige.&lt;br /&gt;
: When you activate &#039;&#039;&#039;Ornament Grinder&#039;&#039;&#039; you may trade one tile other than a basic source for 1 Prestige, or two tiles for 3 Prestige.&lt;br /&gt;
: When you activate &#039;&#039;&#039;Patriotic Sonnet Generator&#039;&#039;&#039; you may trade two coins for 2 Prestige, or four coins for 3 Prestige.&lt;br /&gt;
&lt;br /&gt;
== Game End &amp;amp; Final Scoring ==&lt;br /&gt;
The game ends after finishing the round in which Age 3 finishes, either because the final stack of clock tokens has been depleted or there are not enough tiles to refill a conveyor belt. The final score is the sum of:&lt;br /&gt;
* Prestige tokens earned from component actions.&lt;br /&gt;
* Prestige value of tiles in built devices.&lt;br /&gt;
* Clock tokens earned from opponents visits to your devices.&lt;br /&gt;
&lt;br /&gt;
If two or more players are tied for most prestige, then the tied player with the most leftover money, sources, and components combined is the winner. In case of a further tie, all tied players share the victory.&lt;br /&gt;
&lt;br /&gt;
== 2-Player Changes ==&lt;br /&gt;
&lt;br /&gt;
In a 2-Player game, the clock tokens are replaced with coins. (The reward you receive when the opponent uses your device is one coin instead of one Prestige). Also, one coin is removed from the current age&#039;s stack every round.&lt;br /&gt;
&lt;br /&gt;
== Persona B-side Special Rules ==&lt;br /&gt;
&lt;br /&gt;
; Countess Eva Kinarney&lt;br /&gt;
: Eva pays her mechanics in Electrickal sources (and receives Electrickal sources when passing).&lt;br /&gt;
; Duke Augustus Shaughness, III&lt;br /&gt;
: Augustus has his Automaton available every round, but it may only be used to activate spaces on the persona board. It can be played in any order relative to the other mechanics.&lt;br /&gt;
&lt;br /&gt;
== Variant Rule ==&lt;br /&gt;
&lt;br /&gt;
There is an optional house rule which can be selected when the table is starting, under &amp;quot;End of Age Rules&amp;quot;. In this case, when a stack of component tiles is depleted, this will only trigger the end of its own Age, and not any future Ages. In particular, this means the game will not end because of an empty blue or white conveyor belt; the game ends only if the Age III rewards stack is depleted or the red conveyor belt cannot be filled.&lt;/div&gt;</summary>
		<author><name>Shadowphiar</name></author>
	</entry>
	<entry>
		<id>https://en.doc.boardgamearena.com/index.php?title=Gamehelpsteamworks&amp;diff=7289</id>
		<title>Gamehelpsteamworks</title>
		<link rel="alternate" type="text/html" href="https://en.doc.boardgamearena.com/index.php?title=Gamehelpsteamworks&amp;diff=7289"/>
		<updated>2021-02-08T12:21:48Z</updated>

		<summary type="html">&lt;p&gt;Shadowphiar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
Steam Works is a worker placement game in which you are an inventor of ingenious devices, competing for the favour of Her Majesty Queen Victoria. Over the course of the game you will take components from the conveyor belts on the main board, and combine them with power sources to manufacture Devices which function as action spaces for all players. You gain prestige points when an opponent uses a device you manufactured, and from activating certain certain components, and for the components in devices you own.&lt;br /&gt;
&lt;br /&gt;
Each player takes one persona board (these can be distributed randomly, or drafted in reverse order of play), and elects to play side A or B. The side A of all boards have different starting resources but the same action spaces available, while side B of each board also has differing action spaces and some special rules.&lt;br /&gt;
&lt;br /&gt;
Each turn, you place your leftmost mechanic onto an unoccupied action space (one on your own persona board, or on a power source in any built device). The cost to place a mechanic is printed below that mechanic&#039;s space on the persona board; if you cannot (or do not wish to) pay that cost, you may instead pass with that mechanic and collect the same cost instead of paying it.&lt;br /&gt;
&lt;br /&gt;
When all players have placed all their mechanics, the round ends. All mechanics return to their owner&#039;s persona board, the conveyor belts fill up, and the first player marker advances. If the current age&#039;s clock tokens have all been awarded or if there aren&#039;t enough tiles left to refill all the open conveyor belts, then the next Age opens: each player gains a mechanic, and a new supply of more powerful tiles becomes available. At the end of Age III the game is over and the player who has the most prestige is declared the winner.&lt;br /&gt;
&lt;br /&gt;
== Action Spaces ==&lt;br /&gt;
&lt;br /&gt;
The action spaces on side A of the persona board have the following effects:&lt;br /&gt;
&lt;br /&gt;
# Take the rightmost tile of any conveyor belt.&lt;br /&gt;
# Take a basic power source of your choice.&lt;br /&gt;
# Manufacture a device containing exactly two tiles from your hand.&lt;br /&gt;
# Activate one power source in a device you have already built, without placing a mechanic on it.&lt;br /&gt;
&lt;br /&gt;
To manufacture a device you may drag sources and components from your hand and drop them onto the highlighted area of the table. Alternatively, you may click on a tile to select it (giving it a red border), and click again on a destination to move it. You may double-click on a tile to move it from your hand to the manufacturing zone, or from the zone back to your hand.&lt;br /&gt;
&lt;br /&gt;
A manufactured device must contain at least one source, and at least one component. A source and a component are connected when the source provides at least one type of power that the component accepts. Invalid connections are allowed to exist in your device but every tile is required to have at least one valid connection. &lt;br /&gt;
&lt;br /&gt;
When a mechanic is placed on the power source of a built device, every component connected to it may be activated in the order of the player&#039;s choice. Some components have different effects depending on whether they are supplied with clockwork, steam or electrickal power - if the source is capable of providing more than one of these, you have the choice of which effect is applied.&lt;br /&gt;
&lt;br /&gt;
=== Age I components ===&lt;br /&gt;
&lt;br /&gt;
; Collecting Resources&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Condenser&#039;&#039;&#039; you may take two basic sources of whichever type of power is supplying the Condenser.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Innovation Turbine&#039;&#039;&#039; you may take a tile from an unlocked supply deck, or pay £1 to choose one tile from two revealed. (Note: You cannot Undo past the point that the tiles are revealed.)&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Librarifier&#039;&#039;&#039; you may take any component from the Age I conveyor belts if powered by Clockwork, from the Age II belt if powered by Steam, or the Age III belt if powered by Electrickal.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Miscellanerie&#039;&#039;&#039; you take 2 coins and a basic power source of your choice. If an opponent owns the device, they get one basic source of the same type.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Monetiser&#039;&#039;&#039; you collect 3 coins.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Scroll Rack&#039;&#039;&#039;&#039; you may take any component from the conveyor belts, paying some coins depending on where it is located.&lt;br /&gt;
; Building Devices&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Manufacturer&#039;&#039;&#039; you may use sources and components from your hand to build a new device, containing exactly 2 tiles if the Manufacturer is powered by Clockwork, exactly 3 tiles if the Manufacturer is powered by Steam, or exactly 4 tiles if the Manufacturer is powered by Electrickal (though the device does not have to be the same &#039;&#039;shape&#039;&#039; as the examples on the Manufacturer tile). &lt;br /&gt;
: When you activate the &#039;&#039;&#039;Sourcer&#039;&#039;&#039; you may select a basic source from the supplies and add it to any device on the table. (It must be a valid connection). If the device containing the Sourcer is owned by an opponent, they get a coin.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Upgrader&#039;&#039;&#039; you may select any source or component from your hand and add it to any device on the table that previous contained 2/3/4 tiles, when Upgrader is powered by Clockwork/Steam/Electrickal respectively. The new tile must have a valid connection. &lt;br /&gt;
; Other Effects&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Alarm Chronometer&#039;&#039;&#039; you advance the start player marker, once for free, and again for each £1 spent. (Remember it will still advance once more at the end of the round).&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Distiller&#039;&#039;&#039; you may discard one source from your hand to gain £5.&lt;br /&gt;
&lt;br /&gt;
=== Age II components ===&lt;br /&gt;
; Collecting Resources&lt;br /&gt;
: The &#039;&#039;&#039;Amplicondenser&#039;&#039;&#039; works like the Condenser, but you take three sources when you activate it. If the device is owned by an opponent, they get one too.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Resonator&#039;&#039;&#039; you may take from the conveyor belts any component which contains a Clockwork/Steam/Electrickal connector that is the same as the one powering the resonator.&lt;br /&gt;
; Building Devices&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Insta-factor&#039;&#039;&#039; you must pay 2 coins, then you take a Manufacturer action, then you may immediately activate one of the sources in your new device.&lt;br /&gt;
; Powering Devices&lt;br /&gt;
: &#039;&#039;&#039;ElectroClock&#039;&#039;&#039;, &#039;&#039;&#039;ElectroSteam&#039;&#039;&#039; and &#039;&#039;&#039;SteamWork&#039;&#039;&#039; sources supply your choice of two power types in each direction.&lt;br /&gt;
: The &#039;&#039;&#039;Iterator&#039;&#039;&#039; is placed adjacent to another component (and may be rotated to fit your device). Immediately after that component is activated, you may activate it once again with the same power input.&lt;br /&gt;
: The &#039;&#039;&#039;Power Converter&#039;&#039;&#039; is placed between a source and up to three other components (and may be rotated to fit your device). &lt;br /&gt;
; Earning Prestige&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Anthem Organ&#039;&#039;&#039; you may trade one source for 1 Prestige, or three sources for 2 Prestige.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Patriotic Haiku Generator&#039;&#039;&#039; you may trade one coin for 1 Prestige, or three coins for 2 Prestige.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Statue Sculptifier&#039;&#039;&#039; you may trade any two sources for 1 Prestige, or exactly a Steam source and an Electrickal source for 2 Prestige.&lt;br /&gt;
; Other Effects&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Automaton&#039;&#039;&#039; you may move your Automaton token from the main board onto your persona board. On your next turn you may use the Automaton as a mechanic. At the end of the round it goes back to the main board. This can only be used once per round, if your automaton is not on the main board then activating the component has no effect.&lt;br /&gt;
&lt;br /&gt;
=== Age III components ===&lt;br /&gt;
; Collecting Resources&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Ubiquity Conveyor&#039;&#039;&#039; you may take any tile from the conveyor belts, or you may pay 2 coins to take any two tiles.&lt;br /&gt;
; Building Devices&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Expander&#039;&#039;&#039; you may select any source or component from your hand and add it to any device on the table. The new tile must have a valid connection. &lt;br /&gt;
; Powering Devices&lt;br /&gt;
: The &#039;&#039;&#039;Iteration Gears&#039;&#039;&#039; supplies clockwork power in each direction. After the device has been activated once, it is immediately activated again.&lt;br /&gt;
: The &#039;&#039;&#039;Universal Source&#039;&#039;&#039; supplies your choice of power in each direction. Two mechanics can be placed on this tile, either by different players or by the same player in another turn.&lt;br /&gt;
; Earning Prestige &lt;br /&gt;
: &#039;&#039;&#039;Chrome&#039;&#039;&#039; has no activation effect, However when built in a device it is worth 2 Prestige points rather than the usual 1.&lt;br /&gt;
: &#039;&#039;&#039;Crescendo Organ&#039;&#039;&#039; works similarly to the Anthem Organ, but you may trade two sources for 2 Prestige or three sources for 3 Prestige.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Inflater&#039;&#039;&#039; you gain 1 Prestige. If the device containing the Inflater is owned by an opponent, they also get 1 Prestige.&lt;br /&gt;
: When you activate &#039;&#039;&#039;Ornament Grinder&#039;&#039;&#039; you may trade one tile other than a basic source for 1 Prestige, or two tiles for 3 Prestige.&lt;br /&gt;
: When you activate &#039;&#039;&#039;Patriotic Sonnet Generator&#039;&#039;&#039; you may trade two coins for 2 Prestige, or four coins for 3 Prestige.&lt;br /&gt;
&lt;br /&gt;
== Game End &amp;amp; Final Scoring ==&lt;br /&gt;
The game ends after finishing the round in which Age 3 finishes, either because the final stack of clock tokens has been depleted or there are not enough tiles to refill a conveyor belt. The final score is the sum of:&lt;br /&gt;
* Prestige tokens earned from component actions.&lt;br /&gt;
* Prestige value of tiles in built devices.&lt;br /&gt;
* Clock tokens earned from opponents visits to your devices.&lt;br /&gt;
&lt;br /&gt;
If two or more players are tied for most prestige, then the tied player with the most leftover money, sources, and components combined is the winner. In case of a further tie, all tied players share the victory.&lt;br /&gt;
&lt;br /&gt;
== 2-Player Changes ==&lt;br /&gt;
&lt;br /&gt;
In a 2-Player game, the clock tokens are replaced with coins. (The reward you receive when the opponent uses your device is one coin instead of one Prestige). Also, one coin is removed from the current age&#039;s stack every round.&lt;br /&gt;
&lt;br /&gt;
== Persona B-side Special Rules ==&lt;br /&gt;
&lt;br /&gt;
; Countess Eva Kinarney&lt;br /&gt;
: Eva pays her mechanics in Electrickal sources (and receives Electrickal sources when passing).&lt;br /&gt;
; Duke Augustus Shaughness, III&lt;br /&gt;
: Augustus has his Automaton available every round, but it may only be used to activate spaces on the persona board. It can be played in any order relative to the other mechanics.&lt;/div&gt;</summary>
		<author><name>Shadowphiar</name></author>
	</entry>
	<entry>
		<id>https://en.doc.boardgamearena.com/index.php?title=Gamehelpsteamworks&amp;diff=7077</id>
		<title>Gamehelpsteamworks</title>
		<link rel="alternate" type="text/html" href="https://en.doc.boardgamearena.com/index.php?title=Gamehelpsteamworks&amp;diff=7077"/>
		<updated>2021-01-26T12:27:42Z</updated>

		<summary type="html">&lt;p&gt;Shadowphiar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
Steam Works is a worker placement game in which you are an inventor of ingenious devices, competing for the favour of Her Majesty Queen Victoria. Over the course of the game you will take components from the conveyor belts on the main board, and combine them with power sources to manufacture Devices which function as action spaces for all players. You gain prestige points when an opponent uses a device you manufactured, and from activating certain certain components, and for the components in devices you own.&lt;br /&gt;
&lt;br /&gt;
Each player takes one persona board (these can be distributed randomly, or drafted in reverse order of play), and elects to play side A or B. The side A of all boards have different starting resources but the same action spaces available, while side B of each board also has differing action spaces and some special rules.&lt;br /&gt;
&lt;br /&gt;
Each turn, you place your leftmost mechanic onto an unoccupied action space (one on your own persona board, or on a power source in any built device). The cost to place a mechanic is printed below that mechanic&#039;s space on the persona board; if you cannot (or do not wish to) pay that cost, you may instead pass with that mechanic and collect the same cost instead of paying it.&lt;br /&gt;
&lt;br /&gt;
When all players have placed all their mechanics, the round ends. All mechanics return to their owner&#039;s persona board, the conveyor belts fill up, and the first player marker advances. If the current age&#039;s clock tokens have all been awarded or if there aren&#039;t enough tiles left to refill all the open conveyor belts, then the next Age opens: each player gains a mechanic, and a new supply of more powerful tiles becomes available. At the end of Age III the game is over and the player who has the most prestige is declared the winner.&lt;br /&gt;
&lt;br /&gt;
== Action Spaces ==&lt;br /&gt;
&lt;br /&gt;
The action spaces on side A of the persona board have the following effects:&lt;br /&gt;
&lt;br /&gt;
# Take the rightmost tile of any conveyor belt.&lt;br /&gt;
# Take a basic power source of your choice.&lt;br /&gt;
# Manufacture a device containing exactly two tiles from your hand.&lt;br /&gt;
# Activate one power source in a device you have already built, without placing a mechanic on it.&lt;br /&gt;
&lt;br /&gt;
A manufactured device must contain at least one source, and at least one component. A source and a component are connected when the source provides at least one type of power that the component accepts. Invalid connections are allowed to exist in your device but every tile is required to have at least one valid connection. &lt;br /&gt;
&lt;br /&gt;
When a mechanic is placed on the power source of a built device, every component connected to it may be activated in the order of the player&#039;s choice. Some components have different effects depending on whether they are supplied with clockwork, steam or electrickal power - if the source is capable of providing more than one of these, you have the choice of which effect is applied.&lt;br /&gt;
&lt;br /&gt;
=== Age I components ===&lt;br /&gt;
&lt;br /&gt;
; Collecting Resources&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Condenser&#039;&#039;&#039; you may take two basic sources of whichever type of power is supplying the Condenser.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Innovation Turbine&#039;&#039;&#039; you may take a tile from an unlocked supply deck, or pay £1 to choose one tile from two revealed. (Note: You cannot Undo past the point that the tiles are revealed.)&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Librarifier&#039;&#039;&#039; you may take any component from the Age I conveyor belts if powered by Clockwork, from the Age II belt if powered by Steam, or the Age III belt if powered by Electrickal.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Miscellanerie&#039;&#039;&#039; you take 2 coins and a basic power source of your choice. If an opponent owns the device, they get one basic source of the same type.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Monetiser&#039;&#039;&#039; you collect 3 coins.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Scroll Rack&#039;&#039;&#039;&#039; you may take any component from the conveyor belts, paying some coins depending on where it is located.&lt;br /&gt;
; Building Devices&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Manufacturer&#039;&#039;&#039; you may use sources and components from your hand to build a new device, containing exactly 2 tiles if the Manufacturer is powered by Clockwork, exactly 3 tiles if the Manufacturer is powered by Steam, or exactly 4 tiles if the Manufacturer is powered by Electrickal (though the device does not have to be the same &#039;&#039;shape&#039;&#039; as the examples on the Manufacturer tile). &lt;br /&gt;
: When you activate the &#039;&#039;&#039;Sourcer&#039;&#039;&#039; you may select a basic source from the supplies and add it to any device on the table. (It must be a valid connection). If the device containing the Sourcer is owned by an opponent, they get a coin.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Upgrader&#039;&#039;&#039; you may select any source or component from your hand and add it to any device on the table that previous contained 2/3/4 tiles, when Upgrader is powered by Clockwork/Steam/Electrickal respectively. The new tile must have a valid connection. &lt;br /&gt;
; Other Effects&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Alarm Chronometer&#039;&#039;&#039; you advance the start player marker, once for free, and again for each £1 spent. (Remember it will still advance once more at the end of the round).&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Distiller&#039;&#039;&#039; you may discard one source from your hand to gain £5.&lt;br /&gt;
&lt;br /&gt;
=== Age II components ===&lt;br /&gt;
; Collecting Resources&lt;br /&gt;
: The &#039;&#039;&#039;Amplicondenser&#039;&#039;&#039; works like the Condenser, but you take three sources when you activate it. If the device is owned by an opponent, they get one too.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Resonator&#039;&#039;&#039; you may take from the conveyor belts any component which contains a Clockwork/Steam/Electrickal connector that is the same as the one powering the resonator.&lt;br /&gt;
; Building Devices&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Insta-factor&#039;&#039;&#039; you must pay 2 coins, then you take a Manufacturer action, then you may immediately activate one of the sources in your new device.&lt;br /&gt;
; Powering Devices&lt;br /&gt;
: &#039;&#039;&#039;ElectroClock&#039;&#039;&#039;, &#039;&#039;&#039;ElectroSteam&#039;&#039;&#039; and &#039;&#039;&#039;SteamWork&#039;&#039;&#039; sources supply your choice of two power types in each direction.&lt;br /&gt;
: The &#039;&#039;&#039;Iterator&#039;&#039;&#039; is placed adjacent to another component (and may be rotated to fit your device). Immediately after that component is activated, you may activate it once again with the same power input.&lt;br /&gt;
: The &#039;&#039;&#039;Power Converter&#039;&#039;&#039; is placed between a source and up to three other components (and may be rotated to fit your device). &lt;br /&gt;
; Earning Prestige&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Anthem Organ&#039;&#039;&#039; you may trade one source for 1 Prestige, or three sources for 2 Prestige.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Patriotic Haiku Generator&#039;&#039;&#039; you may trade one coin for 1 Prestige, or three coins for 2 Prestige.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Statue Sculptifier&#039;&#039;&#039; you may trade any two sources for 1 Prestige, or exactly a Steam source and an Electrickal source for 2 Prestige.&lt;br /&gt;
; Other Effects&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Automaton&#039;&#039;&#039; you may move your Automaton token from the main board onto your persona board. On your next turn you may use the Automaton as a mechanic. At the end of the round it goes back to the main board. This can only be used once per round, if your automaton is not on the main board then activating the component has no effect.&lt;br /&gt;
&lt;br /&gt;
=== Age III components ===&lt;br /&gt;
; Collecting Resources&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Ubiquity Conveyor&#039;&#039;&#039; you may take any tile from the conveyor belts, or you may pay 2 coins to take any two tiles.&lt;br /&gt;
; Building Devices&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Expander&#039;&#039;&#039; you may select any source or component from your hand and add it to any device on the table. The new tile must have a valid connection. &lt;br /&gt;
; Powering Devices&lt;br /&gt;
: The &#039;&#039;&#039;Iteration Gears&#039;&#039;&#039; supplies clockwork power in each direction. After the device has been activated once, it is immediately activated again.&lt;br /&gt;
: The &#039;&#039;&#039;Universal Source&#039;&#039;&#039; supplies your choice of power in each direction. Two mechanics can be placed on this tile, either by different players or by the same player in another turn.&lt;br /&gt;
; Earning Prestige &lt;br /&gt;
: &#039;&#039;&#039;Chrome&#039;&#039;&#039; has no activation effect, However when built in a device it is worth 2 Prestige points rather than the usual 1.&lt;br /&gt;
: &#039;&#039;&#039;Crescendo Organ&#039;&#039;&#039; works similarly to the Anthem Organ, but you may trade two sources for 2 Prestige or three sources for 3 Prestige.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Inflater&#039;&#039;&#039; you gain 1 Prestige. If the device containing the Inflater is owned by an opponent, they also get 1 Prestige.&lt;br /&gt;
: When you activate &#039;&#039;&#039;Ornament Grinder&#039;&#039;&#039; you may trade one tile other than a basic source for 1 Prestige, or two tiles for 3 Prestige.&lt;br /&gt;
: When you activate &#039;&#039;&#039;Patriotic Sonnet Generator&#039;&#039;&#039; you may trade two coins for 2 Prestige, or four coins for 3 Prestige.&lt;br /&gt;
&lt;br /&gt;
== Game End &amp;amp; Final Scoring ==&lt;br /&gt;
The game ends after finishing the round in which Age 3 finishes, either because the final stack of clock tokens has been depleted or there are not enough tiles to refill a conveyor belt. The final score is the sum of:&lt;br /&gt;
* Prestige tokens earned from component actions.&lt;br /&gt;
* Prestige value of tiles in built devices.&lt;br /&gt;
* Clock tokens earned from opponents visits to your devices.&lt;br /&gt;
&lt;br /&gt;
If two or more players are tied for most prestige, then the tied player with the most leftover money, sources, and components combined is the winner. In case of a further tie, all tied players share the victory.&lt;br /&gt;
&lt;br /&gt;
== 2-Player Changes ==&lt;br /&gt;
&lt;br /&gt;
In a 2-Player game, the clock tokens are replaced with coins. (The reward you receive when the opponent uses your device is one coin instead of one Prestige). Also, one coin is removed from the current age&#039;s stack every round.&lt;br /&gt;
&lt;br /&gt;
== Persona B-side Special Rules ==&lt;br /&gt;
&lt;br /&gt;
; Countess Eva Kinarney&lt;br /&gt;
: Eva pays her mechanics in Electrickal sources (and receives Electrickal sources when passing).&lt;br /&gt;
; Duke Augustus Shaughness, III&lt;br /&gt;
: Augustus has his Automaton available every round, but it may only be used to activate spaces on the persona board. It can be played in any order relative to the other mechanics.&lt;/div&gt;</summary>
		<author><name>Shadowphiar</name></author>
	</entry>
	<entry>
		<id>https://en.doc.boardgamearena.com/index.php?title=Gamehelpsteamworks&amp;diff=7055</id>
		<title>Gamehelpsteamworks</title>
		<link rel="alternate" type="text/html" href="https://en.doc.boardgamearena.com/index.php?title=Gamehelpsteamworks&amp;diff=7055"/>
		<updated>2021-01-25T20:59:10Z</updated>

		<summary type="html">&lt;p&gt;Shadowphiar: End of Age&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
Steam Works is a worker placement game in which you are an inventor of ingenious devices, competing for the favour of Her Majesty Queen Victoria. Over the course of the game you will take components from the conveyor belts on the main board, and combine them with power sources to manufacture Devices which function as action spaces for all players. You gain prestige points when an opponent uses a device you manufactured, and from activating certain certain components, and for the components in devices you own.&lt;br /&gt;
&lt;br /&gt;
Each player takes one persona board (these can be distributed randomly, or drafted in reverse order of play), and elects to play side A or B. The side A of all boards have different starting resources but the same action spaces available, while side B of each board also has differing action spaces and some special rules.&lt;br /&gt;
&lt;br /&gt;
Each turn, you place your leftmost mechanic onto an unoccupied action space (one on your own persona board, or on a power source in any built device). The cost to place a mechanic is printed below that mechanic&#039;s space on the persona board; if you cannot (or do not wish to) pay that cost, you may instead pass with that mechanic and collect the same cost instead of paying it.&lt;br /&gt;
&lt;br /&gt;
When all players have placed all their mechanics, the round ends. All mechanics return to their owner&#039;s persona board, the conveyor belts fill up, and the first player marker advances. If the current age&#039;s clock tokens have all been awarded or if there aren&#039;t enough tiles left to refill all the open conveyor belts, then the next Age opens: each player gains a mechanic, and a new supply of more powerful tiles becomes available. At the end of Age III the game is over and the player who has the most prestige is declared the winner.&lt;br /&gt;
&lt;br /&gt;
== Action Spaces ==&lt;br /&gt;
&lt;br /&gt;
The action spaces on side A of the persona board have the following effects:&lt;br /&gt;
&lt;br /&gt;
# Take the rightmost tile of any conveyor belt.&lt;br /&gt;
# Take a basic power source of your choice.&lt;br /&gt;
# Manufacture a device containing exactly two tiles from your hand.&lt;br /&gt;
# Activate one power source in a device you have already built, without placing a mechanic on it.&lt;br /&gt;
&lt;br /&gt;
A manufactured device must contain at least one source, and at least one component. A source and a component are connected when the source provides at least one type of power that the component accepts. Invalid connections are allowed to exist in your device but every tile is required to have at least one valid connection. &lt;br /&gt;
&lt;br /&gt;
When a mechanic is placed on the power source of a built device, every component connected to it may be activated in the order of the player&#039;s choice. Some components have different effects depending on whether they are supplied with clockwork, steam or electrickal power - if the source is capable of providing more than one of these, you have the choice of which effect is applied.&lt;br /&gt;
&lt;br /&gt;
=== Age I components ===&lt;br /&gt;
&lt;br /&gt;
; Collecting Resources&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Condenser&#039;&#039;&#039; you may take two basic sources of whichever type of power is supplying the Condenser.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Innovation Turbine&#039;&#039;&#039; you may take a tile from an unlocked supply deck, or pay £1 to choose one tile from two revealed. (Note: You cannot Undo past the point that the tiles are revealed.)&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Librarifier&#039;&#039;&#039; you may take any component from the Age I conveyor belts if powered by Clockwork, from the Age II belt if powered by Steam, or the Age III belt if powered by Electrickal.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Miscellanerie&#039;&#039;&#039; you take 2 coins and a basic power source of your choice. If an opponent owns the device, they get one basic source of the same type.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Monetiser&#039;&#039;&#039; you collect 3 coins.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Scroll Rack&#039;&#039;&#039;&#039; you may take any component from the conveyor belts, paying some coins depending on where it is located.&lt;br /&gt;
; Building Devices&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Manufacturer&#039;&#039;&#039; you may use sources and components from your hand to build a new device, containing exactly 2 tiles if the Manufacturer is powered by Clockwork, exactly 3 tiles if the Manufacturer is powered by Steam, or exactly 4 tiles if the Manufacturer is powered by Electrickal (though the device does not have to be the same &#039;&#039;shape&#039;&#039; as the examples on the Manufacturer tile). &lt;br /&gt;
: When you activate the &#039;&#039;&#039;Sourcer&#039;&#039;&#039; you may select a basic source from the supplies and add it to any device on the table. (It must be a valid connection). If the device containing the Sourcer is owned by an opponent, they get a coin.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Upgrader&#039;&#039;&#039; you may select any source or component from your hand and add it to any device on the table that previous contained 2/3/4 tiles, when Upgrader is powered by Clockwork/Steam/Electrickal respectively. The new tile must have a valid connection. &lt;br /&gt;
; Other Effects&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Alarm Chronometer&#039;&#039;&#039; you advance the start player marker, once for free, and again for each £1 spent. (Remember it will still advance once more at the end of the round).&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Distiller&#039;&#039;&#039; you may discard one source from your hand to gain £5.&lt;br /&gt;
&lt;br /&gt;
=== Age II components ===&lt;br /&gt;
; Collecting Resources&lt;br /&gt;
: The &#039;&#039;&#039;Amplicondenser&#039;&#039;&#039; works like the Condenser, but you take three sources when you activate it. If the device is owned by an opponent, they get one too.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Resonator&#039;&#039;&#039; you may take from the conveyor belts any component which contains a Clockwork/Steam/Electrickal connector that is the same as the one powering the resonator.&lt;br /&gt;
; Building Devices&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Insta-factor&#039;&#039;&#039; you must pay 2 coins, then you take a Manufacturer action, then you may immediately activate one of the sources in your new device.&lt;br /&gt;
; Powering Devices&lt;br /&gt;
: &#039;&#039;&#039;ElectroClock&#039;&#039;&#039;, &#039;&#039;&#039;ElectroSteam&#039;&#039;&#039; and &#039;&#039;&#039;SteamWork&#039;&#039;&#039; sources supply your choice of two power types in each direction.&lt;br /&gt;
: The &#039;&#039;&#039;Iterator&#039;&#039;&#039; is placed adjacent to another component (and may be rotated to fit your device). Immediately after that component is activated, you may activate it once again with the same power input.&lt;br /&gt;
: The &#039;&#039;&#039;Power Converter&#039;&#039;&#039; is placed between a source and up to three other components (and may be rotated to fit your device). &lt;br /&gt;
; Earning Prestige&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Anthem Organ&#039;&#039;&#039; you may trade one source for 1 Prestige, or three sources for 2 Prestige.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Patriotic Haiku Generator&#039;&#039;&#039; you may trade one coin for 1 Prestige, or three coins for 2 Prestige.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Statue Sculptifier&#039;&#039;&#039; you may trade any two sources for 1 Prestige, or exactly a Steam source and an Electrickal source for 2 Prestige.&lt;br /&gt;
; Other Effects&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Automaton&#039;&#039;&#039; you may move your Automaton token from the main board onto your persona board. On your next turn you may use the Automaton as a mechanic. At the end of the round it goes back to the main board. This can only be used once per round, if your automaton is not on the main board then activating the component has no effect.&lt;br /&gt;
&lt;br /&gt;
=== Age III components ===&lt;br /&gt;
; Collecting Resources&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Ubiquity Conveyor&#039;&#039;&#039; you may take any tile from the conveyor belts, or you may pay 2 coins to take any two tiles.&lt;br /&gt;
; Building Devices&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Expander&#039;&#039;&#039; you may select any source or component from your hand and add it to any device on the table. The new tile must have a valid connection. &lt;br /&gt;
; Powering Devices&lt;br /&gt;
: The &#039;&#039;&#039;Iteration Gears&#039;&#039;&#039; supplies clockwork power in each direction. After the device has been activated once, it is immediately activated again.&lt;br /&gt;
: The &#039;&#039;&#039;Universal Source&#039;&#039;&#039; supplies your choice of power in each direction. Two mechanics can be placed on this tile, either by different players or by the same player in another turn.&lt;br /&gt;
; Earning Prestige &lt;br /&gt;
: &#039;&#039;&#039;Chrome&#039;&#039;&#039; has no activation effect, However when built in a device it is worth 2 Prestige points rather than the usual 1.&lt;br /&gt;
: &#039;&#039;&#039;Crescendo Organ&#039;&#039;&#039; works similarly to the Anthem Organ, but you may trade two sources for 2 Prestige or three sources for 3 Prestige.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Inflater&#039;&#039;&#039; you gain 1 Prestige. If the device containing the Inflater is owned by an opponent, they also get 1 Prestige.&lt;br /&gt;
: When you activate &#039;&#039;&#039;Ornament Grinder&#039;&#039;&#039; you may trade one tile other than a basic source for 1 Prestige, or two tiles for 3 Prestige.&lt;br /&gt;
: When you activate &#039;&#039;&#039;Patriotic Sonnet Generator&#039;&#039;&#039; you may trade two coins for 2 Prestige, or four coins for 3 Prestige.&lt;br /&gt;
&lt;br /&gt;
== Game End &amp;amp; Final Scoring ==&lt;br /&gt;
The game ends after finishing the round in which Age 3 finishes, either because the final stack of clock tokens has been depleted or there are not enough tiles to refill a conveyor belt. The final score is the sum of:&lt;br /&gt;
* Prestige tokens generated from tiles.&lt;br /&gt;
* Prestige value of built tiles.&lt;br /&gt;
* Clock tokens earned from opponents visits to your devices.&lt;br /&gt;
&lt;br /&gt;
If two or more players are tied for most prestige, then the tied player with the most leftover money, sources, and components combined is the winner. In case of a further tie, all tied players share the victory.&lt;br /&gt;
&lt;br /&gt;
== 2-Player Changes ==&lt;br /&gt;
&lt;br /&gt;
In a 2-Player game, the clock tokens are replaced with coins. (the reward when the opponent uses your device is one coin instead of one Prestige). Also, one coin is removed from the current age&#039;s stack every round.&lt;br /&gt;
&lt;br /&gt;
== Persona B-side Special Rules ==&lt;br /&gt;
&lt;br /&gt;
; Countess Eva Kinarney&lt;br /&gt;
: Eva pays her mechanics in Electrickal sources (and receives Electrickal sources when passing).&lt;br /&gt;
; Duke Augustus Shaughness, III&lt;br /&gt;
: Augustus has his Automaton available every round, but it may only be used to activate spaces on the persona board. It can be played in any order relative to the other mechanics.&lt;/div&gt;</summary>
		<author><name>Shadowphiar</name></author>
	</entry>
	<entry>
		<id>https://en.doc.boardgamearena.com/index.php?title=Help&amp;diff=6983</id>
		<title>Help</title>
		<link rel="alternate" type="text/html" href="https://en.doc.boardgamearena.com/index.php?title=Help&amp;diff=6983"/>
		<updated>2021-01-22T09:03:52Z</updated>

		<summary type="html">&lt;p&gt;Shadowphiar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An issue? A question?&lt;br /&gt;
&lt;br /&gt;
* [https://boardgamearena.com/#!faq Frequently asked questions] is the most complete source of help for BGA.&lt;br /&gt;
&lt;br /&gt;
* [https://forum.boardgamearena.com Forums] are also helpful to get information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Games ==&lt;br /&gt;
Game names which are displayed in red still need game help/summaries written for them. So help out and write one for them by creating a new page for these games. To do so simply click on them below, this will direct you to a page creation page.&lt;br /&gt;
&amp;lt;table cellpadding=&amp;quot;0&amp;quot; cellspacing=&amp;quot;5&amp;quot; border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td colspan=&amp;quot;5&amp;quot;&amp;gt;&#039;&#039;&#039;Available on BGA&#039;&#039;&#039;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&#039;&#039;&#039;Beta Games&#039;&#039;&#039;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&#039;&#039;&#039;Alpha Games&#039;&#039;&#039;&amp;lt;td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&#039;&#039;&#039;Removed from BGA&#039;&#039;&#039;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
* [[Gamehelpsechsnimmt|6 Nimmt!]]&lt;br /&gt;
* [[Gamehelpsevenwonders|7 Wonders]]&lt;br /&gt;
* [[Gamehelpeightmastersrevenge|8 Master&#039;s Revenge]]&lt;br /&gt;
* [[Gamehelpalhambra|Alhambra]]&lt;br /&gt;
* [[Gamehelpalveole|Alveole]]&lt;br /&gt;
* [[Gamehelpamyitis|Amyitis]]&lt;br /&gt;
* [[Gamehelpapocalypseazcc|Apocalypse at the Zoo of Carson City]]&lt;br /&gt;
* [[Gamehelparmadora|Armadöra]]&lt;br /&gt;
* [[Gamehelpassyria|Assyria]]&lt;br /&gt;
* [[Gamehelpbackgammon|Backgammon]]&lt;br /&gt;
* [[Gamehelpbandido|Bandido]]&lt;br /&gt;
* [[Gamehelpbarbu|Barbu]]&lt;br /&gt;
* [[Gamehelpbattleoflits|Battle of LITS]]&lt;br /&gt;
* [[Gamehelpbattlesheep|Battle Sheep]]&lt;br /&gt;
* [[Gamehelpbattleship|Battleship]]&lt;br /&gt;
* [[Gamehelpbelote|Belote]]&lt;br /&gt;
* [[Gamehelpbigtimesoccer|Big Time Soccer]]&lt;br /&gt;
* [[Gamehelpblooms|Blooms]]&lt;br /&gt;
* [[Gamehelpbobail|Bobail]]&lt;br /&gt;
* [[Gamehelpbombay|Bombay]]&lt;br /&gt;
* [[Gamehelpboomerangaustralia|Boomerang: Australia]]&lt;br /&gt;
* [[Gamehelpbriscola|Briscola]]&lt;br /&gt;
* [[Gamehelpbubbleepop|Bubblee Pop]]&lt;br /&gt;
* [[Gamehelpbutterfly|Butterfly]]&lt;br /&gt;
* [[Gamehelpbuttons|Buttons]]&lt;br /&gt;
* [[Gamehelpcacao|Cacao]]&lt;br /&gt;
* [[Gamehelpcantstop|Can&#039;t Stop]]&lt;br /&gt;
* [[Gamehelpcarcassonne|Carcassonne]]&lt;br /&gt;
* [[Gamehelpcarcassonnehuntersandgatherers|Carrassonne: Hunters and Gatherers]]&lt;br /&gt;
* [[Gamehelpcaribbeanallfours|Caribbean All Fours]]&lt;br /&gt;
* [[Gamehelpcaylus|Caylus]]&lt;br /&gt;
* [[Gamehelpcelestia|Celestia]]&lt;br /&gt;
* [[Gamehelpchakra|Chakra]]&lt;br /&gt;
* [[Gamehelpcheckers|Checkers]]&lt;br /&gt;
* [[Gamehelpchess|Chess]]&lt;br /&gt;
* [[Gamehelpchinagold|China Gold]]&lt;br /&gt;
* [[Gamehelpcinco|Cinco]]&lt;br /&gt;
* [[Gamehelpcircleoflife|Circle of Life]]&lt;br /&gt;
* [[Gamehelpclansofcaledonia|Clans of Caledonia]]&lt;br /&gt;
* [[Gamehelpcoinche|Coinche]]&lt;br /&gt;
* [[Gamehelpcolorpop|Color Pop]]&lt;br /&gt;
* [[Gamehelpcoloretto|Coloretto]]&lt;br /&gt;
* [[Gamehelpcoltexpress|Colt Express]]&lt;br /&gt;
* [[Gamehelpconsonar|Con Sonar!]]&lt;br /&gt;
* [[Gamehelpconcept|Concept]]&lt;br /&gt;
* [[Gamehelpconnectfour|Connect Four]]&lt;br /&gt;
* [[Gamehelpconnect6|Connect 6]]&lt;br /&gt;
* [[Gamehelpcoupcitystate|Coup]]&lt;br /&gt;
* [[Gamehelpcrazyfarmers|Crazy Farmers]]&lt;br /&gt;
* [[Gamehelpcribbage|Cribbage]]&lt;br /&gt;
* [[Gamehelpdarkagent|Dark Agent]]&lt;br /&gt;
* [[Gamehelpdiams|Diam&#039;s]]&lt;br /&gt;
* [[Gamehelpdiceforge|Dice Forge]]&lt;br /&gt;
* [[Gamehelpdjambi|Djambi]]&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
* [[Gamehelpdownforce|Downforce]]&lt;br /&gt;
* [[Gamehelpdragoncastle|Dragon Castle]]&lt;br /&gt;
* [[Gamehelpdragonline|Dragon Line]]&lt;br /&gt;
* [[Gamehelpdragonkeeper|Dragon Keeper: The Dungeon]]&lt;br /&gt;
* [[Gamehelpdragonheart|Dragonheart]]&lt;br /&gt;
* [[Gamehelpdungeonroll|Dungeon Roll]]&lt;br /&gt;
* [[Gamehelpdungeontwister|Dungeon Twister]]&lt;br /&gt;
* [[Gamehelpelfenland|Elfenland]]&lt;br /&gt;
* [[Gamehelpeminentdomain|Eminent Domain]]&lt;br /&gt;
* [[Gamehelpakeruption|Eruption]]&lt;br /&gt;
* [[Gamehelpevo|Evo: The &amp;quot;Game no Name&amp;quot;]]&lt;br /&gt;
* [[Gamehelpnorthwestpassage|Expedition: Northwest Passage]]&lt;br /&gt;
* [[Gamehelpfinity|Finity]]&lt;br /&gt;
* [[Gamehelpflamingpyramids|Flaming Pyramids]]&lt;br /&gt;
* [[Gamehelpflorenzacardgame|Florenza: The Card Game]]&lt;br /&gt;
* [[Gamehelpforsale|For Sale]]&lt;br /&gt;
* [[Gamehelpforbiddenisland|Forbidden Island]]&lt;br /&gt;
* [[Gamehelpfourcolorcards|Four Color Cards]]&lt;br /&gt;
* [[Gamehelpfrenchtarot|French Tarot]]&lt;br /&gt;
* [[Gamehelpgaia|Gaia]]&lt;br /&gt;
* [[Gamehelpgearnpiston|Gear &amp;amp; Piston]]&lt;br /&gt;
* [[Gamehelpgo|Go]]&lt;br /&gt;
* [[Gamehelpgomoku|Gomoku]]&lt;br /&gt;
* [[Gamehelpgorami|GORami]]&lt;br /&gt;
* [[Gamehelpgosu|Gosu]]&lt;br /&gt;
* [[Gamehelpguildes|Guildes]]&lt;br /&gt;
* [[Gamehelpgyges|Gygès]]&lt;br /&gt;
* [[Gamehelphacktrick|Hack Trick]]&lt;br /&gt;
* [[Gamehelphaggis|Haggis]]&lt;br /&gt;
* [[Gamehelphaiclue|Haiclue]]&lt;br /&gt;
* [[Gamehelphawaii|Hawaii]]&lt;br /&gt;
* [[Gamehelphanabi|Hanabi]]&lt;br /&gt;
* [[Gamehelphearts|Hearts]]&lt;br /&gt;
* [[Gamehelphex|Hex]]&lt;br /&gt;
* [[Gamehelphive|Hive]]&lt;br /&gt;
* [[Gamehelphungariantarokk|Hungarian Tarokk]]&lt;br /&gt;
* [[Gamehelphypnosia|Hypnosia]]&lt;br /&gt;
* [[Gamehelpicecoldicehockey|Ice Cold Ice Hockey]]&lt;br /&gt;
* [[Gamehelpincangold|Incan Gold]]&lt;br /&gt;
* [[Gamehelpintheyearofthedragon|In the Year of the Dragon]]&lt;br /&gt;
* [[Gamehelpinjawara|Injawara]]&lt;br /&gt;
* [[Gamehelpinnovation|Innovation]]&lt;br /&gt;
* [[Gamehelpissac|Isaac]]&lt;br /&gt;
* [[Gamehelpjaipur|Jaipur]]&lt;br /&gt;
* [[Gamehelpjumpgate|Jump Gate]]&lt;br /&gt;
* [[Gamehelpk2|K2]]&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
* [[Gamehelpkabaleo|Kabaleo]]&lt;br /&gt;
* [[Gamehelpkahuna|Kahuna]]&lt;br /&gt;
* [[Gamehelpkalah|Kalah]]&lt;br /&gt;
* [[Gamehelpkami|Kami]]&lt;br /&gt;
* [[Gamehelpkeyflower|Keyflower]]&lt;br /&gt;
* [[Gamehelpkhronos|Khronos]]&lt;br /&gt;
* [[Gamehelpkingdombuilder|Kingdom Builder]]&lt;br /&gt;
* [[Gamehelpkingdomino|Kingdomino]]&lt;br /&gt;
* [[Gamehelpklaverjassen|Klaverjassen]]&lt;br /&gt;
* [[Gamehelpkoikoi|Koi-koi]]&lt;br /&gt;
* [[Gamehelpkrosmasterarena|Krosmaster Arena]]&lt;br /&gt;
* [[Gamehelpkoryo|Koryŏ]]&lt;br /&gt;
* [[Gamehelpkqj|KQJ]]&lt;br /&gt;
* [[Gamehelplagranja|La Granja]]&lt;br /&gt;
* [[Gamehelpledernierpeuple|Le Dernier Peuple]]&lt;br /&gt;
* [[Gamehelplegendaryinventors|Legendary Inventors]]&lt;br /&gt;
* [[Gamehelplettertycoon|Letter Tycoon]]&lt;br /&gt;
* [[Gamehelplewisandclark|Lewis and Clark]]&lt;br /&gt;
* [[Gamehelplibertalia|Libertalia]]&lt;br /&gt;
* [[Gamehelplinesofaction|Lines of Action]]&lt;br /&gt;
* [[Gamehelplogger|Logger]]&lt;br /&gt;
* [[Gamehelplordsofxidit|Lords of Xidit]]&lt;br /&gt;
* [[Gamehelplostcities|Lost Cities]]&lt;br /&gt;
* [[Gamehelploveletter|Love Letter]]&lt;br /&gt;
* [[Gamehelpluckynumbers|Lucky Numbers]]&lt;br /&gt;
* [[Gamehelpluxor|Luxor]]&lt;br /&gt;
* [[Gamehelpmachiavelli|Machiavelli]]&lt;br /&gt;
* [[Gamehelpmadeira|Madeira]]&lt;br /&gt;
* [[Gamehelpmammalath|Mammalath]]&lt;br /&gt;
* [[Gamehelpmapmaker|Mapmaker: The Gerrymandering Game]]&lt;br /&gt;
* [[Gamehelpmarcopolotwo|Marco Polo II: In the Service of the Khan]]&lt;br /&gt;
* [[Gamehelpmarrakech|Marrakech]]&lt;br /&gt;
* [[Gamehelpmarram|Marram]]&lt;br /&gt;
* [[Gamehelpmartiandice|Martian Dice]]&lt;br /&gt;
* [[Gamehelpmetromania|Metromania]]&lt;br /&gt;
* [[Gamehelpmrjack|Mr Jack]]&lt;br /&gt;
* [[Gamehelpnangaparbat|Nanga Parbat]]&lt;br /&gt;
* [[Gamehelpnautilus|Nautilus]]&lt;br /&gt;
* [[Gamehelpneutreeko|Neutreeko]]&lt;br /&gt;
* [[Gamehelpniagara|Niagara]]&lt;br /&gt;
* [[Gamehelpnile|Nile]]&lt;br /&gt;
* [[Gamehelpninemensmorris|Nine Men&#039;s Morris]]&lt;br /&gt;
* [[Gamehelpninetynine|Ninety-Nine (Trick-taking)]]&lt;br /&gt;
* [[Gamehelpnippon|Nippon]]&lt;br /&gt;
* [[Gamehelpnoirkvi|Noir: Killer versus Inspector]]&lt;br /&gt;
* [[Gamehelpnotalone|Not Alone]]&lt;br /&gt;
* [[Gamehelpnxs|NXS]]&lt;br /&gt;
* [[Gamehelpofftherails|Off the Rails]]&lt;br /&gt;
* [[Gamehelpohhell|Oh Hell!]]&lt;br /&gt;
* [[Gamehelpohseven|Oh Seven]]&lt;br /&gt;
* [[Gamehelporigin|Origin]]&lt;br /&gt;
* [[Gamehelpoutlaws|Outlaws:Last Man Standing]]&lt;br /&gt;
* [[Gamehelppalace|Palace]]&lt;br /&gt;
* [[Gamehelppapayoo|Papayoo]]&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
* [[Gamehelppennypress|Penny Press]]&lt;br /&gt;
* [[Gamehelpdudo|Perudo]]&lt;br /&gt;
* [[Gamehelppi|P.I.]]&lt;br /&gt;
* [[Gamehelppiratenkapern|Piraten Kapern]]&lt;br /&gt;
* [[Gamehelppolis|Polis:Fight for Hegemony]]&lt;br /&gt;
* [[Gamehelppontedeldiavolo|Ponte del Diavolo]]&lt;br /&gt;
* [[Gamehelppotionexplosion|Potion Explosion]]&lt;br /&gt;
* [[Gamehelppresident|President]]&lt;br /&gt;
* [[Gamehelppuertorico|Puerto Rico]]&lt;br /&gt;
* [[Gamehelppylos|Pylos]]&lt;br /&gt;
* [[Gamehelpquantik|Quantik]]&lt;br /&gt;
* [[Gamehelpquantum|Quantum]]&lt;br /&gt;
* [[Gamehelpquarto|Quarto]]&lt;br /&gt;
* [[Gamehelpquoridor|Quoridor]]&lt;br /&gt;
* [[Gamehelpraceforthegalaxy|Race for the Galaxy]]&lt;br /&gt;
* [[Gamehelprallymangt|Rallyman: GT]]&lt;br /&gt;
* [[Gamehelpredseven|Red 7]]&lt;br /&gt;
* [[Gamehelprememberwhen|Remember When]]&lt;br /&gt;
* [[Gamehelpreversi|Reversi]]&lt;br /&gt;
* [[Gamehelprollforthegalaxy|Roll for the Galaxy]]&lt;br /&gt;
* [[Gamehelprussianrailroads|Russian Railroads]]&lt;br /&gt;
* [[Gamehelpsaboteur|Saboteur]]&lt;br /&gt;
* [[Gamehelpsaintpeterburg|Saint Petersburg]]&lt;br /&gt;
* [[Gamehelpsaintpoker|Saint Poker]]&lt;br /&gt;
* [[Gamehelpsantorini|Santorini]]&lt;br /&gt;
* [[Gamehelpsapiens|Sapiens]]&lt;br /&gt;
* [[Gamehelpseasons|Seasons]]&lt;br /&gt;
* [[Gamehelpsecretmoon|Secret Moon]]&lt;br /&gt;
* [[Gamehelpsenet|Senet]]&lt;br /&gt;
* [[Gamehelpsiam|Siam]]&lt;br /&gt;
* [[Gamehelpsignorie|Signorie]]&lt;br /&gt;
* [[Gamehelpskat|Skat]]&lt;br /&gt;
* [[Gamehelpsmallislands|Small Islands]]&lt;br /&gt;
* [[Gamehelpsobek|Sobek]]&lt;br /&gt;
* [[Gamehelpsolo|Solo]]&lt;br /&gt;
* [[Gamehelpsoluna|Soluna]]&lt;br /&gt;
* [[Gamehelpspades|Spades]]&lt;br /&gt;
* [[Gamehelpspyrium|Spyrium]]&lt;br /&gt;
* [[Gamehelpstirfryeighteen|Stir Fry Eighteen]]&lt;br /&gt;
* [[Gamehelpstoneage|Stone Age]]&lt;br /&gt;
* [[Gamehelpsushigo|Sushi Go]]&lt;br /&gt;
* [[Gamehelptabult|Tabult]]&lt;br /&gt;
* [[Gamehelptakaraisland|Takara Island]]&lt;br /&gt;
* [[Gamehelptakenoko|Takenoko]]&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
* [[Gamehelptaluva|Taluva]]&lt;br /&gt;
* [[Gamehelptargi|Targi]]&lt;br /&gt;
* [[Gamehelptashkalar|Tash-Kalar]]&lt;br /&gt;
* [[Gamehelpteatime|Tea Time]]&lt;br /&gt;
* [[Gamehelpteotihuacan|Teotihuacan: City of Gods]]&lt;br /&gt;
* [[Gamehelpterramystica|Terra Mystica]]&lt;br /&gt;
* [[Gamehelpbattleforhill|The Battle for Hill 218]]&lt;br /&gt;
* [[Gamehelptheboss|The Boss]]&lt;br /&gt;
* [[Gamehelpthebuilders|The Builders:Antiquity]]&lt;br /&gt;
* [[Gamehelpthebuilders|The Builders:Middle Ages]]&lt;br /&gt;
* [[Gamehelpthejellymonsterlab|The Jelly Monster Lab]]&lt;br /&gt;
* [[Gamehelpthekingsguild|The King&#039;s Guild]]&lt;br /&gt;
* [[Gamehelpcarrara|The Palaces of Carrara]]&lt;br /&gt;
* [[Gamehelptheruhr|The Ruhr:A Story of Coal Trade]]&lt;br /&gt;
* [[Gamehelpmarcopolo|The Voyages of Marco Polo]]&lt;br /&gt;
* [[Gamehelpwerewolves|The Werewolves of Miller&#039;s Hollow]]&lt;br /&gt;
* [[Gamehelpthermopyles|Thermopyles]]&lt;br /&gt;
* [[Gamehelpthroughtheages|Through the Ages]]&lt;br /&gt;
* [[Gamehelptiki|Tiki]]&lt;br /&gt;
* [[Gamehelptimemasters|Time Masters]]&lt;br /&gt;
* [[Gamehelptabago|Tobago]]&lt;br /&gt;
* [[Gamehelptock|Tock]]&lt;br /&gt;
* [[Gamehelptoeshambo|Toe Sham Bo]]&lt;br /&gt;
* [[Gamehelptokaido|Tokaido]]&lt;br /&gt;
* [[Gamehelptournay|Tournay]]&lt;br /&gt;
* [[Gamehelptrekkingtheworld|Trekking the World]]&lt;br /&gt;
* [[Gamehelptroyes|Troyes]]&lt;br /&gt;
* [[Gamehelpturnthetide|Turn the Tide]]&lt;br /&gt;
* [[Gamehelptwintinbots|Twin Tin Bots]]&lt;br /&gt;
* [[Gamehelptzolkin|Tzolk&#039;in]]&lt;br /&gt;
* [[Gamehelpunclechestnuttablegype|Uncle Chesnut&#039;s Table Gype]]&lt;br /&gt;
* [[Gamehelpunitedsquare|United Square]]&lt;br /&gt;
* [[Gamehelpveggiegarden|Veggie Garden]]&lt;br /&gt;
* [[Gamehelpveletas|Veletas]]&lt;br /&gt;
* [[Gamehelpwelcometo|Welcome To]]&lt;br /&gt;
* [[Gamehelpwelcometonewlasvegas|Welcome To New Las Vegas]]&lt;br /&gt;
* [[Gamehelpwhisttwentytwo|Whist 22]]&lt;br /&gt;
* [[Gamehelpxiangqi|Xiangqi]]&lt;br /&gt;
* [[Gamehelpyatzy|Yahtzee]]&lt;br /&gt;
* [[Gamehelpyokai|Yokai]]&lt;br /&gt;
* [[Gamehelpyokohama|Yokohama]]&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
* [[Gamehelpfistfulofgold|A Fistful of Gold]]&lt;br /&gt;
* [[Gamehelpballoonpop|Balloon Pop]]&lt;br /&gt;
* [[Gamehelpbids|Bids]]&lt;br /&gt;
* [[Gamehelpbiyi|Biyi]]&lt;br /&gt;
* [[Gamehelpblueskies|Blue Skies]]&lt;br /&gt;
* [[Gamehelpcaravan|Caravan]]&lt;br /&gt;
* [[Gamehelpcarnegie|Carnegie]]&lt;br /&gt;
* [[Gamehelpcitybigshoulders|City of the Big Shoulders]]&lt;br /&gt;
* [[Gamehelpdicesummoners|Dice Summoners]]&lt;br /&gt;
* [[Gamehelpdingodreams|Dingo&#039;s Dreams]]&lt;br /&gt;
* [[Gamehelpdinosaurteaparty|Dinosaur Tea Party]]&lt;br /&gt;
* [[Gamehelpdraftosaurus|Draftosaurus]]&lt;br /&gt;
* [[Gamehelpdungeonpetz|Dungeon Petz]]&lt;br /&gt;
* [[Gamehelpfleet|Fleet]]&lt;br /&gt;
* [[Gamehelpgrosstarock|Grosstarock]]&lt;br /&gt;
* [[Gamehelpherooj|Herooj]]&lt;br /&gt;
* [[Gamehelpillustori|Illustori]]&lt;br /&gt;
* [[Gamehelpjekyllvshide|Jekyll vs Hyde]]&lt;br /&gt;
* [[Gamehelpjustdesserts|Just Desserts]]&lt;br /&gt;
* [[Gamehelpmijnlieff|Mijnlieff]]&lt;br /&gt;
* [[Gamehelpnothanks|No Thanks!]]&lt;br /&gt;
* [[Gamehelpone|ONE]]&lt;br /&gt;
* [[Gamehelpparisconnection|Paris Connection]]&lt;br /&gt;
* [[Gamehelppedro|Pedro]]&lt;br /&gt;
* [[Gamehelpphat|Phat]]&lt;br /&gt;
* [[Gamehelppresident|President]]&lt;br /&gt;
* [[Gamehelpquetzal|Quetzal]]&lt;br /&gt;
* [[Gamehelprolledwest|Rolled West]]&lt;br /&gt;
* [[Gamehelproomtwentyfive|Room 25]]&lt;br /&gt;
* [[Gamehelpschroedingerscats|Schrodinger&#039;s Cats]]&lt;br /&gt;
* [[Gamehelpsquadro|Squadro]]&lt;br /&gt;
* [[Gamehelpsteamworks|Steam Works]]&lt;br /&gt;
* [[Gamehelpviamagica|Via Magica]]&lt;br /&gt;
* [[Gamehelpxanadu|Xanadu]]&lt;br /&gt;
* [[Gamehelpyinyang|Yin Yang]]&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
* [[Gamehelpthirteenclues|13 Clues]]&lt;br /&gt;
* [[Gamehelpbang|Bang!]]&lt;br /&gt;
* [[Gamehelpbohnanza|Bohnanza]]&lt;br /&gt;
* [[Gamehelpdicehospital|Dice Hospital]]&lt;br /&gt;
* [[Gamehelpherrlof|Herrlof]]&lt;br /&gt;
&lt;br /&gt;
* [[Gamehelpninetynineaddition|Ninety-Nine (Addition)]]&lt;br /&gt;
* [[Gamehelporiflamme|Oriflamme]]&lt;br /&gt;
* [[Gamehelppinochle|Pinochle]]&lt;br /&gt;
* [[Gamehelppokertexasholdem|Poker Texas Hold&#039;em]]&lt;br /&gt;
* [[Gamehelpresarcana|Res Arcana]]&lt;br /&gt;
* [[Gamehelpsergeantmajor|Sergeant Major]]&lt;br /&gt;
* [[Gamehelpwizard|Wizard]]&lt;br /&gt;
* [[Gamehelpyspahan|Yspahan]]&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
* [[Gamehelpdominion|Dominion]]&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== About available games and their content ==&lt;br /&gt;
&lt;br /&gt;
Games are games and it&#039;s all up to publishers to make them relevant or accurate to history, or not.&lt;br /&gt;
&lt;br /&gt;
We&#039;re focusing on gameplay and rules. We&#039;re not history books, nor an accurate source for anything related to real things.&lt;br /&gt;
&lt;br /&gt;
BGA is against any bad behaviors on real people, and will never EVER join, talk or expose about anything about themes, history or politic.&lt;br /&gt;
&lt;br /&gt;
Also please note that they&#039;re also a source to motivate talks, reflexion, exchange and viewpoints about history and education anywhere else.&lt;br /&gt;
&lt;br /&gt;
We&#039;re a gaming platform, we welcome everyone and do efforts daily to make this place a nice place to play nice games with nice people.&lt;/div&gt;</summary>
		<author><name>Shadowphiar</name></author>
	</entry>
	<entry>
		<id>https://en.doc.boardgamearena.com/index.php?title=Help&amp;diff=6982</id>
		<title>Help</title>
		<link rel="alternate" type="text/html" href="https://en.doc.boardgamearena.com/index.php?title=Help&amp;diff=6982"/>
		<updated>2021-01-22T09:01:27Z</updated>

		<summary type="html">&lt;p&gt;Shadowphiar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An issue? A question?&lt;br /&gt;
&lt;br /&gt;
* [https://boardgamearena.com/#!faq Frequently asked questions] is the most complete source of help for BGA.&lt;br /&gt;
&lt;br /&gt;
* [https://forum.boardgamearena.com Forums] are also helpful to get information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Games ==&lt;br /&gt;
Game names which are displayed in red still need game help/summaries written for them. So help out and write one for them by creating a new page for these games. To do so simply click on them below, this will direct you to a page creation page.&lt;br /&gt;
&amp;lt;table cellpadding=&amp;quot;0&amp;quot; cellspacing=&amp;quot;5&amp;quot; border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td colspan=&amp;quot;5&amp;quot;&amp;gt;&#039;&#039;&#039;Available on BGA&#039;&#039;&#039;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&#039;&#039;&#039;Beta Games&#039;&#039;&#039;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&#039;&#039;&#039;Alpha Games&#039;&#039;&#039;&amp;lt;td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&#039;&#039;&#039;Removed from BGA&#039;&#039;&#039;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
* [[Gamehelpsechsnimmt|6 Nimmt!]]&lt;br /&gt;
* [[Gamehelpsevenwonders|7 Wonders]]&lt;br /&gt;
* [[Gamehelpeightmastersrevenge|8 Master&#039;s Revenge]]&lt;br /&gt;
* [[Gamehelpalhambra|Alhambra]]&lt;br /&gt;
* [[Gamehelpalveole|Alveole]]&lt;br /&gt;
* [[Gamehelpamyitis|Amyitis]]&lt;br /&gt;
* [[Gamehelpapocalypseazcc|Apocalypse at the Zoo of Carson City]]&lt;br /&gt;
* [[Gamehelparmadora|Armadöra]]&lt;br /&gt;
* [[Gamehelpassyria|Assyria]]&lt;br /&gt;
* [[Gamehelpbackgammon|Backgammon]]&lt;br /&gt;
* [[Gamehelpbandido|Bandido]]&lt;br /&gt;
* [[Gamehelpbarbu|Barbu]]&lt;br /&gt;
* [[Gamehelpbattleoflits|Battle of LITS]]&lt;br /&gt;
* [[Gamehelpbattlesheep|Battle Sheep]]&lt;br /&gt;
* [[Gamehelpbattleship|Battleship]]&lt;br /&gt;
* [[Gamehelpbelote|Belote]]&lt;br /&gt;
* [[Gamehelpbigtimesoccer|Big Time Soccer]]&lt;br /&gt;
* [[Gamehelpblooms|Blooms]]&lt;br /&gt;
* [[Gamehelpbobail|Bobail]]&lt;br /&gt;
* [[Gamehelpbombay|Bombay]]&lt;br /&gt;
* [[Gamehelpboomerangaustralia|Boomerang: Australia]]&lt;br /&gt;
* [[Gamehelpbriscola|Briscola]]&lt;br /&gt;
* [[Gamehelpbubbleepop|Bubblee Pop]]&lt;br /&gt;
* [[Gamehelpbutterfly|Butterfly]]&lt;br /&gt;
* [[Gamehelpbuttons|Buttons]]&lt;br /&gt;
* [[Gamehelpcacao|Cacao]]&lt;br /&gt;
* [[Gamehelpcantstop|Can&#039;t Stop]]&lt;br /&gt;
* [[Gamehelpcarcassonne|Carcassonne]]&lt;br /&gt;
* [[Gamehelpcarcassonnehuntersandgatherers|Carrassonne: Hunters and Gatherers]]&lt;br /&gt;
* [[Gamehelpcaribbeanallfours|Caribbean All Fours]]&lt;br /&gt;
* [[Gamehelpcaylus|Caylus]]&lt;br /&gt;
* [[Gamehelpcelestia|Celestia]]&lt;br /&gt;
* [[Gamehelpchakra|Chakra]]&lt;br /&gt;
* [[Gamehelpcheckers|Checkers]]&lt;br /&gt;
* [[Gamehelpchess|Chess]]&lt;br /&gt;
* [[Gamehelpchinagold|China Gold]]&lt;br /&gt;
* [[Gamehelpcinco|Cinco]]&lt;br /&gt;
* [[Gamehelpcircleoflife|Circle of Life]]&lt;br /&gt;
* [[Gamehelpclansofcaledonia|Clans of Caledonia]]&lt;br /&gt;
* [[Gamehelpcoinche|Coinche]]&lt;br /&gt;
* [[Gamehelpcolorpop|Color Pop]]&lt;br /&gt;
* [[Gamehelpcoloretto|Coloretto]]&lt;br /&gt;
* [[Gamehelpcoltexpress|Colt Express]]&lt;br /&gt;
* [[Gamehelpconsonar|Con Sonar!]]&lt;br /&gt;
* [[Gamehelpconcept|Concept]]&lt;br /&gt;
* [[Gamehelpconnectfour|Connect Four]]&lt;br /&gt;
* [[Gamehelpconnect6|Connect 6]]&lt;br /&gt;
* [[Gamehelpcoupcitystate|Coup]]&lt;br /&gt;
* [[Gamehelpcrazyfarmers|Crazy Farmers]]&lt;br /&gt;
* [[Gamehelpcribbage|Cribbage]]&lt;br /&gt;
* [[Gamehelpdarkagent|Dark Agent]]&lt;br /&gt;
* [[Gamehelpdiams|Diam&#039;s]]&lt;br /&gt;
* [[Gamehelpdiceforge|Dice Forge]]&lt;br /&gt;
* [[Gamehelpdjambi|Djambi]]&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
* [[Gamehelpdownforce|Downforce]]&lt;br /&gt;
* [[Gamehelpdragoncastle|Dragon Castle]]&lt;br /&gt;
* [[Gamehelpdragonline|Dragon Line]]&lt;br /&gt;
* [[Gamehelpdragonkeeper|Dragon Keeper: The Dungeon]]&lt;br /&gt;
* [[Gamehelpdragonheart|Dragonheart]]&lt;br /&gt;
* [[Gamehelpdungeonroll|Dungeon Roll]]&lt;br /&gt;
* [[Gamehelpdungeontwister|Dungeon Twister]]&lt;br /&gt;
* [[Gamehelpelfenland|Elfenland]]&lt;br /&gt;
* [[Gamehelpeminentdomain|Eminent Domain]]&lt;br /&gt;
* [[Gamehelpakeruption|Eruption]]&lt;br /&gt;
* [[Gamehelpevo|Evo: The &amp;quot;Game no Name&amp;quot;]]&lt;br /&gt;
* [[Gamehelpnorthwestpassage|Expedition: Northwest Passage]]&lt;br /&gt;
* [[Gamehelpfinity|Finity]]&lt;br /&gt;
* [[Gamehelpflamingpyramids|Flaming Pyramids]]&lt;br /&gt;
* [[Gamehelpflorenzacardgame|Florenza: The Card Game]]&lt;br /&gt;
* [[Gamehelpforsale|For Sale]]&lt;br /&gt;
* [[Gamehelpforbiddenisland|Forbidden Island]]&lt;br /&gt;
* [[Gamehelpfourcolorcards|Four Color Cards]]&lt;br /&gt;
* [[Gamehelpfrenchtarot|French Tarot]]&lt;br /&gt;
* [[Gamehelpgaia|Gaia]]&lt;br /&gt;
* [[Gamehelpgearnpiston|Gear &amp;amp; Piston]]&lt;br /&gt;
* [[Gamehelpgo|Go]]&lt;br /&gt;
* [[Gamehelpgomoku|Gomoku]]&lt;br /&gt;
* [[Gamehelpgorami|GORami]]&lt;br /&gt;
* [[Gamehelpgosu|Gosu]]&lt;br /&gt;
* [[Gamehelpguildes|Guildes]]&lt;br /&gt;
* [[Gamehelpgyges|Gygès]]&lt;br /&gt;
* [[Gamehelphacktrick|Hack Trick]]&lt;br /&gt;
* [[Gamehelphaggis|Haggis]]&lt;br /&gt;
* [[Gamehelphaiclue|Haiclue]]&lt;br /&gt;
* [[Gamehelphawaii|Hawaii]]&lt;br /&gt;
* [[Gamehelphanabi|Hanabi]]&lt;br /&gt;
* [[Gamehelphearts|Hearts]]&lt;br /&gt;
* [[Gamehelphex|Hex]]&lt;br /&gt;
* [[Gamehelphive|Hive]]&lt;br /&gt;
* [[Gamehelphungariantarokk|Hungarian Tarokk]]&lt;br /&gt;
* [[Gamehelphypnosia|Hypnosia]]&lt;br /&gt;
* [[Gamehelpicecoldicehockey|Ice Cold Ice Hockey]]&lt;br /&gt;
* [[Gamehelpincangold|Incan Gold]]&lt;br /&gt;
* [[Gamehelpintheyearofthedragon|In the Year of the Dragon]]&lt;br /&gt;
* [[Gamehelpinjawara|Injawara]]&lt;br /&gt;
* [[Gamehelpinnovation|Innovation]]&lt;br /&gt;
* [[Gamehelpissac|Isaac]]&lt;br /&gt;
* [[Gamehelpjaipur|Jaipur]]&lt;br /&gt;
* [[Gamehelpjumpgate|Jump Gate]]&lt;br /&gt;
* [[Gamehelpk2|K2]]&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
* [[Gamehelpkabaleo|Kabaleo]]&lt;br /&gt;
* [[Gamehelpkahuna|Kahuna]]&lt;br /&gt;
* [[Gamehelpkalah|Kalah]]&lt;br /&gt;
* [[Gamehelpkami|Kami]]&lt;br /&gt;
* [[Gamehelpkeyflower|Keyflower]]&lt;br /&gt;
* [[Gamehelpkhronos|Khronos]]&lt;br /&gt;
* [[Gamehelpkingdombuilder|Kingdom Builder]]&lt;br /&gt;
* [[Gamehelpkingdomino|Kingdomino]]&lt;br /&gt;
* [[Gamehelpklaverjassen|Klaverjassen]]&lt;br /&gt;
* [[Gamehelpkoikoi|Koi-koi]]&lt;br /&gt;
* [[Gamehelpkrosmasterarena|Krosmaster Arena]]&lt;br /&gt;
* [[Gamehelpkoryo|Koryŏ]]&lt;br /&gt;
* [[Gamehelpkqj|KQJ]]&lt;br /&gt;
* [[Gamehelplagranja|La Granja]]&lt;br /&gt;
* [[Gamehelpledernierpeuple|Le Dernier Peuple]]&lt;br /&gt;
* [[Gamehelplegendaryinventors|Legendary Inventors]]&lt;br /&gt;
* [[Gamehelplettertycoon|Letter Tycoon]]&lt;br /&gt;
* [[Gamehelplewisandclark|Lewis and Clark]]&lt;br /&gt;
* [[Gamehelplibertalia|Libertalia]]&lt;br /&gt;
* [[Gamehelplinesofaction|Lines of Action]]&lt;br /&gt;
* [[Gamehelplogger|Logger]]&lt;br /&gt;
* [[Gamehelplordsofxidit|Lords of Xidit]]&lt;br /&gt;
* [[Gamehelplostcities|Lost Cities]]&lt;br /&gt;
* [[Gamehelploveletter|Love Letter]]&lt;br /&gt;
* [[Gamehelpluckynumbers|Lucky Numbers]]&lt;br /&gt;
* [[Gamehelpluxor|Luxor]]&lt;br /&gt;
* [[Gamehelpmachiavelli|Machiavelli]]&lt;br /&gt;
* [[Gamehelpmadeira|Madeira]]&lt;br /&gt;
* [[Gamehelpmammalath|Mammalath]]&lt;br /&gt;
* [[Gamehelpmapmaker|Mapmaker: The Gerrymandering Game]]&lt;br /&gt;
* [[Gamehelpmarcopolotwo|Marco Polo II: In the Service of the Khan]]&lt;br /&gt;
* [[Gamehelpmarrakech|Marrakech]]&lt;br /&gt;
* [[Gamehelpmarram|Marram]]&lt;br /&gt;
* [[Gamehelpmartiandice|Martian Dice]]&lt;br /&gt;
* [[Gamehelpmetromania|Metromania]]&lt;br /&gt;
* [[Gamehelpmrjack|Mr Jack]]&lt;br /&gt;
* [[Gamehelpnangaparbat|Nanga Parbat]]&lt;br /&gt;
* [[Gamehelpnautilus|Nautilus]]&lt;br /&gt;
* [[Gamehelpneutreeko|Neutreeko]]&lt;br /&gt;
* [[Gamehelpniagara|Niagara]]&lt;br /&gt;
* [[Gamehelpnile|Nile]]&lt;br /&gt;
* [[Gamehelpninemensmorris|Nine Men&#039;s Morris]]&lt;br /&gt;
* [[Gamehelpninetynine|Ninety-Nine (Trick-taking)]]&lt;br /&gt;
* [[Gamehelpnippon|Nippon]]&lt;br /&gt;
* [[Gamehelpnoirkvi|Noir: Killer versus Inspector]]&lt;br /&gt;
* [[Gamehelpnotalone|Not Alone]]&lt;br /&gt;
* [[Gamehelpnxs|NXS]]&lt;br /&gt;
* [[Gamehelpofftherails|Off the Rails]]&lt;br /&gt;
* [[Gamehelpohhell|Oh Hell!]]&lt;br /&gt;
* [[Gamehelpohseven|Oh Seven]]&lt;br /&gt;
* [[Gamehelporigin|Origin]]&lt;br /&gt;
* [[Gamehelpoutlaws|Outlaws:Last Man Standing]]&lt;br /&gt;
* [[Gamehelppalace|Palace]]&lt;br /&gt;
* [[Gamehelppapayoo|Papayoo]]&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
* [[Gamehelppennypress|Penny Press]]&lt;br /&gt;
* [[Gamehelpdudo|Perudo]]&lt;br /&gt;
* [[Gamehelppi|P.I.]]&lt;br /&gt;
* [[Gamehelppiratenkapern|Piraten Kapern]]&lt;br /&gt;
* [[Gamehelppolis|Polis:Fight for Hegemony]]&lt;br /&gt;
* [[Gamehelppontedeldiavolo|Ponte del Diavolo]]&lt;br /&gt;
* [[Gamehelppotionexplosion|Potion Explosion]]&lt;br /&gt;
* [[Gamehelppresident|President]]&lt;br /&gt;
* [[Gamehelppuertorico|Puerto Rico]]&lt;br /&gt;
* [[Gamehelppylos|Pylos]]&lt;br /&gt;
* [[Gamehelpquantik|Quantik]]&lt;br /&gt;
* [[Gamehelpquantum|Quantum]]&lt;br /&gt;
* [[Gamehelpquarto|Quarto]]&lt;br /&gt;
* [[Gamehelpquoridor|Quoridor]]&lt;br /&gt;
* [[Gamehelpraceforthegalaxy|Race for the Galaxy]]&lt;br /&gt;
* [[Gamehelprallymangt|Rallyman: GT]]&lt;br /&gt;
* [[Gamehelpredseven|Red 7]]&lt;br /&gt;
* [[Gamehelprememberwhen|Remember When]]&lt;br /&gt;
* [[Gamehelpreversi|Reversi]]&lt;br /&gt;
* [[Gamehelprollforthegalaxy|Roll for the Galaxy]]&lt;br /&gt;
* [[Gamehelprussianrailroads|Russian Railroads]]&lt;br /&gt;
* [[Gamehelpsaboteur|Saboteur]]&lt;br /&gt;
* [[Gamehelpsaintpeterburg|Saint Petersburg]]&lt;br /&gt;
* [[Gamehelpsaintpoker|Saint Poker]]&lt;br /&gt;
* [[Gamehelpsantorini|Santorini]]&lt;br /&gt;
* [[Gamehelpsapiens|Sapiens]]&lt;br /&gt;
* [[Gamehelpseasons|Seasons]]&lt;br /&gt;
* [[Gamehelpsecretmoon|Secret Moon]]&lt;br /&gt;
* [[Gamehelpsenet|Senet]]&lt;br /&gt;
* [[Gamehelpsiam|Siam]]&lt;br /&gt;
* [[Gamehelpsignorie|Signorie]]&lt;br /&gt;
* [[Gamehelpskat|Skat]]&lt;br /&gt;
* [[Gamehelpsmallislands|Small Islands]]&lt;br /&gt;
* [[Gamehelpsobek|Sobek]]&lt;br /&gt;
* [[Gamehelpsolo|Solo]]&lt;br /&gt;
* [[Gamehelpsoluna|Soluna]]&lt;br /&gt;
* [[Gamehelpspades|Spades]]&lt;br /&gt;
* [[Gamehelpspyrium|Spyrium]]&lt;br /&gt;
* [[Gamehelpstirfryeighteen|Stir Fry Eighteen]]&lt;br /&gt;
* [[Gamehelpstoneage|Stone Age]]&lt;br /&gt;
* [[Gamehelpsushigo|Sushi Go]]&lt;br /&gt;
* [[Gamehelptabult|Tabult]]&lt;br /&gt;
* [[Gamehelptakaraisland|Takara Island]]&lt;br /&gt;
* [[Gamehelptakenoko|Takenoko]]&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
* [[Gamehelptaluva|Taluva]]&lt;br /&gt;
* [[Gamehelptargi|Targi]]&lt;br /&gt;
* [[Gamehelptashkalar|Tash-Kalar]]&lt;br /&gt;
* [[Gamehelpteatime|Tea Time]]&lt;br /&gt;
* [[Gamehelpteotihuacan|Teotihuacan: City of Gods]]&lt;br /&gt;
* [[Gamehelpterramystica|Terra Mystica]]&lt;br /&gt;
* [[Gamehelpbattleforhill|The Battle for Hill 218]]&lt;br /&gt;
* [[Gamehelptheboss|The Boss]]&lt;br /&gt;
* [[Gamehelpthebuilders|The Builders:Antiquity]]&lt;br /&gt;
* [[Gamehelpthebuilders|The Builders:Middle Ages]]&lt;br /&gt;
* [[Gamehelpthejellymonsterlab|The Jelly Monster Lab]]&lt;br /&gt;
* [[Gamehelpthekingsguild|The King&#039;s Guild]]&lt;br /&gt;
* [[Gamehelpcarrara|The Palaces of Carrara]]&lt;br /&gt;
* [[Gamehelptheruhr|The Ruhr:A Story of Coal Trade]]&lt;br /&gt;
* [[Gamehelpmarcopolo|The Voyages of Marco Polo]]&lt;br /&gt;
* [[Gamehelpwerewolves|The Werewolves of Miller&#039;s Hollow]]&lt;br /&gt;
* [[Gamehelpthermopyles|Thermopyles]]&lt;br /&gt;
* [[Gamehelpthroughtheages|Through the Ages]]&lt;br /&gt;
* [[Gamehelptiki|Tiki]]&lt;br /&gt;
* [[Gamehelptimemasters|Time Masters]]&lt;br /&gt;
* [[Gamehelptabago|Tobago]]&lt;br /&gt;
* [[Gamehelptock|Tock]]&lt;br /&gt;
* [[Gamehelptoeshambo|Toe Sham Bo]]&lt;br /&gt;
* [[Gamehelptokaido|Tokaido]]&lt;br /&gt;
* [[Gamehelptournay|Tournay]]&lt;br /&gt;
* [[Gamehelptrekkingtheworld|Trekking the World]]&lt;br /&gt;
* [[Gamehelptroyes|Troyes]]&lt;br /&gt;
* [[Gamehelpturnthetide|Turn the Tide]]&lt;br /&gt;
* [[Gamehelptwintinbots|Twin Tin Bots]]&lt;br /&gt;
* [[Gamehelptzolkin|Tzolk&#039;in]]&lt;br /&gt;
* [[Gamehelpunclechestnuttablegype|Uncle Chesnut&#039;s Table Gype]]&lt;br /&gt;
* [[Gamehelpunitedsquare|United Square]]&lt;br /&gt;
* [[Gamehelpveggiegarden|Veggie Garden]]&lt;br /&gt;
* [[Gamehelpveletas|Veletas]]&lt;br /&gt;
* [[Gamehelpwelcometo|Welcome To]]&lt;br /&gt;
* [[Gamehelpwelcometonewlasvegas|Welcome To New Las Vegas]]&lt;br /&gt;
* [[Gamehelpwhisttwentytwo|Whist 22]]&lt;br /&gt;
* [[Gamehelpxiangqi|Xiangqi]]&lt;br /&gt;
* [[Gamehelpyatzy|Yahtzee]]&lt;br /&gt;
* [[Gamehelpyokai|Yokai]]&lt;br /&gt;
* [[Gamehelpyokohama|Yokohama]]&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
* [[Gamehelpfistfulofgold|A Fistful of Gold]]&lt;br /&gt;
* [[Gamehelpballoonpop|Balloon Pop]]&lt;br /&gt;
* [[Gamehelpbids|Bids]]&lt;br /&gt;
* [[Gamehelpbiyi|Biyi]]&lt;br /&gt;
* [[Gamehelpblueskies|Blue Skies]]&lt;br /&gt;
* [[Gamehelpcaravan|Caravan]]&lt;br /&gt;
* [[Gamehelpcarnegie|Carnegie]]&lt;br /&gt;
* [[Gamehelpcitybigshoulders|City of the Big Shoulders]]&lt;br /&gt;
* [[Gamehelpdicesummoners|Dice Summoners]]&lt;br /&gt;
* [[Gamehelpdingodreams|Dingo&#039;s Dreams]]&lt;br /&gt;
* [[Gamehelpdinosaurteaparty|Dinosaur Tea Party]]&lt;br /&gt;
* [[Gamehelpdraftosaurus|Draftosaurus]]&lt;br /&gt;
* [[Gamehelpdungeonpetz|Dungeon Petz]]&lt;br /&gt;
* [[Gamehelpfleet|Fleet]]&lt;br /&gt;
* [[Gamehelpgrosstarock|Grosstarock]]&lt;br /&gt;
* [[Gamehelpherooj|Herooj]]&lt;br /&gt;
* [[Gamehelpillustori|Illustori]]&lt;br /&gt;
* [[Gamehelpjekyllvshide|Jekyll vs Hyde]]&lt;br /&gt;
* [[Gamehelpjustdesserts|Just Desserts]]&lt;br /&gt;
* [[Gamehelpmijnlieff|Mijnlieff]]&lt;br /&gt;
* [[Gamehelpnothanks|No Thanks!]]&lt;br /&gt;
* [[Gamehelpone|ONE]]&lt;br /&gt;
* [[Gamehelpparisconnection|Paris Connection]]&lt;br /&gt;
* [[Gamehelppedro|Pedro]]&lt;br /&gt;
* [[Gamehelpphat|Phat]]&lt;br /&gt;
* [[Gamehelppresident|President]]&lt;br /&gt;
* [[Gamehelpquetzal|Quetzal]]&lt;br /&gt;
* [[Gamehelprolledwest|Rolled West]]&lt;br /&gt;
* [[Gamehelproomtwentyfive|Room 25]]&lt;br /&gt;
* [[Gamehelpschroedingerscats|Schrodinger&#039;s Cats]]&lt;br /&gt;
* [[Gamehelpsquadro|Squadro]]&lt;br /&gt;
* [[Gamehelpviamagica|Via Magica]]&lt;br /&gt;
* [[Gamehelpxanadu|Xanadu]]&lt;br /&gt;
* [[Gamehelpyinyang|Yin Yang]]&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
* [[Gamehelpthirteenclues|13 Clues]]&lt;br /&gt;
* [[Gamehelpbang|Bang!]]&lt;br /&gt;
* [[Gamehelpbohnanza|Bohnanza]]&lt;br /&gt;
* [[Gamehelpdicehospital|Dice Hospital]]&lt;br /&gt;
* [[Gamehelpherrlof|Herrlof]]&lt;br /&gt;
&lt;br /&gt;
* [[Gamehelpninetynineaddition|Ninety-Nine (Addition)]]&lt;br /&gt;
* [[Gamehelporiflamme|Oriflamme]]&lt;br /&gt;
* [[Gamehelppinochle|Pinochle]]&lt;br /&gt;
* [[Gamehelppokertexasholdem|Poker Texas Hold&#039;em]]&lt;br /&gt;
* [[Gamehelpresarcana|Res Arcana]]&lt;br /&gt;
* [[Gamehelpsergeantmajor|Sergeant Major]]&lt;br /&gt;
* [[Gamehelpwizard|Wizard]]&lt;br /&gt;
* [[Gamehelpyspahan|Yspahan]]&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
* [[Gamehelpdominion|Dominion]]&lt;br /&gt;
  &amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== About available games and their content ==&lt;br /&gt;
&lt;br /&gt;
Games are games and it&#039;s all up to publishers to make them relevant or accurate to history, or not.&lt;br /&gt;
&lt;br /&gt;
We&#039;re focusing on gameplay and rules. We&#039;re not history books, nor an accurate source for anything related to real things.&lt;br /&gt;
&lt;br /&gt;
BGA is against any bad behaviors on real people, and will never EVER join, talk or expose about anything about themes, history or politic.&lt;br /&gt;
&lt;br /&gt;
Also please note that they&#039;re also a source to motivate talks, reflexion, exchange and viewpoints about history and education anywhere else.&lt;br /&gt;
&lt;br /&gt;
We&#039;re a gaming platform, we welcome everyone and do efforts daily to make this place a nice place to play nice games with nice people.&lt;/div&gt;</summary>
		<author><name>Shadowphiar</name></author>
	</entry>
	<entry>
		<id>https://en.doc.boardgamearena.com/index.php?title=Gamehelpsteamworks&amp;diff=6448</id>
		<title>Gamehelpsteamworks</title>
		<link rel="alternate" type="text/html" href="https://en.doc.boardgamearena.com/index.php?title=Gamehelpsteamworks&amp;diff=6448"/>
		<updated>2020-12-11T11:10:33Z</updated>

		<summary type="html">&lt;p&gt;Shadowphiar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
Steam Works is a worker placement game in which you are an inventor of ingenious devices, competing for the favour of Her Majesty Queen Victoria. Over the course of the game you will take components from the conveyor belts on the main board, and combine them with power sources to manufacture Devices which function as action spaces for all players. You gain prestige points when an opponent uses a device you manufactured, and from activating certain certain components, and for the components in devices you own.&lt;br /&gt;
&lt;br /&gt;
Each player takes one persona board (these can be distributed randomly, or drafted in reverse order of play), and elects to play side A or B. The side A of all boards have different starting resources but the same action spaces available, while side B of each board also has differing action spaces and some special rules.&lt;br /&gt;
&lt;br /&gt;
Each turn, you place your leftmost mechanic onto an unoccupied action space (one on your own persona board, or on a power source in any built device). The cost to place a mechanic is printed below that mechanic&#039;s space on the persona board; if you cannot (or do not wish to) pay that cost, you may instead pass with that mechanic and collect the same cost instead of paying it.&lt;br /&gt;
&lt;br /&gt;
When all players have placed all their mechanics, the round ends. All mechanics return to their owner&#039;s persona board, the conveyor belts fill up, and the first player marker advances. If the current age&#039;s clock tokens have all been awarded, then the next Age opens: each player gains a mechanic, and a new supply of more powerful tiles becomes available. At the end of Age III the game is over and the player who has the most prestige is declared the winner. (Ties are decided by the most leftover money, sources and components combined).&lt;br /&gt;
&lt;br /&gt;
== Action Spaces ==&lt;br /&gt;
&lt;br /&gt;
The action spaces on side A of the persona board have the following effects:&lt;br /&gt;
&lt;br /&gt;
# Take the rightmost tile of any conveyor belt.&lt;br /&gt;
# Take a basic power source of your choice.&lt;br /&gt;
# Manufacture a device containing exactly two tiles from your hand.&lt;br /&gt;
# Activate one power source in a device you have already built, without placing a mechanic on it.&lt;br /&gt;
&lt;br /&gt;
A manufactured device must contain at least one source, and at least one component. A source and a component are connected when the source provides at least one type of power that the component accepts. Invalid connections are allowed to exist in your device but every tile is required to have at least one valid connection. &lt;br /&gt;
&lt;br /&gt;
When a mechanic is placed on the power source of a built device, every component connected to it may be activated in the order of the player&#039;s choice. Some components have different effects depending on whether they are supplied with clockwork, steam or electrickal power - if the source is capable of providing more than one of these, you have the choice of which effect is applied.&lt;br /&gt;
&lt;br /&gt;
=== Age I components ===&lt;br /&gt;
&lt;br /&gt;
; Collecting Resources&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Condenser&#039;&#039;&#039; you may take two basic sources of whichever type of power is supplying the Condenser.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Innovation Turbine&#039;&#039;&#039; you may take a tile from an unlocked supply deck, or pay £1 to choose one tile from two revealed. (Note: You cannot Undo past the point that the tiles are revealed.)&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Librarifier&#039;&#039;&#039; you may take any component from the Age I conveyor belts if powered by Clockwork, from the Age II belt if powered by Steam, or the Age III belt if powered by Electrickal.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Miscellanerie&#039;&#039;&#039; you take 2 coins and a basic power source of your choice. If an opponent owns the device, they get one basic source of the same type.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Monetiser&#039;&#039;&#039; you collect 3 coins.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Scroll Rack&#039;&#039;&#039;&#039; you may take any component from the conveyor belts, paying some coins depending on where it is located.&lt;br /&gt;
; Building Devices&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Manufacturer&#039;&#039;&#039; you may use sources and components from your hand to build a new device, containing exactly 2 tiles if the Manufacturer is powered by Clockwork, exactly 3 tiles if the Manufacturer is powered by Steam, or exactly 4 tiles if the Manufacturer is powered by Electrickal (though the device does not have to be the same &#039;&#039;shape&#039;&#039; as the examples on the Manufacturer tile). &lt;br /&gt;
: When you activate the &#039;&#039;&#039;Sourcer&#039;&#039;&#039; you may select a basic source from the supplies and add it to any device on the table. (It must be a valid connection). If the device containing the Sourcer is owned by an opponent, they get a coin.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Upgrader&#039;&#039;&#039; you may select any source or component from your hand and add it to any device on the table that previous contained 2/3/4 tiles, when Upgrader is powered by Clockwork/Steam/Electrickal respectively. The new tile must have a valid connection. &lt;br /&gt;
; Other Effects&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Alarm Chronometer&#039;&#039;&#039; you advance the start player marker, once for free, and again for each £1 spent. (Remember it will still advance once more at the end of the round).&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Distiller&#039;&#039;&#039; you may discard one source from your hand to gain £5.&lt;br /&gt;
&lt;br /&gt;
=== Age II components ===&lt;br /&gt;
; Collecting Resources&lt;br /&gt;
: The &#039;&#039;&#039;Amplicondenser&#039;&#039;&#039; works like the Condenser, but you take three sources when you activate it. If the device is owned by an opponent, they get one too.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Resonator&#039;&#039;&#039; you may take from the conveyor belts any component which contains a Clockwork/Steam/Electrickal connector that is the same as the one powering the resonator.&lt;br /&gt;
; Building Devices&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Insta-factor&#039;&#039;&#039; you must pay 2 coins, then you take a Manufacturer action, then you may immediately activate one of the sources in your new device.&lt;br /&gt;
; Powering Devices&lt;br /&gt;
: &#039;&#039;&#039;ElectroClock&#039;&#039;&#039;, &#039;&#039;&#039;ElectroSteam&#039;&#039;&#039; and &#039;&#039;&#039;SteamWork&#039;&#039;&#039; sources supply your choice of two power types in each direction.&lt;br /&gt;
: The &#039;&#039;&#039;Iterator&#039;&#039;&#039; is placed adjacent to another component (and may be rotated to fit your device). Immediately after that component is activated, you may activate it once again with the same power input.&lt;br /&gt;
: The &#039;&#039;&#039;Power Converter&#039;&#039;&#039; is placed between a source and up to three other components (and may be rotated to fit your device). &lt;br /&gt;
; Earning Prestige&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Anthem Organ&#039;&#039;&#039; you may trade one source for 1 Prestige, or three sources for 2 Prestige.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Patriotic Haiku Generator&#039;&#039;&#039; you may trade one coin for 1 Prestige, or three coins for 2 Prestige.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Statue Sculptifier&#039;&#039;&#039; you may trade any two sources for 1 Prestige, or exactly a Steam source and an Electrickal source for 2 Prestige.&lt;br /&gt;
; Other Effects&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Automaton&#039;&#039;&#039; you may move your Automaton token from the main board onto your persona board. On your next turn you may use the Automaton as a mechanic. At the end of the round it goes back to the main board. This can only be used once per round, if your automaton is not on the main board then activating the component has no effect.&lt;br /&gt;
&lt;br /&gt;
=== Age III components ===&lt;br /&gt;
; Collecting Resources&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Ubiquity Conveyor&#039;&#039;&#039; you may take any tile from the conveyor belts, or you may pay 2 coins to take any two tiles.&lt;br /&gt;
; Building Devices&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Expander&#039;&#039;&#039; you may select any source or component from your hand and add it to any device on the table. The new tile must have a valid connection. &lt;br /&gt;
; Powering Devices&lt;br /&gt;
: The &#039;&#039;&#039;Iteration Gears&#039;&#039;&#039; supplies clockwork power in each direction. After the device has been activated once, it is immediately activated again.&lt;br /&gt;
: The &#039;&#039;&#039;Universal Source&#039;&#039;&#039; supplies your choice of power in each direction. Two mechanics can be placed on this tile, either by different players or by the same player in another turn.&lt;br /&gt;
; Earning Prestige &lt;br /&gt;
: &#039;&#039;&#039;Chrome&#039;&#039;&#039; has no activation effect, However when built in a device it is worth 2 Prestige points rather than the usual 1.&lt;br /&gt;
: &#039;&#039;&#039;Crescendo Organ&#039;&#039;&#039; works similarly to the Anthem Organ, but you may trade two sources for 2 Prestige or three sources for 3 Prestige.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Inflater&#039;&#039;&#039; you gain 1 Prestige. If the device containing the Inflater is owned by an opponent, they also get 1 Prestige.&lt;br /&gt;
: When you activate &#039;&#039;&#039;Ornament Grinder&#039;&#039;&#039; you may trade one tile other than a basic source for 1 Prestige, or two tiles for 3 Prestige.&lt;br /&gt;
: When you activate &#039;&#039;&#039;Patriotic Sonnet Generator&#039;&#039;&#039; you may trade two coins for 2 Prestige, or four coins for 3 Prestige.&lt;br /&gt;
&lt;br /&gt;
== 2-Player Changes ==&lt;br /&gt;
&lt;br /&gt;
In a 2-Player game, the reward when the opponent uses your device is one coin instead of one Prestige. One coin is removed from the current age&#039;s stack every round.&lt;br /&gt;
&lt;br /&gt;
== Persona B-side Special Rules ==&lt;br /&gt;
&lt;br /&gt;
; Countess Eva Kinarney&lt;br /&gt;
: Eva pays her mechanics in Electrickal sources (and receives Electrickal sources when passing).&lt;br /&gt;
; Duke Augustus Shaughness, III&lt;br /&gt;
: Augustus has his Automaton available every round, but it may only be used to activate spaces on the persona board. It can be played in any order relative to the other mechanics.&lt;/div&gt;</summary>
		<author><name>Shadowphiar</name></author>
	</entry>
	<entry>
		<id>https://en.doc.boardgamearena.com/index.php?title=Gamehelpsteamworks&amp;diff=6447</id>
		<title>Gamehelpsteamworks</title>
		<link rel="alternate" type="text/html" href="https://en.doc.boardgamearena.com/index.php?title=Gamehelpsteamworks&amp;diff=6447"/>
		<updated>2020-12-11T11:08:54Z</updated>

		<summary type="html">&lt;p&gt;Shadowphiar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
Steam Works is a worker placement game in which you are an inventor of ingenious devices, competing for the favour of Her Majesty Queen Victoria. Over the course of the game you will take components from the conveyor belts on the main board, and combine them with power sources to manufacture Devices which function as action spaces for all players. You gain prestige points when an opponent uses a device you manufactured, and from activating certain certain components, and for the components in devices you own.&lt;br /&gt;
&lt;br /&gt;
Each player takes one persona board (these can be distributed randomly, or drafted in reverse order of play), and elects to play side A or B. The side A of all boards have different starting resources but the same action spaces available, while side B of each board also has differing action spaces and some special rules.&lt;br /&gt;
&lt;br /&gt;
Each turn, you place your leftmost mechanic onto an unoccupied action space (one on your own persona board, or on a power source in any built device). The cost to place a mechanic is printed below that mechanic&#039;s space on the persona board; if you cannot (or do not wish to) pay that cost, you may instead pass with that mechanic and collect the same cost instead of paying it.&lt;br /&gt;
&lt;br /&gt;
When all players have placed all their mechanics, the round ends. All workers return to their owner&#039;s persona board, the conveyor belts fill up, and the first player marker advances. If the current age&#039;s clock tokens have all been awarded, then the next Age opens: each player gains a worker, and a new supply of more powerful tiles becomes available. At the end of Age III the game is over and the player who has the most prestige is declared the winner. (Ties are decided by the most leftover money, sources and components combined).&lt;br /&gt;
&lt;br /&gt;
== Action Spaces ==&lt;br /&gt;
&lt;br /&gt;
The action spaces on side A of the persona board have the following effects:&lt;br /&gt;
&lt;br /&gt;
# Take the rightmost tile of any conveyor belt.&lt;br /&gt;
# Take a basic power source of your choice.&lt;br /&gt;
# Manufacture a device containing exactly two tiles from your hand.&lt;br /&gt;
# Activate one power source in a device you have already built, without placing a worker on it.&lt;br /&gt;
&lt;br /&gt;
A manufactured device must contain at least one source, and at least one component. A source and a component are connected when the source provides at least one type of power that the component accepts. Invalid connections are allowed to exist in your device but every tile is required to have at least one valid connection. &lt;br /&gt;
&lt;br /&gt;
When a mechanic is placed on the power source of a built device, every component connected to it may be activated in the order of the player&#039;s choice. Some components have different effects depending on whether they are supplied with clockwork, steam or electrickal power - if the source is capable of providing more than one of these, you have the choice of which effect is applied.&lt;br /&gt;
&lt;br /&gt;
=== Age I components ===&lt;br /&gt;
&lt;br /&gt;
; Collecting Resources&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Condenser&#039;&#039;&#039; you may take two basic sources of whichever type of power is supplying the Condenser.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Innovation Turbine&#039;&#039;&#039; you may take a tile from an unlocked supply deck, or pay £1 to choose one tile from two revealed. (Note: You cannot Undo past the point that the tiles are revealed.)&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Librarifier&#039;&#039;&#039; you may take any component from the Age I conveyor belts if powered by Clockwork, from the Age II belt if powered by Steam, or the Age III belt if powered by Electrickal.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Miscellanerie&#039;&#039;&#039; you take 2 coins and a basic power source of your choice. If an opponent owns the device, they get one basic source of the same type.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Monetiser&#039;&#039;&#039; you collect 3 coins.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Scroll Rack&#039;&#039;&#039;&#039; you may take any component from the conveyor belts, paying some coins depending on where it is located.&lt;br /&gt;
; Building Devices&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Manufacturer&#039;&#039;&#039; you may use sources and components from your hand to build a new device, containing exactly 2 tiles if the Manufacturer is powered by Clockwork, exactly 3 tiles if the Manufacturer is powered by Steam, or exactly 4 tiles if the Manufacturer is powered by Electrickal (though the device does not have to be the same &#039;&#039;shape&#039;&#039; as the examples on the Manufacturer tile). &lt;br /&gt;
: When you activate the &#039;&#039;&#039;Sourcer&#039;&#039;&#039; you may select a basic source from the supplies and add it to any device on the table. (It must be a valid connection). If the device containing the Sourcer is owned by an opponent, they get a coin.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Upgrader&#039;&#039;&#039; you may select any source or component from your hand and add it to any device on the table that previous contained 2/3/4 tiles, when Upgrader is powered by Clockwork/Steam/Electrickal respectively. The new tile must have a valid connection. &lt;br /&gt;
; Other Effects&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Alarm Chronometer&#039;&#039;&#039; you advance the start player marker, once for free, and again for each £1 spent. (Remember it will still advance once more at the end of the round).&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Distiller&#039;&#039;&#039; you may discard one source from your hand to gain £5.&lt;br /&gt;
&lt;br /&gt;
=== Age II components ===&lt;br /&gt;
; Collecting Resources&lt;br /&gt;
: The &#039;&#039;&#039;Amplicondenser&#039;&#039;&#039; works like the Condenser, but you take three sources when you activate it. If the device is owned by an opponent, they get one too.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Resonator&#039;&#039;&#039; you may take from the conveyor belts any component which contains a Clockwork/Steam/Electrickal connector that is the same as the one powering the resonator.&lt;br /&gt;
; Building Devices&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Insta-factor&#039;&#039;&#039; you must pay 2 coins, then you take a Manufacturer action, then you may immediately activate one of the sources in your new device.&lt;br /&gt;
; Powering Devices&lt;br /&gt;
: &#039;&#039;&#039;ElectroClock&#039;&#039;&#039;, &#039;&#039;&#039;ElectroSteam&#039;&#039;&#039; and &#039;&#039;&#039;SteamWork&#039;&#039;&#039; sources supply your choice of two power types in each direction.&lt;br /&gt;
: The &#039;&#039;&#039;Iterator&#039;&#039;&#039; is placed adjacent to another component (and may be rotated to fit your device). Immediately after that component is activated, you may activate it once again with the same power input.&lt;br /&gt;
: The &#039;&#039;&#039;Power Converter&#039;&#039;&#039; is placed between a source and up to three other components (and may be rotated to fit your device). &lt;br /&gt;
; Earning Prestige&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Anthem Organ&#039;&#039;&#039; you may trade one source for 1 Prestige, or three sources for 2 Prestige.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Patriotic Haiku Generator&#039;&#039;&#039; you may trade one coin for 1 Prestige, or three coins for 2 Prestige.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Statue Sculptifier&#039;&#039;&#039; you may trade any two sources for 1 Prestige, or exactly a Steam source and an Electrickal source for 2 Prestige.&lt;br /&gt;
; Other Effects&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Automaton&#039;&#039;&#039; you may move your Automaton token from the main board onto your persona board. On your next turn you may use the Automaton as a mechanic. At the end of the round it goes back to the main board. This can only be used once per round, if your automaton is not on the main board then activating the component has no effect.&lt;br /&gt;
&lt;br /&gt;
=== Age III components ===&lt;br /&gt;
; Collecting Resources&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Ubiquity Conveyor&#039;&#039;&#039; you may take any tile from the conveyor belts, or you may pay 2 coins to take any two tiles.&lt;br /&gt;
; Building Devices&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Expander&#039;&#039;&#039; you may select any source or component from your hand and add it to any device on the table. The new tile must have a valid connection. &lt;br /&gt;
; Powering Devices&lt;br /&gt;
: The &#039;&#039;&#039;Iteration Gears&#039;&#039;&#039; supplies clockwork power in each direction. After the device has been activated once, it is immediately activated again.&lt;br /&gt;
: The &#039;&#039;&#039;Universal Source&#039;&#039;&#039; supplies your choice of power in each direction. Two mechanics can be placed on this tile, either by different players or by the same player in another turn.&lt;br /&gt;
; Earning Prestige &lt;br /&gt;
: &#039;&#039;&#039;Chrome&#039;&#039;&#039; has no activation effect, However when built in a device it is worth 2 Prestige points rather than the usual 1.&lt;br /&gt;
: &#039;&#039;&#039;Crescendo Organ&#039;&#039;&#039; works similarly to the Anthem Organ, but you may trade two sources for 2 Prestige or three sources for 3 Prestige.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Inflater&#039;&#039;&#039; you gain 1 Prestige. If the device containing the Inflater is owned by an opponent, they also get 1 Prestige.&lt;br /&gt;
: When you activate &#039;&#039;&#039;Ornament Grinder&#039;&#039;&#039; you may trade one tile other than a basic source for 1 Prestige, or two tiles for 3 Prestige.&lt;br /&gt;
: When you activate &#039;&#039;&#039;Patriotic Sonnet Generator&#039;&#039;&#039; you may trade two coins for 2 Prestige, or four coins for 3 Prestige.&lt;br /&gt;
&lt;br /&gt;
== 2-Player Changes ==&lt;br /&gt;
&lt;br /&gt;
In a 2-Player game, the reward when the opponent uses your device is one coin instead of one Prestige. One coin is removed from the current age&#039;s stack every round.&lt;br /&gt;
&lt;br /&gt;
== Persona B-side Special Rules ==&lt;br /&gt;
&lt;br /&gt;
; Countess Eva Kinarney&lt;br /&gt;
: Eva pays her mechanics in Electrickal sources (and receives Electrickal sources when passing).&lt;br /&gt;
; Duke Augustus Shaughness, III&lt;br /&gt;
: Augustus has his Automaton available every round, but it may only be used to activate spaces on the persona board. It can be played in any order relative to the other mechanics.&lt;/div&gt;</summary>
		<author><name>Shadowphiar</name></author>
	</entry>
	<entry>
		<id>https://en.doc.boardgamearena.com/index.php?title=Gamehelpsteamworks&amp;diff=6446</id>
		<title>Gamehelpsteamworks</title>
		<link rel="alternate" type="text/html" href="https://en.doc.boardgamearena.com/index.php?title=Gamehelpsteamworks&amp;diff=6446"/>
		<updated>2020-12-11T11:07:13Z</updated>

		<summary type="html">&lt;p&gt;Shadowphiar: /* Persona B-side Special Rules */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
Steam Works is a worker placement game in which you are an inventor of ingenious devices, competing for the favour of Her Majesty Queen Victoria. Over the course of the game you will take components from the conveyor belts on the main board, and combine them with power sources to manufacture Devices which function as action spaces for all players. You gain prestige points when an opponent uses a device you manufactured, and from activating certain certain components, and for the components in devices you own.&lt;br /&gt;
&lt;br /&gt;
Each player takes one persona board (these can be distributed randomly, or drafted in reverse order of play), and elects to play side A or B. The side A of all boards have different starting resources but the same action spaces available, while side B of each board also has differing action spaces and some special rules.&lt;br /&gt;
&lt;br /&gt;
Each turn, you place one mechanic on an unoccupied action space (one on your own persona board, or on a power source in any built device). The cost to place a mechanic is printed below that mechanic&#039;s space on the persona board; if you cannot (or do not wish to) pay that cost, you may instead pass with that worker and collect that cost.&lt;br /&gt;
&lt;br /&gt;
When all players have placed all their mechanics, the round ends. All workers return to their owner&#039;s persona board, the conveyor belts fill up, and the first player marker advances. If the current age&#039;s clock tokens have all been awarded, then the next Age opens: each player gains a worker, and a new supply of more powerful tiles becomes available. At the end of Age III the game is over and the player who has the most prestige is declared the winner. (Ties are decided by the most leftover money, sources and components combined).&lt;br /&gt;
&lt;br /&gt;
== Action Spaces ==&lt;br /&gt;
&lt;br /&gt;
The action spaces on side A of the persona board have the following effects:&lt;br /&gt;
&lt;br /&gt;
# Take the rightmost tile of any conveyor belt.&lt;br /&gt;
# Take a basic power source of your choice.&lt;br /&gt;
# Manufacture a device containing exactly two tiles from your hand.&lt;br /&gt;
# Activate one power source in a device you have already built, without placing a worker on it.&lt;br /&gt;
&lt;br /&gt;
A manufactured device must contain at least one source, and at least one component. A source and a component are connected when the source provides at least one type of power that the component accepts. Invalid connections are allowed to exist in your device but every tile is required to have at least one valid connection. &lt;br /&gt;
&lt;br /&gt;
When a mechanic is placed on the power source of a built device, every component connected to it may be activated in the order of the player&#039;s choice. Some components have different effects depending on whether they are supplied with clockwork, steam or electrickal power - if the source is capable of providing more than one of these, you have the choice of which effect is applied.&lt;br /&gt;
&lt;br /&gt;
=== Age I components ===&lt;br /&gt;
&lt;br /&gt;
; Collecting Resources&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Condenser&#039;&#039;&#039; you may take two basic sources of whichever type of power is supplying the Condenser.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Innovation Turbine&#039;&#039;&#039; you may take a tile from an unlocked supply deck, or pay £1 to choose one tile from two revealed. (Note: You cannot Undo past the point that the tiles are revealed.)&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Librarifier&#039;&#039;&#039; you may take any component from the Age I conveyor belts if powered by Clockwork, from the Age II belt if powered by Steam, or the Age III belt if powered by Electrickal.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Miscellanerie&#039;&#039;&#039; you take 2 coins and a basic power source of your choice. If an opponent owns the device, they get one basic source of the same type.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Monetiser&#039;&#039;&#039; you collect 3 coins.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Scroll Rack&#039;&#039;&#039;&#039; you may take any component from the conveyor belts, paying some coins depending on where it is located.&lt;br /&gt;
; Building Devices&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Manufacturer&#039;&#039;&#039; you may use sources and components from your hand to build a new device, containing exactly 2 tiles if the Manufacturer is powered by Clockwork, exactly 3 tiles if the Manufacturer is powered by Steam, or exactly 4 tiles if the Manufacturer is powered by Electrickal (though the device does not have to be the same &#039;&#039;shape&#039;&#039; as the examples on the Manufacturer tile). &lt;br /&gt;
: When you activate the &#039;&#039;&#039;Sourcer&#039;&#039;&#039; you may select a basic source from the supplies and add it to any device on the table. (It must be a valid connection). If the device containing the Sourcer is owned by an opponent, they get a coin.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Upgrader&#039;&#039;&#039; you may select any source or component from your hand and add it to any device on the table that previous contained 2/3/4 tiles, when Upgrader is powered by Clockwork/Steam/Electrickal respectively. The new tile must have a valid connection. &lt;br /&gt;
; Other Effects&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Alarm Chronometer&#039;&#039;&#039; you advance the start player marker, once for free, and again for each £1 spent. (Remember it will still advance once more at the end of the round).&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Distiller&#039;&#039;&#039; you may discard one source from your hand to gain £5.&lt;br /&gt;
&lt;br /&gt;
=== Age II components ===&lt;br /&gt;
; Collecting Resources&lt;br /&gt;
: The &#039;&#039;&#039;Amplicondenser&#039;&#039;&#039; works like the Condenser, but you take three sources when you activate it. If the device is owned by an opponent, they get one too.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Resonator&#039;&#039;&#039; you may take from the conveyor belts any component which contains a Clockwork/Steam/Electrickal connector that is the same as the one powering the resonator.&lt;br /&gt;
; Building Devices&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Insta-factor&#039;&#039;&#039; you must pay 2 coins, then you take a Manufacturer action, then you may immediately activate one of the sources in your new device.&lt;br /&gt;
; Powering Devices&lt;br /&gt;
: &#039;&#039;&#039;ElectroClock&#039;&#039;&#039;, &#039;&#039;&#039;ElectroSteam&#039;&#039;&#039; and &#039;&#039;&#039;SteamWork&#039;&#039;&#039; sources supply your choice of two power types in each direction.&lt;br /&gt;
: The &#039;&#039;&#039;Iterator&#039;&#039;&#039; is placed adjacent to another component (and may be rotated to fit your device). Immediately after that component is activated, you may activate it once again with the same power input.&lt;br /&gt;
: The &#039;&#039;&#039;Power Converter&#039;&#039;&#039; is placed between a source and up to three other components (and may be rotated to fit your device). &lt;br /&gt;
; Earning Prestige&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Anthem Organ&#039;&#039;&#039; you may trade one source for 1 Prestige, or three sources for 2 Prestige.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Patriotic Haiku Generator&#039;&#039;&#039; you may trade one coin for 1 Prestige, or three coins for 2 Prestige.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Statue Sculptifier&#039;&#039;&#039; you may trade any two sources for 1 Prestige, or exactly a Steam source and an Electrickal source for 2 Prestige.&lt;br /&gt;
; Other Effects&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Automaton&#039;&#039;&#039; you may move your Automaton token from the main board onto your persona board. On your next turn you may use the Automaton as a mechanic. At the end of the round it goes back to the main board. This can only be used once per round, if your automaton is not on the main board then activating the component has no effect.&lt;br /&gt;
&lt;br /&gt;
=== Age III components ===&lt;br /&gt;
; Collecting Resources&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Ubiquity Conveyor&#039;&#039;&#039; you may take any tile from the conveyor belts, or you may pay 2 coins to take any two tiles.&lt;br /&gt;
; Building Devices&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Expander&#039;&#039;&#039; you may select any source or component from your hand and add it to any device on the table. The new tile must have a valid connection. &lt;br /&gt;
; Powering Devices&lt;br /&gt;
: The &#039;&#039;&#039;Iteration Gears&#039;&#039;&#039; supplies clockwork power in each direction. After the device has been activated once, it is immediately activated again.&lt;br /&gt;
: The &#039;&#039;&#039;Universal Source&#039;&#039;&#039; supplies your choice of power in each direction. Two mechanics can be placed on this tile, either by different players or by the same player in another turn.&lt;br /&gt;
; Earning Prestige &lt;br /&gt;
: &#039;&#039;&#039;Chrome&#039;&#039;&#039; has no activation effect, However when built in a device it is worth 2 Prestige points rather than the usual 1.&lt;br /&gt;
: &#039;&#039;&#039;Crescendo Organ&#039;&#039;&#039; works similarly to the Anthem Organ, but you may trade two sources for 2 Prestige or three sources for 3 Prestige.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Inflater&#039;&#039;&#039; you gain 1 Prestige. If the device containing the Inflater is owned by an opponent, they also get 1 Prestige.&lt;br /&gt;
: When you activate &#039;&#039;&#039;Ornament Grinder&#039;&#039;&#039; you may trade one tile other than a basic source for 1 Prestige, or two tiles for 3 Prestige.&lt;br /&gt;
: When you activate &#039;&#039;&#039;Patriotic Sonnet Generator&#039;&#039;&#039; you may trade two coins for 2 Prestige, or four coins for 3 Prestige.&lt;br /&gt;
&lt;br /&gt;
== 2-Player Changes ==&lt;br /&gt;
&lt;br /&gt;
In a 2-Player game, the reward when the opponent uses your device is one coin instead of one Prestige. One coin is removed from the current age&#039;s stack every round.&lt;br /&gt;
&lt;br /&gt;
== Persona B-side Special Rules ==&lt;br /&gt;
&lt;br /&gt;
; Countess Eva Kinarney&lt;br /&gt;
: Eva pays her mechanics in Electrickal sources (and receives Electrickal sources when passing).&lt;br /&gt;
; Duke Augustus Shaughness, III&lt;br /&gt;
: Augustus has his Automaton available every round, but it may only be used to activate spaces on the persona board. It can be played in any order relative to the other mechanics.&lt;/div&gt;</summary>
		<author><name>Shadowphiar</name></author>
	</entry>
	<entry>
		<id>https://en.doc.boardgamearena.com/index.php?title=Gamehelpsteamworks&amp;diff=6445</id>
		<title>Gamehelpsteamworks</title>
		<link rel="alternate" type="text/html" href="https://en.doc.boardgamearena.com/index.php?title=Gamehelpsteamworks&amp;diff=6445"/>
		<updated>2020-12-11T11:06:12Z</updated>

		<summary type="html">&lt;p&gt;Shadowphiar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
Steam Works is a worker placement game in which you are an inventor of ingenious devices, competing for the favour of Her Majesty Queen Victoria. Over the course of the game you will take components from the conveyor belts on the main board, and combine them with power sources to manufacture Devices which function as action spaces for all players. You gain prestige points when an opponent uses a device you manufactured, and from activating certain certain components, and for the components in devices you own.&lt;br /&gt;
&lt;br /&gt;
Each player takes one persona board (these can be distributed randomly, or drafted in reverse order of play), and elects to play side A or B. The side A of all boards have different starting resources but the same action spaces available, while side B of each board also has differing action spaces and some special rules.&lt;br /&gt;
&lt;br /&gt;
Each turn, you place one mechanic on an unoccupied action space (one on your own persona board, or on a power source in any built device). The cost to place a mechanic is printed below that mechanic&#039;s space on the persona board; if you cannot (or do not wish to) pay that cost, you may instead pass with that worker and collect that cost.&lt;br /&gt;
&lt;br /&gt;
When all players have placed all their mechanics, the round ends. All workers return to their owner&#039;s persona board, the conveyor belts fill up, and the first player marker advances. If the current age&#039;s clock tokens have all been awarded, then the next Age opens: each player gains a worker, and a new supply of more powerful tiles becomes available. At the end of Age III the game is over and the player who has the most prestige is declared the winner. (Ties are decided by the most leftover money, sources and components combined).&lt;br /&gt;
&lt;br /&gt;
== Action Spaces ==&lt;br /&gt;
&lt;br /&gt;
The action spaces on side A of the persona board have the following effects:&lt;br /&gt;
&lt;br /&gt;
# Take the rightmost tile of any conveyor belt.&lt;br /&gt;
# Take a basic power source of your choice.&lt;br /&gt;
# Manufacture a device containing exactly two tiles from your hand.&lt;br /&gt;
# Activate one power source in a device you have already built, without placing a worker on it.&lt;br /&gt;
&lt;br /&gt;
A manufactured device must contain at least one source, and at least one component. A source and a component are connected when the source provides at least one type of power that the component accepts. Invalid connections are allowed to exist in your device but every tile is required to have at least one valid connection. &lt;br /&gt;
&lt;br /&gt;
When a mechanic is placed on the power source of a built device, every component connected to it may be activated in the order of the player&#039;s choice. Some components have different effects depending on whether they are supplied with clockwork, steam or electrickal power - if the source is capable of providing more than one of these, you have the choice of which effect is applied.&lt;br /&gt;
&lt;br /&gt;
=== Age I components ===&lt;br /&gt;
&lt;br /&gt;
; Collecting Resources&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Condenser&#039;&#039;&#039; you may take two basic sources of whichever type of power is supplying the Condenser.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Innovation Turbine&#039;&#039;&#039; you may take a tile from an unlocked supply deck, or pay £1 to choose one tile from two revealed. (Note: You cannot Undo past the point that the tiles are revealed.)&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Librarifier&#039;&#039;&#039; you may take any component from the Age I conveyor belts if powered by Clockwork, from the Age II belt if powered by Steam, or the Age III belt if powered by Electrickal.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Miscellanerie&#039;&#039;&#039; you take 2 coins and a basic power source of your choice. If an opponent owns the device, they get one basic source of the same type.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Monetiser&#039;&#039;&#039; you collect 3 coins.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Scroll Rack&#039;&#039;&#039;&#039; you may take any component from the conveyor belts, paying some coins depending on where it is located.&lt;br /&gt;
; Building Devices&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Manufacturer&#039;&#039;&#039; you may use sources and components from your hand to build a new device, containing exactly 2 tiles if the Manufacturer is powered by Clockwork, exactly 3 tiles if the Manufacturer is powered by Steam, or exactly 4 tiles if the Manufacturer is powered by Electrickal (though the device does not have to be the same &#039;&#039;shape&#039;&#039; as the examples on the Manufacturer tile). &lt;br /&gt;
: When you activate the &#039;&#039;&#039;Sourcer&#039;&#039;&#039; you may select a basic source from the supplies and add it to any device on the table. (It must be a valid connection). If the device containing the Sourcer is owned by an opponent, they get a coin.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Upgrader&#039;&#039;&#039; you may select any source or component from your hand and add it to any device on the table that previous contained 2/3/4 tiles, when Upgrader is powered by Clockwork/Steam/Electrickal respectively. The new tile must have a valid connection. &lt;br /&gt;
; Other Effects&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Alarm Chronometer&#039;&#039;&#039; you advance the start player marker, once for free, and again for each £1 spent. (Remember it will still advance once more at the end of the round).&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Distiller&#039;&#039;&#039; you may discard one source from your hand to gain £5.&lt;br /&gt;
&lt;br /&gt;
=== Age II components ===&lt;br /&gt;
; Collecting Resources&lt;br /&gt;
: The &#039;&#039;&#039;Amplicondenser&#039;&#039;&#039; works like the Condenser, but you take three sources when you activate it. If the device is owned by an opponent, they get one too.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Resonator&#039;&#039;&#039; you may take from the conveyor belts any component which contains a Clockwork/Steam/Electrickal connector that is the same as the one powering the resonator.&lt;br /&gt;
; Building Devices&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Insta-factor&#039;&#039;&#039; you must pay 2 coins, then you take a Manufacturer action, then you may immediately activate one of the sources in your new device.&lt;br /&gt;
; Powering Devices&lt;br /&gt;
: &#039;&#039;&#039;ElectroClock&#039;&#039;&#039;, &#039;&#039;&#039;ElectroSteam&#039;&#039;&#039; and &#039;&#039;&#039;SteamWork&#039;&#039;&#039; sources supply your choice of two power types in each direction.&lt;br /&gt;
: The &#039;&#039;&#039;Iterator&#039;&#039;&#039; is placed adjacent to another component (and may be rotated to fit your device). Immediately after that component is activated, you may activate it once again with the same power input.&lt;br /&gt;
: The &#039;&#039;&#039;Power Converter&#039;&#039;&#039; is placed between a source and up to three other components (and may be rotated to fit your device). &lt;br /&gt;
; Earning Prestige&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Anthem Organ&#039;&#039;&#039; you may trade one source for 1 Prestige, or three sources for 2 Prestige.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Patriotic Haiku Generator&#039;&#039;&#039; you may trade one coin for 1 Prestige, or three coins for 2 Prestige.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Statue Sculptifier&#039;&#039;&#039; you may trade any two sources for 1 Prestige, or exactly a Steam source and an Electrickal source for 2 Prestige.&lt;br /&gt;
; Other Effects&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Automaton&#039;&#039;&#039; you may move your Automaton token from the main board onto your persona board. On your next turn you may use the Automaton as a mechanic. At the end of the round it goes back to the main board. This can only be used once per round, if your automaton is not on the main board then activating the component has no effect.&lt;br /&gt;
&lt;br /&gt;
=== Age III components ===&lt;br /&gt;
; Collecting Resources&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Ubiquity Conveyor&#039;&#039;&#039; you may take any tile from the conveyor belts, or you may pay 2 coins to take any two tiles.&lt;br /&gt;
; Building Devices&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Expander&#039;&#039;&#039; you may select any source or component from your hand and add it to any device on the table. The new tile must have a valid connection. &lt;br /&gt;
; Powering Devices&lt;br /&gt;
: The &#039;&#039;&#039;Iteration Gears&#039;&#039;&#039; supplies clockwork power in each direction. After the device has been activated once, it is immediately activated again.&lt;br /&gt;
: The &#039;&#039;&#039;Universal Source&#039;&#039;&#039; supplies your choice of power in each direction. Two mechanics can be placed on this tile, either by different players or by the same player in another turn.&lt;br /&gt;
; Earning Prestige &lt;br /&gt;
: &#039;&#039;&#039;Chrome&#039;&#039;&#039; has no activation effect, However when built in a device it is worth 2 Prestige points rather than the usual 1.&lt;br /&gt;
: &#039;&#039;&#039;Crescendo Organ&#039;&#039;&#039; works similarly to the Anthem Organ, but you may trade two sources for 2 Prestige or three sources for 3 Prestige.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Inflater&#039;&#039;&#039; you gain 1 Prestige. If the device containing the Inflater is owned by an opponent, they also get 1 Prestige.&lt;br /&gt;
: When you activate &#039;&#039;&#039;Ornament Grinder&#039;&#039;&#039; you may trade one tile other than a basic source for 1 Prestige, or two tiles for 3 Prestige.&lt;br /&gt;
: When you activate &#039;&#039;&#039;Patriotic Sonnet Generator&#039;&#039;&#039; you may trade two coins for 2 Prestige, or four coins for 3 Prestige.&lt;br /&gt;
&lt;br /&gt;
== 2-Player Changes ==&lt;br /&gt;
&lt;br /&gt;
In a 2-Player game, the reward when the opponent uses your device is one coin instead of one Prestige. One coin is removed from the current age&#039;s stack every round.&lt;br /&gt;
&lt;br /&gt;
== Persona B-side Special Rules ==&lt;br /&gt;
&lt;br /&gt;
; Countess Eva Kinarney&lt;br /&gt;
: Eva pays her mechanics in Electrickal sources (and receives Electrickal sources when passing).&lt;br /&gt;
; Duke Augustus Shaughness, III&lt;br /&gt;
: Augustus has his Automaton available every round, but it may only be used to activate spaces on the persona board.&lt;/div&gt;</summary>
		<author><name>Shadowphiar</name></author>
	</entry>
	<entry>
		<id>https://en.doc.boardgamearena.com/index.php?title=Gamehelpsteamworks&amp;diff=6444</id>
		<title>Gamehelpsteamworks</title>
		<link rel="alternate" type="text/html" href="https://en.doc.boardgamearena.com/index.php?title=Gamehelpsteamworks&amp;diff=6444"/>
		<updated>2020-12-11T11:00:00Z</updated>

		<summary type="html">&lt;p&gt;Shadowphiar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
Steam Works is a worker placement game in which you are an inventor of ingenious devices, competing for the favour of Her Majesty Queen Victoria. Over the course of the game you will take components from the conveyor belts on the main board, and combine them with power sources to manufacture Devices which function as action spaces for all players. You gain prestige points when an opponent uses a device you manufactured, and from activating certain certain components, and for the components in devices you own.&lt;br /&gt;
&lt;br /&gt;
Each player takes one persona board (these can be distributed randomly, or drafted in reverse order of play), and elects to play side A or B. The side A of all boards have different starting resources but the same action spaces available, while side B of each board also has differing action spaces and some special rules.&lt;br /&gt;
&lt;br /&gt;
Each turn, you place one mechanic on an unoccupied action space (one on your own persona board, or on a power source in any built device). The cost to place a mechanic is printed below that mechanic&#039;s space on the persona board; if you cannot (or do not wish to) pay that cost, you may instead pass with that worker and collect that cost.&lt;br /&gt;
&lt;br /&gt;
When all players have placed all their mechanics, the round ends. All workers return to their owner&#039;s persona board, the conveyor belts fill up, and the first player marker advances. If the current age&#039;s clock tokens have all been awarded, then the next Age opens: each player gains a worker, and a new supply of more powerful tiles becomes available. At the end of Age III the game is over and the player who has the most prestige is declared the winner. (Ties are decided by the most leftover money, sources and components combined).&lt;br /&gt;
&lt;br /&gt;
== Action Spaces ==&lt;br /&gt;
&lt;br /&gt;
The action spaces on side A of the persona board have the following effects:&lt;br /&gt;
&lt;br /&gt;
# Take the rightmost tile of any conveyor belt.&lt;br /&gt;
# Take a basic power source of your choice.&lt;br /&gt;
# Manufacture a device containing exactly two tiles from your hand.&lt;br /&gt;
# Activate one power source in a device you have already built, without placing a worker on it.&lt;br /&gt;
&lt;br /&gt;
A manufactured device must contain at least one source, and at least one component. A source and a component are connected when the source provides at least one type of power that the component accepts. Invalid connections are allowed to exist in your device but every tile is required to have at least one valid connection. &lt;br /&gt;
&lt;br /&gt;
When a mechanic is placed on the power source of a built device, every component connected to it may be activated in the order of the player&#039;s choice. Some components have different effects depending on whether they are supplied with clockwork, steam or electrickal power - if the source is capable of providing more than one of these, you have the choice of which effect is applied.&lt;br /&gt;
&lt;br /&gt;
=== Age I components ===&lt;br /&gt;
&lt;br /&gt;
; Collecting Resources&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Condenser&#039;&#039;&#039; you may take two basic sources of whichever type of power is supplying the Condenser.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Innovation Turbine&#039;&#039;&#039; you may take a tile from an unlocked supply deck, or pay £1 to choose one tile from two revealed. (Note: You cannot Undo past the point that the tiles are revealed.)&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Librarifier&#039;&#039;&#039; you may take any component from the Age I conveyor belts if powered by Clockwork, from the Age II belt if powered by Steam, or the Age III belt if powered by Electrickal.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Miscellanerie&#039;&#039;&#039; you take 2 coins and a basic power source of your choice. If an opponent owns the device, they get one basic source of the same type.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Monetiser&#039;&#039;&#039; you collect 3 coins.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Scroll Rack&#039;&#039;&#039;&#039; you may take any component from the conveyor belts, paying some coins depending on where it is located.&lt;br /&gt;
; Building Devices&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Manufacturer&#039;&#039;&#039; you may use sources and components from your hand to build a new device, containing exactly 2 tiles if the Manufacturer is powered by Clockwork, exactly 3 tiles if the Manufacturer is powered by Steam, or exactly 4 tiles if the Manufacturer is powered by Electrickal (though the device does not have to be the same &#039;&#039;shape&#039;&#039; as the examples on the Manufacturer tile). &lt;br /&gt;
: When you activate the &#039;&#039;&#039;Sourcer&#039;&#039;&#039; you may select a basic source from the supplies and add it to any device on the table. (It must be a valid connection). If the device containing the Sourcer is owned by an opponent, they get a coin.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Upgrader&#039;&#039;&#039; you may select any source or component from your hand and add it to any device on the table that previous contained 2/3/4 tiles, when Upgrader is powered by Clockwork/Steam/Electrickal respectively. The new tile must have a valid connection. &lt;br /&gt;
; Other Effects&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Alarm Chronometer&#039;&#039;&#039; you advance the start player marker, once for free, and again for each £1 spent. (Remember it will still advance once more at the end of the round).&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Distiller&#039;&#039;&#039; you may discard one source from your hand to gain £5.&lt;br /&gt;
&lt;br /&gt;
=== Age II components ===&lt;br /&gt;
; Collecting Resources&lt;br /&gt;
: The &#039;&#039;&#039;Amplicondenser&#039;&#039;&#039; works like the Condenser, but you take three sources when you activate it. If the device is owned by an opponent, they get one too.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Resonator&#039;&#039;&#039; you may take from the conveyor belts any component which contains a Clockwork/Steam/Electrickal connector that is the same as the one powering the resonator.&lt;br /&gt;
; Building Devices&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Insta-factor&#039;&#039;&#039; you must pay 2 coins, then you take a Manufacturer action, then you may immediately activate one of the sources in your new device.&lt;br /&gt;
; Powering Devices&lt;br /&gt;
: &#039;&#039;&#039;ElectroClock&#039;&#039;&#039;, &#039;&#039;&#039;ElectroSteam&#039;&#039;&#039; and &#039;&#039;&#039;SteamWork&#039;&#039;&#039; sources supply your choice of two power types in each direction.&lt;br /&gt;
: The &#039;&#039;&#039;Iterator&#039;&#039;&#039; is placed adjacent to another component (and may be rotated to fit your device). Immediately after that component is activated, you may activate it once again with the same power input.&lt;br /&gt;
: The &#039;&#039;&#039;Power Converter&#039;&#039;&#039; is placed between a source and up to three other components (and may be rotated to fit your device). &lt;br /&gt;
; Earning Prestige&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Anthem Organ&#039;&#039;&#039; you may trade one source for 1 Prestige, or three sources for 2 Prestige.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Patriotic Haiku Generator&#039;&#039;&#039; you may trade one coin for 1 Prestige, or three coins for 2 Prestige.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Statue Sculptifier&#039;&#039;&#039; you may trade any two sources for 1 Prestige, or exactly a Steam source and an Electrickal source for 2 Prestige.&lt;br /&gt;
; Other Effects&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Automaton&#039;&#039;&#039; you may move your Automaton token from the main board onto your persona board. On your next turn you may use the Automaton as a mechanic. At the end of the round it goes back to the main board. This can only be used once per round, if your automaton is not on the main board then activating the component has no effect.&lt;br /&gt;
&lt;br /&gt;
=== Age III components ===&lt;br /&gt;
; Collecting Resources&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Ubiquity Conveyor&#039;&#039;&#039; you may take any tile from the conveyor belts, or you may pay 2 coins to take any two tiles.&lt;br /&gt;
; Building Devices&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Expander&#039;&#039;&#039; you may select any source or component from your hand and add it to any device on the table. The new tile must have a valid connection. &lt;br /&gt;
; Powering Devices&lt;br /&gt;
: The &#039;&#039;&#039;Iteration Gears&#039;&#039;&#039; supplies clockwork power in each direction. After the device has been activated once, it is immediately activated again.&lt;br /&gt;
: The &#039;&#039;&#039;Universal Source&#039;&#039;&#039; supplies your choice of power in each direction. Two mechanics can be placed on this tile, either by different players or by the same player in another turn.&lt;br /&gt;
; Earning Prestige &lt;br /&gt;
: &#039;&#039;&#039;Chrome&#039;&#039;&#039; has no activation effect, However when built in a device it is worth 2 Prestige points rather than the usual 1.&lt;br /&gt;
: &#039;&#039;&#039;Crescendo Organ&#039;&#039;&#039; works similarly to the Anthem Organ, but you may trade two sources for 2 Prestige or three sources for 3 Prestige.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Inflater&#039;&#039;&#039; you gain 1 Prestige. If the device containing the Inflater is owned by an opponent, they also get 1 Prestige.&lt;br /&gt;
: When you activate &#039;&#039;&#039;Ornament Grinder&#039;&#039;&#039; you may trade one tile other than a basic source for 1 Prestige, or two tiles for 3 Prestige.&lt;br /&gt;
: When you activate &#039;&#039;&#039;Patriotic Sonnet Generator&#039;&#039;&#039; you may trade two coins for 2 Prestige, or four coins for 3 Prestige.&lt;/div&gt;</summary>
		<author><name>Shadowphiar</name></author>
	</entry>
	<entry>
		<id>https://en.doc.boardgamearena.com/index.php?title=Gamehelpsteamworks&amp;diff=6443</id>
		<title>Gamehelpsteamworks</title>
		<link rel="alternate" type="text/html" href="https://en.doc.boardgamearena.com/index.php?title=Gamehelpsteamworks&amp;diff=6443"/>
		<updated>2020-12-11T10:57:35Z</updated>

		<summary type="html">&lt;p&gt;Shadowphiar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
Steam Works is a worker placement game in which you are an inventor of ingenious devices, competing for the favour of Her Majesty Queen Victoria. Over the course of the game you will take components from the conveyor belts on the main board, and combine them with power sources to manufacture Devices which function as action spaces for all players. You gain prestige points when an opponent uses a device you manufactured, and from activating certain certain components, and for the components in devices you own.&lt;br /&gt;
&lt;br /&gt;
Each player takes one persona board (these can be distributed randomly, or drafted in reverse order of play), and elects to play side A or B. The side A of all boards have different starting resources but the same action spaces available, while side B of each board also has differing action spaces and some special rules.&lt;br /&gt;
&lt;br /&gt;
Each turn, you place one mechanic on an unoccupied action space (one on your own persona board, or on a power source in any built device). The cost to place a mechanic is printed below that mechanic&#039;s space on the persona board; if you cannot (or do not wish to) pay that cost, you may instead pass with that worker and collect that cost.&lt;br /&gt;
&lt;br /&gt;
When all players have placed all their mechanics, the round ends. All workers return to their owner&#039;s persona board, the conveyor belts fill up, and the first player marker advances. If the current age&#039;s clock tokens have all been awarded, then the next Age opens: each player gains a worker, and a new supply of more powerful tiles becomes available. At the end of Age III the game is over and the player who has the most prestige is declared the winner. (Ties are decided by the most leftover money, sources and components combined).&lt;br /&gt;
&lt;br /&gt;
== Action Spaces ==&lt;br /&gt;
&lt;br /&gt;
The action spaces on side A of the persona board have the following effects:&lt;br /&gt;
&lt;br /&gt;
# Take the rightmost tile of any conveyor belt.&lt;br /&gt;
# Take a basic power source of your choice.&lt;br /&gt;
# Manufacture a device containing exactly two tiles from your hand.&lt;br /&gt;
# Activate one power source in a device you have already built, without placing a worker on it.&lt;br /&gt;
&lt;br /&gt;
A manufactured device must contain at least one source, and at least one component. A source and a component are connected when the source provides at least one type of power that the component accepts. Invalid connections are allowed to exist in your device but every tile is required to have at least one valid connection. &lt;br /&gt;
&lt;br /&gt;
When a mechanic is placed on the power source of a built device, every component connected to it may be activated in the order of the player&#039;s choice. Some components have different effects depending on whether they are supplied with clockwork, steam or electrickal power - if the source is capable of providing more than one of these, you have the choice of which effect is applied.&lt;br /&gt;
&lt;br /&gt;
=== Age I components ===&lt;br /&gt;
&lt;br /&gt;
; Collecting Resources&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Condenser&#039;&#039;&#039; you may take two basic sources of whichever type of power is supplying the Condenser.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Innovation Turbine&#039;&#039;&#039; you may take a tile from an unlocked supply deck, or pay £1 to choose one tile from two revealed. (Note: You cannot Undo past the point that the tiles are revealed.)&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Librarifier&#039;&#039;&#039; you may take any component from the Age I conveyor belts if powered by Clockwork, from the Age II belt if powered by Steam, or the Age III belt if powered by Electrickal.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Miscellanerie&#039;&#039;&#039; you take 2 coins and a basic power source of your choice. If an opponent owns the device, they get one basic source of the same type.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Monetiser&#039;&#039;&#039; you collect 3 coins.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Scroll Rack&#039;&#039;&#039;&#039; you may take any component from the conveyor belts, paying some coins depending on where it is located.&lt;br /&gt;
; Building Devices&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Manufacturer&#039;&#039;&#039; you may use sources and components from your hand to build a new device, containing exactly 2 tiles if the Manufacturer is powered by Clockwork, exactly 3 tiles if the Manufacturer is powered by Steam, or exactly 4 tiles if the Manufacturer is powered by Electrickal (though the device does not have to be the same &#039;&#039;shape&#039;&#039; as the examples on the Manufacturer tile). &lt;br /&gt;
: When you activate the &#039;&#039;&#039;Sourcer&#039;&#039;&#039; you may select a basic source from the supplies and add it to any device on the table. (It must be a legal connection). If the device containing the Sourcer is owned by an opponent, they get a coin.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Upgrader&#039;&#039;&#039; you may select any source or component from your hand and add it to any device on the table that previous contained 2/3/4 tiles, when Upgrader is powered by Clockwork/Steam/Electrickal respectively. The new tile must have a legal connection. &lt;br /&gt;
; Other Effects&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Alarm Chronometer&#039;&#039;&#039; you advance the start player marker, once for free, and again for each £1 spent. (Remember it will still advance once more at the end of the round).&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Distiller&#039;&#039;&#039; you may discard one source from your hand to gain £5.&lt;br /&gt;
&lt;br /&gt;
=== Age II components ===&lt;br /&gt;
; Collecting Resources&lt;br /&gt;
: The &#039;&#039;&#039;Amplicondenser&#039;&#039;&#039; works like the Condenser, but you take three sources when you activate it. If the device is owned by an opponent, they get one too.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Resonator&#039;&#039;&#039; you may take from the conveyor belts any component which contains a Clockwork/Steam/Electrickal connector that is the same as the one powering the resonator.&lt;br /&gt;
; Building Devices&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Insta-factor&#039;&#039;&#039; you must pay 2 coins, then you take a Manufacturer action, then you may immediately activate one of the sources in your new device.&lt;br /&gt;
; Powering Devices&lt;br /&gt;
: &#039;&#039;&#039;ElectroClock&#039;&#039;&#039;, &#039;&#039;&#039;ElectroSteam&#039;&#039;&#039; and &#039;&#039;&#039;SteamWork&#039;&#039;&#039; sources supply your choice of two power types in each direction.&lt;br /&gt;
: The &#039;&#039;&#039;Iterator&#039;&#039;&#039; is placed adjacent to another component (and may be rotated to fit your device). Immediately after that component is activated, you may activate it once again with the same power input.&lt;br /&gt;
: The &#039;&#039;&#039;Power Converter&#039;&#039;&#039; is placed between a source and up to three other components (and may be rotated to fit your device). &lt;br /&gt;
; Earning Prestige&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Anthem Organ&#039;&#039;&#039; you may trade one source for 1 Prestige, or three sources for 2 Prestige.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Patriotic Haiku Generator&#039;&#039;&#039; you may trade one coin for 1 Prestige, or three coins for 2 Prestige.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Statue Sculptifier&#039;&#039;&#039; you may trade any two sources for 1 Prestige, or exactly a Steam source and an Electrickal source for 2 Prestige.&lt;br /&gt;
; Other Effects&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Automaton&#039;&#039;&#039; you may move your Automaton token from the main board onto your persona board. On your next turn you may use the Automaton as a mechanic. At the end of the round it goes back to the main board. This can only be used once per round, if your automaton is not on the main board then activating the component has no effect.&lt;br /&gt;
&lt;br /&gt;
=== Age III components ===&lt;br /&gt;
; Collecting Resources&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Ubiquity Conveyor&#039;&#039;&#039; you may take any tile from the conveyor belts, or you may pay 2 coins to take any two tiles.&lt;br /&gt;
; Building Devices&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Expander&#039;&#039;&#039; you may select any source or component from your hand and add it to any device on the table. The new tile must have a legal connection. &lt;br /&gt;
; Powering Devices&lt;br /&gt;
: The &#039;&#039;&#039;Iteration Gears&#039;&#039;&#039; supplies clockwork power in each direction. After the device has been activated once, it is immediately activated again.&lt;br /&gt;
: The &#039;&#039;&#039;Universal Source&#039;&#039;&#039; supplies your choice of power in each direction. Two mechanics can be placed on this tile, either by different players or by the same player in another turn.&lt;br /&gt;
; Earning Prestige &lt;br /&gt;
: &#039;&#039;&#039;Chrome&#039;&#039;&#039; has no activation effect, However when built in a device it is worth 2 Prestige points rather than the usual 1.&lt;br /&gt;
: &#039;&#039;&#039;Crescendo Organ&#039;&#039;&#039; works similarly to the Anthem Organ, but you may trade two sources for 2 Prestige or three sources for 3 Prestige.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Inflater&#039;&#039;&#039; you gain 1 Prestige. If the device containing the Inflater is owned by an opponent, they also get 1 Prestige.&lt;br /&gt;
: When you activate &#039;&#039;&#039;Ornament Grinder&#039;&#039;&#039; you may trade one tile other than a basic source for 1 Prestige, or two tiles for 3 Prestige.&lt;br /&gt;
: When you activate &#039;&#039;&#039;Patriotic Sonnet Generator&#039;&#039;&#039; you may trade two coins for 2 Prestige, or four coins for 3 Prestige.&lt;/div&gt;</summary>
		<author><name>Shadowphiar</name></author>
	</entry>
	<entry>
		<id>https://en.doc.boardgamearena.com/index.php?title=Gamehelpsteamworks&amp;diff=6437</id>
		<title>Gamehelpsteamworks</title>
		<link rel="alternate" type="text/html" href="https://en.doc.boardgamearena.com/index.php?title=Gamehelpsteamworks&amp;diff=6437"/>
		<updated>2020-12-10T11:53:35Z</updated>

		<summary type="html">&lt;p&gt;Shadowphiar: /* Age I components */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
Steam Works is a worker placement game in which you are an inventor of ingenious devices, competing for the favour of Her Majesty Queen Victoria. Over the course of the game you will take components from the conveyor belts on the main board, and combine them with power sources to manufacture Devices which function as action spaces for all players. You gain prestige points when an opponent uses a device you manufactured, and from activating certain certain components, and for the components in devices you own.&lt;br /&gt;
&lt;br /&gt;
Each player takes one persona board (these can be distributed randomly, or drafted in reverse order of play), and elects to play side A or B. The side A of all boards have different starting resources but the same action spaces available, while side B of each board also has differing action spaces and some special rules.&lt;br /&gt;
&lt;br /&gt;
Each turn, you place one mechanic on an unoccupied action space (one on your own persona board, or on a power source in any built device). The cost to place a mechanic is printed below that mechanic&#039;s space on the persona board; if you cannot (or do not wish to) pay that cost, you may instead pass with that worker and collect that cost.&lt;br /&gt;
&lt;br /&gt;
When all players have placed all their mechanics, the round ends. All workers return to their owner&#039;s persona board, the conveyor belts fill up, and the first player marker advances. If the current age&#039;s clock tokens have all been awarded, then the next Age opens: each player gains a worker, and a new supply of more powerful tiles becomes available. At the end of Age III the game is over and the player who has the most prestige is declared the winner. (Ties are decided by the most leftover money, sources and components combined).&lt;br /&gt;
&lt;br /&gt;
== Action Spaces ==&lt;br /&gt;
&lt;br /&gt;
The action spaces on side A of the persona board have the following effects:&lt;br /&gt;
&lt;br /&gt;
# Take the rightmost tile of any conveyor belt.&lt;br /&gt;
# Take a basic power source of your choice.&lt;br /&gt;
# Manufacture a device containing exactly two tiles from your hand.&lt;br /&gt;
# Activate one power source in a device you have already built, without placing a worker on it.&lt;br /&gt;
&lt;br /&gt;
A manufactured device must contain at least one source, and at least one component. A source and a component are connected when the source provides at least one type of power that the component accepts. Invalid connections are allowed to exist in your device but every tile is required to have at least one valid connection. &lt;br /&gt;
&lt;br /&gt;
When a mechanic is placed on the power source of a built device, every component connected to it may be activated in the order of the player&#039;s choice. Some components have different effects depending on whether they are supplied with clockwork, steam or electrickal power - if the source is capable of providing more than one of these, you have the choice of which effect is applied.&lt;br /&gt;
&lt;br /&gt;
=== Age I components ===&lt;br /&gt;
&lt;br /&gt;
; Collecting Resources&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Condenser&#039;&#039;&#039; you may take two basic sources of whichever type of power is supplying the Condenser.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Innovation Turbine&#039;&#039;&#039; you may take a tile from an unlocked supply deck, or pay £1 to choose one tile from two revealed.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Librarifier&#039;&#039;&#039; you may take any component from the Age I conveyor belts if powered by Clockwork, from the Age II belt if powered by Steam, or the Age III belt if powered by Electrickal.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Miscellanerie&#039;&#039;&#039; you take 2 coins and a basic power source of your choice. If an opponent owns the device, they get one basic source of the same type.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Monetiser&#039;&#039;&#039; you collect 3 coins.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Scroll Rack&#039;&#039;&#039;&#039; you may take any component from the conveyor belts, paying some coins depending on where it is located.&lt;br /&gt;
; Building Devices&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Manufacturer&#039;&#039;&#039; you may use sources and components from your hand to build a new device, containing exactly 2 tiles if the Manufacturer is powered by Clockwork, exactly 3 tiles if the Manufacturer is powered by Steam, or exactly 4 tiles if the Manufacturer is powered by Electrickal (though the device does not have to be the same &#039;&#039;shape&#039;&#039; as the examples on the Manufacturer tile). &lt;br /&gt;
: When you activate the &#039;&#039;&#039;Sourcer&#039;&#039;&#039; you may select a basic source from the supplies and add it to any device on the table. (It must be a legal connection). If the device containing the Sourcer is owned by an opponent, they get a coin.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Upgrader&#039;&#039;&#039; you may select any source or component from your hand and add it to any device on the table that previous contained 2/3/4 tiles, when Upgrader is powered by Clockwork/Steam/Electrickal respectively. The new tile must have a legal connection. &lt;br /&gt;
; Other Effects&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Alarm Chronometer&#039;&#039;&#039; you advance the start player marker, once for free, and again for each £1 spent. (Remember it will still advance once more at the end of the round).&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Distiller&#039;&#039;&#039; you may discard one source from your hand to gain £5.&lt;br /&gt;
&lt;br /&gt;
=== Age II components ===&lt;br /&gt;
; Collecting Resources&lt;br /&gt;
: The Amplicondenser works like the Condenser, but you take three sources when you activate it. If the device is owned by an opponent, they get one too.&lt;br /&gt;
: When you activate the Resonator&lt;br /&gt;
; Building Devices&lt;br /&gt;
: When you activate the Insta-factor&lt;br /&gt;
; Powering Devices&lt;br /&gt;
: ElectroClock, ElectroSteam and SteamWork sources supply your choice of two power types in each direction.&lt;br /&gt;
: The Iterator is placed adjacent to another component (and may be rotated to fit your device). Immediately after that component is activated, you may activate it once again with the same power input.&lt;br /&gt;
: The Power Converter is placed between a source and up to three other components (and may be rotated to fit your device). &lt;br /&gt;
; Earning Prestige&lt;br /&gt;
: When you activate the Anthem Organ&lt;br /&gt;
: When you activate the Patriotic Haiku Generator&lt;br /&gt;
: When you activate the Statue Sculptifier&lt;br /&gt;
; Other Effects&lt;br /&gt;
: When you activate the Automaton&lt;br /&gt;
&lt;br /&gt;
=== Age III components ===&lt;br /&gt;
; Collecting Resources&lt;br /&gt;
: When you activate the Ubiquity Conveyor&lt;br /&gt;
; Building Devices&lt;br /&gt;
: When you activate the Expander&lt;br /&gt;
; Powering Devices&lt;br /&gt;
: The Iteration Gears supplies clockwork power in each direction. After the device has been activated once, it is immediately activated again.&lt;br /&gt;
: The Universal Source&lt;br /&gt;
; Earning Prestige&lt;br /&gt;
: Chrome has no activation effect, However when built in a device it is worth 2 Prestige points rather than the usual 1.&lt;br /&gt;
: Crescendo Organ works similarly to the Anthem Organ, but you may trade two sources for 2 Prestige or three sources for 3 Prestige.&lt;br /&gt;
: When you activate the Inflater&lt;br /&gt;
: When you activate Ornament Grinder&lt;br /&gt;
: When you activate Patriotic Sonnet Generator&lt;/div&gt;</summary>
		<author><name>Shadowphiar</name></author>
	</entry>
	<entry>
		<id>https://en.doc.boardgamearena.com/index.php?title=Gamehelpsteamworks&amp;diff=6436</id>
		<title>Gamehelpsteamworks</title>
		<link rel="alternate" type="text/html" href="https://en.doc.boardgamearena.com/index.php?title=Gamehelpsteamworks&amp;diff=6436"/>
		<updated>2020-12-10T11:53:05Z</updated>

		<summary type="html">&lt;p&gt;Shadowphiar: /* Age I components */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
Steam Works is a worker placement game in which you are an inventor of ingenious devices, competing for the favour of Her Majesty Queen Victoria. Over the course of the game you will take components from the conveyor belts on the main board, and combine them with power sources to manufacture Devices which function as action spaces for all players. You gain prestige points when an opponent uses a device you manufactured, and from activating certain certain components, and for the components in devices you own.&lt;br /&gt;
&lt;br /&gt;
Each player takes one persona board (these can be distributed randomly, or drafted in reverse order of play), and elects to play side A or B. The side A of all boards have different starting resources but the same action spaces available, while side B of each board also has differing action spaces and some special rules.&lt;br /&gt;
&lt;br /&gt;
Each turn, you place one mechanic on an unoccupied action space (one on your own persona board, or on a power source in any built device). The cost to place a mechanic is printed below that mechanic&#039;s space on the persona board; if you cannot (or do not wish to) pay that cost, you may instead pass with that worker and collect that cost.&lt;br /&gt;
&lt;br /&gt;
When all players have placed all their mechanics, the round ends. All workers return to their owner&#039;s persona board, the conveyor belts fill up, and the first player marker advances. If the current age&#039;s clock tokens have all been awarded, then the next Age opens: each player gains a worker, and a new supply of more powerful tiles becomes available. At the end of Age III the game is over and the player who has the most prestige is declared the winner. (Ties are decided by the most leftover money, sources and components combined).&lt;br /&gt;
&lt;br /&gt;
== Action Spaces ==&lt;br /&gt;
&lt;br /&gt;
The action spaces on side A of the persona board have the following effects:&lt;br /&gt;
&lt;br /&gt;
# Take the rightmost tile of any conveyor belt.&lt;br /&gt;
# Take a basic power source of your choice.&lt;br /&gt;
# Manufacture a device containing exactly two tiles from your hand.&lt;br /&gt;
# Activate one power source in a device you have already built, without placing a worker on it.&lt;br /&gt;
&lt;br /&gt;
A manufactured device must contain at least one source, and at least one component. A source and a component are connected when the source provides at least one type of power that the component accepts. Invalid connections are allowed to exist in your device but every tile is required to have at least one valid connection. &lt;br /&gt;
&lt;br /&gt;
When a mechanic is placed on the power source of a built device, every component connected to it may be activated in the order of the player&#039;s choice. Some components have different effects depending on whether they are supplied with clockwork, steam or electrickal power - if the source is capable of providing more than one of these, you have the choice of which effect is applied.&lt;br /&gt;
&lt;br /&gt;
=== Age I components ===&lt;br /&gt;
&lt;br /&gt;
; Collecting Resources&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Condenser&#039;&#039;&#039; you may take two basic sources of whichever type of power is supplying the Condenser.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Innovation Turbine&#039;&#039;&#039; you may take a tile from an unlocked supply deck, or pay £1 to choose one tile from two revealed.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Librarifier&#039;&#039;&#039; you may take any component from the Age I conveyor belts if powered by Clockwork, from the Age II belt if powered by Steam, or the Age III belt if powered by Electrickal.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Miscellanerie&#039;&#039;&#039; you take 2 coins and a basic power source of your choice. If an opponent owns the device, they get one basic source of the same type.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Monetiser&#039;&#039;&#039; you collect 3 coins.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Scroll Rack&#039;&#039;&#039;&#039; you may take any component from the conveyor belts, paying some coins depending on where it is located.&lt;br /&gt;
; Building Devices&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Manufacturer&#039;&#039;&#039; you may use sources and components from your hand to build a new device, containing exactly 2 tiles if the Manufacturer is powered by Clockwork, exactly 3 tiles if the Manufacturer is powered by Steam, or exactly 4 tiles if the Manufacturer is powered by Electrickal (though the device does not have to be the same &#039;&#039;shape&#039;&#039; as the examples on the Manufacturer tile). &lt;br /&gt;
: When you activate the &#039;&#039;&#039;Sourcer&#039;&#039;&#039; you may select a basic source from the supplies and add it to any device on the table. (It must be a legal connection). If the device containing the Sourcer is owned by an opponent, they get a coin.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Upgrader&#039;&#039;&#039; you may select any source or component from your hand and add it to any device on the table that previous contained 2/3/4 tiles, when Upgrader is powered by Clockwork/Steam/Electrickal respectively. The new tile must have a legal connection. &lt;br /&gt;
; Other Effects&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Alarm Chronometer&#039;&#039;&#039;&#039; you advance the start player marker, once for free, and again for each £1 spent. (Remember it will still advance once more at the end of the round).&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Distiller&#039;&#039;&#039; you may discard one source from your hand to gain £5.&lt;br /&gt;
&lt;br /&gt;
=== Age II components ===&lt;br /&gt;
; Collecting Resources&lt;br /&gt;
: The Amplicondenser works like the Condenser, but you take three sources when you activate it. If the device is owned by an opponent, they get one too.&lt;br /&gt;
: When you activate the Resonator&lt;br /&gt;
; Building Devices&lt;br /&gt;
: When you activate the Insta-factor&lt;br /&gt;
; Powering Devices&lt;br /&gt;
: ElectroClock, ElectroSteam and SteamWork sources supply your choice of two power types in each direction.&lt;br /&gt;
: The Iterator is placed adjacent to another component (and may be rotated to fit your device). Immediately after that component is activated, you may activate it once again with the same power input.&lt;br /&gt;
: The Power Converter is placed between a source and up to three other components (and may be rotated to fit your device). &lt;br /&gt;
; Earning Prestige&lt;br /&gt;
: When you activate the Anthem Organ&lt;br /&gt;
: When you activate the Patriotic Haiku Generator&lt;br /&gt;
: When you activate the Statue Sculptifier&lt;br /&gt;
; Other Effects&lt;br /&gt;
: When you activate the Automaton&lt;br /&gt;
&lt;br /&gt;
=== Age III components ===&lt;br /&gt;
; Collecting Resources&lt;br /&gt;
: When you activate the Ubiquity Conveyor&lt;br /&gt;
; Building Devices&lt;br /&gt;
: When you activate the Expander&lt;br /&gt;
; Powering Devices&lt;br /&gt;
: The Iteration Gears supplies clockwork power in each direction. After the device has been activated once, it is immediately activated again.&lt;br /&gt;
: The Universal Source&lt;br /&gt;
; Earning Prestige&lt;br /&gt;
: Chrome has no activation effect, However when built in a device it is worth 2 Prestige points rather than the usual 1.&lt;br /&gt;
: Crescendo Organ works similarly to the Anthem Organ, but you may trade two sources for 2 Prestige or three sources for 3 Prestige.&lt;br /&gt;
: When you activate the Inflater&lt;br /&gt;
: When you activate Ornament Grinder&lt;br /&gt;
: When you activate Patriotic Sonnet Generator&lt;/div&gt;</summary>
		<author><name>Shadowphiar</name></author>
	</entry>
	<entry>
		<id>https://en.doc.boardgamearena.com/index.php?title=Gamehelpsteamworks&amp;diff=6435</id>
		<title>Gamehelpsteamworks</title>
		<link rel="alternate" type="text/html" href="https://en.doc.boardgamearena.com/index.php?title=Gamehelpsteamworks&amp;diff=6435"/>
		<updated>2020-12-10T11:41:33Z</updated>

		<summary type="html">&lt;p&gt;Shadowphiar: /* Age I components */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
Steam Works is a worker placement game in which you are an inventor of ingenious devices, competing for the favour of Her Majesty Queen Victoria. Over the course of the game you will take components from the conveyor belts on the main board, and combine them with power sources to manufacture Devices which function as action spaces for all players. You gain prestige points when an opponent uses a device you manufactured, and from activating certain certain components, and for the components in devices you own.&lt;br /&gt;
&lt;br /&gt;
Each player takes one persona board (these can be distributed randomly, or drafted in reverse order of play), and elects to play side A or B. The side A of all boards have different starting resources but the same action spaces available, while side B of each board also has differing action spaces and some special rules.&lt;br /&gt;
&lt;br /&gt;
Each turn, you place one mechanic on an unoccupied action space (one on your own persona board, or on a power source in any built device). The cost to place a mechanic is printed below that mechanic&#039;s space on the persona board; if you cannot (or do not wish to) pay that cost, you may instead pass with that worker and collect that cost.&lt;br /&gt;
&lt;br /&gt;
When all players have placed all their mechanics, the round ends. All workers return to their owner&#039;s persona board, the conveyor belts fill up, and the first player marker advances. If the current age&#039;s clock tokens have all been awarded, then the next Age opens: each player gains a worker, and a new supply of more powerful tiles becomes available. At the end of Age III the game is over and the player who has the most prestige is declared the winner. (Ties are decided by the most leftover money, sources and components combined).&lt;br /&gt;
&lt;br /&gt;
== Action Spaces ==&lt;br /&gt;
&lt;br /&gt;
The action spaces on side A of the persona board have the following effects:&lt;br /&gt;
&lt;br /&gt;
# Take the rightmost tile of any conveyor belt.&lt;br /&gt;
# Take a basic power source of your choice.&lt;br /&gt;
# Manufacture a device containing exactly two tiles from your hand.&lt;br /&gt;
# Activate one power source in a device you have already built, without placing a worker on it.&lt;br /&gt;
&lt;br /&gt;
A manufactured device must contain at least one source, and at least one component. A source and a component are connected when the source provides at least one type of power that the component accepts. Invalid connections are allowed to exist in your device but every tile is required to have at least one valid connection. &lt;br /&gt;
&lt;br /&gt;
When a mechanic is placed on the power source of a built device, every component connected to it may be activated in the order of the player&#039;s choice. Some components have different effects depending on whether they are supplied with clockwork, steam or electrickal power - if the source is capable of providing more than one of these, you have the choice of which effect is applied.&lt;br /&gt;
&lt;br /&gt;
=== Age I components ===&lt;br /&gt;
&lt;br /&gt;
; Collecting Resources&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Condenser&#039;&#039;&#039; you may take two basic sources of whichever type of power is supplying the Condenser.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Innovation Turbine&#039;&#039;&#039; you may take a tile from an unlocked supply deck, or pay £1 to choose one tile from two revealed.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Librarifier&#039;&#039;&#039; you may take any component from the Age I conveyor belts if powered by Clockwork, from the Age II belt if powered by Steam, or the Age III belt if powered by Electrickal.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Miscellanerie&#039;&#039;&#039; you take 2 coins and a basic power source of your choice. If an opponent owns the device, they get one basic source of the same type.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Monetiser&#039;&#039;&#039; you collect 3 coins.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Scroll Rack&#039;&#039;&#039;&#039; you may take any component from the conveyor belts, paying some coins depending on where it is located.&lt;br /&gt;
; Building Devices&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Manufacturer&#039;&#039;&#039; you may use sources and components from your hand to build a new device, of exactly size 2/3/4 when the Manufacturer is powered by Clockwork/Steam/Electrickal respectively (though it does not have to be the same &#039;&#039;shape&#039;&#039; as the examples on the Manufacturer tile). &lt;br /&gt;
: When you activate the &#039;&#039;&#039;Sourcer&#039;&#039;&#039; you may select a basic source from the supplies and add it to any device on the table. (It must be a legal connection). If the device containing the Sourcer is owned by an opponent, they get a coin.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Upgrader&#039;&#039;&#039; you may select any source or component from your hand and add it to any device on the table. (It must be a legal connection).&lt;br /&gt;
; Other Effects&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Alarm Chronometer&#039;&#039;&#039;&#039; you advance the start player marker, once for free, and again for each £1 spent. (Remember it will still advance once more at the end of the round).&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Distiller&#039;&#039;&#039; you may discard one source from your hand to gain £5.&lt;br /&gt;
&lt;br /&gt;
=== Age II components ===&lt;br /&gt;
; Collecting Resources&lt;br /&gt;
: The Amplicondenser works like the Condenser, but you take three sources when you activate it. If the device is owned by an opponent, they get one too.&lt;br /&gt;
: When you activate the Resonator&lt;br /&gt;
; Building Devices&lt;br /&gt;
: When you activate the Insta-factor&lt;br /&gt;
; Powering Devices&lt;br /&gt;
: ElectroClock, ElectroSteam and SteamWork sources supply your choice of two power types in each direction.&lt;br /&gt;
: The Iterator is placed adjacent to another component (and may be rotated to fit your device). Immediately after that component is activated, you may activate it once again with the same power input.&lt;br /&gt;
: The Power Converter is placed between a source and up to three other components (and may be rotated to fit your device). &lt;br /&gt;
; Earning Prestige&lt;br /&gt;
: When you activate the Anthem Organ&lt;br /&gt;
: When you activate the Patriotic Haiku Generator&lt;br /&gt;
: When you activate the Statue Sculptifier&lt;br /&gt;
; Other Effects&lt;br /&gt;
: When you activate the Automaton&lt;br /&gt;
&lt;br /&gt;
=== Age III components ===&lt;br /&gt;
; Collecting Resources&lt;br /&gt;
: When you activate the Ubiquity Conveyor&lt;br /&gt;
; Building Devices&lt;br /&gt;
: When you activate the Expander&lt;br /&gt;
; Powering Devices&lt;br /&gt;
: The Iteration Gears supplies clockwork power in each direction. After the device has been activated once, it is immediately activated again.&lt;br /&gt;
: The Universal Source&lt;br /&gt;
; Earning Prestige&lt;br /&gt;
: Chrome has no activation effect, However when built in a device it is worth 2 Prestige points rather than the usual 1.&lt;br /&gt;
: Crescendo Organ works similarly to the Anthem Organ, but you may trade two sources for 2 Prestige or three sources for 3 Prestige.&lt;br /&gt;
: When you activate the Inflater&lt;br /&gt;
: When you activate Ornament Grinder&lt;br /&gt;
: When you activate Patriotic Sonnet Generator&lt;/div&gt;</summary>
		<author><name>Shadowphiar</name></author>
	</entry>
	<entry>
		<id>https://en.doc.boardgamearena.com/index.php?title=Gamehelpsteamworks&amp;diff=6434</id>
		<title>Gamehelpsteamworks</title>
		<link rel="alternate" type="text/html" href="https://en.doc.boardgamearena.com/index.php?title=Gamehelpsteamworks&amp;diff=6434"/>
		<updated>2020-12-10T11:41:13Z</updated>

		<summary type="html">&lt;p&gt;Shadowphiar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
Steam Works is a worker placement game in which you are an inventor of ingenious devices, competing for the favour of Her Majesty Queen Victoria. Over the course of the game you will take components from the conveyor belts on the main board, and combine them with power sources to manufacture Devices which function as action spaces for all players. You gain prestige points when an opponent uses a device you manufactured, and from activating certain certain components, and for the components in devices you own.&lt;br /&gt;
&lt;br /&gt;
Each player takes one persona board (these can be distributed randomly, or drafted in reverse order of play), and elects to play side A or B. The side A of all boards have different starting resources but the same action spaces available, while side B of each board also has differing action spaces and some special rules.&lt;br /&gt;
&lt;br /&gt;
Each turn, you place one mechanic on an unoccupied action space (one on your own persona board, or on a power source in any built device). The cost to place a mechanic is printed below that mechanic&#039;s space on the persona board; if you cannot (or do not wish to) pay that cost, you may instead pass with that worker and collect that cost.&lt;br /&gt;
&lt;br /&gt;
When all players have placed all their mechanics, the round ends. All workers return to their owner&#039;s persona board, the conveyor belts fill up, and the first player marker advances. If the current age&#039;s clock tokens have all been awarded, then the next Age opens: each player gains a worker, and a new supply of more powerful tiles becomes available. At the end of Age III the game is over and the player who has the most prestige is declared the winner. (Ties are decided by the most leftover money, sources and components combined).&lt;br /&gt;
&lt;br /&gt;
== Action Spaces ==&lt;br /&gt;
&lt;br /&gt;
The action spaces on side A of the persona board have the following effects:&lt;br /&gt;
&lt;br /&gt;
# Take the rightmost tile of any conveyor belt.&lt;br /&gt;
# Take a basic power source of your choice.&lt;br /&gt;
# Manufacture a device containing exactly two tiles from your hand.&lt;br /&gt;
# Activate one power source in a device you have already built, without placing a worker on it.&lt;br /&gt;
&lt;br /&gt;
A manufactured device must contain at least one source, and at least one component. A source and a component are connected when the source provides at least one type of power that the component accepts. Invalid connections are allowed to exist in your device but every tile is required to have at least one valid connection. &lt;br /&gt;
&lt;br /&gt;
When a mechanic is placed on the power source of a built device, every component connected to it may be activated in the order of the player&#039;s choice. Some components have different effects depending on whether they are supplied with clockwork, steam or electrickal power - if the source is capable of providing more than one of these, you have the choice of which effect is applied.&lt;br /&gt;
&lt;br /&gt;
=== Age I components ===&lt;br /&gt;
&lt;br /&gt;
; Collecting Resources&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Condenser&#039;&#039;&#039; you may take two basic sources of whichever type of power is supplying the Condenser.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Innovation Turbine&#039;&#039;&#039; you may take a tile from an unlocked supply deck, or pay £1 to choose one tile from two revealed.&lt;br /&gt;
: When you activate the &#039;&#039;Librarifier&#039;&#039;&#039; you may take any component from the Age I conveyor belts if powered by Clockwork, from the Age II belt if powered by Steam, or the Age III belt if powered by Electrickal.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Miscellanerie&#039;&#039;&#039; you take 2 coins and a basic power source of your choice. If an opponent owns the device, they get one basic source of the same type.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Monetiser&#039;&#039;&#039; you collect 3 coins.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Scroll Rack&#039;&#039;&#039;&#039; you may take any component from the conveyor belts, paying some coins depending on where it is located.&lt;br /&gt;
; Building Devices&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Manufacturer&#039;&#039;&#039; you may use sources and components from your hand to build a new device, of exactly size 2/3/4 when the Manufacturer is powered by Clockwork/Steam/Electrickal respectively (though it does not have to be the same &#039;&#039;shape&#039;&#039; as the examples on the Manufacturer tile). &lt;br /&gt;
: When you activate the &#039;&#039;&#039;Sourcer&#039;&#039;&#039; you may select a basic source from the supplies and add it to any device on the table. (It must be a legal connection). If the device containing the Sourcer is owned by an opponent, they get a coin.&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Upgrader&#039;&#039;&#039; you may select any source or component from your hand and add it to any device on the table. (It must be a legal connection).&lt;br /&gt;
; Other Effects&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Alarm Chronometer&#039;&#039;&#039;&#039; you advance the start player marker, once for free, and again for each £1 spent. (Remember it will still advance once more at the end of the round).&lt;br /&gt;
: When you activate the &#039;&#039;&#039;Distiller&#039;&#039;&#039; you may discard one source from your hand to gain £5.&lt;br /&gt;
&lt;br /&gt;
=== Age II components ===&lt;br /&gt;
; Collecting Resources&lt;br /&gt;
: The Amplicondenser works like the Condenser, but you take three sources when you activate it. If the device is owned by an opponent, they get one too.&lt;br /&gt;
: When you activate the Resonator&lt;br /&gt;
; Building Devices&lt;br /&gt;
: When you activate the Insta-factor&lt;br /&gt;
; Powering Devices&lt;br /&gt;
: ElectroClock, ElectroSteam and SteamWork sources supply your choice of two power types in each direction.&lt;br /&gt;
: The Iterator is placed adjacent to another component (and may be rotated to fit your device). Immediately after that component is activated, you may activate it once again with the same power input.&lt;br /&gt;
: The Power Converter is placed between a source and up to three other components (and may be rotated to fit your device). &lt;br /&gt;
; Earning Prestige&lt;br /&gt;
: When you activate the Anthem Organ&lt;br /&gt;
: When you activate the Patriotic Haiku Generator&lt;br /&gt;
: When you activate the Statue Sculptifier&lt;br /&gt;
; Other Effects&lt;br /&gt;
: When you activate the Automaton&lt;br /&gt;
&lt;br /&gt;
=== Age III components ===&lt;br /&gt;
; Collecting Resources&lt;br /&gt;
: When you activate the Ubiquity Conveyor&lt;br /&gt;
; Building Devices&lt;br /&gt;
: When you activate the Expander&lt;br /&gt;
; Powering Devices&lt;br /&gt;
: The Iteration Gears supplies clockwork power in each direction. After the device has been activated once, it is immediately activated again.&lt;br /&gt;
: The Universal Source&lt;br /&gt;
; Earning Prestige&lt;br /&gt;
: Chrome has no activation effect, However when built in a device it is worth 2 Prestige points rather than the usual 1.&lt;br /&gt;
: Crescendo Organ works similarly to the Anthem Organ, but you may trade two sources for 2 Prestige or three sources for 3 Prestige.&lt;br /&gt;
: When you activate the Inflater&lt;br /&gt;
: When you activate Ornament Grinder&lt;br /&gt;
: When you activate Patriotic Sonnet Generator&lt;/div&gt;</summary>
		<author><name>Shadowphiar</name></author>
	</entry>
	<entry>
		<id>https://en.doc.boardgamearena.com/index.php?title=Gamehelpsteamworks&amp;diff=6418</id>
		<title>Gamehelpsteamworks</title>
		<link rel="alternate" type="text/html" href="https://en.doc.boardgamearena.com/index.php?title=Gamehelpsteamworks&amp;diff=6418"/>
		<updated>2020-12-09T09:51:36Z</updated>

		<summary type="html">&lt;p&gt;Shadowphiar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
Steam Works is a worker placement game in which you are an inventor of ingenious devices, competing for the favour of Her Majesty Queen Victoria. Over the course of the game you will take components from the conveyor belts on the main board, and combine them with power sources to manufacture Devices which function as action spaces for all players. You gain prestige points when an opponent uses a device you manufactured, and from activating certain certain components, and for the components in devices you own.&lt;br /&gt;
&lt;br /&gt;
Each player takes one persona board (these can be distributed randomly, or drafted in reverse order of play), and elects to play side A or B. The side A of all boards have different starting resources but the same action spaces available, while side B of each board also has differing action spaces and some special rules.&lt;br /&gt;
&lt;br /&gt;
Each turn, you place one mechanic on an unoccupied action space (one on your own persona board, or on a power source in any built device). The cost to place a mechanic is printed below that mechanic&#039;s space on the persona board; if you cannot (or do not wish to) pay that cost, you may instead pass with that worker and collect that cost.&lt;br /&gt;
&lt;br /&gt;
When all players have placed all their mechanics, the round ends. All workers return to their owner&#039;s persona board, the conveyor belts fill up, and the first player marker advances. If the current age&#039;s clock tokens have all been awarded, then the next Age opens: each player gains a worker, and a new supply of more powerful tiles becomes available. At the end of Age III the game is over and the player who has the most prestige is declared the winner. (Ties are decided by the most leftover money, sources and components combined).&lt;br /&gt;
&lt;br /&gt;
== Action Spaces ==&lt;br /&gt;
&lt;br /&gt;
The action spaces on side A of the persona board have the following effects:&lt;br /&gt;
&lt;br /&gt;
# Take the rightmost tile of any conveyor belt.&lt;br /&gt;
# Take a basic power source of your choice.&lt;br /&gt;
# Manufacture a device containing exactly two tiles from your hand.&lt;br /&gt;
# Activate one power source in a device you have already built, without placing a worker on it.&lt;br /&gt;
&lt;br /&gt;
A manufactured device must contain at least one source, and at least one component. A source and a component are connected when the source provides at least one type of power that the component accepts. Invalid connections are allowed to exist in your device but every tile is required to have at least one valid connection. &lt;br /&gt;
&lt;br /&gt;
When a mechanic is placed on the power source of a built device, every component connected to it may be activated in the order of the player&#039;s choice. Some components have different effects depending on whether they are supplied with clockwork, steam or electrickal power - if the source is capable of providing more than one of these, you have the choice of which effect is applied.&lt;br /&gt;
&lt;br /&gt;
=== Age I components ===&lt;br /&gt;
&lt;br /&gt;
; Collecting Resources&lt;br /&gt;
: When you activate the Condenser you may take two basic sources of whichever type of power is supplying the Condenser.&lt;br /&gt;
: When you activate the Innovation Turbine you may take a tile from an unlocked supply deck, or pay £1 to choose one tile from two revealed.&lt;br /&gt;
: When you activate the Librarifier&lt;br /&gt;
: When you activate the Miscellanerie&lt;br /&gt;
: When you activate the Monetiser&lt;br /&gt;
: When you activate the Scroll Rack&lt;br /&gt;
; Building Devices&lt;br /&gt;
: When you activate the Manufacturer&lt;br /&gt;
: When you activate the Sourcer&lt;br /&gt;
: When you activate the Upgrader&lt;br /&gt;
; Other Effects&lt;br /&gt;
: When you activate the Alarm Chronometer you advance the start player marker, once for free, and again for each £1 spent. (Remember it will still advance once more at the end of the round).&lt;br /&gt;
: When you activate the Distiller you may discard one source from your hand to gain £5.&lt;br /&gt;
&lt;br /&gt;
=== Age II components ===&lt;br /&gt;
; Collecting Resources&lt;br /&gt;
: The Amplicondenser works like the Condenser, but you take three sources when you activate it. If the device is owned by an opponent, they get one too.&lt;br /&gt;
: When you activate the Resonator&lt;br /&gt;
; Building Devices&lt;br /&gt;
: When you activate the Insta-factor&lt;br /&gt;
; Powering Devices&lt;br /&gt;
: ElectroClock, ElectroSteam and SteamWork sources supply your choice of two power types in each direction.&lt;br /&gt;
: The Iterator is placed adjacent to another component (and may be rotated to fit your device). Immediately after that component is activated, you may activate it once again with the same power input.&lt;br /&gt;
: The Power Converter is placed between a source and up to three other components (and may be rotated to fit your device). &lt;br /&gt;
; Earning Prestige&lt;br /&gt;
: When you activate the Anthem Organ&lt;br /&gt;
: When you activate the Patriotic Haiku Generator&lt;br /&gt;
: When you activate the Statue Sculptifier&lt;br /&gt;
; Other Effects&lt;br /&gt;
: When you activate the Automaton&lt;br /&gt;
&lt;br /&gt;
=== Age III components ===&lt;br /&gt;
; Collecting Resources&lt;br /&gt;
: When you activate the Ubiquity Conveyor&lt;br /&gt;
; Building Devices&lt;br /&gt;
: When you activate the Expander&lt;br /&gt;
; Powering Devices&lt;br /&gt;
: The Iteration Gears supplies clockwork power in each direction. After the device has been activated once, it is immediately activated again.&lt;br /&gt;
: The Universal Source&lt;br /&gt;
; Earning Prestige&lt;br /&gt;
: Chrome has no activation effect, However when built in a device it is worth 2 Prestige points rather than the usual 1.&lt;br /&gt;
: Crescendo Organ works similarly to the Anthem Organ, but you may trade two sources for 2 Prestige or three sources for 3 Prestige.&lt;br /&gt;
: When you activate the Inflater&lt;br /&gt;
: When you activate Ornament Grinder&lt;br /&gt;
: When you activate Patriotic Sonnet Generator&lt;/div&gt;</summary>
		<author><name>Shadowphiar</name></author>
	</entry>
	<entry>
		<id>https://en.doc.boardgamearena.com/index.php?title=Gamehelpsteamworks&amp;diff=6416</id>
		<title>Gamehelpsteamworks</title>
		<link rel="alternate" type="text/html" href="https://en.doc.boardgamearena.com/index.php?title=Gamehelpsteamworks&amp;diff=6416"/>
		<updated>2020-12-09T01:17:47Z</updated>

		<summary type="html">&lt;p&gt;Shadowphiar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
Steam Works is a worker placement game in which you are an inventor of ingenious devices, competing for the favour of Her Majesty Queen Victoria. Over the course of the game you will take components from the conveyor belts on the main board, and combine them with power sources to manufacture Devices which function as action spaces for all players. You gain prestige points when an opponent uses a device you manufactured, and from activating certain certain components, and for the components in devices you own.&lt;br /&gt;
&lt;br /&gt;
Each player takes one persona board (these can be distributed randomly, or drafted in reverse order of play), and elects to play side A or B. The side A of all boards have different starting resources but the same action spaces available, while side B of each board also has differing action spaces and some special rules.&lt;br /&gt;
&lt;br /&gt;
Each turn, you place one mechanic on an unoccupied action space (one on your own persona board, or on a power source in any built device). The cost to place a mechanic is printed below that mechanic&#039;s space on the persona board; if you cannot (or do not wish to) pay that cost, you may instead pass with that worker and collect that cost.&lt;br /&gt;
&lt;br /&gt;
When all players have placed all their mechanics, the round ends. All workers return to their owner&#039;s persona board, the conveyor belts fill up, and the first player marker advances. If the current age&#039;s clock tokens have all been awarded, then the next Age opens: each player gains a worker, and a new supply of more powerful tiles becomes available. At the end of Age III the game is over and the player who has the most prestige is declared the winner. (Ties are decided by the most leftover money, sources and components combined).&lt;br /&gt;
&lt;br /&gt;
== Action Spaces ==&lt;br /&gt;
&lt;br /&gt;
The action spaces on side A of the persona board have the following effects:&lt;br /&gt;
&lt;br /&gt;
# Take the rightmost tile of any conveyor belt.&lt;br /&gt;
# Take a basic power source of your choice.&lt;br /&gt;
# Manufacture a device containing exactly two tiles from your hand.&lt;br /&gt;
# Activate one power source in a device you have already built, without placing a worker on it.&lt;br /&gt;
&lt;br /&gt;
A manufactured device must contain at least one source, and at least one component. A source and a component are connected when the source provides at least one type of power that the component accepts. Invalid connections are allowed to exist in your device but every tile is required to have at least one valid connection. &lt;br /&gt;
&lt;br /&gt;
When a mechanic is placed on the power source of a built device, every component connected to it may be activated in the order of the player&#039;s choice. Some components have different effects depending on whether they are supplied with clockwork, steam or electrickal power - if the source is capable of providing more than one of these, you have the choice of which effect is applied.&lt;br /&gt;
&lt;br /&gt;
=== Age I components ===&lt;br /&gt;
&lt;br /&gt;
When you activate the Alarm Chronometer you advance the start player marker once, and again for each £1 spent.&lt;br /&gt;
When you activate the Condenser you may take two basic sources of whichever type of power is supplying the Condenser.&lt;br /&gt;
When you activate the Distiller you may discard one source from your hand to gain £5.&lt;br /&gt;
When you activate the Innovation Turbine you may take a tile from an unlocked supply deck, or pay £1 to choose one tile from two revealed.&lt;/div&gt;</summary>
		<author><name>Shadowphiar</name></author>
	</entry>
	<entry>
		<id>https://en.doc.boardgamearena.com/index.php?title=Gamehelpsteamworks&amp;diff=6415</id>
		<title>Gamehelpsteamworks</title>
		<link rel="alternate" type="text/html" href="https://en.doc.boardgamearena.com/index.php?title=Gamehelpsteamworks&amp;diff=6415"/>
		<updated>2020-12-08T18:35:41Z</updated>

		<summary type="html">&lt;p&gt;Shadowphiar: Created page with &amp;quot;== Overview ==  Steam Works is a worker placement game in which you are an inventor of ingenious devices, competing for the favour of Her Majesty Queen Victoria. Devices you b...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
Steam Works is a worker placement game in which you are an inventor of ingenious devices, competing for the favour of Her Majesty Queen Victoria. Devices you build become action spaces for all players, and actions become increasingly powerful as the game progresses. You will gain prestige points for building devices, from activating certain certain components, and when any opponent uses one of your devices.&lt;br /&gt;
&lt;br /&gt;
Each player takes one persona board (these can be distributed randomly, or drafted in reverse order of play), and elects to play side A or B. The side A of all boards have the same action spaces available but different starting resources, side B of each board has differing action spaces and some special rules.&lt;br /&gt;
&lt;br /&gt;
Each turn, you place one mechanic on an unoccupied action space (one on your own persona board, or on a power source in any built device). The cost to place a mechanic is printed below that mechanic&#039;s space on the persona board; if you cannot (or do not wish to) pay that cost, you may instead pass with that worker and instead collect the same cost.&lt;br /&gt;
&lt;br /&gt;
When all players have placed all their mechanics, the round ends. All workers return to their owner&#039;s persona board, the conveyor belts fill up, and the first player marker advances. If the current age&#039;s clock tokens have all been awarded, then the next Age opens: each player gains a worker, and a new supply of more powerful tiles becomes available. At the end of Age III the game is over and the player who has the most prestige is declared the winner. (Ties are decided by the most leftover money, sources and components combined).&lt;br /&gt;
&lt;br /&gt;
== Action Spaces ==&lt;br /&gt;
&lt;br /&gt;
The action spaces on side A of the persona board have the following effects:&lt;br /&gt;
&lt;br /&gt;
# Take the rightmost tile of any conveyor belt.&lt;br /&gt;
# Take a basic power source of your choice.&lt;br /&gt;
# Manufacture a device containing exactly two tiles from your hand.&lt;br /&gt;
# Activate one power source in a device you have already built, without placing a worker on it.&lt;br /&gt;
&lt;br /&gt;
A manufactured device must contain at least one source, and at least one component. A source and a component are connected when the source provides at least one type of power that the component accepts. Invalid connections are allowed to exist in your device but every tile is required to have at least one valid connection. &lt;br /&gt;
&lt;br /&gt;
When a mechanic is placed on the power source of a built device, every component connected to it may be activated in the order of the player&#039;s choice. Some components have different effects when supplied with clockwork, steam or electrickal power - if the source is capable of providing more than one of these, you have the choice of which effect is applied.&lt;/div&gt;</summary>
		<author><name>Shadowphiar</name></author>
	</entry>
	<entry>
		<id>https://en.doc.boardgamearena.com/index.php?title=Game_interface_stylesheet:_yourgamename.css&amp;diff=5950</id>
		<title>Game interface stylesheet: yourgamename.css</title>
		<link rel="alternate" type="text/html" href="https://en.doc.boardgamearena.com/index.php?title=Game_interface_stylesheet:_yourgamename.css&amp;diff=5950"/>
		<updated>2020-10-23T09:03:13Z</updated>

		<summary type="html">&lt;p&gt;Shadowphiar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Studio_Framework_Navigation}}&lt;br /&gt;
&lt;br /&gt;
This is the CSS stylesheet of your game User Interface.&lt;br /&gt;
    &lt;br /&gt;
Styles defined on this file will be applied to the HTML elements you define in your HTML template (yourgame_yourgame.tpl), and to HTML elements you create dynamically with Javascript.&lt;br /&gt;
    &lt;br /&gt;
Usually, you are using CSS to:&lt;br /&gt;
    &lt;br /&gt;
1°) define the overall layout of your game&lt;br /&gt;
(ex: place the board on the top left, place player&#039;s hand beside, place the deck on the right, ...).&lt;br /&gt;
&lt;br /&gt;
2°) create your CSS-sprites:&lt;br /&gt;
All images of your games should be gathered into a small number of image files. Then, using background-image and background-position CSS properties, you create HTML blocks that can display these images correctly.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    Example of CSS sprites (a black token and a white token, 20x20px each, embedded in the same &amp;quot;tokens.png&amp;quot; 40x20px image):&lt;br /&gt;
&lt;br /&gt;
    .white_token {&lt;br /&gt;
        background-image: url(&#039;img/tokens.png&#039;);&lt;br /&gt;
        background-position: 0px 0px;&lt;br /&gt;
    }&lt;br /&gt;
    .black_token {&lt;br /&gt;
        background-image: url(&#039;img/tokens.png&#039;);&lt;br /&gt;
        background-position: -20px 0px;&lt;br /&gt;
    }&lt;br /&gt;
    .token {&lt;br /&gt;
        width: 20px;&lt;br /&gt;
        height: 20px;&lt;br /&gt;
        background-repeat: none;&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
3°) ... anything else:&lt;br /&gt;
&lt;br /&gt;
It is really easy to add and remove CSS classes dynamically from your Javascript with dojo.addClass and dojo.removeClass. It is also easy to check if an element has a class (dojo.hasClass) or to get all elements with a specific class (dojo.query). &lt;br /&gt;
&lt;br /&gt;
This is why, very often, using CSS classes for the logic of your user interface allow you to do complex thing easily.&lt;br /&gt;
        &lt;br /&gt;
Note: on the production platform, this file will be compressed and comments will be removed. Consequently, don&#039;t hesitate to put as many comments as necessary.&lt;br /&gt;
&lt;br /&gt;
Important: ALL the CSS directives for your game must be included in this CSS file. You can&#039;t create additional CSS files and import them.&lt;br /&gt;
&lt;br /&gt;
== Warning: using percentage in background-position ==&lt;br /&gt;
&lt;br /&gt;
In the example above, you will see &amp;quot;background-position: -20px 0px;&amp;quot; is used for the black token. You could also write this as &amp;quot;background-position: -100% 0%;&amp;quot; which displays the image at the same offset, because it is relative to the size of the .token bounding box, and this seems preferable because there is less dependence on the precise size of your images. Sadly however, this will cause issues on iPhone, on iPad, and on MacOS using Safari, because that browser calculates this offset in a slightly different way than Chrome or Firefox. (If the size of the div on screen, after any further scaling - which is done for you by the framework to fit games into small windows - is not a round integer number of pixels, then the offset of the image will be incorrect). To avoid this issue, either:&lt;br /&gt;
* specify the background-position offsets in pixels.&lt;br /&gt;
* choose the size of your div so that, after any global scaling (this.gameinterface_zoomFactor), it will occupy an integer number of pixels on the screen.&lt;br /&gt;
* define a &amp;lt;code&amp;gt;font-size&amp;lt;/code&amp;gt; in your div and specify background-position in units of &amp;lt;code&amp;gt;em&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Warning: using Z-index ==&lt;br /&gt;
&lt;br /&gt;
You may use z-index CSS property in your game interface, but you should pay attention to the following: BGA dialogs are displayed with a z-index of 950. If you want to use z-index safely, you should use value &#039;&#039;&#039;lower than 900&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
About z-index: don&#039;t forget that if you are using a z-index, your element will be displayed above all elements that do not have a z-index. So it&#039;s no use to have big z-index values: 1 is enough most of the time :)&lt;br /&gt;
&lt;br /&gt;
== Tip: how to make your cards looks beautiful :) ==&lt;br /&gt;
&lt;br /&gt;
This piece of CSS (to adapt to your needs) is adding rounded corners + a shadow to your card.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    border-radius: 10px;&lt;br /&gt;
    border: 1px black solid;&lt;br /&gt;
&lt;br /&gt;
    -moz-box-shadow: 5px 5px 5px 0px rgba(0,0,0,0.4);&lt;br /&gt;
    -webkit-box-shadow: 5px 5px 5px 0px rgba(0,0,0,0.4);&lt;br /&gt;
    -o-box-shadow: 5px 5px 5px 0px rgba(0,0,0,0.4);&lt;br /&gt;
    box-shadow: 5px 5px 5px 0px rgba(0,0,0,0.4);&lt;br /&gt;
    filter:progid:DXImageTransform.Microsoft.Shadow(color=#656565, Direction=134, Strength=30);   &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== spectatorMode ==&lt;br /&gt;
&lt;br /&gt;
When a spectator (= a player that is not part of the game) is viewing a game, the BGA framework add the CSS class &amp;quot;spectatorMode&amp;quot; to the wrapping HTML tag of your game.&lt;br /&gt;
&lt;br /&gt;
This way, if you want to apply a special style to some elements of your game for spectators, you can do this in your CSS:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.spectatorMode #your_element_id {&lt;br /&gt;
    /* your special style */&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The most common usage of this is to hide some elements to spectators. For example, to hide &amp;quot;my hand&amp;quot; elements:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.spectatorMode #my_hand {&lt;br /&gt;
    display: none;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Shadowphiar</name></author>
	</entry>
	<entry>
		<id>https://en.doc.boardgamearena.com/index.php?title=Game_interface_stylesheet:_yourgamename.css&amp;diff=5276</id>
		<title>Game interface stylesheet: yourgamename.css</title>
		<link rel="alternate" type="text/html" href="https://en.doc.boardgamearena.com/index.php?title=Game_interface_stylesheet:_yourgamename.css&amp;diff=5276"/>
		<updated>2020-08-13T23:30:10Z</updated>

		<summary type="html">&lt;p&gt;Shadowphiar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Studio_Framework_Navigation}}&lt;br /&gt;
&lt;br /&gt;
This is the CSS stylesheet of your game User Interface.&lt;br /&gt;
    &lt;br /&gt;
Styles defined on this file will be applied to the HTML elements you define in your HTML template (yourgame_yourgame.tpl), and to HTML elements you create dynamically with Javascript.&lt;br /&gt;
    &lt;br /&gt;
Usually, you are using CSS to:&lt;br /&gt;
    &lt;br /&gt;
1°) define the overall layout of your game&lt;br /&gt;
(ex: place the board on the top left, place player&#039;s hand beside, place the deck on the right, ...).&lt;br /&gt;
&lt;br /&gt;
2°) create your CSS-sprites:&lt;br /&gt;
All images of your games should be gathered into a small number of image files. Then, using background-image and background-position CSS properties, you create HTML blocks that can display these images correctly.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    Example of CSS sprites (a black token and a white token, 20x20px each, embedded in the same &amp;quot;tokens.png&amp;quot; 40x20px image):&lt;br /&gt;
&lt;br /&gt;
    .white_token {&lt;br /&gt;
        background-image: url(&#039;img/tokens.png&#039;);&lt;br /&gt;
        background-position: 0px 0px;&lt;br /&gt;
    }&lt;br /&gt;
    .black_token {&lt;br /&gt;
        background-image: url(&#039;img/tokens.png&#039;);&lt;br /&gt;
        background-position: -20px 0px;&lt;br /&gt;
    }&lt;br /&gt;
    .token {&lt;br /&gt;
        width: 20px;&lt;br /&gt;
        height: 20px;&lt;br /&gt;
        background-repeat: none;&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
3°) ... anything else:&lt;br /&gt;
&lt;br /&gt;
It is really easy to add and remove CSS classes dynamically from your Javascript with dojo.addClass and dojo.removeClass. It is also easy to check if an element has a class (dojo.hasClass) or to get all elements with a specific class (dojo.query). &lt;br /&gt;
&lt;br /&gt;
This is why, very often, using CSS classes for the logic of your user interface allow you to do complex thing easily.&lt;br /&gt;
        &lt;br /&gt;
Note: on the production platform, this file will be compressed and comments will be removed. Consequently, don&#039;t hesitate to put as many comments as necessary.&lt;br /&gt;
&lt;br /&gt;
Important: ALL the CSS directives for your game must be included in this CSS file. You can&#039;t create additional CSS files and import them.&lt;br /&gt;
&lt;br /&gt;
== Warning: using percentage in background-position ==&lt;br /&gt;
&lt;br /&gt;
In the example above, you will see &amp;quot;background-position: -20px 0px;&amp;quot; is used for the black token. You could also write this as &amp;quot;background-position: -100% 0%;&amp;quot; which displays the image at the same offset, because it is relative to the size of the .token bounding box, and this seems preferable because there is less dependence on the precise size of your images. Sadly however, this will cause issues on iPhone, on iPad, and on MacOS using Safari, because that browser calculates this offset in a slightly different way than Chrome or Firefox. (If the size of the div on screen, after any further scaling - which is done for you by the framework to fit games into small windows - is not a round integer number of pixels, then the offset of the image will be incorrect). To avoid this issue always specify the offsets in pixels.&lt;br /&gt;
&lt;br /&gt;
== Warning: using Z-index ==&lt;br /&gt;
&lt;br /&gt;
You may use z-index CSS property in your game interface, but you should pay attention to the following: BGA dialogs are displayed with a z-index of 950. If you want to use z-index safely, you should use value &#039;&#039;&#039;lower than 900&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
About z-index: don&#039;t forget that if you are using a z-index, your element will be displayed above all elements that do not have a z-index. So it&#039;s no use to have big z-index values: 1 is enough most of the time :)&lt;br /&gt;
&lt;br /&gt;
== spectatorMode ==&lt;br /&gt;
&lt;br /&gt;
When a spectator (= a player that is not part of the game) is viewing a game, the BGA framework add the CSS class &amp;quot;spectatorMode&amp;quot; to the wrapping HTML tag of your game.&lt;br /&gt;
&lt;br /&gt;
This way, if you want to apply a special style to some elements of your game for spectators, you can do this in your CSS:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.spectatorMode #your_element_id {&lt;br /&gt;
    /* your special style */&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The most common usage of this is to hide some elements to spectators. For example, to hide &amp;quot;my hand&amp;quot; elements:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.spectatorMode #my_hand {&lt;br /&gt;
    display: none;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Shadowphiar</name></author>
	</entry>
	<entry>
		<id>https://en.doc.boardgamearena.com/index.php?title=BGA_game_Lifecycle&amp;diff=5159</id>
		<title>BGA game Lifecycle</title>
		<link rel="alternate" type="text/html" href="https://en.doc.boardgamearena.com/index.php?title=BGA_game_Lifecycle&amp;diff=5159"/>
		<updated>2020-08-03T08:59:36Z</updated>

		<summary type="html">&lt;p&gt;Shadowphiar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Studio_Framework_Navigation}}&lt;br /&gt;
&lt;br /&gt;
Here&#039;s a summary of the different steps you would follow when developing a game with BGA Studio.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Step !! How to reach this step !! What happened during the step?&lt;br /&gt;
|-&lt;br /&gt;
| Initial || [[How to join BGA developer team?]] || You can choose to join an existing team / create a new project&lt;br /&gt;
|-&lt;br /&gt;
| Assigned || You choose a game  || You can start the development of the game&lt;br /&gt;
|-&lt;br /&gt;
| Pre-alpha || You&#039;ve started to write some piece of code  || You develop the game. During this phase, we can assist you with the framework and give you some pieces of advice.&lt;br /&gt;
|-&lt;br /&gt;
| Alpha || You tell us that your development is finished || &amp;quot;BGA review&amp;quot;: we are reviewing your game and check if it respects [http://fr.slideshare.net/boardgamearena/bga-studio-guidelines BGA guidelines]. If not, we will ask you (and help you) to fix them.&lt;br /&gt;
|-&lt;br /&gt;
| Private beta || We give a &amp;quot;go&amp;quot; || &amp;quot;Publisher review&amp;quot;: On preproduction platform, the publisher, the designer, we and you can test the game together and separately. We help you to take into account remarks from the publisher and the designer.&lt;br /&gt;
|-&lt;br /&gt;
| Public beta || The adaptation is approved by the publisher || We find together a good launch date for the game, we announce the game on BGA news, and then player can start to play! During the first days, it is common that some bugs are reported by players, and you can fix them following the instructions in [[Post-release phase]].&lt;br /&gt;
|-&lt;br /&gt;
| Gold || The game is stable on BGA || Congrats! You can still modify and optimize things following the instructions in [[Post-release phase]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== See also ===&lt;br /&gt;
&lt;br /&gt;
* [https://boardgamearena.com/forum/viewtopic.php?f=12&amp;amp;t=15288 Announcement of the alpha review process]&lt;/div&gt;</summary>
		<author><name>Shadowphiar</name></author>
	</entry>
	<entry>
		<id>https://en.doc.boardgamearena.com/index.php?title=BGA_Studio_Cookbook&amp;diff=4183</id>
		<title>BGA Studio Cookbook</title>
		<link rel="alternate" type="text/html" href="https://en.doc.boardgamearena.com/index.php?title=BGA_Studio_Cookbook&amp;diff=4183"/>
		<updated>2020-04-29T09:19:58Z</updated>

		<summary type="html">&lt;p&gt;Shadowphiar: /* Visual Effects, Layout and Animation */ Add tip for hi-definition (or &amp;quot;retina&amp;quot;) graphics&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Studio_Framework_Navigation}}&lt;br /&gt;
&lt;br /&gt;
This page is collection of design and implementation recipes for BGA Studio framework.&lt;br /&gt;
For tooling and usage recipes see [[Tools and tips of BGA Studio]].&lt;br /&gt;
If you have your own recipes feel free to edit this page.&lt;br /&gt;
&lt;br /&gt;
== Visual Effects, Layout and Animation ==&lt;br /&gt;
&lt;br /&gt;
=== Create pieces dynamically (using template) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ingredients:&#039;&#039;&#039; ggg_ggg.tpl, ggg.js&lt;br /&gt;
&lt;br /&gt;
Note: this method is recommended by BGA guildlines&lt;br /&gt;
&lt;br /&gt;
Declared js template with variables in .tpl file, like this&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
    // Javascript HTML templates&lt;br /&gt;
    var jstpl_ipiece = &#039;&amp;lt;div class=&amp;quot;${type} ${type}_${color} inlineblock&amp;quot; aria-label=&amp;quot;${name}&amp;quot; title=&amp;quot;${name}&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&#039;;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use it like this in .js file&lt;br /&gt;
  div = this.format_block(&#039;jstpl_ipiece&#039;, {&lt;br /&gt;
                                type : &#039;meeple&#039;,&lt;br /&gt;
                                color : &#039;ff0000&#039;,&lt;br /&gt;
                                name : &#039;Bob&#039;,&lt;br /&gt;
                            });&lt;br /&gt;
  &lt;br /&gt;
Then you do whatever you need to do with that div, this one specifically design to go to log entries, because it has embedded title (otherwise its a picture only) and no id.&lt;br /&gt;
&lt;br /&gt;
Note: you could have place this variable in js itself, but keeping it in .tpl allows you to have your js code be free of HTML. Normally it never happens but&lt;br /&gt;
it is good to strive for it.&lt;br /&gt;
Note: you can also use string concatenation, its less readable. You can also use dojo dom object creation api&#039;s but its brutally verbose and its more unreadable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Create pieces dynamically (using string concatenation) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ingredients:&#039;&#039;&#039; ggg.js&lt;br /&gt;
&lt;br /&gt;
Note: Not recommended&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  div = &amp;quot;&amp;lt;div class=&#039;meeple &amp;quot;+color+&amp;quot;&#039;&amp;gt;&amp;lt;/div&amp;gt;&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Create all pieces statically ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ingredients:&#039;&#039;&#039; ggg_ggg.tpl, ggg.css, ggg.view.php (optional) &lt;br /&gt;
&lt;br /&gt;
* Create ALL game pieces in html template (.tpl)&lt;br /&gt;
* ALL pieces should have unique id, and it should be meaningful, i.e. meeple_red_1d&lt;br /&gt;
* Do not use inline styling&lt;br /&gt;
* Id of player&#039;s specific pieces should use some sort of &#039;color&#039; identification, since player id cannot be used in static layout, you can use english color name, hex 6 char value, or color &amp;quot;number&amp;quot; (1,2,3...)&lt;br /&gt;
* Pieces should have separated class for its color, type, etc, so it can be easily styled in groups. In example below you now can style all meeples, all red meeples or all red tokens, or all &amp;quot;first&amp;quot; meeples&lt;br /&gt;
&lt;br /&gt;
in .tpl file:&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
  &amp;lt;div id=&amp;quot;home_red&amp;quot; class=&amp;quot;home red&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;div id=&amp;quot;meeple_red_1&amp;quot; class=&amp;quot;meeple red n1&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
     &amp;lt;div id=&amp;quot;meeple_red_2&amp;quot; class=&amp;quot;meeple red n2&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in .css file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.meeple {&lt;br /&gt;
	width: 32px;&lt;br /&gt;
	height: 39px;&lt;br /&gt;
	background-image: url(img/78_64_stand_meeples.png);&lt;br /&gt;
	background-size: 352px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.meeple.red {&lt;br /&gt;
	background-position: 30% 0%;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* There should be straight forward mapping between server id and js id (or 1:1)&lt;br /&gt;
* You place objects in different zones of the layout, and setup css to take care of layout&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.home .meeple{&lt;br /&gt;
   display: inline-block;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* If you need to have a temporary object that look like original you can use dojo.clone (and change id to some temp id)&lt;br /&gt;
* If there is lots of repetition or zone grid you can use template generator, but inject style declaration in css instead of inline style for flexibility&lt;br /&gt;
&lt;br /&gt;
Note:&lt;br /&gt;
* If you use this model you cannot use premade js components such as Stock and Zone&lt;br /&gt;
* You have to use alternative methods of animation (slightly altered) since default method will leave object with inline style attributes which you don&#039;t need&lt;br /&gt;
&lt;br /&gt;
=== Use thematic fonts ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ingredients:&#039;&#039;&#039; ggg.css&lt;br /&gt;
&lt;br /&gt;
Sometime game elements use specific fonts of text, if you want to match it up you can load some specific font (from some free font source).&lt;br /&gt;
&lt;br /&gt;
[[File:Dragonline_font.png]]&lt;br /&gt;
&lt;br /&gt;
.css&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/* latin-ext */&lt;br /&gt;
@font-face {&lt;br /&gt;
  font-family: &#039;Qwigley&#039;;&lt;br /&gt;
  font-style: normal;&lt;br /&gt;
  font-weight: 400;&lt;br /&gt;
  src: local(&#039;Qwigley&#039;), local(&#039;Qwigley-Regular&#039;), url(https://fonts.gstatic.com/s/qwigley/v6/2Dy1Unur1HJoklbsg4iPJ_Y6323mHUZFJMgTvxaG2iE.woff2) format(&#039;woff2&#039;);&lt;br /&gt;
  unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;&lt;br /&gt;
}&lt;br /&gt;
/* latin */&lt;br /&gt;
@font-face {&lt;br /&gt;
  font-family: &#039;Qwigley&#039;;&lt;br /&gt;
  font-style: normal;&lt;br /&gt;
  font-weight: normal;&lt;br /&gt;
  src: local(&#039;Qwigley&#039;), local(&#039;Qwigley-Regular&#039;), url(https://fonts.gstatic.com/s/qwigley/v6/gThgNuQB0o5ITpgpLi4Zpw.woff2) format(&#039;woff2&#039;);&lt;br /&gt;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;&lt;br /&gt;
}&lt;br /&gt;
@font-face {&lt;br /&gt;
  font-family: &#039;Qwigley&#039;;&lt;br /&gt;
  font-style: normal;&lt;br /&gt;
  font-weight: normal;&lt;br /&gt;
  src: local(&#039;Qwigley&#039;), local(&#039;Qwigley-Regular&#039;), url(http://ff.static.1001fonts.net/q/w/qwigley.regular.ttf) format(&#039;ttf&#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.zone_title {&lt;br /&gt;
	display: inline-block;&lt;br /&gt;
	position: absolute;&lt;br /&gt;
	font: italic 32px/32px &amp;quot;Qwigley&amp;quot;, cursive;	   &lt;br /&gt;
	height: 32px;&lt;br /&gt;
	width: auto;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Use player color in template ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ingredients:&#039;&#039;&#039; ggg_ggg.tpl, ggg.view.php&lt;br /&gt;
&lt;br /&gt;
.view.php:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    function build_page($viewArgs) {&lt;br /&gt;
        // Get players &amp;amp; players number&lt;br /&gt;
        $players = $this-&amp;gt;game-&amp;gt;loadPlayersBasicInfos();&lt;br /&gt;
        $players_nbr = count($players);&lt;br /&gt;
        /**&lt;br /&gt;
         * ********* Place your code below: ***********&lt;br /&gt;
         */&lt;br /&gt;
        &lt;br /&gt;
        // Set PCOLOR to the current player color hex&lt;br /&gt;
        global $g_user;&lt;br /&gt;
        $cplayer = $g_user-&amp;gt;get_id();&lt;br /&gt;
        if (array_key_exists($cplayer, $players)) { // may be not set if spectator&lt;br /&gt;
            $player_color = $players [$cplayer] [&#039;player_color&#039;];&lt;br /&gt;
        } else {&lt;br /&gt;
            $player_color = &#039;ffffff&#039;; // spectator&lt;br /&gt;
        }&lt;br /&gt;
        $this-&amp;gt;tpl [&#039;PCOLOR&#039;] = $player_color;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Scale to fit for big boards ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ingredients:&#039;&#039;&#039; ggg_ggg.tpl, ggg.js&lt;br /&gt;
&lt;br /&gt;
Lets say you have huge game board, and lets say you want it to be 1400px wide. Besides the board there will be side bar which is 240 and trim. &lt;br /&gt;
My display is 1920 wide so it fits, but there is big chance other people won&#039;t have that width. What do you do?&lt;br /&gt;
Easiest thing I came up with is to scale whole content to fit (everything you declare in .tpl file). Tested or firefox and chrome.&lt;br /&gt;
&lt;br /&gt;
ggg_ggg.tpl:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   &amp;lt;div id=&amp;quot;thething&amp;quot; class=&amp;quot;thething&amp;quot; style=&amp;quot;width: 1400px;&amp;quot;&amp;gt;&lt;br /&gt;
            ... everything else you declare ...&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ggg.js:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    setup : function(gamedatas) {&lt;br /&gt;
          console.log(&amp;quot;Starting game setup&amp;quot;);&lt;br /&gt;
          ...&lt;br /&gt;
          this.interface_min_width = 740;&lt;br /&gt;
          this.interface_max_width = 1400;&lt;br /&gt;
          dojo.connect(window, &amp;quot;onresize&amp;quot;, this, dojo.hitch(this, &amp;quot;adaptViewportSize&amp;quot;));&lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
    adaptViewportSize : function() {&lt;br /&gt;
        var pageid = &amp;quot;page-content&amp;quot;;&lt;br /&gt;
        var nodeid = &amp;quot;thething&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        var bodycoords = dojo.marginBox(pageid);&lt;br /&gt;
        var contentWidth = bodycoords.w;&lt;br /&gt;
&lt;br /&gt;
        var browserZoomLevel = window.devicePixelRatio; &lt;br /&gt;
        //console.log(&amp;quot;zoom&amp;quot;,browserZoomLevel);&lt;br /&gt;
        if (contentWidth &amp;gt;= this.interface_max_width || browserZoomLevel &amp;gt;1  || this.control3dmode3d) {&lt;br /&gt;
            dojo.style(nodeid,&#039;transform&#039;,&#039;&#039;);&lt;br /&gt;
            return;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        var percentageOn1 = contentWidth / this.interface_max_width;&lt;br /&gt;
        dojo.style(nodeid, &amp;quot;transform&amp;quot;, &amp;quot;scale(&amp;quot; + percentageOn1 + &amp;quot;)&amp;quot;);&lt;br /&gt;
    },&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dynamic tooltips ===&lt;br /&gt;
&lt;br /&gt;
If you really need a dynamic tooltip you can use this technique. (Only use it if the static tooltips provided by the BGA framework are not sufficient.)&lt;br /&gt;
&lt;br /&gt;
            new dijit.Tooltip({&lt;br /&gt;
                connectId: [&amp;quot;divItemId&amp;quot;],&lt;br /&gt;
                getContent: function(matchedNode){&lt;br /&gt;
                    return &amp;quot;... calculated ...&amp;quot;; &lt;br /&gt;
                }&lt;br /&gt;
            });&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is an out-of-the-box djit.Tooltip. It has a &#039;&#039;getContent&#039;&#039; method which is called dynamically.&lt;br /&gt;
&lt;br /&gt;
The string function return becomes the innerHTML of the tooltip, so it can be anything (matchedNode in this case) dojo node representing dom object with id of &amp;quot;divItemId&amp;quot; but there are more parameters which I am not posting here which allows more sophisticated subnode queries.&lt;br /&gt;
&lt;br /&gt;
[https://dojotoolkit.org/reference-guide/1.10/dijit/Tooltip.html dijit.Tooltip]&lt;br /&gt;
&lt;br /&gt;
It&#039;s not part of the BGA API so use at your own risk.&lt;br /&gt;
&lt;br /&gt;
=== Accessing images from js ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ingredients:&#039;&#039;&#039; ggg.js&lt;br /&gt;
ggg.js&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
     // your game resources&lt;br /&gt;
     &lt;br /&gt;
     var my_img = &#039;&amp;lt;img src=&amp;quot;&#039;+g_gamethemeurl+&#039;img/cards.jpg&amp;quot;/&amp;gt;&#039;;&lt;br /&gt;
     &lt;br /&gt;
     // shared resources&lt;br /&gt;
     var my_help_img = &amp;quot;&amp;lt;img class=&#039;imgtext&#039; src=&#039;&amp;quot; + g_themeurl + &amp;quot;img/layout/help_click.png&#039; alt=&#039;action&#039; /&amp;gt; &amp;lt;span class=&#039;tooltiptext&#039;&amp;gt;&amp;quot; +&lt;br /&gt;
                    text + &amp;quot;&amp;lt;/span&amp;gt;&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== Inject images and styled html in the log ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ingredients:&#039;&#039;&#039; ggg.js, ggg.game.php&lt;br /&gt;
&lt;br /&gt;
So you want nice pictures in the game log, what do you do? First idea that come to mind is to send html from php in notifications. &lt;br /&gt;
This is bad idea for many reasons&lt;br /&gt;
* Its bad architecture, ui elements leak into server now you have to manage ui in many places&lt;br /&gt;
* If you decided to change something in ui in future version, old games reply and tutorials may not work, since they use stored notifications&lt;br /&gt;
* When you read log preview for old games its unreadable (this is log before you enter the game reply, useful for troubleshooting or game analysis)&lt;br /&gt;
* Its more data to transfer and store in db&lt;br /&gt;
* Its nightmare for translators&lt;br /&gt;
&lt;br /&gt;
So what else can you do? I use this recipe which I is client side log injection. I intercept log arguments and replace them by html on my client side.&lt;br /&gt;
&lt;br /&gt;
[[File:clientloginjection.png|left]] &lt;br /&gt;
&lt;br /&gt;
ggg.js&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
        /** Override this function to inject html for log items  */&lt;br /&gt;
&lt;br /&gt;
        /* @Override */&lt;br /&gt;
        format_string_recursive : function(log, args) {&lt;br /&gt;
            try {&lt;br /&gt;
                if (log &amp;amp;&amp;amp; args &amp;amp;&amp;amp; !args.processed) {&lt;br /&gt;
                    args.processed = true;&lt;br /&gt;
                    &lt;br /&gt;
                    if (!this.isSpectator)&lt;br /&gt;
                        args.You = this.divYou(); // will replace ${You} with colored version&lt;br /&gt;
&lt;br /&gt;
                    // list of other known variables&lt;br /&gt;
                    var keys = [&#039;place_name&#039;,&#039;token_name&#039;];&lt;br /&gt;
                    &lt;br /&gt;
                  &lt;br /&gt;
                    for ( var i in keys) {&lt;br /&gt;
                        var key = keys[i];&lt;br /&gt;
                        if (typeof args[key] == &#039;string&#039;) {&lt;br /&gt;
                           args[key] = this.getTokenDiv(key, args);                            &lt;br /&gt;
                        }&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
            } catch (e) {&lt;br /&gt;
                console.error(log,args,&amp;quot;Exception thrown&amp;quot;, e.stack);&lt;br /&gt;
            }&lt;br /&gt;
            return this.inherited(arguments);&lt;br /&gt;
        },&lt;br /&gt;
&lt;br /&gt;
        /* Implementation of proper colored You with background in case of white or light colors  */&lt;br /&gt;
&lt;br /&gt;
        divYou : function() {&lt;br /&gt;
            var color = this.gamedatas.players[this.player_id].color;&lt;br /&gt;
            var color_bg = &amp;quot;&amp;quot;;&lt;br /&gt;
            if (this.gamedatas.players[this.player_id] &amp;amp;&amp;amp; this.gamedatas.players[this.player_id].color_back) {&lt;br /&gt;
                color_bg = &amp;quot;background-color:#&amp;quot; + this.gamedatas.players[this.player_id].color_back + &amp;quot;;&amp;quot;;&lt;br /&gt;
            }&lt;br /&gt;
            var you = &amp;quot;&amp;lt;span style=\&amp;quot;font-weight:bold;color:#&amp;quot; + color + &amp;quot;;&amp;quot; + color_bg + &amp;quot;\&amp;quot;&amp;gt;&amp;quot; + __(&amp;quot;lang_mainsite&amp;quot;, &amp;quot;You&amp;quot;) + &amp;quot;&amp;lt;/span&amp;gt;&amp;quot;;&lt;br /&gt;
            return you;&lt;br /&gt;
        },&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        getTokenDiv : function(key, args) {&lt;br /&gt;
            // ... implement whatever html you want here, example from sharedcode.js&lt;br /&gt;
            var token_id = args[key];&lt;br /&gt;
            var item_type = getPart(token_id,0);&lt;br /&gt;
            var logid = &amp;quot;log&amp;quot; + (this.globalid++) + &amp;quot;_&amp;quot; + token_id;&lt;br /&gt;
            switch (item_type) {&lt;br /&gt;
                case &#039;wcube&#039;:&lt;br /&gt;
                    var tokenDiv = this.format_block(&#039;jstpl_resource_log&#039;, {&lt;br /&gt;
                        &amp;quot;id&amp;quot; : logid,&lt;br /&gt;
                        &amp;quot;type&amp;quot; : &amp;quot;wcube&amp;quot;,&lt;br /&gt;
                        &amp;quot;color&amp;quot; : getPart(token_id,1),&lt;br /&gt;
                    });&lt;br /&gt;
                    return tokenDiv;&lt;br /&gt;
                    break;&lt;br /&gt;
                case &#039;meeple&#039;:&lt;br /&gt;
                    if ($(token_id)) {&lt;br /&gt;
                        var clone = dojo.clone($(token_id));&lt;br /&gt;
    &lt;br /&gt;
                        dojo.attr(clone, &amp;quot;id&amp;quot;, logid);&lt;br /&gt;
                        this.stripPosition(clone);&lt;br /&gt;
                        dojo.addClass(clone, &amp;quot;logitem&amp;quot;);&lt;br /&gt;
                        return clone.outerHTML;&lt;br /&gt;
                    }&lt;br /&gt;
                    break;&lt;br /&gt;
     &lt;br /&gt;
                default:&lt;br /&gt;
                    break;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            return &amp;quot;&#039;&amp;quot; + this.clienttranslate_string(this.getTokenName(token_id)) + &amp;quot;&#039;&amp;quot;;&lt;br /&gt;
       },&lt;br /&gt;
       getTokenName : function(key) {&lt;br /&gt;
           return this.gamedatas.token_types[key].name; // get name for the key, from static table for example&lt;br /&gt;
       },&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note in this case server simply injects token_id as name, and client substitutes it for the real translated name or the picture&lt;br /&gt;
&lt;br /&gt;
ggg.game.php:&lt;br /&gt;
&lt;br /&gt;
           $this-&amp;gt;notifyPlayer($player_id,&#039;playerLog&#039;,clienttranslate(&#039;${You} moved cube&#039;),[&#039;You&#039;=&amp;gt;&#039;You&#039;]);&lt;br /&gt;
&lt;br /&gt;
ggg.game.php:&lt;br /&gt;
&lt;br /&gt;
           $this-&amp;gt;notifyAllPlayers(&#039;playerLog&#039;,clienttranslate(&#039;Game moves ${token_name}&#039;),[&#039;token_name&#039;=&amp;gt;$token_id]);&lt;br /&gt;
&lt;br /&gt;
Now if you don&#039;t like raw log containing id instead of name but want name, and want substitution, you can use another parameter as id. The problem with that,&lt;br /&gt;
it will work at first, but if you reload game using F5 you will loose your additional parameters, why? Because when game reloads it does not actually send same&lt;br /&gt;
notifications, it sends special &amp;quot;hitstorical_log&amp;quot; notification where all  parameters not listed in the &amp;quot;log&amp;quot; are removed. There is a hack (feature) to circumvent that,&lt;br /&gt;
called recursive parameters. I.e. you can send stuff like this:&lt;br /&gt;
 &lt;br /&gt;
             $this-&amp;gt;notifyAllPlayers(&#039;playerLog&#039;,clienttranslate(&#039;Game moves ${token_name_rec}&#039;),&lt;br /&gt;
                    [&#039;token_name_rec&#039;=&amp;gt;[&#039;log&#039;=&amp;gt;&#039;${token_name}&#039;,&lt;br /&gt;
                                        &#039;args&#039;=&amp;gt; [&#039;token_name&#039;=&amp;gt;clienttranslate(&#039;Boo&#039;), &#039;token_id&#039;=&amp;gt;$token_id, &#039;i18n&#039;=&amp;gt;[&#039;token_name&#039;] ]&lt;br /&gt;
                                       ]&lt;br /&gt;
                    ]);&lt;br /&gt;
&lt;br /&gt;
and in format_log_recursive&lt;br /&gt;
             var key = &#039;token_name&#039;;&lt;br /&gt;
             if (typeof args[key] == &#039;string&#039; &amp;amp;&amp;amp; typeof args[&#039;token_id&#039;] == &#039;string&#039;) {&lt;br /&gt;
                 args[key] = this.getTokenDiv(&#039;token_id&#039;, args);                            &lt;br /&gt;
             }&lt;br /&gt;
&lt;br /&gt;
==== Alternative way ====&lt;br /&gt;
&lt;br /&gt;
Here is an example of what was done for Terra Mystica which is maybe not as good, but is more simple and straightforward:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//Define the proper message&lt;br /&gt;
		$message = clienttranslate(&#039;${player_name} gets ${power_income} via Structures&#039;);&lt;br /&gt;
		if ($price &amp;gt; 0) {&lt;br /&gt;
			self::DbQuery(&amp;quot;UPDATE player SET player_score = player_score - $price WHERE player_id = $player_id&amp;quot;);&lt;br /&gt;
			$message = clienttranslate(&#039;${player_name} pays ${vp_price} and gets ${power_income} via Structures&#039;);&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
// Notify&lt;br /&gt;
		self::notifyAllPlayers( &amp;quot;powerViaStructures&amp;quot;, $message, array(&lt;br /&gt;
			&#039;i18n&#039; =&amp;gt; array( ),&lt;br /&gt;
			&#039;player_id&#039; =&amp;gt; $player_id,&lt;br /&gt;
			&#039;player_name&#039; =&amp;gt; self::getUniqueValueFromDb( &amp;quot;SELECT player_name FROM player WHERE player_id = $player_id&amp;quot; ),&lt;br /&gt;
			&#039;power_tokens&#039; =&amp;gt; $power_tokens,&lt;br /&gt;
			&#039;vp_price&#039; =&amp;gt; self::getLogsVPAmount($price),&lt;br /&gt;
			&#039;power_income&#039; =&amp;gt; self::getLogsPowerAmount($power_income),&lt;br /&gt;
			&#039;newScore&#039; =&amp;gt; self::getUniqueValueFromDb( &amp;quot;SELECT player_score FROM player WHERE player_id = $player_id&amp;quot; ),&lt;br /&gt;
			&#039;counters&#039; =&amp;gt; $this-&amp;gt;getGameCounters(null),&lt;br /&gt;
		) );&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With some functions to have the needed html added inside the substitution variable, such as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function getLogsPowerAmount( $amount ) &lt;br /&gt;
{&lt;br /&gt;
		return &amp;quot;&amp;lt;div class=&#039;tmlogs_icon&#039; title=&#039;Power&#039;&amp;gt;&amp;lt;div class=&#039;power_amount&#039;&amp;gt;$amount&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== High-Definition Graphics ===&lt;br /&gt;
&lt;br /&gt;
Some users will have screens which can display text and images at a greater resolution than the usual 72 dpi, e.g. the &amp;quot;Retina&amp;quot; screens on the 5k iMac, all iPads, and high-DPI screens on laptops from many manufacturers. If you can get art assets at this size, they will make your game look extra beautiful. You &#039;&#039;could&#039;&#039; just use large graphics and scale them down, but that would increase the download time and bandwidth for users who can&#039;t display them. Instead, a good way is to prepare a separate graphics file at exactly twice the size you would use otherwise, and add &amp;quot;@2x&amp;quot; at the end of the filename, e.g. if pieces.png is 240x320, then pieces@2x.png is 480x640.&lt;br /&gt;
&lt;br /&gt;
There are two changes required in order to use the separate graphics files. First in your css, where you use a file, add a media query which overrides the original definition and uses the bigger version on devices which can display them. Ensuring that the &amp;quot;background-size&amp;quot; attribute is set means that the size of the displayed object doesn&#039;t change, but only is drawn at the improved dot pitch.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.piece {&lt;br /&gt;
    position: absolute;&lt;br /&gt;
    background-image: url(&#039;img/pieces.png&#039;);&lt;br /&gt;
    background-size:240px 320px;&lt;br /&gt;
    z-index: 10;&lt;br /&gt;
}&lt;br /&gt;
@media (-webkit-min-device-pixel-ratio: 2), (min-device-pixel-ratio: 2), (min-resolution: 192dpi)&lt;br /&gt;
{&lt;br /&gt;
    .piece {&lt;br /&gt;
        background-image: url(&#039;img/pieces@2x.png&#039;);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Secondly, in your setup function in javascript, you must ensure than only the appropriate one version of the file gets pre-loaded (otherwise you more than waste the bandwidth saved by maintaining the standard-resolution file). Note that the media query is the same in both cases:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            var isRetina = &amp;quot;(-webkit-min-device-pixel-ratio: 2), (min-device-pixel-ratio: 2), (min-resolution: 192dpi)&amp;quot;;&lt;br /&gt;
            if (window.matchMedia(isRetina).matches)&lt;br /&gt;
            {&lt;br /&gt;
                this.dontPreloadImage( &#039;pieces.png&#039; );&lt;br /&gt;
                this.dontPreloadImage( &#039;board.jpg&#039; );&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
                this.dontPreloadImage( &#039;pieces@2x.png&#039; );&lt;br /&gt;
                this.dontPreloadImage( &#039;board@2x.jpg&#039; );&lt;br /&gt;
            }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Game Model and Database design ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Database for The euro game ===&lt;br /&gt;
Lets say we have a game with workers, dice, tokens, board, resources, money and vp. Workers and dice can be placed in various zones on the board, and you can get resources, money, tokens and vp in your home zone. Also tokens can be flipped or not flipped.&lt;br /&gt;
&lt;br /&gt;
[[File:Madeira board.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now lets try to map it, we have&lt;br /&gt;
* (meeple,zone)&lt;br /&gt;
* (die, zone, sideup)&lt;br /&gt;
* (resource cube/money token/vp token,player home zone)&lt;br /&gt;
* (token, player home zone, flip state)&lt;br /&gt;
We can notice that resource and money are uncountable, and don&#039;t need to be track individually so we can replace our mapping to&lt;br /&gt;
* (resource type/money,player home zone, count)&lt;br /&gt;
And vp stored already for us in player table, so we can remove it from that list.&lt;br /&gt;
&lt;br /&gt;
Now when we get to encode it we can see that everything can be encoded as (object,zone,state) form, where object and zone is string and state is integer. The resource mapping is slightly different semantically so you can go with two table, or counting using same table with state been used as count for resources.&lt;br /&gt;
&lt;br /&gt;
So the piece mapping for non-grid based games can be in most case represented by (string: token_key, string: location, int: state), example of such database schema can be found here: [https://github.com/elaskavaia/bga-sharedcode/blob/master/dbmodel.sql dbmodel.sql] and class implementing access to it here [https://github.com/elaskavaia/bga-sharedcode/blob/master/modules/tokens.php table.game.php].&lt;br /&gt;
&lt;br /&gt;
Variant 1: Minimalistic&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE IF NOT EXISTS `token` (&lt;br /&gt;
  `token_key` varchar(32) NOT NULL,&lt;br /&gt;
  `token_location` varchar(32) NOT NULL,&lt;br /&gt;
  `token_state` int(10),&lt;br /&gt;
  PRIMARY KEY (`token_key`)&lt;br /&gt;
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+token&lt;br /&gt;
! token_key&lt;br /&gt;
! token_location&lt;br /&gt;
! token_state&lt;br /&gt;
|-&lt;br /&gt;
|meeple_red_1&lt;br /&gt;
|home_red&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|dice_black_2&lt;br /&gt;
|board_guard&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|dice_green_1&lt;br /&gt;
|board_action_mayor&lt;br /&gt;
|3&lt;br /&gt;
|-&lt;br /&gt;
|bread&lt;br /&gt;
|home_red&lt;br /&gt;
|5&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Now how we represent resource counters such as bread?&lt;br /&gt;
Using same table from we simply add special counter token for bread and use state to indicate the count. Note to keep first column unique we have to add player identification for that counter, i.e. ff0000 is red player.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+token&lt;br /&gt;
! token_key&lt;br /&gt;
! token_location&lt;br /&gt;
! token_state&lt;br /&gt;
|-&lt;br /&gt;
|bread_ff0000&lt;br /&gt;
|tableau_ff0000&lt;br /&gt;
|5&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Variant 2: Additional resource table, resource count for each player id&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE IF NOT EXISTS `resource` (&lt;br /&gt;
  `player_id` int(10) unsigned NOT NULL,&lt;br /&gt;
  `resource_key` varchar(32) NOT NULL,&lt;br /&gt;
  `resource_count` int(10) signed NOT NULL,&lt;br /&gt;
  PRIMARY KEY (`player_id`,`resource_key`)&lt;br /&gt;
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;&lt;br /&gt;
&lt;br /&gt;
 ALTER TABLE resource ADD CONSTRAINT fk_player_id FOREIGN KEY (player_id) REFERENCES player(player_id);&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+resource&lt;br /&gt;
! player_id&lt;br /&gt;
! resource_key&lt;br /&gt;
! resource_count&lt;br /&gt;
|-&lt;br /&gt;
|123456&lt;br /&gt;
|bread&lt;br /&gt;
|5&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Variant 3: More normalised&lt;br /&gt;
&lt;br /&gt;
This version is similar to &amp;quot;card&amp;quot; table from hearts tutorial, you can also use exact cards database schema and Deck implementation for most purposes (even you not dealing with cards). &lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE IF NOT EXISTS `token` (&lt;br /&gt;
  `token_id` int(10) unsigned NOT NULL AUTO_INCREMENT,&lt;br /&gt;
  `token_type` varchar(16) NOT NULL,&lt;br /&gt;
  `token_arg` int(11) NOT NULL,&lt;br /&gt;
  `token_location` varchar(32) NOT NULL,&lt;br /&gt;
  `token_state` int(10),&lt;br /&gt;
  PRIMARY KEY (`token_id`)&lt;br /&gt;
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+token&lt;br /&gt;
! token_id&lt;br /&gt;
! token_type&lt;br /&gt;
! token_arg&lt;br /&gt;
! token_location&lt;br /&gt;
! token_state&lt;br /&gt;
|-&lt;br /&gt;
|22&lt;br /&gt;
|meeple&lt;br /&gt;
|123456&lt;br /&gt;
|home_123456&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|23&lt;br /&gt;
|dice&lt;br /&gt;
|2&lt;br /&gt;
|board_guard&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|26&lt;br /&gt;
|dice&lt;br /&gt;
|1&lt;br /&gt;
|board_action_mayor&lt;br /&gt;
|3&lt;br /&gt;
|-&lt;br /&gt;
|49&lt;br /&gt;
|bread&lt;br /&gt;
|0&lt;br /&gt;
|home_123456&lt;br /&gt;
|5&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Advantages of this would be is a bit more straightforward to do some queries in db, disadvantage its hard to read (as you can compare with previous example, you&lt;br /&gt;
cannot just look at say, ah I know what it means). Another questionable advantage is it allows you to do id randomisation, so it hard to do crafted queries to &lt;br /&gt;
cheat, the down side of that you cannot understand it either, and handcraft db states for debugging or testing.&lt;br /&gt;
&lt;br /&gt;
=== Database for The card game ===&lt;br /&gt;
&lt;br /&gt;
Lets say you have a standard card game, player have hidden cards in hand, you can draw card from draw deck, play card on tableau and discard to discard pile.&lt;br /&gt;
We have to design database for such game.&lt;br /&gt;
&lt;br /&gt;
In real word to &amp;quot;save&amp;quot; the game we take a picture a play area, save cards from it, then put away draw deck, discard and hand of each player separately and mark it, also we will record current scoring (if any) and who&#039;s turn was it.&lt;br /&gt;
&lt;br /&gt;
* Framework handles state machine transition, so you don&#039;t have to worry about database design for that (i.e. who&#039;s turn it is, what phase of the game we are at, you still have to design it but part of state machine step)&lt;br /&gt;
* Also framework supports basic player information, color, order around the table, basic scoring, etc, so you don&#039;t have to worry about it either&lt;br /&gt;
* The only thing you need in our database is state of the &amp;quot;board&amp;quot;, which is &amp;quot;where each pieces is, and in what state&amp;quot;, or (position,rotation) pair.&lt;br /&gt;
&lt;br /&gt;
Lets see what we have for that:&lt;br /&gt;
* The card state is very simple, its usually &amp;quot;face up/face down&amp;quot;, &amp;quot;tapped/untapped&amp;quot;, &amp;quot;right side up/up side down&amp;quot;&lt;br /&gt;
* As position go we never need real coordinates x,y,z. We need to know what &amp;quot;zone&amp;quot; card was, and depending on the zone it may sometimes need an extra &amp;quot;z&amp;quot; or &amp;quot;x&amp;quot; as card order. The zone position usually static or irrelevant.&lt;br /&gt;
* So our model is: we have cards, which have some attributes, at any given point in time they belong to a &amp;quot;zone&amp;quot;, and can also have order and state&lt;br /&gt;
* Now for mapping we should consider what information changes and what information is static, later is always candidate for material file&lt;br /&gt;
* For dynamic information we should try to reduce amount of fields we need&lt;br /&gt;
**  we need at least a field for card, so its one&lt;br /&gt;
**  we need to know what zone cards belong to, its 2&lt;br /&gt;
**  and we have possibly few other fields, if you look closely at you game you may find out that most of the zone only need one attribute at a time, i.e. draw pile always have cards face down, hand always face up, also for hand and discard order does not matter at all (but for draw it does matter). So in majority of cases we can get away with one single extra integer field representing state or order&lt;br /&gt;
* In real database both card and zone will be integers as primary keys referring to additional tables, but in our case its total overkill, so they can be strings as easily&lt;br /&gt;
&lt;br /&gt;
Variant 1: Minimalistic&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CREATE TABLE IF NOT EXISTS `card` (&lt;br /&gt;
  `card_key` varchar(32) unsigned NOT NULL,&lt;br /&gt;
  `card_location` varchar(32) NOT NULL,&lt;br /&gt;
  `card_state` int(11) NOT NULL,&lt;br /&gt;
  PRIMARY KEY (`card_id`)&lt;br /&gt;
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Variant 2: More normalised&lt;br /&gt;
&lt;br /&gt;
This version supported by Deck php class, so unless you want to rewrite db access layer go with this one&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CREATE TABLE IF NOT EXISTS `card` (&lt;br /&gt;
  `card_id` int(10) unsigned NOT NULL AUTO_INCREMENT,&lt;br /&gt;
  `card_type` varchar(16) NOT NULL,&lt;br /&gt;
  `card_type_arg` int(11) NOT NULL,&lt;br /&gt;
  `card_location` varchar(16) NOT NULL,&lt;br /&gt;
  `card_location_arg` int(11) NOT NULL,&lt;br /&gt;
  PRIMARY KEY (`card_id`)&lt;br /&gt;
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: if you using this schema, some zones/locations have special semantic. The &#039;hand&#039; location is actually multiple locations - one per player, but player id is encoded as card_location_arg. If &#039;hand&#039; in your game is ordered, visible or can have some other card states, you cannot use hand location (replacement is hand_&amp;lt;player_id&amp;gt; or hand_&amp;lt;color_id&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
== Game Modules ==&lt;br /&gt;
&lt;br /&gt;
=== Including your own JavaScript module ===&lt;br /&gt;
&#039;&#039;&#039;Ingredients:&#039;&#039;&#039; ggg.js, modules/ggg_other.js&lt;br /&gt;
&lt;br /&gt;
* Create ggg_other.js in modules/ folder and sync&lt;br /&gt;
* Modify ggg.js to include it&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  define([ &amp;quot;dojo&amp;quot;, &amp;quot;dojo/_base/declare&amp;quot;, &amp;quot;ebg/core/gamegui&amp;quot;, &amp;quot;ebg/counter&amp;quot;,&lt;br /&gt;
    // load my own module!!!&lt;br /&gt;
    g_gamethemeurl + &amp;quot;modules/ggg_other.js&amp;quot; ], function(dojo,&lt;br /&gt;
        declare) {&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Including your own PHP module ===&lt;br /&gt;
&#039;&#039;&#039;Ingredients:&#039;&#039;&#039; ggg.game.php, modules/ggg_other.php&lt;br /&gt;
&lt;br /&gt;
* Create ggg_other.php in modules/ folder and sync&lt;br /&gt;
* Modify ggg.game.php to include it&lt;br /&gt;
&lt;br /&gt;
 require_once (&#039;modules/ggg_other.php&#039;);&lt;br /&gt;
&lt;br /&gt;
== Assorted Stuff ==&lt;br /&gt;
&lt;br /&gt;
=== Multi Step Interactions: Select Worker/Place Worker - Using Client States ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ingredients:&#039;&#039;&#039; ggg.js&lt;br /&gt;
&lt;br /&gt;
I don&#039;t think its documented feature but there is a way to do client-only states, which is absolutely wonderful for few reasons&lt;br /&gt;
* When player iteration is two step process, such as select worker, place worker, or place worker, pick one of two resources of your choice&lt;br /&gt;
* When multi-step process can result of impossible situation and has to be undone (by rules)&lt;br /&gt;
* When multi-step process is triggered from multiple states (such as you can do same thing as activated card action, pass action or main action)&lt;br /&gt;
&lt;br /&gt;
So lets do Select Worker/Place Worker&lt;br /&gt;
&lt;br /&gt;
Define your server state as usual, i.e. playerMainTurn -&amp;gt; &amp;quot;You must pick up a worker&amp;quot;.&lt;br /&gt;
Now define a client state, we only need &amp;quot;name&amp;quot; and &amp;quot;descriptionmyturn&amp;quot;, lets say &amp;quot;client_playerPicksLocation&amp;quot;. Always prefix names of client state with &amp;quot;client_&amp;quot; to avoid confusion. Now we have to do the following:&lt;br /&gt;
* Have a handler for onUpdateActionButtons for playerMainTurn to activate all possible workers he can pick&lt;br /&gt;
* When player clicks workers, remember the worker in one of the members of the main class, I usually use one called this.clientStateArgs.&lt;br /&gt;
* Transition to new client state&lt;br /&gt;
  onWorker: function(e) {&lt;br /&gt;
      var id = event.currentTarget.id;&lt;br /&gt;
      dojo.stopEvent(event);&lt;br /&gt;
      ... // do validity checks&lt;br /&gt;
      this.clientStateArgs.worker_id = id;&lt;br /&gt;
      this.setClientState(&amp;quot;client_playerPicksLocation&amp;quot;, {&lt;br /&gt;
                                descriptionmyturn : &amp;quot;${you} must select location&amp;quot;,&lt;br /&gt;
                            });&lt;br /&gt;
   }&lt;br /&gt;
* Have a handler for onUpdateActionButtons for client_playerPicksLocation to activate all possible locations this worker can go AND add Cancel button (see below)&lt;br /&gt;
* Have a location handler which will eventually send a server request, using stored this.clientStateArgs.worker_id as worker id&lt;br /&gt;
* The cancel button should call a method to restore server state, also if you doing it for more than one state you can add this universally using this.on_client_state check&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        if (this.isCurrentPlayerActive()) {&lt;br /&gt;
          if (this.on_client_state &amp;amp;&amp;amp; !$(&#039;button_cancel&#039;)) {&lt;br /&gt;
               this.addActionButton(&#039;button_cancel&#039;, _(&#039;Cancel&#039;), dojo.hitch(this, function() {&lt;br /&gt;
                                             this.restoreServerGameState();&lt;br /&gt;
               }));&lt;br /&gt;
          }&lt;br /&gt;
        } &lt;br /&gt;
Note: usually I call my own function call this.cancelLocalStateEffects() which will do more stuff first then call restoreServerGameState(), same function is usually needs to be called when server request has failed (i.e. invalid move)&lt;br /&gt;
&lt;br /&gt;
Note: If you need more than 2 steps, you may have to do client side animation to reflect the new state, which gets trickier because you have to undo that also on cancellation.&lt;br /&gt;
&lt;br /&gt;
Code is available here [https://github.com/elaskavaia/bga-sharedcode/blob/master/sharedcode.js sharedcode.js] (its using playerTurnPlayCubes and client_selectCubeLocation).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Multi Step Interactions: Action Stack - Using Client States ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ingredients:&#039;&#039;&#039; ggg.js, ggg.game.php, material.inc.php&lt;br /&gt;
&lt;br /&gt;
* We have euro game where game actions consist of series of mini-actions, which can be triggered by multiple sources&lt;br /&gt;
* Example: Russian RailRoads have multiple source of actions, such as worker slots, triggered advantages, triggered factory rewards, etc. Each of the consist of series of small action, such as &amp;quot;advance black rail + advance marker&amp;quot;, once you start executing it, more mini-actions are triggered and added to the stack (in case of RRR its not a stack but a random access list but whatever)&lt;br /&gt;
* Implementing such game with server states is rather difficult because &lt;br /&gt;
** it require lots of states&lt;br /&gt;
** require stack on the state machine to support return to the state we originated substate from&lt;br /&gt;
** series can result in invalid game state (i.e. not allowed by rules), which it hard to roll back over multiple states&lt;br /&gt;
** without undo it would be rather frustrating for the player, and undo is hard to implement&lt;br /&gt;
&lt;br /&gt;
So this is how to implemented it using action stack and client states&lt;br /&gt;
&lt;br /&gt;
Encode all mini-actions as identifier or a letter, I use letters personally&lt;br /&gt;
&lt;br /&gt;
For each action, trigger, etc, define a &amp;quot;rules&amp;quot; of that game element using mini-action encoding and store in material.inc.php so both server and client have access to it, no need to store it in database, rules are not going to change&lt;br /&gt;
during the game.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;material.inc.php:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 $this-&amp;gt;token_types = array(&lt;br /&gt;
  ...&lt;br /&gt;
 &#039;slot_action_14&#039; =&amp;gt; array(&lt;br /&gt;
  &#039;name&#039; =&amp;gt; clienttranslate(&amp;quot;Industry Advancement&amp;quot;),&lt;br /&gt;
  &#039;rules&#039;=&amp;gt;&amp;quot;i&amp;quot;,&lt;br /&gt;
 ),&lt;br /&gt;
 &#039;slot_action_15&#039; =&amp;gt; array(&lt;br /&gt;
  &#039;name&#039; =&amp;gt; clienttranslate(&amp;quot;2 Industry Advancements&amp;quot;),&lt;br /&gt;
  &#039;rules&#039;=&amp;gt;&amp;quot;ii&amp;quot;,&lt;br /&gt;
 ),&lt;br /&gt;
 &#039;slot_action_16&#039; =&amp;gt; array(&lt;br /&gt;
  &#039;name&#039; =&amp;gt; clienttranslate(&amp;quot;Industry and Black Track Advancement&amp;quot;),&lt;br /&gt;
  &#039;rules&#039;=&amp;gt;&amp;quot;ib&amp;quot;,&lt;br /&gt;
 ),&lt;br /&gt;
 );&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In game.php you send this to client&lt;br /&gt;
&#039;&#039;&#039;ggg.game.php:&#039;&#039;&#039;&lt;br /&gt;
    protected function getAllDatas() {&lt;br /&gt;
        ...&lt;br /&gt;
        // this is material fields&lt;br /&gt;
        $result [&#039;token_types&#039;] = $this-&amp;gt;token_types;&lt;br /&gt;
        ...&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
In .js when client selects original action, you read this field and push actions into stack, something like&lt;br /&gt;
         &lt;br /&gt;
         this.pushOperations(this.gamedatas.token_types[action_id].rules);&lt;br /&gt;
         this.processAction();&lt;br /&gt;
&lt;br /&gt;
And processAction() will allow user to deal with possible actions. If this is truly a stack you could have done something like&lt;br /&gt;
    processAction: function() {&lt;br /&gt;
         var op = this.popOperation();&lt;br /&gt;
         switch (op) {&lt;br /&gt;
              case &#039;i&#039;: &lt;br /&gt;
                this.setClientState(&amp;quot;client_playerTurnSelectAdvantageToken&amp;quot;, {&lt;br /&gt;
                               descriptionmyturn : &amp;quot;${you} must select industry marker to move&amp;quot;,&lt;br /&gt;
                           });&lt;br /&gt;
                break;&lt;br /&gt;
             ...&lt;br /&gt;
         }&lt;br /&gt;
    }&lt;br /&gt;
In Russian Railroads its unordered list, so it has to offer user all possible choices driven by current unprocessed operations, then determine what operation was that from the list based on what they clicked, i.e.&lt;br /&gt;
&lt;br /&gt;
        onMoveable : function(event) {&lt;br /&gt;
                            ...&lt;br /&gt;
                            else if (id.startsWith(&#039;ind&#039;)) {&lt;br /&gt;
                                if (!this.commitOperation(&#039;i&#039;, id, place_id)) return;&lt;br /&gt;
                            }&lt;br /&gt;
                            this.gamedatas_local.tokens[id] = place_id; // alter local model&lt;br /&gt;
                            this.placeToken(id, place_id); // client side animation&lt;br /&gt;
                            if (this.checkAchievementMoveable(new_state, old_state, id)) { // that will check if something is triggered, so we can push more stuff on the stack&lt;br /&gt;
                               this.processAction();&lt;br /&gt;
                            }&lt;br /&gt;
         }&lt;br /&gt;
During client states data is collected and pushed into client array of performed operations, we also do client side animation and alter model, since we don&#039;t send intermediate steps to server.&lt;br /&gt;
&lt;br /&gt;
In example above we check if we client on industry marker, we will &amp;quot;commit&amp;quot; &amp;quot;i&amp;quot; operation with selected id of the marker and place_id. The commit is just pushing this data into an array.&lt;br /&gt;
&lt;br /&gt;
All this operations later are send to server, usually when user clicks Done. &lt;br /&gt;
The data will be encoded for server to read into a string, i.e. i__ind2__indslot15, means move industry marker number 2 into slot 15 of industry track. And multiple operations &lt;br /&gt;
can be separated by a space for example.&lt;br /&gt;
&lt;br /&gt;
At anytime during client states user can click Cancel which will restore last server state and undo all client animation back to last stored state.&lt;br /&gt;
&lt;br /&gt;
The only disadvantage of this method is you have to implement a lot of functionality two times - on server and client.&lt;/div&gt;</summary>
		<author><name>Shadowphiar</name></author>
	</entry>
	<entry>
		<id>https://en.doc.boardgamearena.com/index.php?title=Game_meta-information:_gameinfos.jsonc&amp;diff=3869</id>
		<title>Game meta-information: gameinfos.jsonc</title>
		<link rel="alternate" type="text/html" href="https://en.doc.boardgamearena.com/index.php?title=Game_meta-information:_gameinfos.jsonc&amp;diff=3869"/>
		<updated>2020-03-02T23:08:20Z</updated>

		<summary type="html">&lt;p&gt;Shadowphiar: Added requirements from &amp;quot;Game page visual uplift&amp;quot; email, Feb 2020&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
From this file, you can edit the various meta-information of your game.&lt;br /&gt;
&lt;br /&gt;
Once you modified the file, don&#039;t forget to click on &amp;quot;Reload game informations&amp;quot; from the Control Panel in order in can be taken into account.&lt;br /&gt;
&lt;br /&gt;
Most information provided in this file are self-explainable. Some information, though:&lt;br /&gt;
&lt;br /&gt;
* You are not allowed to set the &amp;quot;&#039;&#039;&#039;is_beta&#039;&#039;&#039;&amp;quot; to 0 before the game has been released on BGA and stabilized.&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;&#039;&#039;&#039;fast/medium/slow_additional_time&#039;&#039;&#039;&amp;quot;: please set high values here: after the game has been released, we will lower these value to match the real game duration.&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;&#039;&#039;&#039;players&#039;&#039;&#039;&amp;quot;:&lt;br /&gt;
** during the first step of development of a game, you&#039;d better allow the &amp;quot;1 player&amp;quot; configuration: much easy to start/stop a game this way.&lt;br /&gt;
** if you change the minimum number of players from for example 1 to 2, make sure the new tables you create are not restricted from 1 to 1 player otherwise when you create a new table and this account setting is used, there will be a conflict with the new minimum number of players allowed.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;suggest_player_number&#039;&#039;&#039; / &#039;&#039;&#039;not_recommend_player_number&#039;&#039;&#039;: don&#039;t specify anything here if there is no configuration that is REALLY better/worst than another one. You can check player&#039;s poll on BoardGameGeek game page if you have any doubt.&lt;br /&gt;
&lt;br /&gt;
== Losers not ranked between themselves ==&lt;br /&gt;
&lt;br /&gt;
By default, all player are ranked, but in some games, the rules says that there is only one winner and that all the other players are losers and not ranked between themselves. You can set this option to true so that for your game, there is only one winner and losers, without a full ranking of all players.&lt;br /&gt;
&lt;br /&gt;
 // If in the game, all losers are equal (no score to rank them or explicit in the rules that losers are not ranked between them), set this to true &lt;br /&gt;
 // The game end result will display &amp;quot;Winner&amp;quot; for the 1st player and &amp;quot;Loser&amp;quot; for all other players&lt;br /&gt;
 &#039;losers_not_ranked&#039; =&amp;gt; false,&lt;br /&gt;
&lt;br /&gt;
== Disable player rotation in case of rematch ==&lt;br /&gt;
&lt;br /&gt;
By default, in case of a rematch players are rotated so that the first player changes. If for your game it&#039;s better to always have a random player order you can change this option.&lt;br /&gt;
&lt;br /&gt;
 // When doing a rematch, the player order is swapped using a &amp;quot;rotation&amp;quot; so the starting player is not the same&lt;br /&gt;
 // If you want to disable this, set this to false&lt;br /&gt;
 &#039;disable_player_order_swap_on_rematch&#039; =&amp;gt; false,&lt;br /&gt;
&lt;br /&gt;
== Custom &amp;quot;buy this game&amp;quot; button ==&lt;br /&gt;
&lt;br /&gt;
By default, the &amp;quot;buy this game&amp;quot; button is a link to an Amazon search with the name of the game.&lt;br /&gt;
&lt;br /&gt;
You can replace it by a different URL / game button label with :&lt;br /&gt;
&lt;br /&gt;
 &#039;custom_buy_button&#039; =&amp;gt; array(&lt;br /&gt;
    &#039;url&#039; =&amp;gt; &#039;http://yoururl.com&#039;,&lt;br /&gt;
    &#039;label&#039; =&amp;gt; &#039;Name of the website&#039;&lt;br /&gt;
 ),&lt;br /&gt;
&lt;br /&gt;
Note : button label will be &amp;quot;Buy on &amp;lt;Name of the website&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Tags ==&lt;br /&gt;
&lt;br /&gt;
Any number of &#039;&#039;&#039;Tags&#039;&#039;&#039; can be attribute to your game. Tags are useful to place your game in the correct place and to give a good quick overview of what the game is about to players.&lt;br /&gt;
&lt;br /&gt;
Main game category (you MUST specify one tag AND ONLY ONE from this category):&lt;br /&gt;
* 1: Abstract game&lt;br /&gt;
* 2: Casual games&lt;br /&gt;
* 3: For regular players&lt;br /&gt;
* 4: For core gamers&lt;br /&gt;
&lt;br /&gt;
Other tags (you can specify any numbers of tags):&lt;br /&gt;
* 10: Short game (&amp;lt;10 minutes)&lt;br /&gt;
* 11: Medium length game (10 minutes to 30 minutes)&lt;br /&gt;
* 12: Long game (&amp;gt;30mn)&lt;br /&gt;
* 20: Awarded game (Win a prestigious award) (the game must have been at the &#039;&#039;&#039;first&#039;&#039;&#039; place of one the [http://boardgamegeek.com/wiki/page/Gaming_Industry_Awards# following major awards list]).&lt;br /&gt;
* 22: Prototype (This game has not been published yet)&lt;br /&gt;
* 23: Classic (This game is a classic from Public Domain)&lt;br /&gt;
* 30: 2 players (2p game / best with 2 players)&lt;br /&gt;
* 100: Fantasy theme&lt;br /&gt;
* 101: Science Fiction them&lt;br /&gt;
* 102: Historical theme&lt;br /&gt;
* 103: Adventure&lt;br /&gt;
* 104: Exploration&lt;br /&gt;
* 105: Conquest&lt;br /&gt;
* 106: Building&lt;br /&gt;
* 200: Card game (Cards plays a central role in this game)&lt;br /&gt;
* 201: Dice&lt;br /&gt;
* 202: Solo game&lt;br /&gt;
* 203: Worker placement&lt;br /&gt;
* 204: Hand management&lt;br /&gt;
* 205: Bluff&lt;br /&gt;
* 206: Tile placement&lt;br /&gt;
* 207: Combinations&lt;br /&gt;
* 208: Majority&lt;br /&gt;
* 209: Race&lt;br /&gt;
* 210: Collection&lt;br /&gt;
&lt;br /&gt;
== Game Presentation ==&lt;br /&gt;
&lt;br /&gt;
Short game presentation text that will appear on the game description page, structured as an array of paragraphs.&lt;br /&gt;
&lt;br /&gt;
Each paragraph must be wrapped with totranslate() for translation and should not contain html (plain text without formatting). A good length for this text is between 100 and 150 words (about 6 to 9 lines on a standard display)&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 &#039;presentation&#039; =&amp;gt; array(&lt;br /&gt;
    totranslate(&amp;quot;This wonderful game is about geometric shapes!&amp;quot;),&lt;br /&gt;
    totranslate(&amp;quot;It was awarded best triangle game of the year in 2005 and nominated for the Spiel des Jahres.&amp;quot;),&lt;br /&gt;
    ...&lt;br /&gt;
 ),&lt;/div&gt;</summary>
		<author><name>Shadowphiar</name></author>
	</entry>
	<entry>
		<id>https://en.doc.boardgamearena.com/index.php?title=Game_art:_img_directory&amp;diff=3868</id>
		<title>Game art: img directory</title>
		<link rel="alternate" type="text/html" href="https://en.doc.boardgamearena.com/index.php?title=Game_art:_img_directory&amp;diff=3868"/>
		<updated>2020-03-02T23:03:41Z</updated>

		<summary type="html">&lt;p&gt;Shadowphiar: Added requirments introduced by &amp;quot;Game page visual uplifting&amp;quot; Feb 2020&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Requested images ==&lt;br /&gt;
&lt;br /&gt;
The following images are requested by BGA:&lt;br /&gt;
&lt;br /&gt;
;game_box.png&lt;br /&gt;
* It is displayed on the main site on the game description page and when creating a table (280x280 px).&lt;br /&gt;
* It should be a 3D image of a physical copy of the game box as it appears in an online shop.&lt;br /&gt;
* It is better to take the version of the game that is coherent with the game art used in the adaptation, and from the original publisher of the game.&lt;br /&gt;
* The background of the image must be transparent.&lt;br /&gt;
* If you don&#039;t have a 3D version of the game box, you can use the following website to create one: http://www.3d-pack.com/&lt;br /&gt;
&lt;br /&gt;
;game_box180.png&lt;br /&gt;
;game_box75.png&lt;br /&gt;
&lt;br /&gt;
* Don&#039;t modify these images, they are auto generated by &amp;quot;Reload game box image&amp;quot; action. If you have another copy of your source make sure you update you copy of these files after they have been generated and not override with old copied.&lt;br /&gt;
&lt;br /&gt;
;game_icon.png&lt;br /&gt;
&lt;br /&gt;
* It is the icon displayed in the lists of games and tables (50x50 px).&lt;br /&gt;
* The objective of this icon is to make the game recognizable among the other games. A good idea is to take a part of the game cover that is distinctive (ex: the game title).&lt;br /&gt;
* This one  does not have to be transparent. This image should not have a border &lt;br /&gt;
&lt;br /&gt;
;publisher.png&lt;br /&gt;
* It is the logo of the publisher of the game, displayed on the game description page.&lt;br /&gt;
* The width must be 150 px. The height can be anything (reasonable). The image could be transparent.&lt;br /&gt;
&lt;br /&gt;
;publisher2.png (optional)&lt;br /&gt;
* If the game has been co-published by 2 publishers, you should upload a second image named &amp;quot;publisher2.png&amp;quot; (same characteristics as the first one).&lt;br /&gt;
&lt;br /&gt;
;game_banner.jpg&lt;br /&gt;
* size 1386x400px&lt;br /&gt;
* should not contain any text; representative of the atmosphere of the game such as a cover element or communication image; the box image covering the banner on the left should stand out&lt;br /&gt;
&lt;br /&gt;
;game_displayX.jpg (X an integer between 0 and 9)&lt;br /&gt;
* height between 400px and 760px, width maximum 1.5 x height;&lt;br /&gt;
* the idea is to make players want to play the game, so it could be a zoomed card, some detail of the board, an overview of an ongoing physical game... but NOT a screenshot of the BGA adaptation since there is already the &amp;quot;see game in action&amp;quot; replay for that&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important&#039;&#039;&#039;: when you modify these images, you MUST click on &amp;quot;Reload game box image&amp;quot; from the Control Panel in order your update can be taken into account.&lt;br /&gt;
&lt;br /&gt;
== Game art ==&lt;br /&gt;
&lt;br /&gt;
You must upload in img directory all images of your game interface.&lt;br /&gt;
&lt;br /&gt;
=== Images naming constraints ===&lt;br /&gt;
&lt;br /&gt;
To be correctly deployed your images file names should not contain spaces or parenthesis.&lt;br /&gt;
&lt;br /&gt;
=== Images loading ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Be careful&#039;&#039;&#039;: by default, ALL images of your img directory are loaded on a player&#039;s browser when he loads the game. For this reason, don&#039;t let in your img directory images that are not useful, otherwise it&#039;s going to slowdown the game load.&lt;br /&gt;
&lt;br /&gt;
Note that you can tune the way images are loaded with Javascript method &amp;quot;dontPreloadImage&amp;quot; (see [[Game_interface_logic:_yourgamename.js|Game Interface Logic]]).&lt;br /&gt;
&lt;br /&gt;
General recommendation it to have no more than dozen of image files, 2Mb max each. However if there is heavy game resources specific to a player (i.e. player board of specific color or set of cards) it is better to separate them and &amp;quot;don&#039;t pre-load&amp;quot; since in any given game only some of them will be used.&lt;br /&gt;
&lt;br /&gt;
=== Images format ===&lt;br /&gt;
&lt;br /&gt;
You can use 3 image format while building your game interface:&lt;br /&gt;
;jpg images&lt;br /&gt;
&lt;br /&gt;
should be used for non-transparent images. Jpg are usually lighter than Pngs, so please choose Jpg for big pictures (ex: game board, cards) when you don&#039;t need transparency to accelerate game load. You don&#039;t need transparency for rounded card corners, it can be done using css.&lt;br /&gt;
&lt;br /&gt;
;png images&lt;br /&gt;
&lt;br /&gt;
should be used for images with transparency, such as non-square tokens, meeples, etc (combined into sprite).&lt;br /&gt;
&lt;br /&gt;
;gif images&lt;br /&gt;
&lt;br /&gt;
can be used for animated images. This is not recommended to use gif animated images as they can upset players, but for some specific interface element this could be useful.&lt;br /&gt;
&lt;br /&gt;
=== Use CSS Sprites ===&lt;br /&gt;
&lt;br /&gt;
To limit the number of images load and make the game load faster, you must use CSS sprites, i.e. you must gather several images in a single one. However, there are limitations. Do not make any CSS image sprite with dimensions that exceed 4096x4096 pixels or it will not work on mobile devices (Android max texture size is 4096 pixels, test your own browser at [http://webglreport.com/ WebGL Report]).&lt;br /&gt;
&lt;br /&gt;
To learn more on CSS Sprites:&lt;br /&gt;
* [http://www.w3schools.com/css/css_image_sprites.asp CSS sprites (W3C documentation)].&lt;br /&gt;
* [[Game interface stylesheet: yourgamename.css]]&lt;br /&gt;
&lt;br /&gt;
=== Shrink images ===&lt;br /&gt;
&lt;br /&gt;
If you get high resolution images from publisher you need to shrink them since web display requires much lower resolution than printing.&lt;br /&gt;
&lt;br /&gt;
* Shrink images without loss of quality https://tinypng.com/ or http://www.iloveimg.com/&lt;br /&gt;
&lt;br /&gt;
== Image Manipulation Tools ==&lt;br /&gt;
&lt;br /&gt;
You have no choice but to use one of the image manipulating tools to create a successful game adaptation, you would have to&lt;br /&gt;
deal with&lt;br /&gt;
* Converting to supported formats&lt;br /&gt;
* Adding transparency &lt;br /&gt;
* Stitching&lt;br /&gt;
* Shrinking with no quality loss&lt;br /&gt;
* Resizing&lt;br /&gt;
&lt;br /&gt;
For that you need a good tools, recommended tools (if you know more add them here)&lt;br /&gt;
* Gimp (linux) - general GUI image editor&lt;br /&gt;
* Paint.net (Windows) - general GUI image editor&lt;br /&gt;
* ImageMagic (All platforms) - https://www.imagemagick.org/script/download.php - command line image editor, great for mass manipulations and scripting&lt;/div&gt;</summary>
		<author><name>Shadowphiar</name></author>
	</entry>
	<entry>
		<id>https://en.doc.boardgamearena.com/index.php?title=Gamehelppontedeldiavolo&amp;diff=3325</id>
		<title>Gamehelppontedeldiavolo</title>
		<link rel="alternate" type="text/html" href="https://en.doc.boardgamearena.com/index.php?title=Gamehelppontedeldiavolo&amp;diff=3325"/>
		<updated>2019-01-15T10:13:14Z</updated>

		<summary type="html">&lt;p&gt;Shadowphiar: /* Game End */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
The object of the game is to form groups of islands linked by bridges. An island is exactly four orthogonally adjacent tiles of your own colour. Any fewer adjacent tiles are a sandbank. &lt;br /&gt;
&lt;br /&gt;
== Game start ==&lt;br /&gt;
&lt;br /&gt;
The first player places two light tiles anywhere on the board. They may be adjacent or separate.&lt;br /&gt;
&lt;br /&gt;
The second player chooses either to adopt this move and play using the light tiles, or to place two dark tiles and play using those.&lt;br /&gt;
&lt;br /&gt;
== Each Turn ==&lt;br /&gt;
&lt;br /&gt;
Each player takes turns to place either two tiles of their own colour, or one bridge.&lt;br /&gt;
&lt;br /&gt;
Tiles can be placed anywhere on the board, either adjacently or separately, provided that:&lt;br /&gt;
* they are not placed under bridges&lt;br /&gt;
* no tile is adjacent to an island of the same colour, even diagonally&lt;br /&gt;
&lt;br /&gt;
A bridge can be placed between two tiles of the player&#039;s colour that are two spaces from each other orthogonally or diagonally, or at a knight&#039;s move. The centre of the bridge must be over water, not any tile. Only one bridge can begin or end on any tile. Bridges may not cross each other.&lt;br /&gt;
&lt;br /&gt;
== Game End ==&lt;br /&gt;
&lt;br /&gt;
Game end is triggered when either player is unable to place two tiles and chooses not to (or is unable to) place a bridge. (The player using dark tiles gets opportunity to take an equal number of turns).&lt;br /&gt;
&lt;br /&gt;
The players score each group of islands connected by bridges (including connections via sandbanks) according to a rule of triangular numbers:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;center&amp;quot; width=&amp;quot;175&amp;quot; | Number of connected islands&lt;br /&gt;
! align=&amp;quot;center&amp;quot; width=&amp;quot;50&amp;quot; | Score&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | 1&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | 1&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | 2&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | 3&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | 3&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | 6&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | 4&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | 10&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | 5&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | 15&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | 6&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | 21&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | 7&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | 28&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | 8&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | 36&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | 9&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | 45&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | 10&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | 55&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the case of a tie, the player with the most islands is the winner. If still tied, then the player with the most bridges is the winner.&lt;/div&gt;</summary>
		<author><name>Shadowphiar</name></author>
	</entry>
	<entry>
		<id>https://en.doc.boardgamearena.com/index.php?title=Gamehelppontedeldiavolo&amp;diff=2272</id>
		<title>Gamehelppontedeldiavolo</title>
		<link rel="alternate" type="text/html" href="https://en.doc.boardgamearena.com/index.php?title=Gamehelppontedeldiavolo&amp;diff=2272"/>
		<updated>2017-03-08T12:14:49Z</updated>

		<summary type="html">&lt;p&gt;Shadowphiar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
The object of the game is to form groups of islands linked by bridges. An island is exactly four orthogonally adjacent tiles of your own colour. Any fewer adjacent tiles are a sandbank. &lt;br /&gt;
&lt;br /&gt;
== Game start ==&lt;br /&gt;
&lt;br /&gt;
The first player places two light tiles anywhere on the board. They may be adjacent or separate.&lt;br /&gt;
&lt;br /&gt;
The second player chooses either to adopt this move and play using the light tiles, or to place two dark tiles and play using those.&lt;br /&gt;
&lt;br /&gt;
== Each Turn ==&lt;br /&gt;
&lt;br /&gt;
Each player takes turns to place either two tiles of their own colour, or one bridge.&lt;br /&gt;
&lt;br /&gt;
Tiles can be placed anywhere on the board, either adjacently or separately, provided that:&lt;br /&gt;
* they are not placed under bridges&lt;br /&gt;
* no tile is adjacent to an island of the same colour, even diagonally&lt;br /&gt;
&lt;br /&gt;
A bridge can be placed between two tiles of the player&#039;s colour that are two spaces from each other orthogonally or diagonally, or at a knight&#039;s move. The centre of the bridge must be over water, not any tile. Only one bridge can begin or end on any tile. Bridges may not cross each other.&lt;br /&gt;
&lt;br /&gt;
== Game End ==&lt;br /&gt;
&lt;br /&gt;
Game end is triggered when either player is unable to place two tiles and chooses not to (or is unable to) place a bridge. (The player using dark tiles gets opportunity to take an equal number of turns).&lt;br /&gt;
&lt;br /&gt;
The players score each group of islands connected by bridges (including connections via sandbanks) according to a rule of triangular numbers:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Number of connected islands || 1 || 2 || 3 || 4 || 5 || 6 ...&lt;br /&gt;
|-&lt;br /&gt;
! Score || 1 || 3 || 6 || 10 || 15 || 21 ...&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In the case of a tie, the player with the most islands is the winner. If still tied, then the player with the most bridges is the winner.&lt;/div&gt;</summary>
		<author><name>Shadowphiar</name></author>
	</entry>
	<entry>
		<id>https://en.doc.boardgamearena.com/index.php?title=Gamehelppontedeldiavolo&amp;diff=2271</id>
		<title>Gamehelppontedeldiavolo</title>
		<link rel="alternate" type="text/html" href="https://en.doc.boardgamearena.com/index.php?title=Gamehelppontedeldiavolo&amp;diff=2271"/>
		<updated>2017-03-08T12:14:09Z</updated>

		<summary type="html">&lt;p&gt;Shadowphiar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
The object of the game is to form groups of islands linked by bridges. An island is exactly four orthogonally adjacent tiles of your own colour. Any fewer adjacent tiles are a sandbank. &lt;br /&gt;
&lt;br /&gt;
== Game start ==&lt;br /&gt;
&lt;br /&gt;
The first player places two light tiles anywhere on the board. They may be adjacent or separate.&lt;br /&gt;
&lt;br /&gt;
The second player chooses either to adopt this move and play using the light tiles, or to place two dark tiles and play using those.&lt;br /&gt;
&lt;br /&gt;
== Each Turn ==&lt;br /&gt;
&lt;br /&gt;
Each player takes turns to place either two tiles or one bridge.&lt;br /&gt;
&lt;br /&gt;
Tiles can be placed anywhere on the board, either adjacently or separately, provided that:&lt;br /&gt;
* they are not placed under bridges&lt;br /&gt;
* no tile is adjacent to an island of the same colour, even diagonally&lt;br /&gt;
&lt;br /&gt;
A bridge can be placed between two tiles of the player&#039;s colour that are two spaces from each other orthogonally or diagonally, or at a knight&#039;s move. The centre of the bridge must be over water, not any tile. Only one bridge can begin or end on any tile. Bridges may not cross each other.&lt;br /&gt;
&lt;br /&gt;
== Game End ==&lt;br /&gt;
&lt;br /&gt;
Game end is triggered when either player is unable to place two tiles and chooses not to (or is unable to) place a bridge. (The player using dark tiles gets opportunity to take an equal number of turns).&lt;br /&gt;
&lt;br /&gt;
The players score each group of islands connected by bridges (including connections via sandbanks) according to a rule of triangular numbers:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Number of connected islands || 1 || 2 || 3 || 4 || 5 || 6 ...&lt;br /&gt;
|-&lt;br /&gt;
! Score || 1 || 3 || 6 || 10 || 15 || 21 ...&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In the case of a tie, the player with the most islands is the winner. If still tied, then the player with the most bridges is the winner.&lt;/div&gt;</summary>
		<author><name>Shadowphiar</name></author>
	</entry>
	<entry>
		<id>https://en.doc.boardgamearena.com/index.php?title=Gamehelppontedeldiavolo&amp;diff=2270</id>
		<title>Gamehelppontedeldiavolo</title>
		<link rel="alternate" type="text/html" href="https://en.doc.boardgamearena.com/index.php?title=Gamehelppontedeldiavolo&amp;diff=2270"/>
		<updated>2017-03-08T12:12:25Z</updated>

		<summary type="html">&lt;p&gt;Shadowphiar: Created page with &amp;quot; == Introduction ==  The object of the game is to form groups of islands linked by bridges. An island is exactly four orthogonally adjacent tiles of your own colour. Any fewer...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
The object of the game is to form groups of islands linked by bridges. An island is exactly four orthogonally adjacent tiles of your own colour. Any fewer adjacent tiles are a sandbank. &lt;br /&gt;
&lt;br /&gt;
== Game start ==&lt;br /&gt;
&lt;br /&gt;
The first player places two light tiles anywhere on the board. They may be adjacent or separate.&lt;br /&gt;
&lt;br /&gt;
The second player chooses either to adopt this move and play using the light tiles, or to place two dark tiles and play using those.&lt;br /&gt;
&lt;br /&gt;
== Each Turn ==&lt;br /&gt;
&lt;br /&gt;
Each player takes turns to place either two tiles or one bridge.&lt;br /&gt;
&lt;br /&gt;
Tiles can be placed anywhere on the board, either adjacently or separately, provided that:&lt;br /&gt;
* they are not placed under bridges&lt;br /&gt;
* no tile is adjacent to an island, even diagonally&lt;br /&gt;
&lt;br /&gt;
A bridge can be placed between two tiles of the player&#039;s colour that are two spaces from each other orthogonally or diagonally, or at a knight&#039;s move. The centre of the bridge must be over water, not any tile. Only one bridge can begin or end on any tile. Bridges may not cross each other.&lt;br /&gt;
&lt;br /&gt;
== Game End ==&lt;br /&gt;
&lt;br /&gt;
Game end is triggered when either player is unable to place two tiles and chooses not to (or is unable to) place a bridge. (The player using dark tiles gets opportunity to take an equal number of turns).&lt;br /&gt;
&lt;br /&gt;
The players score each group of islands connected by bridges (including connections via sandbanks) according to a rule of triangular numbers:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Number of connected islands || 1 || 2 || 3 || 4 || 5 || 6 ...&lt;br /&gt;
|-&lt;br /&gt;
! Score || 1 || 3 || 6 || 10 || 15 || 21 ...&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In the case of a tie, the player with the most islands is the winner. If still tied, then the player with the most bridges is the winner.&lt;/div&gt;</summary>
		<author><name>Shadowphiar</name></author>
	</entry>
</feed>