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#ecu-alertsEmergency 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 Manage Channels, Manage Roles, View Channel, Send Messages, Embed Links, Read Message History, and Attach Files. Mention Everyone is needed only if announcements should actually ping everyone.
Start guided setup
After installation, League Assistant posts a welcome panel in the server system channel or first channel it can use. Select Create Recommended Channels. If no welcome panel appears, grant the permissions above and run /setup.
Select management roles
Choose one to four authorized roles, such as Owner, GM, AGM, or an advisor. The bot creates a private management category, denies access to @everyone, and grants access to the selected roles. Members with Manage Server retain access.
Select player-group roles
Select the server's active Roster role and Training Camp role. Existing members carrying either role are imported immediately, including players whose profiles still need an EA Tag or position.
03
Player registration
Guided setup automatically posts the player-information panel in #player-information. The bot reuses existing LW, C, RW, LD, RD, and G roles when possible; otherwise it creates them. The manual /player-info-panel post command remains available if management wants to move or restore the panel later.
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. Role synchronization includes the player immediately and clearly marks any EA Tag, position, status, or contract information that still needs to be completed.
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
Create the management panel
Recommended: select Create Recommended Channels on the welcome panel. League Assistant creates or reuses the player and management categories, posts the player-information and management panels, and guides you through role and season configuration without requiring the individual setup commands.
Guided setup reuses its saved categories, channels, and panel messages. It never deletes player information or creates a second copy of an existing saved panel.
Using channels you already created
Select Use Existing Channels, then run /management-panel post privately and 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
Guided setup
Enter the season number, team name, league tier or World Juniors, the phase and current period (for example regular 2 or playoffs 2), and that game week's Sunday date in YYYY-MM-DD format. The bot rejects invalid tiers, periods, dates, and dates that are not Sundays.
Submitting this final setup form immediately posts the correctly dated availability board and live manager report for the selected week or playoff round. The configured Roster and TC roles are notified that availability is ready.
Manual panel setup
The management panel's Set Season control creates the starting period. If a server using the manual path is joining midseason, use Set Week immediately afterward to enter the actual week or playoff round and its 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
Scouting Hub
Scouting is an optional module intended for the short period between seasons. It stays behind one Scouting Hub button, so enabling it does not add a wall of permanent controls to the weekly management panel. Scouting profiles and official Roster or Training Camp status remain separate.
Enable a scouting period
Open Scouting Hub and select Enable Scouting. League Assistant creates or reuses a normal Discord role named Scouting. It uses the management panel's announcement channel for session sign-ups, general channel for selected lineups, and reports channel for private management records. An active standard season uses its configured season and tier. A completed standard season rolls forward one season, while World Juniors always rolls forward to the next numbered LG season without carrying the tournament name—for example, S54 World Juniors becomes S55 Scouting. With no configured season, the title is Upcoming Season Scouting.
Scouting players use the existing Player Information panel to select a primary position and enter an EA Tag. While scouting is active, completing either profile step adds the Scouting role. Existing profiles can press Join Scouting. This never assigns Roster or TC status.
Schedule and fill a session
Schedule the event
Select Schedule Session and enter the Eastern start time, sign-up deadline, expected game count, instructions, and one of three formats: private 6v6, public club, or practice. The announcement tags the server and posts position controls.
Let players register by position
Players may choose LW, C, RW, LD, RD, G, Utility, or several acceptable positions. They can change those choices or withdraw while the session remains open. EA Tag and primary position are required. A submission after the displayed deadline remains usable but receives a visible ⚠️ late marker.
Review sign-ups privately
Manage Sessions shows each player, EA Tag, selected positions, deadline status, total sign-ups, and assigned-lineup count. Managers may close sign-ups or cancel the session without deleting its record.
Build the lineup
Build Lineup presents six slots for Public Club or Practice and Team A plus Team B for a twelve-player Private 6v6. Choose a slot and then a signed-up player. Exact-position and Utility sign-ups appear first, and a player cannot occupy two slots.
Submit and notify
Every required slot must be filled. Submission publishes the complete lineup in the configured general channel and tags only the selected players. Reopening and resubmitting updates the original lineup and posts a fresh notice telling the selected group to review the revision.
Private evaluations and Bidding Board
Player Evaluations lets each manager save a private 1–5 rating, strengths, concerns, recommendation, and optional estimated bid. Managers can submit multiple evaluations for a player without overwriting another manager's record.
Bidding Board stores candidates as Priority Target, Strong Interest, Watchlist, Backup Option, Do Not Bid, or Needs More Scouting. Entries include the player's Discord account, EA Tag, primary position, estimated bid, and private notes. The board can be reviewed inside the hub or posted to the private reports channel.
Reports and closing scouting
Scouting Report posts session totals, player attendance, evaluation count, and the current Bidding Board privately. Close Scouting locks every open sign-up while preserving sessions, attendance, evaluations, and targets. Management chooses whether to leave the Scouting role in place or remove it from participating members. Enabling a future scouting period archives the closed program and starts a clean workspace.
Scouting lineups check completeness and duplicate assignments, but they do not apply regulation game maximums, ECU limits, contracts, transaction rules, or official roster eligibility. Scouting sessions do not submit anything to LeagueGaming.
07
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.
08
Availability system
The player-facing board lists the exact Sunday, Monday, and Tuesday calendar dates above that week's Eastern game times. Players click individual games 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.
09
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.
11
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.
10
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.
12
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.
13
Transactions and offseason
Tier-aware management
The tier selected in Set Season controls the roster-movement choices, transaction deadlines, and rule references shown to management. Roster Movement covers TC promotions, higher-tier call-up tracking, completed-game updates, approved returns, protection status, transfer-wire send-downs, and waivers. Transactions records trades pending official LeagueGaming approval rather than changing the roster before the result is confirmed.
Every transaction warning or block includes the relevant rule reference, but managers remain responsible for submitting moves officially and following corrections or staff rulings.
Completing the season
Complete Season creates a permanent snapshot of the roster, Training Camp, profiles, availability, lines, presets, weekly archives, and transaction history. The current availability board locks, reminders stop, and season-bound controls enter Completed / Offseason mode. Final roster and TC reports are posted without tagging players.
Reopen Season is the safety recovery for an accidental completion. It silently restores the existing period and availability board, keeps the completion archive, creates no replacement board, and sends no player notification. Set Season can then begin the next season while retaining server channels, roles, profiles, and historical records.
14
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.
15
Useful command reference
/setupReopen the guided setup panel if the automatic welcome message was unavailable or removed.
/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.
16
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.