Docs
Platform

Platform Overview

Heir is competition infrastructure with two front doors: a Discord bot that runs your league from inside your server, and a full web app at heir.gg that manages the same league from a browser. You can run a league with Discord, without it, or both at once.

Two ways to run a league

  • Discord-linked — invite the bot to your server. Teams are Discord roles, captains use slash commands, and the web app mirrors everything: changes you make on heir.gg are handed to the bot to apply.
  • Web-native — create a league at heir.gg/start with no Discord server at all. Teams are records, management happens entirely in the browser, and no bot is required. See Installation.

Either way the league layer is identical — the same teams, ratings, schedules, tournaments, and public profiles.

What it manages

  • Teams — creation, editing, reforming, disbanding, two-color gradient team colors, and name/color history
  • Rosters — captains, roster moves, free agents, and player syncing
  • Ratings — margin-of-victory elo, regional leaderboards, seasons, and placements
  • Scheduling — weekly matchmaking from availability and elo bounds, with a full web schedule editor and captain DMs
  • Tournaments — single/double elimination and group-stage cups with sign-ups, seeding, and live public brackets — see Tournaments
  • Results — reported manually, or recorded automatically from tracked play
  • Stat tracking — live capture from your game servers, per round and per map
  • Predictions — a Crowns economy: members back a side on upcoming fixtures and payouts settle when results land
  • Draft tool — visual pug drafts fed by your voice channels, with captains, a coin flip, and a fullscreen present mode — see Draft Tool
  • Profiles — public player and team pages on heir.gg
  • Configuration — every rule above is per-guild; nothing is hard-coded to one league

Every league gets all of it. There is no league-vs-tournaments mode and no feature toggles — teams, scheduling, tournaments, and predictions are simply on.

The web management surface

Owners and Organizers manage everything from heir.gg/<league>/manage. The settings nav is grouped by what the section touches:

  • League — League, Competition, Branding
  • Play — Stat tracking, Servers, Schedule, Season, Predictions
  • Discord — Connection (including the health check), Channels
  • Account — Audit log, Billing, Danger zone

A Discord-style save bar tracks unsaved changes across every section, blocking navigation until you save or discard. Every organizer action lands in an audit log with Discord mentions resolved to names.

For Discord-linked leagues the web app doesn't write league data directly — it enqueues your changes for the bot, which re-authorizes you and applies them, so the web and Discord never disagree. Web-native leagues are written directly.

Game agnostic by design

The league layer — teams, elo, scheduling, tournaments, profiles, achievements — knows nothing about any particular game. A title plugs in as a module that defines two things: how a player proves their in-game identity, and where match data comes from. Mordhau is live today; see Stat Tracking.

Roles in a league

RoleResponsibility
OwnerCreates the league, holds every permission, manages billing; only the owner can promote Organizers
Organizer (or server admin)Configures the league, runs organizer actions, approves tracked stats
CaptainManages one team's roster and availability
PlayerJoins teams, links their in-game account, plays
Ref (optional)Controls stat tracking from in-game chat

For Discord-linked leagues, access is granted through Discord's own Integrations settings and your server's roles — there is no separate permission system to learn. Web-native leagues manage roles from the web. Every organizer action is written to an audit log.

Access model

A league created through the web — Discord-linked or web-native — activates immediately at the end of the setup wizard. There is no approval step and activation never waits on billing.

Legacy guilds that invited the bot directly (outside the wizard) may still be gated behind manual activation — if commands are blocked, run setup at heir.gg/start, or reach us at hello@heir.gg or @peenie on Discord.

A typical league

  1. Create the league at heir.gg/start — with or without Discord
  2. Configure it from heir.gg/<league>/manage (or /config in Discord)
  3. Create or reform teams; captains take over rosters and availability
  4. Schedules generate weekly, or you build them in the web schedule editor
  5. Results arrive from /report-match, the web, or tracked servers on their own
  6. Ratings, standings, and profiles update automatically

Notes

  • Almost all Discord commands are guild-only; a few owner-only DM commands exist for platform operations.
  • Matchmaking is guild-specific — every league has its own configuration namespace.
  • Seasons are per league: ending a season archives placements and soft-resets elo.

On this page