Docs
Platform

League Management

Live leagues are managed from the web at your league page → ⋮ → Manage league, or directly at heir.gg/<slug>/manage. Nearly everything an organizer used to do from Discord now has a richer home in the browser.

Who can do what

Heir resolves permissions live from Discord every time — nothing is stored, so role changes take effect within minutes.

RungCan
AnyoneView standings, players, matches, tier lists, tournaments
Signed inEverything above, plus their own dashboard, settings, and linked accounts
PlayerAppears in leagues; joins teams
Organizer (role)Manage league settings, schedules, teams, and tournaments from the web; all organizer bot commands
Server ownerEverything an Organizer can, plus setup, cancel, and deleting the league

Only the server owner can grant or revoke the Organizer role from the web — organizers can't create other organizers.

League settings

The management page covers everything /config covers, from the browser: regions, match nights, per-region slot times, series format, minimum match format, roster size, the channels Heir posts to, the ref role, stat approval, predictions, team colors, and branding.

Sections are grouped by what they touch:

GroupSections
LeagueLeague, Competition, Branding
PlayStat tracking, Servers, Schedule, Season, Predictions
DiscordConnection, Channels
AccountAudit log, Billing, Danger zone

Channels sits under Discord, not Play — it's wiring for the bot (where schedules, scores, and stat events post), not a league rule.

Manage → League → Branding → Social links holds a Discord invite, a YouTube channel, and an X profile for the league. Links that are set render as a small icon row under the league name in the sidebar; a blank field simply shows nothing.

Validation is strict on purpose — each field must be the real thing, and lookalike domains are rejected:

  • Discord — a discord.gg/... or discord.com/invite/... invite
  • YouTube — a youtube.com channel (@handle, /channel/UC..., /c/..., or /user/...)
  • X — an x.com or twitter.com profile

Social links are a Pro feature — leagues below Pro can't set them, and the icon row only renders while the plan grants it.

Shouts

Manage → Discord → Channels also routes the bot's announcements — each category has an on/off switch, and off means the bot sends nothing for that category. Everything defaults on.

  • Tournament shouts — tournament start and bracket announcements. Optional dedicated channel; falls back to the schedule announcements channel when none is set.
  • Prediction shouts — settlement summaries after results. Same optional dedicated channel and fallback.
  • Team leaderboard — the persistent team elo leaderboard embeds.
  • Stat leaderboards — the persistent per-bucket stat leaderboard embeds.

Turning the team leaderboard off stops the posts, nothing else — standings still compute, and the web leaderboards are unaffected. These switches live on the web only; there are no /config options for them.

Every settings page shares a Discord-style save bar: make changes across any tab and one bar tracks them all, with Save changes / Discard. Navigating away with unsaved changes is blocked (the screen shakes) until you save or discard. For Discord-linked leagues the change is applied by the bot itself — the bar waits for Heir's confirmation before reporting a save. Every change is recorded in the league's audit log.

The game is fixed at setup and cannot be changed — switching games would orphan every linked account, stat, and rating.

The Discord health check

If the bot has gone quiet, start here: Manage → Discord → Connection → Detect issues runs a live diagnosis of the Discord integration — the same checks the setup wizard ran, against the server as it is right now:

  • Heir is still in the server
  • Heir has the permissions it needs
  • Heir's role is high enough to manage team roles
  • Heir can see the full member list
  • Slash commands are authorized (the OAuth scope wasn't dropped on re-invite)
  • The league roles exist and setup has finished
  • The configured channels and ref role still exist — this catches settings pointing at a channel someone deleted

Every failing check comes with its fix attached:

  • Re-invite link — for a kicked bot or a missing slash-command scope. The link lands on the same server with no server picker, so re-adding is one click; re-authorizing also re-grants scopes and permissions.
  • Open Channels — jumps straight to the Channels section when a configured channel or role no longer exists, so you can re-point it.
  • Instructions — role-position and permission problems explain exactly what to change in Discord's own settings.

Run it whenever "the bot stopped working" — it turns a vague symptom into a named cause in a few seconds, and Check again re-runs after each fix.

The health check is owner-only — it enumerates your server's channels and roles, which Heir won't expose to anyone else.

The Schedule editor

Building and editing weekly schedules lives on the web at heir.gg/<slug>/scheduleSchedule editor. It's a full-page, drag-and-drop week navigator that can hold up to eight weeks at once — generate a week from availability, drag teams into slots, focus a team to see its availability wash green/red, mark break weeks, and rebuild or delete any week. See Weekly scheduling for the full model.

Team management

Organizers manage teams from the web too — create and disband teams, edit rosters and captains, set team colors (including two-color gradients), and review team profiles. Captains manage their own team's availability on the web: the availability grid shows each region's real slot times and lets a captain toggle the whole week at once, which is why availability moved off the /team-availability set-time command (a static Discord picker couldn't reflect per-league slot times).

Tournaments

Cups run alongside the league from the web — single- or double-elimination brackets and group stages, self-serve registration, seeding, and live public brackets. See Tournaments.

Deleting a league

Owner only, from the league page's ⋮ menu. Deletion asks you to type the league's exact name, then permanently removes:

  • every team, match, stat, rating, schedule, and tournament
  • the league's audit history and registered game servers
  • the channels and roles Heir created
  • Heir itself — the bot leaves your server

There is no undo. Heir re-verifies both your ownership and the typed name before deleting anything.

Transferring your server

If you transfer Discord server ownership, Heir follows automatically: the new owner gains owner-level access (management, deletion) within a few minutes, and the previous owner keeps only whatever roles they still hold. There is nothing to reconfigure.

On this page