Teams and Enrollments
How Members, Priority, eligibility, and League seats work after you create a Team.
Need the steps first? Create a Team, invite Members, or enroll in a League.
Scrimmages and Team calendars
Team Captains can request private one-off or recurring scrimmages directly with another Heir Team. The other Captain approves the agreement once, then every current Member of both Teams receives a separate Yes, No, or Maybe attendance invitation for each date.
Scrimmage availability can differ between Heir sites. Calendar shows you what is currently possible: sometimes everything, sometimes only reading and managing agreements you already have while new requests and availability edits are paused, and sometimes nothing at all. Follow what Calendar offers — no League setting turns scrimmages on.
Scrimmages use canonical Team membership and can be scheduled for any supported game without a League, linked game Identity, Discord, or game server. They do not create League fixtures, alter Elo, or prove that the match was played. Team availability and calendar conflicts are advisory and remain separate from League Roster availability.
Members use Calendar and its context switcher for either Your calendar, a deduplicated view across Teams, League fixtures, and tournaments, or one Team-specific view. Captains configure availability, request policy, and preferences under Manage Team → Scheduling, then create a scrimmage from Calendar → Create event → Scrimmage. The opposing Team sees its own Member responses and only aggregate attendance counts for yours. Schedule Team scrimmages covers requests, recurrence, attendance, reminders, privacy, and cancellations.
Send Team updates to Discord
A Team Captain can post selected Team updates to a Discord channel through a webhook in Manage Team → Discord, without installing a League bot. Choose which categories to send: Team events, scrimmages, League fixtures, and results. The webhook posts to the destination saved on that Team, so it is independent of any League's announcement channels, and anyone who can read that channel can read its posts. See Discord commands and notifications if a post does not arrive.
Teams create League Rosters
A Team is a league-independent group with one Captain and priority-ordered Members. An approved Enrollment derives its Roster in one League. All active Rosters must belong to actual Teams; creating or managing a separate standalone Roster is no longer supported.
Create a Team at heir.gg/teams/new, invite Members, then enroll in each League where you compete. Each League retains its own eligibility, seat capacity, availability, Elo, and match history.
A Team holds up to 25 Members. A User may captain up to five live Teams. Your Teams separates Teams you captain from Teams you joined and shows the Captain count beside Create a Team. Membership in another Captain’s Team does not use that limit. A League's Roster capacity is a separate setting.
Team identity fields are bounded as well: a name is at most 35 characters and uses letters, numbers, and single spaces; an optional Tag is 2–8 letters or digits; and an optional URL handle is 3–32 characters, starts with a lowercase letter, and uses lowercase letters, digits, and dashes. Handles must be available. Public or Hidden visibility controls who can read the Team profile.
Existing Rosters converted during the Team rollout may exceed these Team limits. Their Captain and Members are grandfathered for that one-time conversion. New creations, additions, and captaincy transfers still follow the normal limits; migration does not remove existing Members to make a Team fit.
Understand your seat
Team Members can see every Member’s Seat state for their Enrollments. A public Team also shows this breakdown on its League Roster page. For a Hidden Team, visitors—including League Organizers who are not Team Members—see only currently rostered League competitors, not reserves, blocked Members, or private Priority ordering. Organizers can still review the League-specific eligibility and consent preview needed to approve an Enrollment; this does not grant access to the hidden Team’s profile or unrelated League details.
| State | Meaning |
|---|---|
| Rostered | The Member holds a seat on this League Roster. |
| Reserve | The Member does not currently have a seat. Check the reason: capacity, missing League membership/identity, or a lock can matter. |
| Blocked | A restriction prevents the Member from taking this seat, such as an Organizer block, another Roster in the same League, or a roster-change cooldown. |
Read the displayed reason rather than treating all reserve/blocked states as the same problem. Troubleshooting maps reasons to actions.
Not a Member of the League yet
A Seat requires League membership, and membership is always something the player chooses. A Team Member has to open the League's Join link and complete its requirements. Until then, the Seats view shows a gray, non-clickable name, Not eligible, and the reason. This is a reserve condition, not removal from the independent Team.
Each League decides what joining requires. When a League requires membership in its Discord, the player must be in that Discord — being in the Team's own Discord is not a substitute — and leaving that Discord releases the Seat. When the League does not require it, a player can hold a Seat without being in the League's Discord, and leaving the Discord alone does not cost them the Seat.
Joining the League updates eligibility automatically. Priority, capacity, identity requirements, locks, and other restrictions still apply; joining alone does not guarantee a Seat.
Leaving the League or being banned from it ends the membership and releases the Seat, without removing the person from the independent Team. An eligible teammate can then take that Seat.
Organizer blocks
Blocked Seats have a muted name, shield badge, and explanation. Organizer block means a League Owner or Organizer has prevented the player from taking any Roster Seat in that League. Their valid League profile remains clickable; a block is not the same as a missing profile.
The block persists through Priority changes, automatic updates, and joining a different Team. It releases current Seats even during a lock, without changing independent Team membership or other Leagues. Contact the League to review it; removing and re-inviting the player does not clear it.
Owners and Organizers apply or lift blocks with a reason and audit record. Lifting restores normal eligibility checks, not a guaranteed Seat. Existing results remain; tournament lineups containing a blocked player require correction before starting or reporting scores.
Priority and eligibility
Heir considers Members in Priority order: 1 is first. A Member must meet the League's Membership and identity requirements, and cannot occupy another Roster's seat in the same League. Eligible Members fill the available seats in order.
If a higher-priority Member becomes eligible later, they can take a seat and a lower-priority Member can move to reserve. Changing Priority therefore affects existing Enrollments, not only future requests.
The Roster Captain is the Team Captain when rostered; otherwise it is the highest-priority rostered Member. The independent Team still has its own Captain.
Roster and competition locks
A roster lock defers automatic fills and reshuffling. Departures and Organizer blocks still apply—a person who left the Team or the League, was banned, or was blocked by an Organizer, cannot retain a seat merely because it is locked. Deferred changes are revisited after the lock lifts. A running tournament can also lock affected Rosters; read the competition-specific reason.
Managing the right place
For every active Roster, edit Membership, Priority, and Team captaincy in Manage Team → Members. Direct Roster add/invite/kick/captain/leave/disband operations are no longer supported. Availability and League-specific settings remain on the Roster.
Discord role behavior depends on the League's configured integration and individual or shared Roster role mode. A manual role change is not a safe substitute for changing Team Priority or resolving an Enrollment restriction.
Claims and withdrawal
A claim is a recovery path for a legacy Roster that still needs conversion. New standalone Rosters cannot be created or entered into competition. A withdrawal archives the League Roster and releases its seats while preserving its Team link and history. Neither action means “delete the Team everywhere.”
Next: Enroll a Team, review an Enrollment, or set availability.