Discord commands

/config

Configure League automation and Discord destinations.

Who can use it: League Organizers.

Inspect or change the connected League’s configuration.

The command is visible to everyone by default. Heir requires the League Owner or a current Organizer before showing or changing configuration — see Command permissions.

If you run /config with no options, the bot returns the current League configuration.

League configuration

regions

Comma-separated enabled regions. Each value must be one of NA, NA-EAST, NA-CENTRAL, NA-WEST, SA, EU, ASIA, or OCE.

Example:

NA,EU,OCE

Input is forgiving: lowercase works (na, eu), and stray spaces and trailing commas are ignored.

max-roster-size

Maximum number of Seats on each Roster in this League. Whole number between 1 and 10 (default 10).

Matchmaking configuration

These settings apply to this League.

matchmaking-max-matches

Maximum number of scheduled matches a Roster can receive in a week. This is a whole number from 1 to 20 (default 1).

matchmaking-elo-floor

Minimum allowed ELO difference for a generated matchup. This is a whole number from 0 to 10,000 (default 0).

matchmaking-elo-ceiling

Maximum allowed ELO difference for a generated matchup. This is a whole number from 0 to 10,000 (default 300). It must be at least the configured floor.

matchmaking-days

Comma-separated enabled matchmaking days. Any days of the week are allowed:

monday,tuesday,wednesday,thursday,friday,saturday,sunday

Defaults to all seven days. An empty value leaves no enabled match nights, so schedule generation reports that the League has no enabled nights until one is configured again.

matchmaking-channel

Text channel where generated weekly schedules are posted. A newly initialized Discord League uses its setup #matchmaking channel when available; a League created on heir.gg starts without a channel until an Organizer selects one.

matchmaking-admin-channel

Optional Organizer-side channel for schedule controls. When set, published schedules post two copies: a clean, button-free embed in matchmaking-channel for players, and a mirror in this channel carrying the Report result / Edit schedule buttons. Results and edits made on the mirror update the public copy automatically (and vice versa — results entered on the web or via /elo match update both).

When not set, the buttons live directly on the public message. To go back to that single-message mode, set this option to the same channel as matchmaking-channel.

matchmaking-auto

Enable or disable automatic weekly schedule generation (default: enabled). With this off, schedules are only created via /admin schedule generate or the /admin schedule draft review flow.

matchmaking-gen-day

Day of week when automatic schedule generation runs. Choose Sunday through Saturday (default monday).

matchmaking-gen-hour-utc

UTC hour for automatic generation: a whole number from 0 to 23 (default 18).

matchmaking-gen-minute-utc

UTC minute for automatic generation: a whole number from 0 to 59 (default 0).

Per-region slot times (which nightly times each region plays, and how many slots) are configured on the web under Manage League → Competition, not with /config.

Stat tracking configuration

Settings for the in-game collector and player stats. See Stat Tracking for the full picture.

min-team-size

Minimum humans on each side of a qualifying team match: 1 = 1v1 … 8 = 8v8 (base default 3). A 6/4 split does not meet a five-per-side floor. Check the effective League settings and game-server overrides; Duel and Presence profiles have separate recording rules.

stats-channel

Channel receiving live stat events (tracking started, round end, map end, tracking finished), each with 🗑 Void / ✅ Approve buttons. A newly initialized Discord League uses its setup #scores channel when available; a League created on heir.gg starts without a channel until an Organizer selects one.

stats-approval

manual (default): tracked stat matches are pending and count toward nothing until an organizer approves them. auto: they count immediately and organizers void the occasional bad one. A newly initialized Discord League starts with manual; a League created on heir.gg starts with auto unless an Organizer changes it.

ref-role

Role allowed to use the in-game ref commands. Must be a specific role — @everyone is rejected, since it would make every linked player a ref.

series-format

League series length used by the automatic result arbiter: Best of 1 / 3 / 5 / 7 (default Best of 5, first to 3 maps).

min-rating-rounds

Configured eligibility floor for player ratings and leaderboard ranking (whole number 1–100,000; default 50). The same bounds apply in Discord and the app. Until then their profile shows "Stats are tracking — rating pending" with a progress bar toward the threshold — see Profiles. HPT performance ratings measure observed participation in 90-second exposure units; the setting is not a count of HPT maps. See performance ratings.

stats-leaderboard-channel

Channel holding the persistent per-bucket stat leaderboard embeds (see /stats leaderboard).

stats-leaderboard-buckets

Which buckets get their own embed there: a comma-separated subset of competitive,casual,overall, or all / none (default competitive,overall for a League created on heir.gg; a newly initialized Discord League starts with all three buckets).

team-leaderboard-channel

Channel holding the persistent team elo leaderboard. A newly initialized Discord League uses its setup #leaderboard channel when available; a League created on heir.gg starts without a channel until an Organizer selects one.

The leaderboard posts also have on/off switches, and tournament and prediction announcements can be routed to dedicated channels — those live on the web under Manage League → Discord, not in /config. See Shouts.

Example

/config matchmaking-max-matches:1 matchmaking-elo-floor:0 matchmaking-elo-ceiling:250 matchmaking-days:tuesday,thursday,friday matchmaking-channel:#scores matchmaking-gen-day:monday matchmaking-gen-hour-utc:18 matchmaking-gen-minute-utc:0

The automatic scheduler is UTC-based. If the bot is offline at the configured time, it catches up as soon as it is back online later that week — a restart can no longer skip a week. Automatic schedules are only generated once a matchmaking-channel has been configured.