01 / DIRECT ANSWER
Export once, archive immediately, validate before analysis
FC 26 Live Editor publishes two different Lua CSV exporters. export_season_stats.lua writes one dated 16-column player-stat file and excludes zero-appearance rows. export_fixtures.lua writes a dated 10-column file for every competition it discovers and represents unplayed scores as TBD,TBD. Both require an active Career and write to the Windows Desktop.
Both files stop at their Career Mode assertion outside a loaded Career.
Same-day output can be recreated with write mode; keep a clean original.
Accept 16 stats fields or 10 fixture fields—never silently shifted rows.
02 / INTENT ROUTING
Choose by the historical question you want to answer
Season stats
One row per available player–competition pair with appearances above zero. Best for season awards, player histories and competition splits.
- FILE
- SEASON_STATS_DD_MM_YYYY.csv
- KEY
- playerid + competition
- MOMENT
- Before season rollover
Fixtures
One row per valid fixture, separated into competition files. Best for schedules, results, opponent analysis and match ledgers.
- FILE
- FIXTURES_{competition}_DD_MM_YYYY.csv
- KEY
- competition + teams + date + time
- STATE
- score or paired TBD
03 / OUTPUT CONTRACT
Shared destination does not mean shared semantics
One dated file
One dated file per competition
Player × competition
Fixture
Database + helper APIs + GetPlayersStats()
Process memory + helper APIs
Rows with appearances = 0 omitted
Both scores become TBD
LOGGER “Done”
No final log line in source
Not guaranteed: pairs()
Memory-list iteration order
04 / ORIGINAL DATA TOOL
Inspect the CSV before Excel, Sheets or a dashboard
The local inspector recognises both exact headers, tests row width and IDs, checks score pairs or numeric counters, detects practical duplicate keys and creates a copyable receipt. It does not execute Lua or upload the file.
CSV MATCH INSPECTOR
Open an exporter file or paste its contents. Detection and checks run only in this browser.
VALIDATION LIMIT: a structural PASS means the file matches the published shape. It cannot prove that fixed memory offsets fit your running build or that every underlying game field is semantically correct.
05 / 16-FIELD STATS SCHEMA
One row is one player in one competition
Treat playerid plus competition as the practical row identity. The same player can legitimately appear more than once across competitions; row position is not a stable key.
positionPosition label from the player’s preferredposition1.
playeridPlayer entity ID; use it as the stable join key.
playernameResolved display name; human-readable, not the join key.
teamTeam name resolved when the player list is built.
competitionCompetition name for this stat row.
appearancesOnly rows with a value above zero are exported.
AVGTwo-decimal average calculated by the script.
MOTMsPlayer-of-the-match count; source marks mapping “Not sure”.
goalsGoals in this player–competition row.
assistsAssists in this player–competition row.
yellow_cardsYellow-card count.
two_yellowSecond-yellow count; source marks mapping “Not sure”.
red_cardsRed-card count.
savesSave count; source marks mapping “Not sure”.
goals_concededGoals conceded; source marks mapping “Not sure”.
cleansheetsClean-sheet count.
appearances > 1 → (raw avg ÷ appearances) ÷ 10appearances = 1 → raw avg ÷ 10formatted to 2 decimals06 / 10-FIELD FIXTURE SCHEMA
One row is one scheduled or completed match
Team IDs are resolved through standings records, while competition, names and the two scores are written into each line. Keep raw date and time fields untouched until their encoding is proven for your dataset.
competitionCompetition name; also becomes part of the filename.
compobjidCompetition object ID.
hometeamidHome team ID resolved through standings data.
awayteamidAway team ID resolved through standings data.
hometeamResolved home-team name.
homescoreInteger when complete; otherwise TBD.
awayscoreInteger when complete; otherwise TBD.
awayteamResolved away-team name.
dateRaw integer read from fixture memory.
timeRaw integer read from fixture memory.
Both score cells are numeric.
Both score cells use the literal text value.
07 / FILE LIFECYCLE
The date labels a run—not a unique snapshot
%USERPROFILE%\Desktop\SEASON_STATS_DD_MM_YYYY.csvThe file is opened with w+. Another run on the same day reuses and replaces that path.
%USERPROFILE%\Desktop\FIXTURES_{competition}_DD_MM_YYYY.csvThe first row for each competition creates its file with w+; following rows reopen it in append mode.
Add ISO date, Career identity, save slot and capture moment outside the source filename. Keep the original CSV immutable; transform a working copy.
08 / DATA CONFIDENCE
Separate observed code from unresolved field meaning
Directly visible in the current official source.
Pointer chain, offsets and 0x18 item size are explicit, but runtime fit depends on the active build.
MOTMs, saves, goals_conceded and two_yellow sit directly below a “Not sure” comment.
DO NOT UPGRADE UNCERTAINTY: the CSV inspector checks the values’ shape. It deliberately does not relabel the four author-marked mappings as verified football semantics.
09 / CSV FORMAT BOUNDARY
Commas are delimiters, but the exporters do not quote names
Both files write comma-separated values directly. The stats script uses table.concat(row, ","); the fixtures script uses a comma-based string.format. Neither source wraps text in quotes or escapes embedded commas.
Premier League,13,1,5,Arsenal,TBD,TBD,Chelsea,20261226,1730Premier League,13,1,5,Manchester, City,TBD,TBD,Chelsea,20261226,1730Why the checker accepts quoted input: downstream tools may repair a working copy into standards-compliant quoted CSV. Detection still requires the exact official column names and order.
10 / CONTROLLED EXPORT
Build a repeatable season-close data protocol
- 01PAIRRecord game build and LE_VERSION
Keep version proof beside the export; the fixture script has a tighter memory-layout contract.
- 02CAREERLoad the intended save and date
Both scripts require Career Mode. For stats, export before the season resets them.
- 03SOURCEOpen the official Lua file
Use the creator repository source you reviewed, not a renamed attachment or mirror.
- 04RUN ONCEExecute and preserve first output
Stats logs Done. Fixtures has no final completion line; verify all expected competition files on Desktop.
- 05ARCHIVERename and copy before rerun
Protect the source snapshot from the same-day write path.
- 06VALIDATECheck header, row width and keys
Use the local inspector; investigate every shifted row, impossible ID or mixed TBD score pair.
- 07TRANSFORMAnalyse a working copy
Sort and enrich by IDs. Do not infer identity from names or current row order.
11 / FAILURE ROUTING
The first failed boundary chooses the next check
Load a Career before executing either file.
Only valid players with appearances above zero enter the export.
A fixture file is created only when the loop encounters that competition.
Inspect text names and preserve the raw file before repairing a copy.
The dated path is not a run ID. Restore the archived first export.
Stop rerunning and report the exact game/editor pair with source and logs.
12 / VIDEO & INTENT AUDIT
Search demand exists; exact exporter documentation does not
Four targeted YouTube searches produced 60 result slots but only 17 unique videos. The results clustered around a general Live Editor tutorial, Career setup, face importing, mod installation and spreadsheet charting—not a current, authoritative walkthrough of these two FC 26 files.
CLOSEST WORKFLOW: a March 2025 FC 25 Live Editor tutorial; useful only for broad UI vocabulary.
CURRENT CAREER INTENT: FC 26 startup and PlayStyle analysis videos show demand for season evidence.
NO EXACT MATCH: no result can replace the two current official source files for field or write semantics.
No transcript claim is promoted into a technical fact about these exporters.
13 / FAQ
FC 26 CSV export questions answered at source level
01Which official script exports player statistics?+
Use export_season_stats.lua. It writes one dated SEASON_STATS_DD_MM_YYYY.csv file to the Windows Desktop.
02Which script exports fixtures?+
Use export_fixtures.lua. It writes a separate dated FIXTURES_{competition}_DD_MM_YYYY.csv file for each competition found in the valid fixture list.
03Do the scripts edit my Career save?+
Their intended result is an external CSV file, not a Career database write. Still use an active Career because both scripts assert that Career Mode is loaded.
04When should I export season statistics?+
The script author says the game resets season statistics at the beginning of each season, so preserve the file before advancing into the next season.
05Does running the stats exporter twice append data?+
No. It opens the dated file with w+, so a second run on the same date replaces that filename. Rename or archive the first copy before rerunning.
06Does the fixture exporter create one combined file?+
No. It creates one file per competition, writes the header once for that competition, then appends its fixture rows.
07What does TBD mean in score columns?+
The fixture exporter writes TBD to both score cells when its game-completion flag is false. Completed fixtures receive numeric scores.
08What format are fixture date and time?+
The published script only exports the raw integer values read from memory; it does not document a human-facing date/time encoding. Preserve the raw values instead of guessing.
09Can names containing commas break the CSV?+
The official scripts concatenate values with commas and do not add CSV quoting. A comma inside a player, team or competition name can therefore shift the row into extra columns.
10Why can fixture export be version-sensitive?+
It reads internal process structures through a pointer chain, fixed offsets and a fixed item size. That creates a tighter build contract than the stats exporter’s database/helper calls.
11Can row order change between season-stat exports?+
Yes. The script iterates Lua tables with pairs, which does not promise a stable order. Join and compare by playerid plus competition, not row number.
12Does the checker upload my Career data?+
No. The CSV inspector is browser-only: File.text reads the chosen file locally and the page contains no upload action.
14 / EVIDENCE LEDGER
Code controls behavior; official docs control interfaces
Technical claims are anchored to creator-owned source, Wiki, manifest and changelog. The video audit is kept as audience-intent evidence and is not used to redefine the CSV fields.
Primary 16-field schema, filter, AVG calculation, filename and overwrite behavior.
Primary 10-field schema, memory reads, per-competition files and TBD logic.
Creator-owned location of both current files.
Project provenance and current source tree.
Documented Lua engine and execution surface.
Official low-level memory interface used by the fixture exporter.
Official logging interface used for the stats exporter completion line.
Official database and Career-persistence boundary.
Current mapped game and Live Editor versions.
Release and compatibility chronology.
Official installation and launch context.
Creator-owned reporting channel for reproducible problems.
Closest workflow result in the current four-query audit; older FC 25 context only.
Current Career-mode demand context; not evidence for Lua field semantics.
Current stats-tracking interest context; not exporter documentation.