Skip to main content

League Settings Reference

2026-05-11

League Settings Reference

Every per-league rule, limit, and toggle lives on the LeagueSettings row for your league and is editable from /admin/league-settings. This article is the field-by-field map — what each setting does, where the default comes from, and which tab it lives under.

How settings are organized

The /admin/league-settings page is split into tabs that match the categories below. Every field is editable in place; saving writes back to LeagueSettings for your league and takes effect immediately for any new transaction. When new settings ship in future phases, their defaults preserve current behavior — your existing league does not change unless you actively flip a toggle.

Roster rules (Roster tab)

| Field | What it does | Default | |---|---|---| | salaryCap | Sum of every active+reserve cap hit must fit under this | 95.5M USD | | maxForwards | Max active forwards on a roster | 12 | | maxDefense | Max active defensemen on a roster | 6 | | maxGoalies | Max active goaltenders on a roster | 2 | | maxMonthlyChanges | Roster moves allowed per calendar month per team | 5 | | unlimitedChangeDays | Comma-separated days of the month when monthly limit doesn't apply | "1,15" | | maxNhlTeamsPerTeam | Max NHL teams a fantasy team can draft (NHL Team Points feature) | 1 |

See Salary Cap and Position Limits and Monthly Roster Changes for the rules in practice.

Scheduling (Scheduling tab)

| Field | What it does | Default | |---|---|---| | tradeDeadline | Date after which new trade proposals are blocked | unset (open all season) | | rosterFreezeDate | Date after which roster moves are blocked entering the playoffs | unset |

See Trade Deadline Rules for how the trade deadline check fires.

Scoring (Scoring tab)

The scoring rules live in a separate ScoringConfig model (per-position weights for goals, assists, plus-minus, etc.), but two top-level settings on LeagueSettings control the overall scoring shape:

| Field | What it does | Default | |---|---|---| | scoringFormat | roto (accumulating totals) or h2h (weekly head-to-head matchups) | roto | | h2hWeeksPerSeason | Weeks in the H2H regular season | 18 | | h2hPlayoffWeeks | Playoff weeks (0 = no playoffs) | 3 | | h2hPlayoffTeams | Teams making H2H playoffs (4, 6, or 8) | 4 | | topXForwards / topXDefense / topXGoalies | Best-ball top-X scoring counts | 9 / 4 / 1 |

See Scoring Rules and Position-Based Scoring for how the points engine reads these.

Draft (Draft tab)

| Field | What it does | Default | |---|---|---| | draftType | Default draft type for new drafts (snake / linear / lottery / auction) | snake | | draftRounds | Number of rounds in the default draft | 20 | | draftPicksPerSeason | Pick allotment per team per season | 4 | | freeAgentSlotsPerSeason | Free-agent picks per team per season | 2 | | auctionBudget | Starting budget for auction-draft teams | 200 | | auctionTimerSeconds | Bidding clock window | 30 | | auctionMinBid | Minimum bid increment | 1 |

See the Drafts Overview article for what each draft type does on the room side.

Trades (Features tab)

| Field | What it does | Default | |---|---|---| | tradesEnabled | Master switch for the trade system | on | | tradeApprovalRequired | Whether accepted trades wait in a commissioner queue | on | | tradeApprovalThreshold | Number of assets that triggers the approval requirement | 1 |

See Trade Approval Workflow for the cycle this controls.

Free agents (Features tab)

| Field | What it does | Default | |---|---|---| | freeAgentApprovalRequired | Whether FA pickups queue for commissioner approval | off | | faDropOnPickupDefault | Whether the drop selector is open by default on a pickup | off | | freeAgentValidationEnforced | Cap+position checks at FA submit and inside the approve transaction | off |

Feature toggles (Features tab)

| Field | What it does | Default | |---|---|---| | salaryCapEnforced | Cap is hard-blocked at transaction time (off = advisory only) | on | | positionLimitsEnforced | Position limits hard-block (off = advisory only) | on | | monthlyChangeLimitEnabled | Monthly roster change limit is enforced | on | | gameDeadlineEnabled | NHL game-day roster deadline is enforced | on | | rosterMoveCutoffMinutes | Minutes before first NHL game to lock roster moves | 0 | | undoEnabled | The undo-roster-changes feature is available | on | | undoWindowMinutes | How long after a move you can undo it | 15 | | rosterChangePermission | Who can make roster changes: owner or commissioner | owner | | picksEnabled | Whether draft picks and FA picks are shown anywhere in the UI | on | | scheduledDropsEnabled | The scheduled-drop compliance system is active | off | | achievementsEnabled | Whether the achievements system is active | on | | nhlTeamPointsEnabled | NHL standings points contribute to fantasy team scoring | off |

Keeper settings (Keeper tab)

| Field | What it does | Default | |---|---|---| | keeperSlots | Number of players each team can retain across seasons | 5 | | keeperDeadlineStart | When keeper selection opens (unset = not open) | unset | | keeperDeadlineEnd | When keeper selection closes (unset = no deadline) | unset |

Integrations (Discord tab)

| Field | What it does | Default | |---|---|---| | discordWebhookUrl | Webhook URL for posting league events into a Discord channel | unset | | leagueType | dynasty (multi-season) or redraft (annual) — drives keeper/draft behavior | dynasty |

Privacy

The League.isPublic field (one level up from LeagueSettings) controls whether the slug-addressable /public/{slug} standings and team pages are visible to non-members. Public leagues appear in the global league list; private leagues are invitation-only.

Defaults are designed to mirror a standard dynasty-style fantasy hockey league. You can change every value — there is no setting that's "FanPoolHQ-wide" or unchangeable per league. When new settings ship in future FanPoolHQ releases, their defaults preserve current behavior so your league is never silently changed underneath you.

See also

  • Commissioner Tools — the broader admin surface
  • League Setup Wizard — initial configuration walkthrough
  • Salary Cap and Position Limits, Monthly Roster Changes, Trade Deadline Rules, Scoring Rules, Pool Scoring and Deadlines — settings in context