DotaN Stats screenshot

DotaN was a Dota 2 custom mode by the streamer UselessMouth: items drop on death, there is no backpack and no TP slot, and late enough into a match the Ancients themselves march to mid to end it. I built the statistics side of it.

What it does

A Lua script inside the game mode collects everything about a played match and ships it to a PHP API. The React site shows the rest: a live lobby list, full match scoreboards with hero portraits, K/D/A, networth, damage and items, winrate tables for every hero and item, and a player leaderboard with medals.

The MMR system

Everyone starts at 500. A win is worth 25 points, adjusted by a penalty for uneven teams and a performance bonus built on a modified version of Valve’s fantasy points: kills, assists, last hits, GPM, XPM and healing feed in, deaths subtract. Score above 7 fantasy points on a win and you gain more than the flat 25; a clamp keeps one bad game from eating more than 15 of it. The ladder is 35 medals in 100 point bands, and the site renders the whole ladder programmatically.

Honest notes

Every table is computed in the browser by downloading every match ever played and looping over it. At DotaN’s scale that was fine, because DotaN’s scale turned out to be one month: the mode lived from 07.07.2023 to 17.08.2023, and the site’s front page still opens with its memorial banner. The demo is alive, stats frozen where the game left them.