FM Dossier v1.12.0
A new Analysis tab that opens with what needs your attention today, a version stamp so the app
knows exactly which FM build it is reading, and a batch of fixes from reports.
No re-read is forced. Nothing in your database is replaced, and the new columns fill in on your
next full read rather than being wrong until then.
Analysis — a page that tells you where to look
Click Analysis in the header and the page opens with the squad you actually have. Dashboard
is the summary — it carries a teaser from every other tab, so one screen tells you where to look —
and Squad, Staff and Recruitment are the deeper versions of what it shows. Every teaser
is a view of the same figures the deep tab uses, never a second opinion, and every one of them is a
doorway: click a gap and you land in the search already filtered to it.
Choose the formation it analyses. At the top of the page a chip says which shape every finding is
measured against — your club formation by default, or any tactic you have imported. Pick one and the
page recalculates: a position your tactic never fields stops being counted as a gap, and a position
it depends on is judged against the number of players that shape actually needs. If no formation has
been chosen the page says so plainly and does generic squad coverage instead, rather than quietly
implying a tactical answer.
A position has to be materially worse, not merely the worst. Something is always the weakest
thing in a squad, so a page that ranks by relative weakness will always find you a problem. A
position earns a place on the list when it is genuinely short of players, short of players who
actually play there, or when its best man is a whole ability band below the rest of your squad —
the same bands the page colours every rating with, so you can see the difference that triggered it.
When nothing clears that bar the page says so.
And every position says which of those three it is. A position with plenty of players can still
be the one worth strengthening — because the best of them is below your own standard, or because
almost none of them plays there naturally — and a list headed "gaps" showing a healthy body count
reads as a contradiction. Each row now carries its reason, measured on the same three counts the
ranking itself uses, so the reason shown can never be one the ranking did not act on.
A position with nothing wrong with it is no longer listed at all. Ranking positions by need
always produces a first place, but coming first is not the same as having a problem: on a balanced
squad the leader might simply be a few points below the middle of your own side, which is true of
about half of any squad by definition. Listing five of those and captioning each with a fault it does
not have is worse than saying nothing. So a position appears here only when it is genuinely short of
players, a whole ability band below your standard, or thin on players who play there naturally — and
when none of them is, the page says so plainly. Recruitment still has suggestions in that case,
because "what is broken?" and "how could this side be better?" are different questions.
"Will they join you?" now counts wages, and says what else it counts. A club can be a plausible
size for a player and nowhere near what he earns, and until now nothing in the reach test looked at
pay at all. It does now, on a ceiling built from your own squad's top earner — so a wage far beyond
anything your club pays puts a player out of transfer reach, while a wage you could plausibly stretch
to does not. Loans are exempt, because a parent club usually keeps paying part of the wage.
Two things it deliberately does not do. A player whose wage cannot be read is kept, not dropped —
unknown is not evidence against him. And a free agent is judged on wages like anyone else: he costs no
fee, which is exactly why an unaffordable one is worth knowing about.
The same panel now names all four things it weighs, rather than only the first: your club's
reputation against the player's, the standing of his league against yours, the fee his value implies,
and the wage. Two of those have been part of the test for a long time without the explanation
mentioning them, which is its own kind of wrong — a check you cannot see is a check you cannot trust.
And a clean bill of health lists what it looked at. "Nothing needs strengthening" is only worth
anything if you can see which positions it covers, and a page that checked six positions and a page
that checked none would otherwise print the same reassuring sentence. The all-clear now names every
position it examined, so it can be read against the formation shown at the top — and if a squad
somehow yields nothing to measure at all, it says that instead, because that is not the same answer.
Every position now shows how many of it your shape fields, and every depth target says where it
came from. A target of six at centre-back is 2 × 3 slots; a target of two is either one slot or a
number you set yourself, and those printed identically. The position label now carries a small
×3, so the target is self-evident rather than something to take on trust — and it doubles as a
quick read of which positions your formation actually leans on. Hovering the target says whether it
came from your shape, from your own setting (and what the shape would otherwise have asked for), or
from a positional default because no tactic is selected.
A custom depth target can no longer hide the control that set it. Gaps & targets listed only
positions with something wrong, and the target stepper lives inside those rows — so lowering a
target far enough to fix the gap deleted the row, and with it the only way to change the setting
back. Any position you have set a target on now stays listed, marked as your setting rather than as
a problem, with its reset in place. Targets on positions your current formation does not use are
named too, and there is a Reset targets button for them, since no row can ever show those.
Squad snapshot separates who can cover a position from who actually plays there. Football
Manager counts a player as covering any position his natural ones can fill, which reads far higher
than a manager expects: a flank can show fifteen bodies while one of them is a natural winger. Both
numbers are now shown and each says which it is, with your depth target beside the one being judged.
A position nobody covers says "No cover at all" in words rather than showing an empty bar.
Standouts names your best player, your best young prospect and the contract that needs handling
soonest — with the months remaining. A player who has already agreed to join another club is not
offered as a contract to renew. Top of the squad lists your six best under the Squad tab.
Clicking any name opens that player.
The page opens with your club, not with a list. What is this club? puts your standing, the
money you actually pay, the facilities you inherited and who is on the books in one place — the
briefing you would want on your first day, and the answer to "where do I start?" nine seasons in.
Every rating is now measured against your division. Your facilities, your squad value, your wage
bill and your squad's age each carry their rank among the clubs you play — "3rd best of 18", "1st
youngest of 18" — with the division's median on hover. A rating out of 20 finally means something.
The money is the club's own. Your wage bill, your wage budget and whether you are over it come
straight from the club's finances and match the game's wage screen to the pound; the top earner is
named beside what he earns. Where a figure genuinely cannot be confirmed — Football Manager stores a
club reputation field but never fills it, and the ownership value it does store contradicts the
game's own editor — the page says so in one line rather than spending a row on each.
What do I do first? replaces the five fixed alert cards with a ranked list. Each row scores how
big the problem is, how soon it bites, and how directly the data behind it can be read — so a
contract date, which is exact, outranks an equally bad problem resting on a softer reading. Each row
carries the numbers, the criterion that put it first, and a door into the work.
And it names the right job. Being short of players, being short of players who play the position
naturally, and having enough of them but none good enough are three different situations that call
for three different things — sign someone, add natural depth, or upgrade the man you have — so the
list says which rather than telling you to buy in every case.
Every row also states what it was based on and what is not known. The one that recurs is whether
a player actually wants to move: Football Manager decides that when you approach him, so the page
never implies it has looked. An action that would need something unreadable is not generated at all.
Who is on the books splits your first team from your other sides and the players out on loan,
and every average on the page is the first team's. A mean taken across the senior squad, both
academy sides and the loanees describes an academy rather than a team, and the merged figure is
still shown beneath — labelled as what it is — so two numbers you see elsewhere in the app never
disagree without explanation.
Under Squad, Who is moving reads the development history the app has been recording all
along and shows the biggest risers and fallers, with the period it covers stated on screen rather
than left for you to assume.
Under Staff, Academy & infrastructure puts your training, youth and recruitment facilities
side by side, and Backroom shows where your coaching is thinnest — the best rating on your staff
in each area, and separately for youth development. Am I over- or understaffed? compares your
headcount with the clubs in your division. Football Manager never states how many staff a club
should employ, so what you get is a comparison and the page says so — it is not a target, and one
will not be invented.
Recruitment suggestions offers up to five signings, each in a category that says why it is
there: an Upgrade on your best, an Affordable buy inside your club's own prices, a
Successor for an ageing starter, the best Value per pound, and an Opportunity with no fee
at all.
They span your squad, not one position. A club with no urgent hole would otherwise get five
different answers to the same question — five candidates for whichever position happened to rank
first. The panel now looks at the four positions where this squad has most to gain and names which,
so the five categories describe genuinely different ways to improve rather than five versions of one
signing. There is almost always a better player, a successor for someone ageing, or a piece of value
worth knowing about, even in a squad with nothing wrong with it. Upgrade is judged position by
position for the same reason: a defender is only an upgrade on the defender he would replace.
And the cards themselves now spread out. Widening the search was not enough on its own: if one
position's players happen to be the strongest, the cheapest and the youngest available, that
position wins every category in turn and you get five cards about one slot again. Each card now
prefers a position the others have not already taken, so the board reads across your squad. When a
category has nothing to offer anywhere else — no free agent at any other position, say — it will
still repeat a position rather than leave the card blank, because an empty category would suggest
there is nothing to say. Each card's reason now names the position it applies to, so what it claims
is exactly what was measured.
A card is no longer a single name. A single best answer is often no answer at all — he is
too expensive, his wages are out of range, he is already moving, or he simply is not the profile you
wanted — and a panel that offers one name per category leaves you with nowhere to go when that
happens. Under every suggestion there are now up to three more players, ranked immediately behind
the top pick on that category's own measure, each with his age, position, fee, wage and ability.
They are alternatives to the player above them rather than fresh recommendations, so they can share
his position; a category that genuinely has only one qualifying player shows only that one, rather
than padding the list. Every card gets its second option before any card gets its third, so a thin
market spreads what it has across the whole board instead of stacking it under the first suggestion.
They are priced for your club. A suggestion is now measured against what you already pay and what
you already own — nobody is offered who wants more than your highest earner or costs more than your
most valuable player — and the panel states both ceilings so you can see exactly what was applied.
Players who have already agreed to join somebody else are gone. Each card carries the fee, the wage,
the contract situation and, in words, the rule that picked him: an upgrade names the player he would
replace. If your club genuinely cannot afford anyone, the suggestions still appear, marked as beyond
your scale rather than hidden.
Each card also says what the save knows about approaching him — transfer-listed, asked to leave,
contract running out, unsettled, or settled at his club. These are facts, not predictions. Football
Manager only decides how a player really feels about your club when you actually approach him, so the
panel says so rather than implying a number it cannot know.
Backroom now says why an area is a gap, by naming the strongest area you have to compare it with,
and who on your staff holds the rating. A rating of 13 out of 20 reads very differently once you can
see that your best is 18 and which coach that 13 belongs to.
The priority need says why it is first, not just how bad it is — the weakest best player among
the positions your tactic uses, the furthest below its depth target, both, or the worst combination
of the two. A position with fifteen eligible players can still be your biggest need, and now the card
tells you which of those it is.
A compact club summary shows your wage bill, squad value and the first team's average age —
with how many of them are 21 or under and how many are 30 or over, and separately how many players
are at your other sides or out on loan. The average used to be taken across everyone at the club,
which at a club with an academy describes the youth teams rather than the side you pick.
Everything on the page respects the mode you are in. In Scout and Moneyball, ability reads as a band
rather than a number, exactly as it does everywhere else.
The app now knows which FM build it is reading
FM Dossier reads Football Manager's memory directly, and where things sit in memory changes between
game builds. Until now the app had no way to tell which build it was looking at.
It now reads the version straight from the game and records it with your save. On a build it has not
seen before it says so; on a major version it does not support it refuses to write to your
database at all, rather than filling it with values read from the wrong places.
This is the groundwork for supporting a future FM release without risking the data from this one.
Your saves, listed
Settings → Saves on this PC lists the Football Manager saves it can find, with the manager, club
and in-game date read from each file. It reads the save file itself, so it works whether or not the
game is running.
Community
A Community button in the header now opens both the FM Dossier Discord and the DB Football
Twitch channel, and both are listed in Settings. No pop-ups, and nothing appears at startup.
Easier to read
- Attribute names are no longer cut off. On the player and staff attribute grids, long names like
Command of Area and Natural Fitness were truncated at normal interface scale and worse at 110%.
The grid now sizes its own columns from the space each one needs, and long names wrap instead of
being clipped. Attributes also take a larger share of the row, so a wide window shows the natural
three columns — technical, mental and physical side by side — where it used to show two. Rows are
considerably tighter than the first version of this fix, so more of the grid fits on screen.
- Player names are no longer squeezed out by their own badges. Two causes, both fixed. The name
column keeps a readable width when the table is scaled down, and the numeric columns give up the
pixels instead. More importantly, the shortlist and compare buttons at the end of each row are
hidden until you hover — but they were still holding their width in every row, taking about 67
pixels from the name whether or not you could see them. They now take that space only on the row
you are actually pointing at. If a name and its badges still cannot share one line, the badges
wrap and the name stays whole.
- Hovering a row no longer covers the badges at the end of it. The action buttons used to float
on top of the cell behind a soft fade. A fade suits text — a name losing its last few letters is
still a name — but a status pill either renders or it does not, so half a badge under a gradient
was simply the badge gone. The row now makes room for the buttons instead of putting them on top
of something.
- Corporate facilities on the club profile now looks like the facility rows around it, with the
same bar, rating word and number.
- Player-search badges (status, wonderkid, agreed move) are slightly larger and evenly spaced, so
a row carrying several of them stays readable.
- On the Analysis page, small explanatory text is larger and higher-contrast throughout.
- Full mode is now translated in Danish, German, Greek, Norwegian, Swedish and Turkish, where it
had been showing the English word.
Fixes
- "Matches played" and "Minutes played" could not ask for zero. Both were minimum-only, so
typing 0 asked for at least none and correctly returned everybody — which reads as a filter
that does nothing. Both now take a range, like age and height always have, so "nobody who has
played this season" is a query you can actually make.
- Ordinals read "1th". Ranks such as 1st youngest of 18 were built with a fixed suffix. English
and French now form them properly; the other languages were already correct.
- The first team included the academy. The squad split counted every under-21 and under-18 player
as a first-teamer, because a youth player's club is displayed as his senior parent so the row does
not read as an unnamed club. That display repair is right and was being read as though it were the
raw value. Depth, averages and every recommendation now measure the first team.
- The wage figures on the Analysis page were the wrong ones. They were summed from the squad
rather than read from the club, which under-reported the bill by a wide margin and named the wrong
top earner. Both now come from the club's own finances and match the game's wage screen — and they
are shown to the pound rather than rounded, because the point of that panel is to be checked
against the game. Squad value stays rounded: it is an estimate, and Football Manager only ever
shows it rounded too.
- The 💎 gem badge revealed potential ability, and then it stopped appearing at all. It used to
show based on a player's potential in every mode, including Scout, where that number is hidden.
Fixing the rule left it drawn only in Moneyball mode, so in Full mode it never appeared even on an
obvious gem. Both halves are fixed: the badge follows the same rule as the wonderkid badge, one
setting controls both, and they are now drawn together so neither can go missing on its own.
- A player who has never played showed match statistics anyway. A goalkeeper with no appearances
and no minutes could still show a handful of saves and a save percentage of 100% — figures computed
from a sample that does not exist. Statistics are now held back until a player actually plays, with
a line saying so, and the same rule applies wherever those numbers are sorted, filtered or graded.
Where the save records no appearances at all — rather than recording zero — the panel says that
instead, so an empty statistics tab always explains itself.
- A search for goalkeepers could return outfielders. Football Manager records a real goalkeeping
familiarity for a handful of outfield players — a rating that means "could go in goal in an
emergency" — and the position filter admitted anyone who can play a position at all. That is the
right rule for outfield positions, where thousands of players are genuine fill-ins and hiding them
would make the filter useless; measured across saves, that group is between 4% and 27% of the
matches for every outfield position, and between 0.00% and 0.14% for goalkeeper. So goalkeeper now
requires the position to be a real one. Checked across eleven saves by two separate tests, this
removes only outfielders: not one genuine goalkeeper falls into that group.
- The "Affordable" suggestion described a rule it had stopped using. It once picked the cheapest
player who was not a step down on your squad average; it now picks the best player in the
affordable half of the market, which is a different and more useful answer. The wording was never
updated, so the card explained itself with a rule it no longer followed.
- The "Opportunity" suggestion did not say which position it was for. Every other category
names it; this one described only the rule, so the one card whose whole point is a free signing was
also the one that made you look up where he would play.
- The staff list can now show when it is narrowed to your shortlist. That narrowing is shared
with the player search, so it could be switched on from another screen, and it set no visible mark
of any kind — leaving a list that looked broken rather than filtered. It now appears as a chip you
can remove, whether or not anything matched, and "Clear all" lifts it along with everything else.
- The staff list could go completely empty with no explanation. "No staff match these filters"
was shown for three quite different situations — nothing matched, the query failed, or the list was
scoped to your shortlist, which is shared with players and can easily contain none. Each now says
which, and the shortlist case offers a way out. A failure is also recorded in the diagnostic log,
so a report about it can be answered.
- A repair that has never actually run on some saves. Reloading a save re-applies the app's
database upgrades, and one of those upgrades legitimately reports "this column already exists" —
which was being treated as "this whole upgrade is done". Anything the upgrade did after adding
the column was then skipped for good, while the app recorded it as applied. In practice that cost
the Development board's "since last load" window its one-off backfill on any save that had been
reloaded. Upgrades are now applied a statement at a time.
- "Select all" selected only the players already loaded, while the count beside it showed every
match. The control now says which it means.
- Quick refresh cannot find players who are new to your save — it refreshes people it already
knows. The app said "your squad and shortlist only", which reads as though a new youth intake would
be included. Three places now say it plainly.
- Empty tabs labelled
Club #… appeared beside your squad for clubs with no name and no players.
Sub-teams that hold players are untouched.
- Goalkeepers had no Moneyball metrics at all, so they were graded on ability alone. Save
percentage, share of saves held and pass completion now count.
- Contract length could not be combined with the gem or wonderkid filters — picking a preset
cleared it. Contract expiry is now an ordinary filter: expires within N months, alongside any
other.
- Best per position was capped at three on the club board while the national board has shown ten
since v1.9.9. The default is now five, with a Top 3 / 5 / 10 control.
- The national best-per-position board now shows each player's age and marks a second nationality,
so a correctly eligible player you do not recognise is easier to place.
- Diagnostic logs now record the order actions were issued in, not just the order they were written —
which is what a freeze report needs to be readable — and write one line at startup, so an empty log
means "nothing happened" rather than "logging might be broken".
Under the hood
- The in-game date is found once and remembered, instead of being re-scanned on every quick refresh.
- Every memory offset the reader uses now lives in one place, keyed by game version.