Files
OpenFUT/fifa17-recon/data/tables/headcoachcards.json
T
funman300 9a0a76c9f4 fifa17-recon: real positions, clubs and the six card attributes for all 17,563 players
The pool now comes from the game's OWN resident database, not from a rating index
plus guesses. tools/db_dump.py walked the client's self-describing table catalog
read-only and wrote data/tables/ (149 tables, 55MB); tools/build_player_facts.py
turned it into data/player_facts.json; data/pool.json is the compact form fut_cards
loads.

MEASURED, per player: position (players.preferredposition1), nationality, teamid,
leagueid (via leagueteamlinks), and the six card attributes.

The six attributes are NOT columns -- they are a weighted sum of the 29 base
attributes, and the weights are read out of the game's own playerattributesmapping
table rather than from published formulas. Checked against real FIFA 17 cards:
Messi 89/90/86/96/26/61 and Ibrahimovic 72/90/81/85/31/86 are EXACT, Suarez is one
off on physical, Ronaldo within two on pace and shooting. Keepers come out directly
from the gk* columns.

What this fixes on screen: Kaka was a CDM, Bale a CM, Suarez a GK, and every
attribute was derived from the rating. Now Bale is RW, Boateng is a CB with 90
defending, De Gea is a GK, and a bronze pack deals real bronze players in real
positions.

REVERSAL, deliberate: nation/team/league were being sent as ZERO so the client would
fill its own values (the merge fills those three only when they arrive zero). Now
that we hold the game's own numbers there is nothing to gain from zeros, and they
actively hurt -- club-stats drill-downs bucket by the item's own nation and leagueId,
so a club full of zeros would have quietly emptied the per-nation and per-league
panels fixed the day before. Send the real values.

The old rating-index path is kept as a fallback so the pool still builds without
data/pool.json, and it now says out loud which of the two it used, because one is a
measurement and the other is a guess.

439 + 61 checks green.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VUT92pz6RWKih9dSr8ZpxW
2026-08-05 09:08:29 -07:00

1 line
15 KiB
JSON

{"table":"headcoachcards","source":"FIFA17.exe resident database (tools/db_dump.py)","rowcount":124,"rowsize_bytes":20,"rows_emitted":124,"rowblock":"0x4280dcc8","rowblock_bytes":2513,"descriptor":"0x4280dba8","schema":[{"name":"firstname","bit":0,"width":32,"kind":"string","min":0,"max":0,"storage":"offset-unresolved"},{"name":"lastname","bit":32,"width":32,"kind":"string","min":0,"max":0,"storage":"offset-unresolved"},{"name":"carddbid","bit":64,"width":24,"kind":"int","min":0,"max":9999999,"storage":"int"},{"name":"assetid","bit":88,"width":24,"kind":"int","min":0,"max":16777215,"storage":"int"},{"name":"attribute","bit":112,"width":4,"kind":"int","min":0,"max":10,"storage":"int"},{"name":"value","bit":116,"width":7,"kind":"int","min":0,"max":100,"storage":"int"},{"name":"amount","bit":123,"width":5,"kind":"int","min":-5,"max":20,"storage":"int"},{"name":"rare","bit":128,"width":1,"kind":"int","min":0,"max":1,"storage":"int"}],"rows":[{"firstname":204,"lastname":206,"carddbid":2000004,"assetid":2000004,"attribute":0,"value":55,"amount":5,"rare":0},{"firstname":212,"lastname":214,"carddbid":2000008,"assetid":2000008,"attribute":2,"value":55,"amount":5,"rare":0},{"firstname":218,"lastname":220,"carddbid":2000016,"assetid":2000016,"attribute":5,"value":55,"amount":5,"rare":0},{"firstname":225,"lastname":227,"carddbid":2000020,"assetid":2000020,"attribute":3,"value":55,"amount":5,"rare":0},{"firstname":233,"lastname":235,"carddbid":2000024,"assetid":2000024,"attribute":4,"value":55,"amount":5,"rare":0},{"firstname":239,"lastname":241,"carddbid":2000032,"assetid":2000032,"attribute":5,"value":55,"amount":5,"rare":0},{"firstname":246,"lastname":248,"carddbid":2000036,"assetid":2000036,"attribute":4,"value":55,"amount":5,"rare":0},{"firstname":254,"lastname":256,"carddbid":2000040,"assetid":2000040,"attribute":3,"value":55,"amount":5,"rare":0},{"firstname":261,"lastname":263,"carddbid":2000044,"assetid":2000044,"attribute":1,"value":64,"amount":5,"rare":1},{"firstname":266,"lastname":268,"carddbid":2000048,"assetid":2000048,"attribute":2,"value":64,"amount":5,"rare":1},{"firstname":273,"lastname":275,"carddbid":2000060,"assetid":2000060,"attribute":5,"value":64,"amount":5,"rare":1},{"firstname":280,"lastname":282,"carddbid":2000064,"assetid":2000064,"attribute":1,"value":80,"amount":15,"rare":1},{"firstname":288,"lastname":290,"carddbid":2000068,"assetid":2000068,"attribute":2,"value":64,"amount":5,"rare":1},{"firstname":294,"lastname":297,"carddbid":2000072,"assetid":2000072,"attribute":4,"value":64,"amount":5,"rare":1},{"firstname":299,"lastname":302,"carddbid":2000076,"assetid":2000076,"attribute":2,"value":64,"amount":5,"rare":1},{"firstname":306,"lastname":309,"carddbid":2000080,"assetid":2000080,"attribute":0,"value":64,"amount":5,"rare":1},{"firstname":313,"lastname":315,"carddbid":2000084,"assetid":2000084,"attribute":3,"value":66,"amount":5,"rare":0},{"firstname":319,"lastname":321,"carddbid":2000088,"assetid":2000088,"attribute":4,"value":66,"amount":5,"rare":0},{"firstname":328,"lastname":330,"carddbid":2000092,"assetid":2000092,"attribute":5,"value":66,"amount":5,"rare":0},{"firstname":336,"lastname":338,"carddbid":2000096,"assetid":2000096,"attribute":1,"value":66,"amount":5,"rare":0},{"firstname":345,"lastname":347,"carddbid":2000100,"assetid":2000100,"attribute":4,"value":66,"amount":5,"rare":0},{"firstname":353,"lastname":355,"carddbid":2000104,"assetid":2000104,"attribute":1,"value":66,"amount":5,"rare":0},{"firstname":360,"lastname":362,"carddbid":2000108,"assetid":2000108,"attribute":0,"value":66,"amount":5,"rare":0},{"firstname":371,"lastname":373,"carddbid":2000112,"assetid":2000112,"attribute":5,"value":66,"amount":5,"rare":0},{"firstname":377,"lastname":379,"carddbid":2000116,"assetid":2000116,"attribute":2,"value":66,"amount":5,"rare":0},{"firstname":384,"lastname":386,"carddbid":2000124,"assetid":2000124,"attribute":0,"value":70,"amount":10,"rare":1},{"firstname":391,"lastname":393,"carddbid":2000128,"assetid":2000128,"attribute":0,"value":80,"amount":15,"rare":1},{"firstname":400,"lastname":402,"carddbid":2000132,"assetid":2000132,"attribute":3,"value":70,"amount":10,"rare":1},{"firstname":405,"lastname":407,"carddbid":2000136,"assetid":2000136,"attribute":5,"value":70,"amount":10,"rare":1},{"firstname":413,"lastname":415,"carddbid":2000140,"assetid":2000140,"attribute":1,"value":70,"amount":10,"rare":1},{"firstname":421,"lastname":423,"carddbid":2000144,"assetid":2000144,"attribute":4,"value":70,"amount":10,"rare":1},{"firstname":427,"lastname":429,"carddbid":2000148,"assetid":2000148,"attribute":0,"value":70,"amount":10,"rare":1},{"firstname":434,"lastname":436,"carddbid":2000152,"assetid":2000152,"attribute":2,"value":70,"amount":10,"rare":1},{"firstname":443,"lastname":445,"carddbid":2000156,"assetid":2000156,"attribute":3,"value":70,"amount":10,"rare":1},{"firstname":452,"lastname":454,"carddbid":2000160,"assetid":2000160,"attribute":5,"value":70,"amount":10,"rare":1},{"firstname":457,"lastname":459,"carddbid":2000164,"assetid":2000164,"attribute":1,"value":77,"amount":10,"rare":0},{"firstname":463,"lastname":465,"carddbid":2000168,"assetid":2000168,"attribute":4,"value":77,"amount":10,"rare":0},{"firstname":468,"lastname":470,"carddbid":2000172,"assetid":2000172,"attribute":0,"value":77,"amount":10,"rare":0},{"firstname":475,"lastname":477,"carddbid":2000176,"assetid":2000176,"attribute":2,"value":77,"amount":10,"rare":0},{"firstname":481,"lastname":483,"carddbid":2000192,"assetid":2000192,"attribute":4,"value":77,"amount":10,"rare":0},{"firstname":489,"lastname":491,"carddbid":2000196,"assetid":2000196,"attribute":0,"value":77,"amount":10,"rare":0},{"firstname":496,"lastname":498,"carddbid":2000200,"assetid":2000200,"attribute":2,"value":77,"amount":10,"rare":0},{"firstname":504,"lastname":506,"carddbid":2000204,"assetid":2000204,"attribute":3,"value":77,"amount":10,"rare":0},{"firstname":511,"lastname":513,"carddbid":2000208,"assetid":2000208,"attribute":5,"value":77,"amount":10,"rare":0},{"firstname":519,"lastname":522,"carddbid":2000216,"assetid":2000216,"attribute":4,"value":70,"amount":10,"rare":1},{"firstname":526,"lastname":528,"carddbid":2000220,"assetid":2000220,"attribute":0,"value":64,"amount":5,"rare":1},{"firstname":534,"lastname":536,"carddbid":2000224,"assetid":2000224,"attribute":2,"value":80,"amount":15,"rare":1},{"firstname":541,"lastname":543,"carddbid":2000228,"assetid":2000228,"attribute":3,"value":80,"amount":15,"rare":1},{"firstname":548,"lastname":550,"carddbid":2000232,"assetid":2000232,"attribute":5,"value":80,"amount":15,"rare":1},{"firstname":553,"lastname":555,"carddbid":2000236,"assetid":2000236,"attribute":1,"value":80,"amount":15,"rare":1},{"firstname":559,"lastname":561,"carddbid":2000240,"assetid":2000240,"attribute":4,"value":77,"amount":10,"rare":0},{"firstname":565,"lastname":567,"carddbid":2000244,"assetid":2000244,"attribute":0,"value":80,"amount":15,"rare":1},{"firstname":571,"lastname":573,"carddbid":2000248,"assetid":2000248,"attribute":2,"value":80,"amount":15,"rare":1},{"firstname":578,"lastname":580,"carddbid":2000252,"assetid":2000252,"attribute":3,"value":80,"amount":15,"rare":1},{"firstname":587,"lastname":590,"carddbid":2000256,"assetid":2000256,"attribute":5,"value":80,"amount":15,"rare":1},{"firstname":594,"lastname":596,"carddbid":2000260,"assetid":2000260,"attribute":1,"value":80,"amount":15,"rare":1},{"firstname":602,"lastname":604,"carddbid":2000261,"assetid":2000261,"attribute":2,"value":55,"amount":5,"rare":0},{"firstname":609,"lastname":611,"carddbid":2000262,"assetid":2000262,"attribute":1,"value":55,"amount":5,"rare":0},{"firstname":618,"lastname":620,"carddbid":2000263,"assetid":2000263,"attribute":5,"value":55,"amount":5,"rare":0},{"firstname":625,"lastname":627,"carddbid":2000264,"assetid":2000264,"attribute":3,"value":55,"amount":5,"rare":0},{"firstname":633,"lastname":635,"carddbid":2000265,"assetid":2000265,"attribute":4,"value":55,"amount":5,"rare":0},{"firstname":642,"lastname":644,"carddbid":2000266,"assetid":2000266,"attribute":1,"value":80,"amount":15,"rare":1},{"firstname":649,"lastname":651,"carddbid":2000267,"assetid":2000267,"attribute":5,"value":55,"amount":5,"rare":0},{"firstname":655,"lastname":657,"carddbid":2000268,"assetid":2000268,"attribute":4,"value":55,"amount":5,"rare":0},{"firstname":662,"lastname":664,"carddbid":2000269,"assetid":2000269,"attribute":3,"value":55,"amount":5,"rare":0},{"firstname":669,"lastname":671,"carddbid":2000270,"assetid":2000270,"attribute":1,"value":64,"amount":5,"rare":1},{"firstname":675,"lastname":677,"carddbid":2000271,"assetid":2000271,"attribute":2,"value":64,"amount":5,"rare":1},{"firstname":682,"lastname":684,"carddbid":2000272,"assetid":2000272,"attribute":3,"value":64,"amount":5,"rare":1},{"firstname":690,"lastname":693,"carddbid":2000273,"assetid":2000273,"attribute":5,"value":64,"amount":5,"rare":1},{"firstname":699,"lastname":701,"carddbid":2000274,"assetid":2000274,"attribute":2,"value":64,"amount":5,"rare":1},{"firstname":705,"lastname":707,"carddbid":2000275,"assetid":2000275,"attribute":4,"value":64,"amount":5,"rare":1},{"firstname":714,"lastname":716,"carddbid":2000276,"assetid":2000276,"attribute":2,"value":64,"amount":5,"rare":1},{"firstname":721,"lastname":723,"carddbid":2000277,"assetid":2000277,"attribute":0,"value":64,"amount":5,"rare":1},{"firstname":727,"lastname":729,"carddbid":2000278,"assetid":2000278,"attribute":0,"value":64,"amount":5,"rare":1},{"firstname":733,"lastname":735,"carddbid":2000279,"assetid":2000279,"attribute":3,"value":66,"amount":5,"rare":0},{"firstname":742,"lastname":745,"carddbid":2000280,"assetid":2000280,"attribute":4,"value":66,"amount":5,"rare":0},{"firstname":748,"lastname":750,"carddbid":2000281,"assetid":2000281,"attribute":5,"value":66,"amount":5,"rare":0},{"firstname":754,"lastname":756,"carddbid":2000282,"assetid":2000282,"attribute":1,"value":66,"amount":5,"rare":0},{"firstname":761,"lastname":763,"carddbid":2000283,"assetid":2000283,"attribute":4,"value":66,"amount":5,"rare":0},{"firstname":767,"lastname":769,"carddbid":2000284,"assetid":2000284,"attribute":1,"value":66,"amount":5,"rare":0},{"firstname":774,"lastname":776,"carddbid":2000285,"assetid":2000285,"attribute":2,"value":70,"amount":10,"rare":1},{"firstname":781,"lastname":783,"carddbid":2000286,"assetid":2000286,"attribute":3,"value":70,"amount":10,"rare":1},{"firstname":787,"lastname":789,"carddbid":2000287,"assetid":2000287,"attribute":5,"value":70,"amount":10,"rare":1},{"firstname":794,"lastname":796,"carddbid":2000288,"assetid":2000288,"attribute":1,"value":70,"amount":10,"rare":1},{"firstname":803,"lastname":805,"carddbid":2000289,"assetid":2000289,"attribute":4,"value":70,"amount":10,"rare":1},{"firstname":809,"lastname":811,"carddbid":2000290,"assetid":2000290,"attribute":0,"value":70,"amount":10,"rare":1},{"firstname":817,"lastname":819,"carddbid":2000291,"assetid":2000291,"attribute":2,"value":70,"amount":10,"rare":1},{"firstname":825,"lastname":827,"carddbid":2000292,"assetid":2000292,"attribute":3,"value":70,"amount":10,"rare":1},{"firstname":833,"lastname":836,"carddbid":2000293,"assetid":2000293,"attribute":5,"value":70,"amount":10,"rare":1},{"firstname":842,"lastname":844,"carddbid":2000294,"assetid":2000294,"attribute":4,"value":70,"amount":10,"rare":1},{"firstname":847,"lastname":849,"carddbid":2000295,"assetid":2000295,"attribute":1,"value":77,"amount":10,"rare":0},{"firstname":855,"lastname":857,"carddbid":2000296,"assetid":2000296,"attribute":4,"value":77,"amount":10,"rare":0},{"firstname":864,"lastname":867,"carddbid":2000297,"assetid":2000297,"attribute":0,"value":77,"amount":10,"rare":0},{"firstname":873,"lastname":876,"carddbid":2000298,"assetid":2000298,"attribute":2,"value":77,"amount":10,"rare":0},{"firstname":882,"lastname":884,"carddbid":2000299,"assetid":2000299,"attribute":3,"value":77,"amount":10,"rare":0},{"firstname":889,"lastname":892,"carddbid":2000300,"assetid":2000300,"attribute":5,"value":77,"amount":10,"rare":0},{"firstname":897,"lastname":900,"carddbid":2000301,"assetid":2000301,"attribute":4,"value":77,"amount":10,"rare":0},{"firstname":904,"lastname":906,"carddbid":2000302,"assetid":2000302,"attribute":0,"value":77,"amount":10,"rare":0},{"firstname":912,"lastname":914,"carddbid":2000303,"assetid":2000303,"attribute":2,"value":77,"amount":10,"rare":0},{"firstname":919,"lastname":922,"carddbid":2000304,"assetid":2000304,"attribute":3,"value":77,"amount":10,"rare":0},{"firstname":928,"lastname":931,"carddbid":2000305,"assetid":2000305,"attribute":5,"value":77,"amount":10,"rare":0},{"firstname":937,"lastname":940,"carddbid":2000306,"assetid":2000306,"attribute":1,"value":77,"amount":10,"rare":0},{"firstname":946,"lastname":948,"carddbid":2000307,"assetid":2000307,"attribute":4,"value":77,"amount":10,"rare":0},{"firstname":953,"lastname":956,"carddbid":2000308,"assetid":2000308,"attribute":1,"value":80,"amount":15,"rare":1},{"firstname":961,"lastname":964,"carddbid":2000309,"assetid":2000309,"attribute":1,"value":80,"amount":15,"rare":1},{"firstname":968,"lastname":971,"carddbid":2000310,"assetid":2000310,"attribute":2,"value":80,"amount":15,"rare":1},{"firstname":978,"lastname":981,"carddbid":2000311,"assetid":2000311,"attribute":3,"value":80,"amount":15,"rare":1},{"firstname":990,"lastname":992,"carddbid":2000312,"assetid":2000312,"attribute":5,"value":80,"amount":15,"rare":1},{"firstname":998,"lastname":1001,"carddbid":2000313,"assetid":2000313,"attribute":1,"value":80,"amount":15,"rare":1},{"firstname":1007,"lastname":1010,"carddbid":2000314,"assetid":2000314,"attribute":0,"value":80,"amount":15,"rare":1},{"firstname":1015,"lastname":1018,"carddbid":2000315,"assetid":2000315,"attribute":2,"value":80,"amount":15,"rare":1},{"firstname":1024,"lastname":1027,"carddbid":2000316,"assetid":2000316,"attribute":3,"value":77,"amount":10,"rare":0},{"firstname":1033,"lastname":1036,"carddbid":2000317,"assetid":2000317,"attribute":5,"value":77,"amount":10,"rare":0},{"firstname":1039,"lastname":1042,"carddbid":2000318,"assetid":2000318,"attribute":4,"value":77,"amount":10,"rare":0},{"firstname":1047,"lastname":1050,"carddbid":2000319,"assetid":2000319,"attribute":0,"value":77,"amount":10,"rare":0},{"firstname":1055,"lastname":1058,"carddbid":2000320,"assetid":2000320,"attribute":2,"value":77,"amount":10,"rare":0},{"firstname":1064,"lastname":1067,"carddbid":2000321,"assetid":2000321,"attribute":3,"value":77,"amount":10,"rare":0},{"firstname":1074,"lastname":1077,"carddbid":2000322,"assetid":2000322,"attribute":5,"value":77,"amount":10,"rare":0},{"firstname":1084,"lastname":1087,"carddbid":2000323,"assetid":2000323,"attribute":1,"value":77,"amount":10,"rare":0},{"firstname":1093,"lastname":1096,"carddbid":2000324,"assetid":2000324,"attribute":4,"value":77,"amount":10,"rare":0},{"firstname":1102,"lastname":1105,"carddbid":2000325,"assetid":2000325,"attribute":1,"value":80,"amount":15,"rare":1},{"firstname":1110,"lastname":1113,"carddbid":2000326,"assetid":2000326,"attribute":1,"value":80,"amount":15,"rare":1},{"firstname":1120,"lastname":1123,"carddbid":2000327,"assetid":2000327,"attribute":2,"value":80,"amount":15,"rare":1},{"firstname":1129,"lastname":1132,"carddbid":2000328,"assetid":2000328,"attribute":1,"value":80,"amount":15,"rare":1}]}