← Back to blog

🎬 Cadre: After Action, tournament rosters & a smarter staff channel

Hey all. The last few weeks have been the biggest stretch of building since I started Cadre, and it's all been circling one idea: a match shouldn't end when the server does. Here's what shipped: match recording with a full After Action debrief, tournament roster enforcement, and a Discord bot that keeps your staff in the loop without pinging anyone.

🎥 After Action: play your match back on the map

This is the one I'm most excited about. If your clan runs its own server with CRCON, Cadre can now record every match played on it: where every player stood, every 20 seconds, kickoff to final whistle. No mods, nothing on players' machines: it's the same admin API your server already runs, and it samples positions and scores, never chat.

When a recorded match ends, you get an Open After Action button on the match page. The tactical map fills the screen, a playback bar runs the match at up to 4× speed, and a set of lenses each answer one question:

  • Overview. The match played back live: presence heatmap, movement traces, deaths as they happen.
  • Capture vs combat. Where the ground actually changed hands, next to where the shooting merely happened.
  • Frontline. Who held each patch of ground and how firmly. Ground nobody was holding stays blank, so an uncovered flank shows up as a gap in the colour instead of something you have to hunt for.
  • Advance and Ground change: how far each side pushed, and the whole match as one still picture of ground won and lost.
  • Plan vs actual. Your briefing drawn as a faint ghost under what really happened. This is the debrief lens: did the plan survive contact?
  • Squad cohesion. Which squads held together and which came apart, tightest first.
After Action report on Sainte-Mère-Église: the Frontline lens draws the line between the two sides, with the roster and event log beside the mapThe Squad cohesion lens ranking squads tightest first, with one squad's spread circled on the map

Next to the map there's a roster (hover a name to find them, click a squad to follow it) and an event log: every capture, every stretch of heavy fighting, click a row and the map jumps there. The match clock and legend sit on the map itself, so a cropped screenshot pasted into Discord still explains itself.

One thing I care about a lot here: After Action doesn't make things up. A player who died and respawned is never drawn walking across the map. A gap in the sampling holds still instead of sliding everyone through minutes that were never recorded. When the data can't support a picture, it says which precondition failed instead of drawing an empty map.

You can also share a report outside your clan: a coach, a caster, the other team after a friendly. The link needs no account, and you can add a login gate, an expiry, or anonymise player names. Position data exports as GeoJSON or CSV if you want to run your own analysis.

Getting set up takes minutes: a wizard walks you through connecting CRCON, proves samples actually arrive, and a Record now button lets you test the whole pipeline before match night. Played an away match on the opponent's server? Upload a recording file afterwards and the report is drawn from it as if it had been sampled live.

🏆 Competitions: your tournament roster, actually enforced

Anyone playing organized HLL knows the drill: the league makes you register a fixed player list, and then it's on you to make sure nobody outside that list ends up in your lineup on match night. Until now that meant a spreadsheet and a nervous double-check.

Competitions puts the official roster inside Cadre and then enforces it:

  • Create a competition, add the registered players, archive it when the season ends. The roster binds to Discord identity, not your member registry, so a player borrowed from a partner clan fits without becoming a member.
  • Paste the whole list at once (Pro). Rosters live in forms, spreadsheets and Discord messages. Paste it in whatever shape it's in and Cadre shows what each line resolved to before saving. A near miss is never applied silently; you get a did you mean…? you have to pick.
  • The signup gate. Link a match to a competition and only rostered players can sign up. A blocked player gets a private message explaining why. Nothing changes in the public embed, so nobody gets called out in front of the clan. Staff see the attempt instead, with the class they were trying to pick, and one click both adds them to the roster and completes their original signup.
  • The Lineup warns about everyone else. A player added by hand or from a template never touches the Discord gate, so anyone in a squad who isn't on the roster carries a ⚠ beside their name. It's a warning, never a block. Maybe the league cleared someone separately, and that call stays yours.

Ordinary matches are completely untouched: leave the Competition field on None and nothing changes. Free clans get one active competition at a time; archiving frees the slot.

🤖 Discord: a staff channel and an event log that respect your attention

Your clan lives in Discord, so this is where clan-running info should land, without pinging a single person.

The staff channel is a private channel for whoever runs the clan. Each match gets a readiness board there: one message that keeps editing itself until the match is over: who's confirmed, who's late and by how much, who never responded, who hasn't opened the plans. Empty groups disappear, so a board with nothing wrong is one green line, and the border turns amber the moment something needs a human. Once a day the same channel gets a signup digest: every match in the next fourteen days and how it's filling up.

The event log channel is a running record of what happens in your clan: matches created, moved or cancelled, plans edited, briefs published or sent to Discord, members joining and leaving, recordings finishing, stats ready to import. I built it around one rule: it's a feed you read, not a stream that interrupts you.

  • It never pings anyone. A log that pings is a log people mute.
  • Events batch into one message every few minutes and bursts collapse: twelve people joining is one line with (+11 more), not twelve messages.
  • Four category toggles (Matches & briefs, Members & rosters, Recording & stats, Coalition) let you keep any kind of event out of the channel.

The log also just got more complete: it now catches every way a match gets created: the web form, /match create in Discord, and recurring series (a series posting its occurrences is one line, created 8 matches). Sending a brief to Discord gets its own line too, separate from publishing it or sharing a link.

While I was in there, Discord permissions got flattened into a single simple tier: commands check your Cadre role in the server's clan instead of Discord server permissions, and when a command refuses, it tells you exactly why.

❓ Quick answers

What is an After Action report in Cadre? A full-screen playback of a recorded Hell Let Loose match: player positions every 20 seconds on the tactical map, with lenses for the frontline, ground won and lost, plan-vs-actual and squad cohesion, plus an event log of captures and fights.

Do I need mods or client-side software? No. Recording uses the CRCON admin API on your own game server. Nothing touches players’ machines.

Can I review a match played on the opponent’s server? Yes. Record it yourself and upload the file afterwards; the report is identical to a live-sampled one.

How does Cadre stop unregistered players joining a tournament match? Link the match to a Competition. Players not on its roster can’t sign up through Discord. They get a private explanation, staff get the attempt, and one click admits them properly.

Will the event log spam my Discord? No. Batched messages, collapsed repeats, zero mentions, and every category can be switched off.

Thank you. As always, a lot of this exists because someone described what reviewing a match actually looks like in their clan, or told me exactly where a tournament roster falls apart. Keep it coming. It's the biggest input into what I build next.

Cadre is the planning, briefing and review platform for Hell Let Loose clans. Get started free