Match Stats Premium
Guild Builder premium — screenshot scoreboards, OCR, officer review, leaderboards, Performance graphs, and Friendly vs opponent charts. Off by default.
Match Stats is an optional Guild Builder module (off by default). It requires Guild Builder premium. Owners and admins enable it under Guild settings → Match Stats. The sidebar then shows Match Stats, Leaderboards, and Performance.
How it works
- Officers (or the match creator) start a match, then upload one or more scoreboard screenshots. Uploads are saved immediately; OCR does not run until you click Scan all (or Scan on a single image). A separate Extra screenshots section is for matchup charts, totals, and other images that should be posted to Discord but never scanned.
- Click a screenshot to draw column regions (yellow table crop + one band per Match Stats column, or Skip / Player name). Each screenshot keeps its own regions. Adjusting the first image copies onto later screenshots that still have the default layout. Use Copy regions to later to overwrite remaining images. You can re-scan after adjusting. Screenshots are numbered in upload order; the same number appears to the left of each player so you can find that row on the image. Click the number to open that screenshot.
- Scan reads each mapped strip and adds rows for review. Guild members go to Friendly; everyone else to Other players. Player names can include Chinese, Japanese, and Korean characters as well as Latin text; numbers stay digit-only.
- Nothing counts toward leaderboards until staff publish the match and Use for performance is on. Unpublished matches stay staff-only. Training games can be tracked with the switch off so they stay off Insights, Performance, and leaderboards.
- Paste a screenshot with Ctrl+V anywhere on the match page (no click first), drag and drop, or use the styled Choose files… button.
Columns & templates
- Scoreboard columns (label, key, type, OCR anchors, aggregation, Use for stats) are defined on the game’s Guild template in the site admin panel, then applied to every guild using that game. When Use for stats is off, the column is still scanned and shown on the match page, but it is hidden on leaderboards, party layouts, and Insights.
- OCR column regions (game template): on the same admin template, paste a typical scoreboard and draw the default table crop plus a band for each column. Add multiple OCR presets when the game uses different screens per class (map only the columns that appear on that screen). Titles are optional; they default to Preset 1, Preset 2, and so on. That layout is the starting point for every match using this game.
- OCR column regions (per match): on the match page, upload screenshots first, click one to adjust the bands, then Scan all. If the game has more than one OCR preset, pick the type on each screenshot (a single preset is used automatically and the picker stays hidden). Later images keep their own bands once you edit them. Use Copy regions to later if you want the current image’s bands on the remaining screenshots. Use Re-scan after you move the boxes. A second screenshot that maps different columns merges those values onto the same players.
- Pasting the same image twice on a match is ignored — identical screenshots are detected by content hash.
- Guild settings do not edit the column list — they only enable the module and set visibility / Discord announce options. Under the same tab, owners/admins can pick which columns feed Guild review averages, min/max, and MVP per role (Tank / Heal / DPS / Support).
Bind to an event
- When you create a match, pick a calendar event (and the night, for recurring series). You can change or clear that binding later on the match page.
- From an event, open the Match Stats tab and choose Add match stats — the new match is already bound to that occurrence.
- Assigning a guild member fills class from their member profile (event class override wins). Party comes from that member’s group on the connected event’s party layout.
Review & publish
- Friendly vs Other players: screenshot OCR puts recognized guild members on Friendly and everyone else on Other players. If the match is linked to an event request, other-player names are matched against the opponent guild(s). Staff can still move a row or match it to a member (that moves it to Friendly). Each heading shows its row count, with a combined total next to Friendly. Rows whose OCR name does not closely match the assigned player (match under 90%) are marked Check match. Stat cells show OCR confidence too — values under 90%, or numbers that still contain letters, are marked Check value. Editing a cell confirms it. Re-scan to pick up confidence on older matches.
- Match header: title, opponent, map/mode, result (win / loss / draw), visibility override, Use for performance (on by default; turn off for training games), and enemy intel notes.
- A Friendly vs opponent bar chart sits above the tables once Other players have numbers (totals; percents average). It uses the live rows, including drafts that are not published yet.
- Publish makes the match visible as a published scoreboard. It only counts on leaderboards, Performance graphs, and Insights when Use for performance is on. Staff can move a published match back to review.
Leaderboards
- In-guild leaderboards roll up published matches with Use for performance on, by player and column (totals / averages from the template). The table shows every player’s recorded numbers. Guild review role stats still omit players from the distribution histogram when their role does not have that column checked (same rule as party cards and Performance). Click a table header to sort — empty cells stay at the bottom. Search members by display name (semicolon-separated terms, same as Statistics). The Trend sparkline uses the per-role Trend dropdown from those settings (falls back to the sorted stat if a role has no Trend set). The histogram has a button per stat so you can switch without changing sort.
- Default leaderboard visibility in settings: public (anyone with the link), guild members, or staff only. Pending matches are always staff-only.
- Optional Discord forum post when a match is published: the thread title is
DD/MM/YYYY | Event type | Opponent(event day in CET/CEST, type from the bound calendar event, opponent name). The embed has result, date, event type, player counts, and Friendly vs opponent progress bars (same unicode bars as currency distribution), then the scoreboard screenshots followed by extra (non-OCR) images. Discord allows 10 images per message — remaining screenshots are posted as follow-up messages in the same thread. The title links to full stats without a site preview card. If the match is from an event request against another guild, the embed also compares this result to the last published Use for performance match against that opponent. Optionally ping a Discord role on that post (Guild settings → Match Stats → Notify role).
Performance
- Performance graphs the same per-role columns you pick under Guild settings → Match Stats → Guild review role stats. Values are averages of published friendly rows (with Use for performance on) over the selected date range (and optional event type).
- Guild overall is one line chart per unique configured column. Each match’s average for a column only includes players whose role has that column checked (same Guild review role stats as party cards). By Role and By Class use the Statistics layout: collapsible role groups, then a card grid of charts.
- The member Details popup also shows a line chart of that member’s role columns over the shared date range.
Party layout stats
- After a match is published and bound to an event, that event’s party layout shows each member’s recorded numbers (white) and a combined Event total (sum of those numbers; percents stay rates). Column aggregation (average / max / none) is not applied here — that setting is for leaderboards and prognosis only. Recorded numbers include training games; prognosis uses matches with Use for performance on. Tracked events never also show Expected lines.
- The same event page shows a Friendly vs opponent chart above Party Layout from published matches that night. It is hidden for Mixed Events and when Guild settings → Match Stats → Hide Match Stats on party layout is on.
- Optional performance Expectation (off by default) shows a purple blended “Expected” line on upcoming or untracked events and party presets — not on top of recorded numbers. Each member’s line is their predicted average; the party footer is a total of those predictions for members whose role has that column checked. Who can see those lines is set under Guild settings → Match Stats → Who can see prognosis (all members, staff, or owners/admins). Expected lines stay prognosis, not the recorded result.
- Party cards and party totals use the same Guild review role stats checkboxes: only columns checked for that member’s party role are shown, and party averages only include members whose role has that column checked (so a healer’s kills do not pull down the party kill average if Kills is off for Heal).
- On the event page, a personal Hide match stats toggle (under Hide no reply & declined) hides recorded numbers, Expected lines, and the Friendly vs opponent chart for you only. It does not change the guild setting.
- Owners and admins can hide recorded numbers, Expected lines, and the Friendly vs opponent chart on every event and party preset under Guild settings → Match Stats → Hide Match Stats on party layout.
Related: Insights (Match Stats participation on the overview). Guild Builder overview.