Match engine
How a match actually plays out, and which player attributes matter when.
How a match is decided
Every match runs in five phases. The same seed and lineups always produce the same match — there is no hidden randomness.
- Tempo. The engine decides how many chances the match will produce. Two attacking formations at fast tempo can rack up 15+; two defensive sides playing slow can produce as few as 5.
- Schedule. Those chances are scattered across the 90 minutes, weighted late — more goals come in the second half, same as real football.
- Possession. For each chance, the engine rolls "who has the ball", weighted by both teams' control scores. Win the midfield, get more chances.
- Resolve. Each chance gets a type, a shooter, and a goal-or-miss roll of attacker quality against defender quality.
- Injuries. After the match, injury rolls for each team. Aggressive opponents and high press raise the risk.
Player attributes
Three groups. Building a balanced team means making sure each chance type has someone good for it.
Core skills
| Attribute | What it does |
|---|---|
| Attack | How dangerous a player is when shooting — the universal base for every chance type |
| Control | How well a midfielder keeps and circulates the ball; drives chance creation |
| Defense | Positioning and awareness for outfield defenders |
| Goalkeeping | Saves — the keeper's contribution to team defense |
| Aggression | Raises the opponent's injury risk |
Physicals
| Attribute | What it does |
|---|---|
| Speed | Attacking sprints and defensive chase-back; dominates 1-on-1 breakaways, tested by a high defensive line |
| Work Rate | Stamina and coverage; drives midfield control, especially under a high press |
Specialists
These are how a target man and a poacher feel different even at the same Attack rating.
| Attribute | Best for |
|---|---|
| Finishing | Open play, 1-on-1 breakaways |
| Heading | Corners, crosses |
| Technique | Long range, free kicks, corner delivery |
| Composure | Penalties |
| Tackling | Active dispossession for outfield defenders |
Chance types — what each one rewards
Every shot is one of seven chance types, and the type decides which attributes drive the score. A player who is great on one type can be mediocre on another.
| Chance | Roughly how often | Best build |
|---|---|---|
| Open Play | ~30% | Well-rounded forward (Attack + Finishing + Speed) |
| Cross | ~19% | Striker arriving on a delivery (Attack + Heading + Speed) |
| Corner | ~12% | Aerial specialist (Attack + Heading — speed doesn't matter) |
| Long Range | ~12% | Technical midfielder (Attack + Technique) |
| Free Kick | ~12% | Set-piece specialist (Technique-heavy) |
| Penalty | ~8% | Clutch finisher (Attack + Composure) |
| 1-on-1 Breakaway | ~8% | Pure speedster (Speed above all) |
The engine bans back-to-back duplicates, so you never see "Corner. Corner. Corner."
Key insight: a target man (Heading 92, Speed 55) is your best player on a corner. A speedster (Speed 92, low Heading) is your best on a breakaway. Carry both and the engine picks the right player for the moment.
The goal/miss roll
attacker score = chance-type formula × formation chance-quality × tactic boosts
defender score = opposing team defense
goal probability = attacker / (attacker + defender)
Why an 87-rated striker is far better than a 78-rated one
The engine applies a skill curve to every player score:
(rating / 100)^6. Linearly, 87 vs 78 is barely a 12% gap; on the curve the
87 scores nearly double the 78.
| Raw rating | After curve |
|---|---|
| 50 | 2 |
| 70 | 12 |
| 80 | 26 |
| 85 | 38 |
| 87 | 43 |
| 90 | 53 |
| 95 | 74 |
| 100 | 100 |
This is what makes recruiting a top player meaningful. In engine trials, a squad averaging 88 beats a squad averaging 83 about 65% of the time, losing only ~18% — a clear favourite tops the table far more often than not, but never with certainty.
Verifying a match
Every match is reproducible. The seed derives from an Algorand block hash; feeding it back through the open-source engine produces the identical event sequence. No hidden randomness, no server-side bias.