Q2STATS BETA
Q2STATS · DEVELOPMENT

Project Status & Roadmap

Last updated:

Q2Stats is a community project under active development. We are improving match collection, player statistics and ratings, with feedback from players and server owners.

Development and testing

The rating system needs to be evaluated across real matches and may require adjustments as we learn more about its behaviour. Our goal is to refine a consistent, reliable model rather than repeatedly replace the rating engine. We are working towards what we believe provides the fairest assessment of player performance.

We are aware of existing bugs and are improving data collection, server integration and the accuracy of recorded statistics.

What we are working on

Rating development log

Our rating system has evolved through match analysis, community feedback and local testing. This log distinguishes published models from experiments and proposals. Dates identify confirmed milestones; an exact activation time is not available for every change.

By September 18, 2026 · Original Elo / Central Elo v1

Confirmed in use. Ratings started at 1500. Team games used a K-factor of 16; 1v1 used 32. In team games, the result and both teams’ average ratings determined a base change, followed by an individual performance adjustment.

Performance combined kills minus deaths (40%), K/D (25%), net damage (25%) and discipline (10%). Team winners received between 0 and +16; losing players could receive between −16 and +7, depending on performance. Duel used the match result without this performance adjustment.

Strengths: clear emphasis on the team result and team strength, with recognition for strong performances in defeat. Limitations: overlapping performance measures and no individual rating uncertainty.

September 18 marked verified central database calculation, rather than necessarily the first introduction of the formula. On September 24, profile and merged-nickname handling was improved without changing the underlying model.

October 11 · Team Elo v2 / FPR

Published. The performance calculation was revised to give greater recognition to each player’s contribution to the team. Team-average ratings and the result still determined the base change. Historical Team ratings were recalculated; 1v1 remained unchanged.

The revised components were kills minus deaths (15%), K/D (15%), net damage (15%), share of team damage (25%) and share of team frags (25%). A planned 5% Quad/Mega component was inactive where reliable pickup data was unavailable, with the remaining weights normalised.

Strengths: better recognition of players producing a large share of their team’s output. Limitations: contribution shares depend on team composition, some measures overlap, and the model still had no rating uncertainty.

October 20–24 · Performance-adjustment proposals

Proposals and simulations. We explored adjusting the performance reward according to the strongest opponent’s rating, with a multiplier limited to 0.8–1.2, while retaining the base team-result reward. Further Team Elo alternatives were compared on October 24.

The aim was to reduce rewards for dominating weaker opposition. A limitation was that one strong opponent cannot represent an entire team. These comparisons are not recorded here as confirmed live models.

October 25 · Local Glicko experiments

Local testing. We evaluated a modified Glicko-1 model inspired by QLStats, using rating deviation (RD) to represent uncertainty about a player’s rating.

October 25 · Glicko-1 with team damage share

Production model. The selected configuration used a starting rating of 1500, starting RD of 100 and minimum RD of 30. Team and 1v1 ratings were separate, with no time-based RD increase. RAPM was not included.

Team performance combined 5 × (kills − deaths) + 0.07 × damage dealt − 0.04 × damage received, plus a contribution bonus of 50 × the player’s share of team damage. These are performance points, not direct rating points. Performance comparisons against opponents feed into Glicko alongside ratings and RD. TDM team wins have a minimum gain of +2.

Strengths: individual uncertainty, recognition of damage production and team contribution, and support for productive offensive play even when a player receives substantial damage. Limitations: the player’s own line-up strength is not explicitly modelled as in the earlier team-average approach; support roles are difficult to measure; low RD can produce small changes; and the win minimum can contribute to inflation.

This was a shift from starting with the team result to placing greater emphasis on individual performance against opponents. Subsequent database migration fixes were installation changes, not additional rating models.

October 29–30 · More responsive 1v1 Glicko

Accepted October 29; documented October 30. The duel calculation changed its Glicko constant from q = ln(10) / 400 to q = 3.5 × ln(10) / 400. The Team model, starting rating and starting RD were unchanged.

The aim was greater responsiveness for established duel players with low RD. The factor operates inside Glicko and affects RD development as well as rating changes: it does not simply multiply every match change by 3.5. The exact live activation time is not conclusively established in the available records.

October 31 · Exploring Elo-based TDM shuffle

Under investigation. We are exploring how Q2Stats ratings could support a future team-shuffle feature for TDM. One possible integration would let an OpenTDM server submit player identities to a Q2Stats balance API, receive a suggested team allocation and apply it on the server.

The goal is more evenly matched teams. Identity matching, players without an established rating and server-side integration still need evaluation. This is a future development possibility, not a released feature or a change to the current rating formula.

Known issues

Missing or delayed matches

With the client-based collection method, statistics can remain buffered in the client until a new match starts, delaying their submission to Q2Stats.

Previously, matches were also withheld from submission if complete player statistics were unavailable—for example, when a player disconnected before the match ended. The updated OpenTDM integration addresses these issues by reporting statistics directly from the server.

Missing statistics after a disconnect

A player disconnecting before the end of a match can still result in incomplete or missing player statistics with the current collection method. The updated OpenTDM version will resolve this by retaining their match statistics after they disconnect.

Demo availability

MVD2 demos depend on server support and may become available later than the match statistics.

What comes next

An updated version of OpenTDM, being developed and tested with Claire, will allow server owners to submit match statistics directly to Q2Stats.

As testing progresses, we plan to expand this integration to more servers and publish setup instructions for server owners who want to participate. Direct server reporting will make collection more reliable and reduce dependence on spectator bots and the Q2Stats server uploader.

Help us improve Q2Stats

When reporting a problem, please include the match link or ID, server, map and approximate time.

Discuss development, report bugs and share suggestions on our Q2Stats Discord ↗.