The algorithm
How a battle is decided
Nothing in Map Rumble is hidden. The rules below are the show's actual engine, number for number, and the same engine file runs the odds calculator on this page. Every random number comes from a seed whose SHA-256 commitment is published before the season's first battle.
1. Who fights
The map has 136 factions joined by 401 shared borders: 232 land borders and 169 sea connections (coastlines within 500 km, plus a few labelled remote-island links). Each battle starts with three random draws:
- The attacker is drawn at random from every faction that still has an enemy on its border.
- The defender is drawn at random from the factions bordering the attacker.
- The border is drawn at random from the borders those two share. If it is a sea border, the attacker fights at ×0.8 in every round.
Every faction with a frontier has the same chance of being picked. Big factions are not drawn more often; they just have more neighbours to be drawn against.
2. Strength
A faction's strength is built from two things: how many people it controls and five ratings.
economy = exp( Σ weightk × ln(0.5 + ratingk ÷ 100) )
strength = populationPower × economy × (1 + morale)
The exponent 0.35 is what keeps the series interesting: Texas has about 2,150 times the population of Anguilla, but only about 15 times the population power. Numbers still matter, they just do not decide everything.
The five ratings are Production (industry), Supplies (resources), Movement (logistics), Readiness and Unity (cohesion), weighted 30 / 25 / 20 / 15 / 10:
Honest note: every faction's five ratings are a neutral 50 out of 100 this season. They are calibration drafts, not measurements of any real place. Until that research is done, population, borders, specials and fan power are the only things that make two factions different.
The defender always gets a home advantage of ×1.12.
3. Five rounds, first to three
A battle is not one coin flip. It is five independent weighted draws, one per rating category, and the first side to win three rounds wins the battle. In each round:
defencek = populationPowerD × (1 + moraleD) × (0.5 + ratingD,k ÷ 100) ^ (weightk × 5) × 1.12 × special × counter × fanBoost
pk = attackk ÷ (attackk + defencek), clamped to [18.9%, 81.1%]
The clamp is the minimum upset chance. Each round is held between 18.9% and 81.1%, which is exactly the per-round floor that gives the weaker side a 5% chance of taking three of five. No faction is ever a lock. The episode shows the overall battle chance (the probability of winning at least three rounds) next to the five individual round chances, and the saved random number for each round. A win at under 35% is called out as an upset.
4. Types and counters
Each faction's special belongs to one category, and each category maps to a type: Production → Forge, Supplies → Supply, Movement → Route, Readiness → Fortress, Unity → Alliance. Types form a fixed circle of counters. When the attacker's type counters the defender's, the attacker gets ×1.08 (+8%) in every round; when the defender's type counters the attacker's, the defender gets it. Otherwise nothing happens.
The reasons are flavour text for a game rule. They are not claims about any real economy, army or population.
5. Regional specials
Every faction has one named special inspired by a regional fact: a port, a crop, a mountain range, an industry. In the game it adds +10% to that faction's strength in the special's own category only, for as long as the faction still holds its home region. A conquered faction's special switches off; the conqueror does not inherit it.
Source status is shown on every faction card.
A source supports the regional fact that inspired the special. It never supports the size of the bonus, which is a fictional balancing rule.
6. Conquest, integration and morale
Conquest. The loser is absorbed: every territory it held changes flag to the winner, including anything it had conquered earlier. The original region keeps its identity on the map, so a rebellion could one day bring it back.
Integration. New territory does not count at full strength straight away. On the battle it is captured it contributes 25% of its population, rising in a straight line to 100% over the next 8 battles. A faction's own home region always counts in full.
Morale. Winning builds momentum. A win adds +2% to the winner's morale; an upset win adds +6%. Morale is capped at 12% and every faction's morale decays by ×0.82 after each battle, so a hot streak fades within a few episodes. Morale multiplies strength directly: 12% morale means ×1.12.
7. Fan power pools
Fan power comes in $5 steps from $5 to $50 into one pool per faction per season. Every $5 adds +1% strength to the faction's next battle ($5 = ×1.01, $25 = ×1.05, $45 = ×1.09); a full $50 pool secures that win.
+1% strength is about half a point on the odds bar at even odds, about four points at $45; the episode prints the before and after.
Any number of fans fill the pool; it is spent, whatever it holds, in the next battle the faction fights, and the faction is then done for the season. If the faction is conquered before the pool is spent, the pool becomes its rebellion fund (a bonus round at $50, a real draw, not a guarantee, home territory only). One pool per faction: boost or rebellion, not both.
The engine enforces this and refuses anything else:
- $5 steps, $50 cap. Every contribution is recorded with the battle number it arrived before, and the replay checks the whole ledger.
- Strength × (1 + 0.10 × pool ÷ 50) in the faction's next battle, attacking or defending, in every round, shown on the odds line.
- A full $50 pool secures that win. The five real draws are still made, shown and recorded; if they went the other way the episode shows the natural result and then FAN POWER as the reason. The multiplier does not stack on top of a secured win.
- FAN CLASH. If both sides of a battle hold a full $50 pool it is a FAN CLASH: both pools are spent, nothing is refunded, the real draws decide, and the episode shows it as a special showdown.
- Spent once. After the pool is spent the faction is done with fan power for the season; a pool with nothing in it is simply not used.
| Pool | Strength | Effect in the faction's next battle |
|---|
8. The seed and the replay
Before the first battle of a season the show generates a secret seed and publishes its SHA-256 commitment (the hash of the seed). Every random number in the season comes from that seed:
Each battle uses 8 of those numbers in order: three to pick the attacker, the defender and the border, then five for the rounds. The counter never resets, so nothing can be re-rolled without changing every later battle. When the season ends, the seed is revealed. Anyone can then hash it to check the commitment and re-run every battle from episode one with the engine file linked below; the saved history, the final map and the fan power ledger must all match exactly or the verification fails.
What the commitment proves: the sequence was fixed before the season started and was not edited afterwards. What it does not prove: that the operator did not generate several seeds and pick a favourite before publishing. We say that plainly because an honest show should.
The engine is one plain JavaScript file with no dependencies: js/engine.js (20 KB). It is copied unchanged from the studio at build time.
9. Rebellions
A conquered home region is not gone for good. Its fan power pool turns into a rebellion fund, and fans keep filling it in $5 steps:
- Who: only a home region whose original faction has been absorbed. Same single pool per faction per season: an unspent boost pool becomes the fund on conquest, and the fund is spent once the rebellion is fought.
- When: the moment the fund reaches $50, a bonus round is fought before the next regular battle. If several rebellions are waiting they are fought one after another, in region-code order.
- How: the home region fights alone, with its own population and ratings and its special, no holdings and no morale. The occupier defends with its whole faction and the usual ×1.12 defence bonus. Same five rounds, same first to three, same 5% floor; it is a land fight, so no sea penalty. The occupier's own pool does not apply to the bonus round and is not spent by it.
- If the rebels win: the region takes back its home territory only, nothing else, and returns to the board as a standing faction. If they lose: nothing changes. Either way the fund is spent and the region is done with fan power for the season.
- The bonus round counts as a battle in the season history, with its own saved draws, and a win under 35% is an upset like any other.