01
Before you start
League Assistant is designed for a team server with separate player-facing and management-only channels. A server Administrator should perform the initial setup. After manager roles are registered, Owners, GMs, AGMs, and an optional advisor role can operate the team tools without receiving full Discord Administrator access.
The bot must appear as a member of the server. If slash commands work but the bot is absent from the member list, the application was installed with commands only. Reinstall it using both the bot and applications.commands scopes.
Recommended channels
#team-managementPrivate control panel#team-reportsPrivate live reports and tickets#availabilityWeekly player availability board#player-informationEA Tag and position registration#generalEmergency ECU alerts#team-announcementsOfficial management notices02
Server and role setup
Place the bot role correctly
Move the League Assistant role above every position role it will assign. Give it View Channel, Send Messages, Embed Links, Read Message History, and Manage Roles. Mention Everyone is needed only if announcements should actually ping everyone.
Grant private-channel access
Add the League Assistant role to the private management category. Your own Administrator access does not automatically give the bot access. The bot checks all five panel channels during setup and names any channel it cannot use.
Register manager roles
Use /settings manager-role add once for each authorized role: Owner, GM, AGM, and any optional advisor or management role. Only a member with Discord’s Manage Server permission can add or remove these roles. Use /settings manager-role list to confirm them.
Register player-group roles
Run /settings player-group-role set and choose the server’s active Roster role and Training Camp role. They must be different roles and cannot be @everyone.
03
Player registration
Run /player-info-panel post and select the player-information channel. The bot reuses existing LW, C, RW, LD, RD, and G roles when possible; otherwise it creates them.
What players do
Players click their primary position. The bot removes their previous configured position role, applies the new one, and saves the selection. They then click Enter EA Tag, type the exact tag, and submit the private form.
What managers do
Apply either the Roster or TC role after reviewing the player. The profile is not included in a synchronized group until it has an EA Tag and the matching group role.
Current Roster and Current TC reports include registered players who have an EA Tag but no Roster or TC role, giving management a clear assignment checklist.
04
Post the management panel
Run /management-panel post in a channel where you can complete the setup privately. Select these five destinations:
management-channelWhere the permanent manager buttons live.reports-channelAvailability, roster, TC, ticket, ECU, and announcement audit reports.availability-channelWhere the current weekly availability board is posted.general-channelWhere urgent ECU alerts tag Training Camp players.announcement-channelWhere formatted management announcements are published.The resulting embed shows team/season information, game-week dates, the availability deadline, the official weekly-line deadline, roster and TC counts, archived-week count, and the configured output channels. Only configured managers and members with Manage Server can use its controls.
05
Set the season and current week
Set Season
Enter the season number, regular or playoffs, team name, league/tournament name, and the Sunday date for the first or current game week in YYYY-MM-DD format. The bot rejects invalid phases, invalid dates, and dates that are not Sundays.
Set Season initially creates Week 1. Immediately use Set Week to enter the actual week number and that week’s Sunday date. Existing boards are preserved rather than silently deleted.
World Juniors
Enter World Juniors, WJC, or WJ as the league/tournament. It uses four regulation weeks with nine games every week—there is no Week 4 twelve-game schedule. Advancing from regulation Week 4 automatically enters Playoff Round 1.
Standard LG season
Regular weeks use nine games: Sunday, Monday, and Tuesday at 9:00, 9:35, and 10:10 PM Eastern. Standard regulation Week 4 automatically uses twelve games, adding the 8:30 PM game each night.
06
Recommended weekly routine
Run games, monitor roster/TC assignments, and use Emergency ECU only when a short-notice replacement is needed.
Use Notify Players if a reminder is needed. Review the live Availability Report and post Missing Availability to the manager channel.
The deadline notice posts, the report refreshes, and missing players are identified. The buttons remain active, but every later submission or change is clearly marked late for management.
Confirm the current information, then use Advance Week. The old state is archived and the next board is created automatically.
07
Availability system
Players click individual game times to toggle them on or off. Sun ×3, Mon ×3, and Tue ×3 select or clear a full day; Week 4 displays ×4 where applicable. Full Avail selects every game, and Unavailable all week records a completed zero-game response. Every click saves immediately and refreshes the private manager report.
Private player response
After each selection, the player sees only their own saved games. View my availability retrieves that summary without changing it.
Private Ticket
A player can report a changed commitment, inability to meet the minimum, or a player concern. Tickets stay available after the board closes and arrive in the private reports channel with ticket number, player, week, reason, EA Tag, position, and Open status.
The normal deadline is calculated as Friday at 11:59 PM in America/New_York, so Eastern daylight-saving changes are handled automatically. After the deadline, the current board remains usable to prevent players from returning to free-form text posts. A late submission is saved normally, the player receives a private warning, and the manager report displays an ⏰ LATE marker with the submission time. Advance Week locks the outgoing board permanently.
08
Reports and embed format
Manager Availability Report
This is a single live embed edited after every player response. The top shows the deadline, total submissions, and minimum availability standard. Roster and TC are separated, followed by their missing-player sections.
Player submitted at least 6 of 9 games—or 8 of 12 in standard Week 4—and included one complete game day.
Player submitted, but the saved games do not meet that displayed minimum. This is a management warning, not an automatic discipline decision.
No response has been saved for that player on the active board.
Current Active Roster
Players are grouped LW, C, RW, LD, RD, and G with counts against the 3/3/3/3/3/2 structure. The embed turns green only at exactly 17 players with the complete position distribution; otherwise it warns managers to review the counts. It also lists profiles without a position and registered players without a Roster or TC role.
Current Training Camp
TC players are grouped by registered position for convenient searching, but the report does not position-lock them. This matches the operational rule that a TC may ECU out of position. Players without a selected position and players without a group role appear separately.
Missing Availability
This creates a timestamped report in the private reports channel with numbered Roster and TC sections. It does not DM or punish anyone; it gives managers a clean follow-up list.
10
Communications and emergency ECU
Notify Players
Posts a reminder beneath the current board and mentions the configured Roster and TC roles. It is safe to use more than once, but managers should avoid unnecessary notification spam.
Announcement
Opens a title and message form, then publishes a red management embed under a large announcement header. Each announcement receives a number and is logged privately with its channel and publisher. If the bot lacks Mention Everyone permission, the message still posts and the manager receives a warning that the ping may not notify everyone.
Emergency ECU
The red button accepts only LW, C, RW, LD, RD, G, or Any, plus game details. It posts an urgent alert in the configured general channel, tags the TC role, includes a direct channel link, and DMs every known TC player. A private audit embed records the requester, position, game, delivered-DM total, and failed recipients. Players who block DMs can still see the server alert.
09
Building and submitting lines
The lineup builder is operated entirely from the private management panel. It prepares and validates team records inside Discord; it does not log into LeagueGaming or submit the official website form.
Create reusable chemistry units
Use Line Presets on the management panel to create permanent units that can be reused every week. Forward units and defensive pairings are intentionally separate, allowing managers to combine—for example—Line A with Pair B in one game and Line A with Pair C in another.
Forward Unit
Name it Line A, Line B, Line C, or any team-friendly label, then assign LW, C, and RW. Only synchronized roster forwards are available, but any roster forward may occupy any forward position.
Defense Pair
Name it Pair A, Pair B, Pair C, or another label, then assign LD and RD. Any synchronized roster defenseman may occupy either side.
Preset selections save immediately, remain available after Advance Week, and can be reopened through View / Edit Presets. Delete a preset when it is no longer part of the team plan. Presets contain active-roster players only; TC replacements are made on the individual game line as ECUs.
Synchronize players first
Press Current Roster and Current TC. Only registered players with an EA Tag and the appropriate Discord group role appear as lineup candidates.
Choose Build Lines
Select one of the current week’s nine games—or twelve games during a standard Week 4. Each game maintains its own saved draft and displays how many of the six positions are filled.
Apply the planned units
Choose Add Forward Unit and select the desired saved line, then choose Add Defense Pair independently. The five preset players fill their positions together. Select the goalie separately.
Make availability substitutions
A preset is the preferred chemistry plan, not a forced lineup. If someone cannot play, select that individual position and replace only that player with another eligible roster player or a TC ECU. The rest of the forward unit or defense pair remains unchanged.
Fill positions manually when needed
Managers never have to use a preset. Choose LW, C, RW, LD, RD, or G and select candidates individually. Eligible roster players appear first; TC players follow, with matching registered positions placed near the top.
Review the context
Each candidate shows an availability mark and current usage. In the lineup embed, ✅ means available for that game, ⚠️ means not selected, and ❔ means no availability submission. Availability is guidance rather than a hard block, allowing management to handle a legitimate last-minute update.
Submit and notify the players
All six positions must be filled. Press Submit Line to publish the management record in the private reports channel and a player-facing assignment in the configured announcement channel. Only the six selected players are tagged. The announcement shows the week, game day, time, position assignments, EA Tags, and any TC/ECU designation.
Eligibility enforced by the builder
A player cannot occupy two positions in the same game.
Roster forwards may play LW, C, or RW. Every roster LD and RD appears as an option for either defense side, with exact-side matches listed first. Roster goalies remain locked to G.
A synchronized TC may be assigned to any position; every such assignment is recorded as an ECU.
Roster skaters are limited to three games, four in standard regulation Week 4. Roster goalies are limited to six. World Juniors Week 4 remains three for skaters.
The bot counts regulation TC assignments toward the tracked nine-game seasonal ECU limit and blocks a tenth assignment.
After the scheduled game time, the builder blocks a new roster replacement and requires a TC ECU. It warns when an ECU is recorded outside the five-minute substitution window.
Reviewing and changing lines
Review Lines opens any game and its saved draft. Game Changes lists submitted games and reopens the selected line. Changing a player returns the line to Draft status; press Resubmit Updated Line when finished. The bot posts a new replacement report and player announcement, lists every position changed from the previous player to the replacement, and then removes the original posts. This leaves one current line while clearly explaining the reason for the revision.
Submit Lines is a shortcut to select, review, and submit a game. ECU Usage posts a season-to-date report showing each TC player’s tracked appearances out of nine.
A green submitted line means the Discord team record passed the bot’s implemented checks. Managers must still enter the line on LeagueGaming and remain responsible for official rulings, eligibility classifications, and any league action not represented in Discord.
11
What Advance Week does
Advance Week is deliberately a two-step action. The first click displays the destination week and date; nothing changes until a manager presses the red confirmation button.
Archive
Saves the current week number, date, roster, TC, availability-board reference, and matching line records.
Lock
Disables the old board’s game-selection buttons while preserving View Availability and Private Ticket.
Advance
Adds seven days and increments the week or playoff round. WJC Week 4 becomes Playoff Round 1.
Rebuild
Creates the correct nine- or twelve-game schedule with a fresh empty submission record and Friday deadline.
Notify
Posts the new player board, mentions Roster and TC, creates a fresh live report, updates the panel, and logs the manager action.
EA Tags, player profiles, configured roles, Roster/TC assignments, tickets, announcements, and prior-week archives are not erased. “Reset” means the new week begins with no availability selections—not that player records are deleted.
12
Rules-based safeguards
Only Manage Server can change bot role settings. Panel controls require a configured manager role or Manage Server.
Panel setup checks that the bot can view, send, embed, and read history in every selected channel before saving.
Season and week dates must be valid Sundays. Manual board deadlines must be future Fridays. Deadlines use Eastern Time.
Standard Week 4 receives the extra nightly game automatically. World Juniors always remains a nine-game regulation schedule.
The report highlights responses below the displayed minimum or without a complete day, while leaving final rule decisions with management.
Missing responses are reported when the deadline passes. Later submissions stay structured inside the bot and receive a visible late marker and timestamp. The outgoing board locks when management advances the week.
The roster embed validates 17 total players and the 3/3/3 forwards, 3/3 defense, and 2 goalie structure.
Advance Week requires confirmation and archives the outgoing week instead of deleting it.
Announcements and emergency ECU requests create private records showing who sent them and whether delivery failed.
The active lineup builder enforces its recorded position-family, duplicate-player, weekly game maximum, late-roster-substitution, and ECU-count checks. It does not replace LeagueGaming staff rulings or submit to the LG website.
13
Useful command reference
/settings manager-role add|remove|listServer-admin control over manager access.
/settings player-group-role set|listConfigure Roster and TC role synchronization.
/player-info-panel postPost the EA Tag and position registration panel.
/management-panel postCreate or move the main panel and configure its five channels.
/current-roster / /current-tcSynchronize Discord roles with registered profiles and display the result.
/availability-board postManual board creation when the panel-managed season workflow is not being used.
/mass-pmSend a management message to every synchronized roster player and report failures.
14
Troubleshooting
Commands work, but the bot is not in the member list
Reinstall with both bot and applications.commands scopes. A command-only app installation does not add the bot user to the server.
The bot says it cannot access a channel
Add the League Assistant role to that channel or its category and explicitly allow View Channel, Send Messages, Embed Links, and Read Message History. Channel overrides can block permissions granted at the server level.
The bot cannot assign position roles
Give it Manage Roles and move the League Assistant role above all six position roles. Discord never allows a bot to manage roles above its own highest role.
A player is missing from Roster or TC
Confirm the player submitted an EA Tag and has the correct Discord Roster or TC role, then press Current Roster or Current TC to synchronize again.
An announcement posts but does not ping everyone
Enable Mention @everyone, @here, and All Roles for the bot in the announcement channel.
A TC player did not receive an ECU DM
The player may block server-member DMs or the bot. The general-channel alert remains the backup, and the private ECU report lists delivery failures.