Skip to content

v0.2.0 - Kickoff

Choose a tag to compare

@github-actions github-actions released this 02 Sep 08:01
· 117 commits to main since this release

v0.2.0 arrived much sooner than expected.

Shortly after releasing v0.1.x, I realized that .fmlens match archives were significantly larger than they needed to be. A typical match archive was close to 50 MB, and there was clearly a lot of room for improvement.

That led to a major redesign of the archive format.

With the new chunked storage format, delta encoding, and compression pipeline, the size of a typical match archive has been reduced from around 50 MB to roughly 2 MB.

The trade-off is that v0.2.0 introduces a completely new archive format, which means it is no longer compatible with .fmlens match archives created by v0.1.x.

This is also the main reason why this release moves directly to v0.2.0 instead of continuing with another v0.1.x patch release.

Starting with this version, I also want to introduce a small tradition for FMMatchLens: major releases will receive their own codenames*

Most of these names will probably come from football, tactics, or the game itself. They do not necessarily have to be serious, but hopefully they will make each major release a little more memorable.

And for the very first one, there really could not be a more fitting name:

Kickoff

This is the first major step forward for FMMatchLens, and the starting point for many more match analysis features to come.

v0.2.0 introduces a completely new formation history system, redesigned match timeline, and chunked archive format, while also expanding player roles, physical condition data, and tactical visualizations.

✨ Highlights

📦 A Completely New .fmlens Archive Format

This release introduces a redesigned chunk-based archive format:

  • 16-bit coordinate quantization
  • Per-frame delta encoding
  • Independent zlib/Deflate-compressed chunks
  • CRC integrity checks for every chunk
  • End-of-file index for fast seeking
  • Recovery of valid data prefixes after unexpected interruptions
  • The backend only decompresses chunks covering the requested Tick range
  • Local .fmlens files can be opened directly in the browser
  • Static player information is stored only once, with later records containing only formation changes and newly introduced players
  • Configurable compression level, chunk size, maximum latency, and background queue capacity

Important

v0.2.0 no longer includes compatibility fallback for the old archive format. .fmlens files generated by previous versions may not open in the new dashboard. If you need to view old match archives, please keep a copy of the corresponding older dashboard version.

Formation History and Dynamic Replay

You can now review formation changes separately for both teams, in and out of possession:

Never miss the little tactical tweaks your opponent tries to sneak past you.

  • Automatically records substitutions, formation changes, and player role changes
  • Quickly jump to each tactical adjustment through the timeline
  • Animated transitions make player movement and personnel changes easier to understand
  • Any historical formation state can be pinned and used as the baseline for later comparisons
  • Supported in both live matches and .fmlens archive replays
1

A More Accurate and Clearer Match Timeline

The match timeline has been redesigned:

  • Correctly displays stoppage time
  • Uses actual match Ticks to align live matches and archived replays
  • Adds half-time separators and clearer progress indicators
  • Automatically merges duplicate events and reduces event icon overlap
  • Redesigned event detail tooltips
  • Improved switching between live matches, server-side archives, and local archives
  • Added working 32× and 64× high-speed replay modes
3

Attacking Focus Added to the Tactical Map

The tactical map now includes an optional Attacking Focus layer, showing the percentage of attacking events occurring on the left, through the center, and on the right for both teams.

This layer can be independently enabled or disabled from Display Options, alongside player shirt numbers.

2

Richer Player and Role Information

Player panels and formation views can now display more native Football Manager data:

  • In-possession roles
  • Out-of-possession roles
  • Natural and familiar positions
  • Overall physical condition
  • Match condition
  • Penalty and own-goal statistics
  • Clearer substitute, substitution, and match-status icons
  • Player detail hover cards directly on the formation view

🛠️ Fixes and Quality-of-Life Improvements

  • Fixed player data offsets that were previously misidentified as yellow and red cards; these fields actually represent penalties and own goals
  • Improved the display of player roles, familiar positions, and status information in squad lists
  • Improved substitute and substitution icons
  • Improved local archive selection, drag-and-drop behavior, and replay controls
  • Added the MIT open-source license

⬆️ Upgrade Instructions

Please download and update both of the following packages from this Release:

  • FMMatchLens-plugin-v0.2.0.zip
  • FMMatchLens-dashboard-v0.2.0.zip

To upgrade the plugin, extract the plugin archive into the Football Manager 2026 game root directory and allow it to overwrite the existing FMMatchLens files.

For the dashboard, it is recommended to extract the new version into a new directory to avoid mixing assets files from different versions.

Updating Archive Configuration

v0.2.0 introduces the new chunked archive format and a background writing pipeline.

After upgrading, please check:

BepInEx/config/com.fmmatchlens.plugin.cfg

Make sure it contains the following [Archive] section. In most cases, the default values are recommended:

[Archive]

## None or Fast (independent zlib-wrapped Deflate chunks).

Compression = Fast

## Chunking and bounded background writer settings.

## At 4 ticks per second, 2400 ticks is about 10 in-game minutes.

## A chunk is submitted when it reaches ChunkTicks or MaxChunkLatencyMs,

## whichever comes first.

ChunkTicks = 2400

## 60000 ms is a fallback for pauses or unusually slow tick production.

MaxChunkLatencyMs = 60000

QueueCapacity = 8

Configuration options:

Option Default Description
Compression Fast Uses independent zlib/Deflate-compressed chunks. Set this to None to disable compression, but archive files will become significantly larger.
ChunkTicks 2400 Maximum number of Ticks stored in a single chunk. At roughly 4 Ticks per second, this corresponds to around 10 in-game minutes.
MaxChunkLatencyMs 60000 Maximum amount of time, in milliseconds, before the current chunk is submitted even if the Tick limit has not yet been reached.
QueueCapacity 8 Capacity of the background compression and writing queue. If the queue remains full, the current archive recording will stop rather than silently dropping match frames.

These options do not change the frequency at which match data is captured. They only affect chunk size, compression behavior, and when data is written to the archive.

If your existing configuration file does not contain an [Archive] section, you can add the settings above manually.

Alternatively, you can back up and delete the old configuration file, then launch the game once and allow the plugin to regenerate it using the new defaults.

After regenerating the configuration, remember to restore any custom settings such as GraphicsPath, logging mode, and other personal configuration changes.

Important

v0.2.0 no longer includes compatibility fallback for the old archive format. .fmlens files generated by previous versions may not open in the new dashboard. If you need to view old match archives, please keep a copy of the corresponding older dashboard version.

Full Changelog: v0.1.1...v0.2.0