Competitive Halo 3 MCC

H3 SQUAD

BETA
Download the Carnage Watcher
Admin Portal
Live Session
WATCH LIVE →
Read this first Season 1 Primer What is tracked, how ranks and XP work, and how to opt out

Recent Form

Last 10 sessions
#RankPlayerXPSG WLWin% K/GD/GA/GOBJⓘK/DKDASKILLLast Played

2026 Season

XML-tracked games only · min 20 games
#RankPlayerXPSG WLWin% K/GD/GA/GOBJⓘK/DKDASKILLLast Played

Lifetime Leaderboard

All-time stats
#RankPlayerXPSG WLWin% K/GD/GA/GOBJⓘK/DKDASKILLLast Played

About

What this is, and where the numbers come from

Who made it

Built by me, Justin (xTS Vrall).

It is not just me any more either. Kevy and Dingus have joined the development team since the site opened up to ANZ.

It took a fair bit of shaking out. Early on most sessions turned up something odd, and Halo's report does not name the medals, so those had to be worked out by hand. It has been running clean for a couple of months, which is why I'm offering it around.

It is a passion project rather than a product. I'm a busy man with a young family, and this gets worked on in whatever spare time I have left, so things move when they move. Bugs get fixed and requests get read, just not always quickly.

If you want to reach out, message me on Discord at _vrall.

What it is

A stats board for Halo Competitive ANZ. Games played through the Discord queues get their full scoreboard recorded here: kills, deaths, assists, medals, objective work, map and gametype, game by game.

Where the numbers come from

Halo writes a carnage report to disk when a game ends. The Carnage Watcher is a small Windows app that reads those reports and sends them here. Nobody types anything in, and nothing is estimated. If a number is on this site, it came out of the game itself.

That also means the board only knows about games somebody was running the Carnage Watcher for. It is not a complete record of the queue, and it never claims to be.

NeatQueue does the matchmaking

NeatQueue runs the queues and picks the teams. It knows who won, but it cannot see inside a game, which is the gap this fills.

This season adds a 1 to 50 rank of its own, built on what happened inside those games rather than on the result alone. There is a short explainer of that, and of everything else worth knowing at launch, in the Season 1 Primer.

Why does this exist

My friend group and I have been playing Halo 3 for over eighteen years, catching up for LAN weekends every couple of years along the way. In late 2024 we started recording the stats by hand in a spreadsheet after every session. In 2026 I discovered vibe coding and built a dashboard for the squad to automate that data entry, then found the Carnage Watcher's reports held way more than a hand-filled spreadsheet ever could. I've been iterating on it since.

I've put so many hours into it that keeping it to twelve people started to feel a bit silly, so I'm expanding it to the Australian competitive community.

Getting yourself off the board

Ask me and your name comes off. Your games stay, because removing them would change everyone else's results in those matches, but they stop being attached to you.

Not an official Halo Competitive ANZ tool, and not affiliated with NeatQueue, Microsoft or 343 Industries.

Found something wrong, or want something added? Chuck a request in the Development tab. I read them.

Start Tracking Stats

The Carnage Watcher puts your games on the board automatically

The Carnage Watcher is a small Windows app that sits in the background while you play. When a game ends, Halo writes a carnage report to disk and the Carnage Watcher reads it and sends the result here. You never upload anything by hand, and it does not touch the game or read your screen.

Download for Windows

Community tool, provided free and as is, without warranty of any kind. It reads Halo's carnage report files and nothing else on your PC, and it never asks for administrator rights. Not affiliated with Microsoft, 343 Industries, Halo Studios or Xbox Game Studios. Copyright © 2026 Justin Grigg. All rights reserved.

How to set it up

A quick walkthrough: signing in with Discord to download it, where to extract it, and the two settings worth changing before you play.

Player not loading? Watch it on YouTube.

Common questions

Is this safe to run, or is it dodgy?

Fair question, and the honest answer starts here: I am a stranger on the internet and you only have my word for any of this. So rather than ask you to trust me, here is exactly what the program does, and you can check most of it yourself.

It watches one folder, AppData\LocalLow\MCC\Temporary, which is where MCC drops a carnage report every time a game ends. It reads that file, matches it against your saved theatre films to work out which map you were on, and sends the scoreboard to this site over HTTPS. That is the entire program.

It never reads or writes anything inside Halo. No memory reading, no injection, no screen capture, no keystrokes, and it does not modify your MCC install. It only opens files the game has already written to your own hard drive, so there is nothing in it for anti cheat to take issue with.

The site code is not public, because that repo is the whole dashboard. The watcher itself is a single Python file though, and I am happy to hand it to anyone who wants to read it before they run it. Message _vrall on Discord and I will send it over.

Windows says it is from an unknown publisher. Should I worry?

Expect that, it is normal. Windows SmartScreen warns about any program that has not been signed with a code signing certificate, and those run a few hundred dollars a year, which is a lot for a free hobby project. Click More info, then Run anyway.

Antivirus sometimes does the same thing for the same reason, with a bit extra because the app is packaged with PyInstaller, which gets flagged on reputation alone. If yours quarantines it, that is a false positive. Ask me first if you would rather not just click through it.

Does it work on Xbox?

No, this is a PC program only. It reads files MCC writes to a Windows drive, and Xbox does not let anything at those. You need Windows 10 or 11 with MCC on PC. Steam and the Microsoft Store versions both work, because both write to the same folder. There is no Mac or Linux build.

Playing on Xbox does not keep you off the board, though. A carnage report covers everyone in the game, not just the person capturing it, so as long as one player in the lobby is on PC and running the watcher, your stats land here the same as theirs.

What is the Discord sign in for?

It checks one thing: that you are a member of the Discord this site is run for. It cannot read your messages, it cannot post as you, and there is no bot sitting in the server. Discord hands over your username, your avatar and the list of servers you are in. That is all it is asked for and all it gets.

Two reasons for the check. It keeps the tool with the people it was built for instead of loose on the internet, and it lets your download carry a key of its own. That key means uploads can be traced back to a single install and switched off individually if one ever goes wrong, without affecting anybody else.

What if a few of us are running it in the same game?

Nothing breaks, and honestly that is the ideal setup. Every Halo game has a unique id baked into its report, and the server accepts exactly one upload per id. The first copy to arrive wins and any other copy of the same game is recognised and dropped. You get one clean scoreboard, not four.

More people running it means better coverage. If somebody's PC drops, crashes, or they forget to start the app, another player's copy still catches the game.

Straight with you: this is tested against eight copies of one game arriving at the same instant, but it has not had a lot of real world mileage yet. If a session ever looks doubled up, tell me and I will sort it out.

Will it upload games that should not count?

This has been tuned session by session and it is pretty good at it now. A game has to get past several checks before it reaches the board:

  • The gametype has to be one already in use on this site. Random infection, grifball and whatever else gets thrown on at the end of a night is skipped rather than uploaded.
  • Games Halo itself marks as incomplete never make it out of the watcher.
  • Reports too old to be the game that just finished are ignored, so starting the app does not re-upload your whole afternoon.
  • The server then looks at the shape of the game. One that ended well before the time limit with nobody near the score limit gets flagged, and an obvious false start, over quickly with both teams barely on the board, is left out on its own.

On top of that, admins have a portal where a game can be restored, voided or have its map corrected. The original report is always kept, so nothing is ever really lost and a wrong call is a couple of clicks to undo.

If you do spot something wrong, please tell me. Nearly every rule above exists because somebody reported a game that should not have counted, and I would much rather fix it in the app than leave it for an admin to clean up every week.

Do I need to do anything while I play?

Start it before you play, then ignore it. It logs each game in its own window as they finish, so you can glance over and see what it caught.

To stop it, press the red QUIT button, which ends the session and opens a report of everything it captured. The tray icon has a Quit item that does the same thing.

Closing the window with the X does not stop it. It hides to the system tray and keeps recording, the same as the HIDE button. That is deliberate: people were closing the window to get it out of the way and silently switching off their own capture for the rest of the night.

If a GAMERTAG? button appears in the footer, it is asking which of the players in your games is you. Answering it once is what links your games to your name on the site.

Will it slow my game down?

No. It sits idle waiting for a file to change, and the only work it ever does is reading a few kilobytes of XML at the end of a game. It draws nothing on screen and it does not hook into Halo.

How do I get rid of it?

It is a zip you extract, not an installer. Close the app and delete the folder and it is gone. If you turned on Start with Windows, untick that first so Windows stops looking for it.

About map names

Your scores, kills, deaths and medals are captured either way. The one thing missing from Halo's carnage report is which map you played, so the Carnage Watcher works that out by matching each game against your theatre films. No films means every game lands with an unknown map. Everything else still counts.

The Carnage Watcher tells you what it can actually see on startup, rather than making you guess. If it reports no films, turn on saved films in MCC.

What it sends

The scoreboard from each finished game: gamertags, kills, deaths, assists, medals, the map and the gametype. Nothing else, and nothing between games.

Your download is tagged with its own key, so uploads can be traced back to one installation and switched off individually without affecting anyone else.

Power Timers

Weapon and powerup countdowns, drawn over the game

The Power Timer overlay is a small Windows app that sits on top of Halo while you play and counts down the sniper, the rockets and the powerup. It reads the match clock and works out which map you are on by itself, so there is nothing to start and nothing to call in. It only watches. It does not touch the game.

Download for Windows

Halo has to be running in borderless windowed (MCC: Settings, then Video, then Window Mode, then Borderless). Nothing can draw on top of true fullscreen. The download includes a guide that opens in any browser and works offline.

The weapons are exact

Sniper and rockets respawn on a fixed cycle off the game clock whether anybody picks them up or not. Sniper is 150 seconds, rockets are 180, and both carry 3 more seconds of spawn lag, because a weapon that drops in has to fall and settle before it can be taken. Once the overlay knows the map and the clock, it knows those two timers exactly.

The custom powerup and camo are not

These two work differently in Halo 3. Their cycle restarts from the moment somebody touches the powerup, and nothing on screen announces that, so there is no clock anywhere to read.

So the overlay does not try to read one. Custom and camo are anchored 15 seconds into the game: not at 0, because the powerup is still sitting there when the game starts, and not a full cycle in either. Fifteen seconds is about when it actually goes in a real game. From there both repeat on a flat 120 second cycle for the rest of the match.

Construct is the exception. Its custom genuinely does not exist until 2:00, so that is where its cycle starts, and that is also what keeps it in step with the hill rotation.

Read those two as a reminder, not a countdown

A fixed cycle is a guess at when the powerup is due, not a reading of when it went. Leave one sitting on the ground for forty seconds and the timer is forty seconds out for the rest of the game. Take it as a nudge that the powerup is coming up soon, then go and look.

It used to work the other way. There was a key you pressed the moment the powerup was taken, and because everyone on your room is on one set of timers, that press moved the countdown on every screen in the lobby. Which sounds right until you play a game. Nobody presses at the instant somebody grabs it. You clock it twenty seconds later, press it then, and now the whole room is twenty seconds wrong instead of nobody being wrong at all. An estimate that is a few seconds out beats a number the room is confidently wrong about, so the schedule is all there is now and there is no key to press.

Session History

LAN Events

In-person tournaments — separate from online play

The squad runs occasional in-person LAN tournaments — six so far across 2016, 2019, 2020, 2024, 2025, and 2026. Each LAN has the four standard side awards (Main Slayer, Wingman, Death King, King of the Odd Flag), plus the occasional Octagon (1v1 single-elimination bracket — only 2020 and 2024). LAN sessions are tracked separately from online play so the regular leaderboard stays clean.

Loading LAN data…
Range: · →
Trends
Individual Trajectories
Who's Playing?
Fill-ins (limited data)
Skill score = KD 55% + KDA 25% + Win Rate 20% · all stats 70% recent / 30% lifetime
0 selected — select 4, 6, or 8 players

Medals

Every named medal · per-player counts & averages · squad insights

Every Halo 3 medal we've identified, with each player's lifetime count and average per game. Click any medal row to expand the per-player breakdown. Averages are calculated only over games we have medal XML for (the "medal era") so they're directly comparable.

Insights

Patterns the data is screaming about

Player Medal Leaderboard

Total · per game · range
#PlayerGamesTotal MedalsPer GameDistinct Types

Medal Grid

Click a medal to see all 12 players
Medal Cat Total Squad Avg/G Top Earner

Medal Hunt

Cracking MCC's 280-medal pool, one fire at a time

Halo MCC tracks ~280 different multiplayer medals across all six games — way more than original Halo 3's ~60. Every game we play uploads the full medal payload from the carnage XML, but we only know the names of some of the IDs. This page aggregates every medal slot ID we've seen and shows what we know vs what's still unidentified. As we play more, the unknowns sort themselves to the top and patterns emerge.

IDNameConfidenceFiresRows Avg/RowGametypeTop EarnerLast Seen

Player Profiles

Select a player

Chemistry Matrix

Teammate Win Rates

Map Heatmap

K/D by Player & Map

Gametype Heatmap

K/D by Player & Gametype

Ranking System

Halo 3 Military Ranks
Ranks are based on the original Halo 3 military progression. Peak Skill Score unlocks rank tiers permanently. Games Played determines your grade within the tier.

Achievements

Competitive milestones — hardest at the top
Loading achievements…

Development

Feature requests, votes and the dev log
Submit a Request
0/500
Open Requests
Completed
Development Log

Fortress Events

Stats from the room, entered by photo

The PCs at Fortress are locked down, so the Carnage Watcher cannot run on them. Instead, anybody in the room photographs the post-game carnage report and the stats are read straight off it.

If several people photograph the same game it stays one game, and the extra photos are used to check the numbers rather than being thrown away. Sign in with Discord to add a game.

Tournaments

Brackets, results and stats, kept on their own page

Development Log

Roadmap and changelog
Roadmap
COMPLETE Phase 1 — Go Live
Deploy to Railway
Supabase database + schema
Admin upload + review flow
Public dashboard with leaderboard, Skill Score, Team Builder
Historical data import (82 sessions)
COMPLETE Phase 2 — Medal System
Map medal IDs from live session data
Medal Hunt page with icons, categories, and squad insights
Medal highlights in session insights
All sighted medals identified and confirmed — 62 in the map, none outstanding
IN PROGRESS Phase 3 — Map Data
Detect map names from MCC theatre films
Carnage Watcher GUI ships maps live with each game
Colour-coded map badges on session detail
Per-map stats on player profiles
Dedicated maps page with full map stats and breakdowns
COMPLETE Phase 4 — LAN Events
Import LAN spreadsheets — all six events, 2016 through 2026
Dedicated LAN page with event breakdowns and career leaderboard
LAN vs Online player comparison — K/D, KDA, Win% and OBJ deltas
IN PROGRESS Phase 5 — Polish
Player profile pages — stats, medals, pairings, playstyle blurbs
Chemistry / pair analysis — teammate and opponent win rates
Per-gametype stats on player profiles
Playstyle "fingerprint" — auto-generated from weapon-kill mix + medals
Discord webhook: auto-posts session results with deep-link
Halo 3 military rank system with authentic icons
Achievements system with competitive milestones
"Days since last played" counter per player
Two-tier admin: "watcher admin" (download/run watcher only) vs "master admin" (delete/edit sessions)
Session report sharing
IN PROGRESS Phase 6 — Power Timers
Full-screen spawn timer for Guardian, The Pit, Construct and Narrows
Weapons run off the game clock, powerups are tapped when taken — the two respawn differently in Halo 3
Spawn cycle corrected to the real 2:33 / 3:03 — drop-spawn weapons take ~3s to land and settle before the timer starts
15:00 countdown clock, ten-second spoken calls, vibration and screen wake lock
Missed a tap? A powerup left untapped for 30s assumes it was taken at spawn rather than stalling
Shared sync — one person taps, everyone's timers follow
Discord-style channels: click one to join, drag people between them, four independent clocks for two teams at a LAN
In-game PC overlay with a hotkey (or a controller paddle) for the powerup, on the same channels as the phones
Lockout, Sanctuary and Warlock
Start the clock from the game itself instead of by hand
Changelog
Team Summary
Player Summary
Session Insights
Per-Game Breakdown