First of all, great to have FM-arena back. I'm a long time lurker and user of the findings here.
For the past week I've been working on a tool to run FM27's actual match engine outside the game and on your own saved matches (so you can see how your team would have done with a different tactic or better tactical understanding, or with a better player). You take a match FM27 saved, replay it (it comes out exactly the same - same score, same xG, same goal minutes), then change one thing and replay it a few hundred times on the same seeds. Because the seeds are the same, whatever difference you get comes from your change, not from luck. The tool and method can also be used to simulate matches with different seeds and different conditions (i.e. we can test player attributes, tactical familiarity, etc...)
It's on GitHub, free and open source: GitHub - caiograco289/Fm-Match-Lab: Run Football Manager 27's own match engine on macOS, outside the game: replay your saved matches exactly, change tactics, attributes or instructions, and simulate thousands of matches to see what works. Unofficial; needs your own FM27.
First, credit where it's due: none of this would exist without the original windows based FM Tactics Lab by lqf0624, a tool from the Chinese FM community (see GitHub - lqf0624/fm-tactics-lab: FM 战术实验室 · Batch tactical experiments with the original FM27 detailed match engine. Windows desktop app and MIT-licensed tool source.). They did the hard work of figuring out how to drive FM27's engine outside the game in the first place, and the browser UI and a big chunk of the server still come from their project. I started out just wanting to port it to Mac, but then decided to play with it and make a bunch of changes (all with Claude code of course). It basically has the engine host for macOS, and allows us to replay your own save matches, as well as do some cool simulations. So it isn't the same tool anymore, but it only exists because theirs did. If you're on Windows, go use theirs. Mine is Mac only.
I've also used it to run a bunch of simulations to try to understand how FM27 works. So far I've I've thrown about 190,000 matches at it. Initially with the 27.0.0 version, but now also with the newest release 27.0.1. You can see the study results summarized by Claude here: Fm-Match-Lab/docs/studies at main · caiograco289/Fm-Match-Lab. It was mostly done with a save I was on 2037 with a team I moved up the rankings to the premier league. It would be interesting to re-do them with a different team/league.
Most of the results are not surprising. Let me try to organize them below with the help of AI (sorry it writes better than I do).
Looking forward to see what others learn from it!
--- AI summary of findings below ---
Everything below comes from ten real matches of one club (a newly promoted PL side, so mostly underdog games). Each test changes one thing for my team and replays all ten matches 200-300 times against the unchanged version. +0.1 points per game is roughly 4 points over a season, for scale.
Pace and Acceleration are still king
No surprise. I bumped each attribute by 5 for the whole squad, and Pace and Acceleration came out on top by a distance, about +0.07 ppg per point. +5 Pace across the squad is worth around 13 points a season. After those: Jumping Reach, Stamina, Anticipation, Dribbling, Concentration. So the FM27 engine hasn't changed the old order much.
Finishing does what you'd expect: no extra chances (xG stays the same), it just puts more of them away. Passing, Technique, First Touch, Crossing, Off the Ball, Tackling, Marking and Positioning showed nothing I could measure, so any effect they have is under about 0.1 ppg. The one odd result was Goalkeeper Kicking, which actually made things slightly worse. I don't have an explanation for that yet.
Fitness and selection matter more than tactics
Everyone knows rotation matters. I just hadn't seen how much put in points. Starting players at 50% match sharpness cost a full point per game; 75% still cost about 0.37. Condition at 80% cost 0.8 ppg. Starters out of position (position ratings capped at 10) cost 0.85 ppg. Nothing I changed on the tactics screen came anywhere near those.
Mental attributes do matter - on real matches
This is the one result that might go against some testing. On a generic test match with every attribute at 12, mental attributes looked close to worthless. On real matches, even with every player levelled to 12, Anticipation and Concentration clearly matter. On the generic match most effects shrank to about 40% of their real-match size, and some disappeared completely. That doesn't make test leagues wrong, but the test match itself seems to shape the results more than I expected.
Familiarity: about half a point a game, then it stops
People already know familiarity matters. The numbers: in FM27 it's the Tactical Understanding part of the Tactical Effectiveness screen, and training counts about twice as much as match exposure. Untrained costs around 0.4 ppg; well trained (around 75 per area) gains about 0.2. Above that there's nothing more to gain, because each area is capped. That's worth knowing if you're grinding tactical training past that point. Low to high in every area was worth about +0.5 ppg, about the same as +7 Pace for the whole squad. Attributes and familiarity just add up: good players aren't worth more with a familiar tactic.
Tactics
I ran 23 tactics on the same ten matches: the 10 FM27 presets plus 13 tactics I'd downloaded, a lot of them from here. My club's own tactic, STORMBRINGER 27 BBMIW 424, came out best. HIGHWAY STAR 27 BBM 4231 P90 and ZaZ Ace of Spades were basically level with it. So the tactics that test well here also held up on real matches.
Every preset was worse, and the defensive ones were awful, which again matches what testing here has shown. Park the Bus got 0.86 ppg against 1.80 for STORMBRINGER; Catenaccio got 1.20. They create about a full xG less per game and still concede slightly more. Even as an underdog, sitting deep doesn't pay in this engine.
Big caveat: every tactic used the same XI in the same slots, which is unfair on shapes very different from a 4-2-4. Please don't read this as a general ranking of anyone's tactic.
Random bits
- Letting the AI manager run the match instead of your assistant cost 0.56 ppg. I hadn't seen that one measured before.
- Most individual team instructions made no clear difference on their own.
- One step more attacking mentality cost a bit of xGD; points didn't clearly change.
- Weight has exactly zero effect. CA, reputation and height showed nothing either. The engine plays on attributes, not on the CA number - which people have suspected for a long time.
Caveats
All of this comes from one club, mostly losing to better teams. A title-chasing side could look different, and that's the main reason I'm posting this. Also, the instruction/mentality/personality results are still being rerun with more seeds, so treat the small ones as unconfirmed for now. The big ones (fitness, positions, AI manager) aren't going anywhere.
Full write-ups with all the tables are in the repo under docs/FINDINGS.md and docs/studies/ if you want the details.
How to set it up
You need a Mac, FM27 from Steam (27.0.0 or 27.0.1 - it refuses other versions until I've mapped them, so expect a delay after patches), Steam running and logged in, Python 3.12 and the Xcode command line tools. It loads the engine from your own install and doesn't touch Steam or DRM. Nothing from the game is in the repo.
Play at least one match first (instant result is fine), then:
Then go to http://127.0.0.1:18765 in your browser. From there you can edit pretty much everything the engine reads (attributes, lineups, roles, instructions, set pieces, who manages each side) and run batches. It imports and exports .fmf files too. Older FM24/FM26 tactics often won't load - re-saving them in FM27 seems to fix that.
To run the same kind of study on your own club:
It does about 3 seconds per match per worker, so around 6k matches an hour on six workers. FM27 has to be closed while it runs.
For the past week I've been working on a tool to run FM27's actual match engine outside the game and on your own saved matches (so you can see how your team would have done with a different tactic or better tactical understanding, or with a better player). You take a match FM27 saved, replay it (it comes out exactly the same - same score, same xG, same goal minutes), then change one thing and replay it a few hundred times on the same seeds. Because the seeds are the same, whatever difference you get comes from your change, not from luck. The tool and method can also be used to simulate matches with different seeds and different conditions (i.e. we can test player attributes, tactical familiarity, etc...)
It's on GitHub, free and open source: GitHub - caiograco289/Fm-Match-Lab: Run Football Manager 27's own match engine on macOS, outside the game: replay your saved matches exactly, change tactics, attributes or instructions, and simulate thousands of matches to see what works. Unofficial; needs your own FM27.
First, credit where it's due: none of this would exist without the original windows based FM Tactics Lab by lqf0624, a tool from the Chinese FM community (see GitHub - lqf0624/fm-tactics-lab: FM 战术实验室 · Batch tactical experiments with the original FM27 detailed match engine. Windows desktop app and MIT-licensed tool source.). They did the hard work of figuring out how to drive FM27's engine outside the game in the first place, and the browser UI and a big chunk of the server still come from their project. I started out just wanting to port it to Mac, but then decided to play with it and make a bunch of changes (all with Claude code of course). It basically has the engine host for macOS, and allows us to replay your own save matches, as well as do some cool simulations. So it isn't the same tool anymore, but it only exists because theirs did. If you're on Windows, go use theirs. Mine is Mac only.
I've also used it to run a bunch of simulations to try to understand how FM27 works. So far I've I've thrown about 190,000 matches at it. Initially with the 27.0.0 version, but now also with the newest release 27.0.1. You can see the study results summarized by Claude here: Fm-Match-Lab/docs/studies at main · caiograco289/Fm-Match-Lab. It was mostly done with a save I was on 2037 with a team I moved up the rankings to the premier league. It would be interesting to re-do them with a different team/league.
Most of the results are not surprising. Let me try to organize them below with the help of AI (sorry it writes better than I do).
Looking forward to see what others learn from it!
--- AI summary of findings below ---
Everything below comes from ten real matches of one club (a newly promoted PL side, so mostly underdog games). Each test changes one thing for my team and replays all ten matches 200-300 times against the unchanged version. +0.1 points per game is roughly 4 points over a season, for scale.
Pace and Acceleration are still king
No surprise. I bumped each attribute by 5 for the whole squad, and Pace and Acceleration came out on top by a distance, about +0.07 ppg per point. +5 Pace across the squad is worth around 13 points a season. After those: Jumping Reach, Stamina, Anticipation, Dribbling, Concentration. So the FM27 engine hasn't changed the old order much.
Finishing does what you'd expect: no extra chances (xG stays the same), it just puts more of them away. Passing, Technique, First Touch, Crossing, Off the Ball, Tackling, Marking and Positioning showed nothing I could measure, so any effect they have is under about 0.1 ppg. The one odd result was Goalkeeper Kicking, which actually made things slightly worse. I don't have an explanation for that yet.
Fitness and selection matter more than tactics
Everyone knows rotation matters. I just hadn't seen how much put in points. Starting players at 50% match sharpness cost a full point per game; 75% still cost about 0.37. Condition at 80% cost 0.8 ppg. Starters out of position (position ratings capped at 10) cost 0.85 ppg. Nothing I changed on the tactics screen came anywhere near those.
Mental attributes do matter - on real matches
This is the one result that might go against some testing. On a generic test match with every attribute at 12, mental attributes looked close to worthless. On real matches, even with every player levelled to 12, Anticipation and Concentration clearly matter. On the generic match most effects shrank to about 40% of their real-match size, and some disappeared completely. That doesn't make test leagues wrong, but the test match itself seems to shape the results more than I expected.
Familiarity: about half a point a game, then it stops
People already know familiarity matters. The numbers: in FM27 it's the Tactical Understanding part of the Tactical Effectiveness screen, and training counts about twice as much as match exposure. Untrained costs around 0.4 ppg; well trained (around 75 per area) gains about 0.2. Above that there's nothing more to gain, because each area is capped. That's worth knowing if you're grinding tactical training past that point. Low to high in every area was worth about +0.5 ppg, about the same as +7 Pace for the whole squad. Attributes and familiarity just add up: good players aren't worth more with a familiar tactic.
Tactics
I ran 23 tactics on the same ten matches: the 10 FM27 presets plus 13 tactics I'd downloaded, a lot of them from here. My club's own tactic, STORMBRINGER 27 BBMIW 424, came out best. HIGHWAY STAR 27 BBM 4231 P90 and ZaZ Ace of Spades were basically level with it. So the tactics that test well here also held up on real matches.
Every preset was worse, and the defensive ones were awful, which again matches what testing here has shown. Park the Bus got 0.86 ppg against 1.80 for STORMBRINGER; Catenaccio got 1.20. They create about a full xG less per game and still concede slightly more. Even as an underdog, sitting deep doesn't pay in this engine.
Big caveat: every tactic used the same XI in the same slots, which is unfair on shapes very different from a 4-2-4. Please don't read this as a general ranking of anyone's tactic.
Random bits
- Letting the AI manager run the match instead of your assistant cost 0.56 ppg. I hadn't seen that one measured before.
- Most individual team instructions made no clear difference on their own.
- One step more attacking mentality cost a bit of xGD; points didn't clearly change.
- Weight has exactly zero effect. CA, reputation and height showed nothing either. The engine plays on attributes, not on the CA number - which people have suspected for a long time.
Caveats
All of this comes from one club, mostly losing to better teams. A title-chasing side could look different, and that's the main reason I'm posting this. Also, the instruction/mentality/personality results are still being rerun with more seeds, so treat the small ones as unconfirmed for now. The big ones (fitness, positions, AI manager) aren't going anywhere.
Full write-ups with all the tables are in the repo under docs/FINDINGS.md and docs/studies/ if you want the details.
How to set it up
You need a Mac, FM27 from Steam (27.0.0 or 27.0.1 - it refuses other versions until I've mapped them, so expect a delay after patches), Steam running and logged in, Python 3.12 and the Xcode command line tools. It loads the engine from your own install and doesn't touch Steam or DRM. Nothing from the game is in the repo.
Play at least one match first (instant result is fine), then:
Code:
git clone https://github.com/caiograco289/Fm-Match-Lab.git && cd Fm-Match-Lab
python3.12 -m venv .venv
.venv/bin/pip install UnityPy
.venv/bin/python scripts/setup.py
.venv/bin/python scripts/run.py
Then go to http://127.0.0.1:18765 in your browser. From there you can edit pretty much everything the engine reads (attributes, lineups, roles, instructions, set pieces, who manages each side) and run batches. It imports and exports .fmf files too. Older FM24/FM26 tactics often won't load - re-saving them in FM27 seems to fix that.
To run the same kind of study on your own club:
Code:
.venv/bin/python scripts/study.py new runs/my-study --team "Your Club" --newest 10
.venv/bin/python scripts/study.py add runs/my-study attributes familiarity:20 instructions
.venv/bin/python scripts/study.py run runs/my-study
.venv/bin/python scripts/study.py report runs/my-study
It does about 3 seconds per match per worker, so around 6k matches an hour on six workers. FM27 has to be closed while it runs.