Bot Changelog

What's new

Everything shipped on the Discord bot, newest first.

WebsiteBot
v44.1ImprovedLatest
Continue, on Discord too

/manager season-simulate and /world season-simulate now use the same real Continue mechanic the website has - a quiet day shows your squad's real condition/injury status, a day that reaches a matchday resolves it. /world season-start and /world season also dropped the "X/Y clubs eligible" math - Club Mode's clubs are AI-run, there was nothing to actually wait on.

v44.0New
World: claim any real-world club

/world now has claim and release subcommands - claim any unclaimed real-world club (no captaincy needed) and manage it directly from Discord, or release it back to AI control any time.

v43.3Fixed
Club Mode name-display fixes

World Challenge's opponent naming and match recaps could show blank club names after the real-Team retie - fixed by reading the name through the real Team relation everywhere it's needed.

v43.2Improved
Club Mode retied to real Teams

/world now follows this server's own real Teams instead of a fictional 78-club list - claim removed entirely, any current captain or vice-captain manages their Team's Club Mode side automatically. season-start/season's league option is now autocomplete, matching this guild's own real Leagues.

v43.1Improved
Real news variety

/manager news now shares the same varied phrasing engine as the website's News feed - each result/season event picks from several real variants instead of one fixed template, consistent between Discord and the website.

v43.0New
/world - now its own command

World Mode moved out of /manager into its own /world command (browse, claim, team, lineup, gameplan, quickfill, challenge, season, season-start, halloffame, youth). A claimed club can now set its gameplan too - set-piece takers, target man, tactical style, the 9 Tactics dials - closing the last real gap between managing your own squad and managing a claimed club.

v42.2New
/manager world youth

Your claimed club's own Youth Academy - overall, potential, and training progress for every prospect in its squad.

v42.1Fixed
/manager world halloffame

World Mode's own Hall of Fame - World club titles only, separate from /manager halloffame's Career-only view.

v42.0New
/manager halloffame

Every title-winning squad this server has ever produced - champion, competition, season, and points. Full squad snapshots on the website.

v41.0New
/manager league

Career Mode custom leagues - list/join/leave a named competition among friends (create it on the website, costs Sparks). Signing now respects a transfer window: closed while your league's season is active, matching real FM's own window shape.

v40.3New
/manager news

A real auto-generated news feed - recent results and season events for this server, narrated in one embed.

v40.2New
/manager youth

A dedicated Youth Academy overview - aggregate stats across every prospect in your squad (count, avg current/potential OVR, high-potential count) plus a per-prospect list.

v40.1New
/manager managers

A real Managers directory subcommand - every manager in this server, sorted by reputation score, with record, win rate, and title count.

v40.0Improved
/manager team Now Says Exactly What's Missing

An incomplete lineup used to just tell you to run /manager lineup. Now it names the actual slots nobody in your squad can cover (e.g. "missing: RB, ST"), on both /manager team and /manager world team, so you know what to go sign instead of guessing.

v39.0Improved
World Mode: A Much Bigger, Fully Ready World

AI squad-building now allows a real, sensible substitution (a center-back covering right-back, say) instead of requiring an exact position match - unlocks far more of the real player pool. Every league gets the same, even number of clubs now, and /manager world season-start basically isn't needed anymore - a league's season starts itself the moment enough clubs are ready, and a new one begins automatically once the last one ends.

v38.1Fixed
World Mode: Every Club Now Has a Real, Complete Roster

Most World clubs were quietly coming up short a starting spot (missing a right-back especially - real registered players skew heavily away from that position) despite holding a full squad. Club generation is now bounded by the real supply of the scarcest position, and /manager lineup auto:true (and club generation) fills the rarest position first instead of a fixed order - every club generated from here on has a genuine, complete, ready starting XI. Every server's World was cleared (claims/clubs only) and regenerates correctly next time it's viewed.

v38.0New
/manager inbox

A real Inbox - welcome, match results, and season news. filter: all/unread, sort: newest/oldest, markallread:/clearread: to clean it up. A claimed World club's results reach your inbox too.

v37.0New
World Mode: Real Seasons

/manager world season-start league: and /manager world season league: - each of the 4 real leagues can now run its own genuine season, a full round-robin among that league's own clubs, resolving automatically with a real table and a real champion.

v36.3Improved
Manager Mode: Fresh Start (Again)

With World Mode fully separated and a real bug in claimed-club squads fixed this round, every squad, club, and manager profile was reset again so everyone starts clean on the corrected systems - real registered players are completely untouched. Run /manager join whenever you're ready.

v36.2Fixed
/manager mycard: Captain Card Removed

The card-choice list was offering Captain Cards as an option - a separate, unrelated card-game special type that never made sense here. Removed.

v36.1Fixed
/manager sign: Cross-Server Registrations No Longer Hidden

A real person registered on more than one server (sometimes as a different position entirely) used to only ever show up as whichever registration rolled the best overall - the others were invisible. Every real match now lists, tagged with its server name when someone has more than one.

v36.0New
World Mode: Now Its Own Subcommand Group

/manager world browse and /manager world claim (moved from the old flat /manager world and /manager claim) are joined by 3 new subcommands giving World Mode real parity with your own squad for the first time: /manager world team (view your claimed club's squad/lineup/record - claiming used to leave you with no way to see any of it), /manager world lineup (set its formation, slots, and tactical roles), and /manager world quickfill. /manager world challenge replaces the old club: option on /manager challenge (now real-manager-only, opponent: required) - always played as your own claimed club.

v35.3Improved
Manager Mode: Fresh Start

With attributes, playstyles, roles, and World all reworked this round, every squad, club, season, and auction was reset so the new systems start on a level field - real registered players are completely untouched. Run /manager join whenever you're ready to jump back in.

v35.2New
Owner Tool: /resetcardgame wipemanager

New staff-only subcommand to wipe a server's Manager Mode data (squads, auctions, fixtures, seasons, loans, watchlists, World clubs, and manager profiles) without touching that server's real card game or league data. Requires typing an exact confirmation phrase.

v35.1New
Manager Mode: Quick-Fill With Unranked

/manager quickfill instantly signs cheap, real Unranked players into whatever lineup spots are still empty, position-matched to each slot - no auction needed. Handy early on, or on a quiet server where auctions haven't been getting bids.

v35.0New
Manager Mode: Choose Your Playstyle

/editmyprofile gained a playstyle: option - autocomplete only offers the ones that actually fit your position (a Poacher or Target Man for a forward, a Sweeper Keeper for a keeper, and so on). It reshapes your Scout Report attributes to match - a Poacher leans into Finishing and Positioning over Passing and Dribbling - still built on your position's own profile, not a separate rating. clearplaystyle: true removes it.

v34.0New
Manager Mode: World - Real Major-League Clubs

/manager world browses this server's real World (Premier League/La Liga/Bundesliga/Serie A, 78 clubs, auto-populated from real registered players). /manager claim takes an unclaimed one to manage. /manager challenge gained a club: option - challenge any World club, AI-controlled or claimed, as a real second game mode alongside challenging other managers directly.

v33.0New
Manager Mode: Mechanical Tactical Roles

/manager lineup gained a role: option (autocomplete shows every real role for whichever slot: you've already picked) - a genuine match-sim bonus, not flavor text. Roles are tied to the tactical slot itself, so replacing who plays there keeps the role you set.

v32.0New
Manager Mode: Mechanical Player Traits

A player's Traits now genuinely affect matches, not just flavor text - specialist traits sharpen shooting, tackling, and goalkeeping, a few affect fouls conceded or how often a chance turns into an assist. No new command - it's automatic on every squad player.

v31.0New
Manager Mode: Tactical Phases

/manager gameplan gained nine new tactical dials - Build-Up Style, Width, Tempo, Defensive Line, Pressing Intensity, Defensive Shape, Marking Style, Counter-Press, and Break Speed - each with a real, single effect on match simulation, all defaulting to neutral until set. View them alongside your existing set-piece takers and tactical style, same command.

v30.0New
Manager Mode: Injury Risk

A tired starter now has a real (small) chance of getting injured, sidelining them for a few days - more likely the more exhausted they are. /manager lineup won't let you select an injured player, and /manager team shows their real status in place of a fitness percentage while they're out.

v29.0New
Manager Mode: Condition & Fitness

/manager team now shows each squad player's condition% inline. Starting a resolved season fixture or exhibition challenge costs your XI some fitness; it recovers a little every real day they're not playing. A tired player's effective attributes take a small, real hit until they've rested.

v28.0New
Manager Mode: Mentoring

/manager training now has a mentor: option - assign any ranked squad-mate to mentor a Youth Prospect and speed up their development. 'none' clears an existing mentor. Their training status now shows who's mentoring them, if anyone.

v27.2Improved
Season recaps show Man of the Match

The auto-posted matchday recap now tags each result with a Man of the Match and rating, computed from the same full match report the website's Portal and Match Day pages now show. Free Kick/Corner routines set via gameplan also have a real effect on set-piece chances now, not just a label.

v27.1New
/manager gameplan set-piece routines

New freekickroutine (Direct shot, Approach play) and cornerroutine (Near post, Far post, Short) options - a flavor tag shown next to your taker in the gameplan reply. Opposition Instructions were also added to the website's Portal Scout Report (a counter suggestion based on the opponent's own tactical styles) - no bot-side equivalent yet.

v27.0New
/manager loan

List a squad player for loan at a fee/duration you set (loan list), browse other managers' open listings (loan browse), take one (loan take), withdraw your own before it's taken (loan cancel), or check your own loan status (loan mine). The fee pays out immediately, and the player returns to you automatically when the loan ends.

v26.0New
/manager gameplan In Possession / Out of Possession styles

New inpossession and outofpossession options on /manager gameplan - set a separate attacking style and defending style instead of one Style dial. Leave either unset to keep following Style. Both feed the real match engine on challenges and season matchdays.

v25.1New
/manager watchlist

Shortlist a player to track before you have the budget to bid - /manager watchlist player: toggles them on/off, no options lists your current shortlist. Same shortlist the website's Player Pool star button uses.

v25.0New
/manager lineup auto-fill and Captain/Vice-Captain

/manager lineup gained an auto option - fills every still-empty slot with your best-fitting available squad player, leaving anything you've already set alone. /manager gameplan gained captain and vicecaptain options (a flavor tag, must be a current squad member), shown as (C)/(VC) on /manager team.

v24.4New
/manager pool Marks a Deliberately Chosen Card

Same follow-up as the website's Player Pool: a listed player's row now gets a (Card) tag if their overall comes from a card they chose via /manager mycard, not the plain auto-roll.

v24.3New
/manager mycard - Choose Your Own Manager Mode Card

New subcommand: set which of your own owned cards (an upgraded copy, Shiny, Icon, TOTW, etc.) decides your Manager Mode overall and attributes, autocomplete-listed alongside "Auto" for the plain rolled base card. Same choice as the website's new Player Pool picker - either one sets the same thing.

v24.2New
Youth Prospect Training & Development

New /manager training - set a Youth Prospect's training focus (or leave it Balanced) and watch their overall grow toward their existing Potential range over time via daily training ticks. Ranked players are untouched - their card overall already is the platform's real, proven number.

v24.1Improved
Real Roblox Names in Pool, Team, Standings, and Sign Autocomplete

/manager pool, /manager team, /manager standings, /manager season, and sign autocomplete now show a player's real Roblox display name instead of just their registered platform name - the same real identity now shown on the website.

v24.0New
Real Seasons - /manager season-start and /manager season

/manager challenge was unlimited free-pick exhibition duels with no schedule and no guarantee anyone ever played anyone. /manager season-start now kicks off a real round-robin among every manager with a complete starting XI (needs 3+) - one matchday resolves automatically per day, with results posted if you've configured a channel for it. /manager season shows the live table and this matchday's fixtures. Recruitment (/manager sign) stays open all season. Unranked players in /manager pool are now flagged as Youth Prospects instead of just showing a confusing low rating.

v23.1Fixed
Player Pool Was Showing the Wrong Row for Some Players

A real person can have a separate Player row per Discord server. /manager pool and sign autocomplete used to keep whichever row came back first, which could show someone's unranked stray row instead of their real, ranked one - now always keeps the person's best-rated row.

v23.0New
Real Timed Transfer Auctions - /manager sign Bids, Not Buys

/manager sign now starts or raises a real 1-hour auction instead of buying instantly - the opening bid must meet real market value, every later bid must beat the current one by 5%+, and a bid in the final minute extends the auction by a minute. New /manager auctions shows what's currently up for bid. Your budget only reserves a bid until the auction actually resolves, so you can run several at once without overspending. You'll get a DM when you win (or lose one you were leading).

v22.0New
Manager Mode Rebuilt: A Real Football Manager Sim

Thrown away and rebuilt: player ratings and match simulation now reuse the exact same systems the card game's Arena mode runs, not a bespoke formula. A player's overall is the same number already on their trading card. Set a real formation with /manager lineup, assign set-piece takers and a tactical style with /manager gameplan, and /manager challenge now runs a genuine sequence-by-sequence match with a live play-by-play reveal - real goals, real assists, real saves - instead of one dice-rolled scoreline. Sign prices are now real transfer fees (the same market values /transfer uses), and budgets/squad sizes were rescaled to match (16-player squads, an 11-man starting XI required to play).

v21.4New
/manager release - Undo a Signing

Once a player is signed, they were locked to your squad forever with no way back - a mis-sign or a squad you wanted to rebuild was permanent. /manager release <player> frees up the slot, refunds 50% of what you paid, and puts the player straight back into the open pool for anyone else to sign.

v21.3Fixed
Manager Mode Strength Now Actually Reflects Rank

Strength came entirely from recent match stats, so a 3-star player on a hot streak could show up stronger than a genuinely higher-ranked player. It's now based mainly on the staff-set star rating, with recent form applying only a capped boost or penalty on top - form can move you within your tier, but can't out-rank someone actually higher-ranked.

v21.2New
One Shared Player Pool, and Real Signing Exclusivity

/manager sign and /manager pool now draw from every registered player across every server, not just the one you're in - more real people to actually manage. Once someone signs a player, that player is off the market for every other manager in that server's game - a real player is only ever on one squad at a time, same as real football. Standings/squads/challenges stay separate per server.

v21.1Fixed
Manager Mode Strength No Longer Rigable in a Small Server

Strength used to come from whichever single guild's Player row you looked someone up in - since real match stats are only ever measured against opponents in that one server, a small, low-competition server could inflate someone's numbers. It now uses that person's single best profile across every server they're registered in with at least 300 real members, and falls back to the same neutral baseline as a brand new player if they don't have one - a small-server-only profile now gains nothing.

v21.0New
Manager Mode: Build a Squad From Real Registered Players

/manager - draft real registered players (yourself, friends, anyone in the server) into a personal squad within a budget, then challenge other managers with /manager challenge. Each player's strength is computed live from their own recent real match performance, so an actual hot streak makes them stronger here too - separate from real team rosters. v1: simple simulated scorelines with weighted goalscorer credit; standings and Kon rewards included, tactics and a deeper match engine to come.

v20.1Fixed
Two More Upsert Races Closed

Companion fix to the shared library's wallet race: draft entrant seeding and the card-game welcome-bonus check both had the same empty-update upsert non-atomicity gotcha. The welcome check now goes through the already-fixed shared wallet lookup, and entrant seeding swaps to create-then-catch-duplicate.

v20.0New
Escalating Daily Streak Rewards

Mirrors the website: keeping your /daily claim streak alive now pays off beyond the Kon bonus - every 7-day milestone grants a free Silver Pack, and every 30-day milestone grants a free Legendary Pack, on top of your usual reward.

v19.5Fixed
Wide Sweep: Closed ~30 Real Duplicate-Payout Races

An extensive audit found and fixed the same root shape repeated across the platform - a status/balance check read once, then a write that didn't re-confirm it, letting a duplicate click, page reload, or two near-simultaneous actions both go through. Closed in match results reporting, forfeits, transfer releases/force-releases, loan expiry, Higher/Lower, Trivia, card draft, Arena, card duels, team/1v1 friendlies, directory badges, SBC, weekly challenges, and giveaways, plus a tournament-bracket race fixed with a real database constraint. The bot also now logs and recovers from unexpected crashes instead of going silent.

v19.4Fixed
/heist and /gang Could Crash On Some Outcomes

A shared outcome-text lookup evaluated every branch's message eagerly, including ones that reference values (like a stolen amount) that don't exist for a warning/prison outcome - crashing instead of showing the message. Fixed by only evaluating the branch that's actually needed.

v19.3Fixed
Cancelling A Loan Now Pays The Correct Side

When the parent club cancels a loan, they're the one who should pay the remaining fee and get the player back - it was charging the loaning club instead. Fixed, plus every historical loan-cancel transaction that had this backwards was found and corrected, with the balancing entries logged to #budget-logs.

v19.2Fixed
Prediction Vote Bars Could Give Two Teams The Same Color Square

Each team's vote square is nearest-color-matched to its Discord role color - the away team's square is now picked excluding whatever the home team's own match landed on, so two teams can no longer render identical color squares.

v19.1Fixed
TOTW's CDM and CF Slots Were Always Empty

A label mismatch between the website's result-entry wizard and the shared formation definitions meant every CDM/CF performance was silently uncategorized, so those two slots never had a qualifying player to show. Fixed going forward, plus a one-time backfill that corrected every already-reported fixture's stored stats and regenerated the affected TOTW posts.

v19.0New
Team of the Week Cards Rendered As Real Player Cards

TOTW posts no longer render a plain formation/pitch diagram - each qualifying performance now gets its own real player card, laid out in a genuine 4-3-3 shape using the exact position that player was selected for (not their profile position), club badge included.

v18.0New
/leaguemarket browse Gains League Filtering, Sorting & Paging

Browse used to dump every league's listings into one undifferentiated list, always newest-first, hard-capped at 25 with no way to see more. Now takes an optional league filter, a Newest/Highest Price sort, and Prev/Next paging past the cap - each row is labeled with its league when browsing isn't already scoped to one.

v17.0New
/profile Gains Recent Form, Nationality, Milestones & Career Highs

Closes the gap with the website's own player page: /profile now shows a recent-form arrow (last 5 rated games), nationality, milestone badges (10/25/50/100+ Appearances/Goals/Assists), and a Career Highs section on the Stats tab (best single-match Goals/Assists/Rating/Points).

v16.6New
Trade Proposals Now Leak To The News Channel Too

Transfer, Loan, and Release Clause offers all posted a vague "leak" to the news channel the moment they were created - Trades never did. Now they do too, naming only the proposing team, never the players involved or the other side.

v16.5Improved
Transfer/Loan Leaks Have More Variety

Every leak used to render the exact same sentence every time, for every player, forever. Now pulls from a real pool of differently-worded "insider" phrasings instead, so the news channel doesn't read as one hardcoded string on repeat.

v16.4Fixed
/roster appoint Now Respects Roster Caps

Appointing a free agent straight into a leadership role (e.g. Head Coach on a captain-less team) auto-rosters them - but skipped roster cap enforcement entirely, unlike every other move path (force-sign, transfer, the website's own set-team-roster). Could silently push a team over its star-tier, position, or size cap. Fixed - same enforcement every other path already has.

v16.3Fixed
Release Clause Now Pings Your Club's Leadership

A release clause skips captain negotiation by design (the selling club can't block it) - but that meant nobody on the selling side got notified at all when it happened, only the player. Now DMs your Team Manager/Transfer Manager immediately, with a real @-mention in the transaction channel as a fallback if DMs are off.

v16.2Fixed
Match Prediction bar no longer confuses a team with Draw

A team's vote-bar square is nearest-color-matched to its real Discord role color - if that color was light/white, it could land on the exact same white square already reserved for Draw, making the two indistinguishable at a glance. That square is now off-limits for team matching, so a team always gets a visibly different color from Draw.

v16.1Fixed
Stuck Market Listings Now Reopen Instead Of Vanishing

A transfer/loan offer that gets declined, ignored until expiry, or fails a check no longer leaves the original market listing stuck dead - it now reopens the same listing message with working buttons again, as long as the player's still at the selling club. Fixed going forward for every offer type, plus a one-time backfill that reopened 11 listings already stuck this way.

v16.0New
Fun Commands + Quiet-Member Comeback Nudge

10 new just-for-fun commands: /roast, /compliment, /beef, /ship, /vibecheck, /chant, /excuse, /penalty, /worldcupdraw, and /wouldyourather. Also new: an opt-in quiet-member nudge (/configmisc quietnudge) that DMs a small Kon comeback bonus to members who've gone quiet in chat, on a cooldown so nobody gets spammed - off by default per server.

v15.0Improved
Standings & Leaderboard Images Match Your League's Theme

/standings and /leaderboard now render in your league's own accent color and the site's real Oswald font instead of a fixed blue/purple and a generic font. /leaderboard also gained 4 stats it was missing - Points, Average Rating, MOTM Awards, and Appearances - plus a mingames qualifier filter and Prev/Next paging past the old 25-entry cap.

v14.10New
Double Forfeit Now A Real Option

/results forfeit can now record "Both teams" for a genuine double no-show - scored as a 0-0 draw for both sides (draws + the normal draw payment), blocked for knockout fixtures since a draw has nowhere to advance. Also fixed a real bug where the results message always blamed the home team as the forfeiting side, regardless of which team actually lost by forfeit. /standings now uses your league's real point values (win/draw points) instead of a hardcoded 3/1, matching the auto-updating standings message and the website.

v14.9Improved
Anti-Spam Safeguard Shared Across Every Bulk DM

Every bulk-DM command (giveaways, announcements, etc.) now shares one real anti-spam safeguard instead of each having its own copy - consistent cooldowns and abuse limits everywhere DMs go out in bulk.

v14.8New
New /recruit Scouting DM + Position-Role Linking

New /recruit command - DM a free agent directly to scout them for your team. Position-role linking (matching the website's own version) lets you tie a Discord role to a player position.

v14.7Improved
/requestfixturetime Split Back Out

/requestfixturetime is its own command again, not a /results subcommand - real feedback that it's a regular team-manager action (proposing a kickoff time), not a staff results action, so it didn't belong bundled in there.

v14.6Fixed
Editprofile Crash Fixed

/editprofile was throwing "targetUser is not defined" on every real use since the user option was never actually read into a variable - staff couldn't edit anyone's market value or star rating through the command at all. Fixed.

v14.5Improved
99 Commands Reorganized Into 78

Consolidated related commands into hubs to free real headroom under Discord's 100-command cap: /stats (add/edit/remove/parse), /results (report/forfeit/requesttime/preview), /season (generate/advancegroups/new/recap), /roster (view/appoint/dismiss), /staffutils (DM and maintenance tools), plus /spin, /sell, and /compare folded into /draft, /transfer, and /card. /deleteleague removed outright (duplicated /league delete). Also fixed a dormant bug where /deletetournament's autocomplete never actually matched what the command looked up.

v14.4Fixed
Higher/Lower Odds Actually Fair Now

Found and closed a real exploit: the current card's exact overall was shown before every guess, and the tier bands (Unranked-5★) never overlap - so an obvious guess paid the same flat 1.5x as a genuine coin flip, letting one player wager up to 1.7B Kon in a session. Payout is now priced off the real probability of your guess being right (an obvious guess barely pays over 1x, a real toss-up pays close to 2x, shown before you pick) - plus a 10,000 Kon max wager and 15 games/day.

v14.3Improved
Spectator Channel Now Also Accepts Stage Channels

/configchannels spectators and the website's Spectator Voice Channel picker now also accept Stage channels, not just regular voice - a better fit for a broadcast-style spectator experience.

v14.2Fixed
Match Threads Now Private, Added Spectator Voice Channel

Match threads are now real private threads (both team rosters auto-added) instead of public - a role mention in a public thread wasn't real access control. New /configchannels spectators - a public voice channel mentioned on every match announcement for people to watch/listen along.

v14.1Fixed
Ranker Role and Editprofile Corrected

The Ranker role (/configroles ranker) was gating Power Rankings by mistake - it now correctly lets holders set player star ratings via /editprofile and the website Rankings page instead. Market value edits stay staff-only.

v14.0New
Rulebook in Discord + Match Announcement Channels

/help rulebook posts the rulebook as a real Discord message with a dropdown to switch sections. New /configchannels matchannouncements + predictions and /configroles matchping - the 30-min-before and kickoff announcements now use their own configurable channel (previously unreachable) instead of the fixture channel, with a Join Match Thread button.

v13.2New
Formation Trial

New /arena mode:trial option - a fixed scripted opponent requiring your squad to be set to today's rotating required formation. Real Kon reward, one attempt every 24 hours.

v13.1New
Gem Shop Bundle Deals

New /gemshop bundle subcommand - spend Gems on a bundle of Kon plus a guaranteed pack pull, priced as real value against the pack's own Kon cost. 3 tiers: Starter, Value, and Mega.

v13.0Improved
New Season Now Archives the Rulebook Too

/newseason now also archives the current rulebook (all sections, frozen) alongside team standings before starting the new season - the live rulebook carries forward unchanged, only the archived copy is frozen for history.

v12.1New
Auto Match Threads

When a gameweek's fixtures are published (via /postfixtures or the automatic weekly announcement), each fixture now gets its own Discord thread pinging both teams - a shared place to coordinate, instead of only DMs. Created once per fixture.

v12.0Improved
New Season Now Archives Standings

/newseason now archives every team's current record (wins/draws/losses/goals, name/icon frozen) as history before resetting for the new season - previously it only relabeled the season with no reset at all. Preview first with confirm left unset, then run again with confirm:true. Also new: /configroles ranker - a role that can edit Power Rankings on the website.

v11.0New
Football Trivia

New /gemshop trivia subcommand - 5 knowledge questions, no wager, 40 Kon per correct answer plus a 10-Gem bonus for a perfect run. One attempt every 24 hours.

v10.23New
Streak Insurance

New /gemshop insurestreak subcommand - spend 8 Gems to protect your /daily streak once. The next time you'd miss the claim window, your streak is saved instead of resetting to 1.

v10.22New
/gemshop hiloboard

Higher/Lower leaderboard - biggest single-game wins.

v10.21New
/gemshop hilo - Higher/Lower

Wager Kon, guess higher or lower on the next player's overall, each correct guess multiplies your pot ×1.5 (up to 8 rounds). Cash out anytime with a button.

v10.20Improved
Gem Shop: Icon/TOTW only as exact copies

Icon and TOTW summon pulls no longer mint fresh cards - only succeed as an exact copy of an already-existing card for that player, falling back to Showtime otherwise.

v10.19New
/gemshop spin - Daily Wheel

One free spin every 24 hours for Kon or Gems, real 0.5% jackpot chance.

v10.18New
Facilities parity with the website

Training Ground/Scout Network/Stadium bonuses now also apply to the website's Claim/Daily - previously bot-only.

v10.17Improved
More action in every match

Matches now run 16 attacking sequences instead of 10 - applies to every match type (Arena, Legacy, Challenges, Friendlies).

v10.16Improved
Gem Shop: only 3 Featured cards can be special

Icon/Showtime/TOTW hits are now restricted to 3 randomly-chosen Featured players (rotates daily, see /gemshop view). Every other card in the pool is always regular now. Also fixed a real bug: a second TOTW pull hitting the same league could previously crash mid-summon with gems already spent.

v10.15New
2v2 Team Challenges

/arenachallenge team send/accept/decline/ready/list/cancel - challenge another duo, either opponent can accept, any of the 4 can ready up. Same match engine as Direct Arena Challenges, run twice and scored on aggregate.

v10.14Improved
/legacy leaderboard now tracks assists and top team

Was goals-only. Now shows Top Assists (same season-scoped tracking as goals) and Top Team alongside Top Scorers.

v10.13New
/cardmarket direct - real card-for-card trading

New /cardmarket direct offer|list|accept|decline|cancel - propose trading one of your cards for one of someone else's, either side optionally adding Kon on top. Distinct from /cardmarket traded (fixed-price, anyone-can-buy listings) - this targets one specific person.

v10.12New
Arena Challenges: Ready step + Rematch button

Accepting an Arena Challenge no longer instantly runs the match - both sides get an I'm Ready button once accepted, and the match runs the moment both have clicked it. A Rematch button also shows up on the finished-match result.

v10.11New
SBC list, Arena leaderboard, 4-1-2-3 formation

/card sbc list shows Squad Building Challenges and your completion status (submit them from the website - a real card picker fits better than a wall of options). /arenachallenge leaderboard shows the top 25 by Arena points plus your own rank. 4-1-2-3 joins /formation and /11's formation choices.

v10.10Fixed
Roblox avatars retry on a still-rendering image, /cardmarket traded's search fixed

Roblox's thumbnail API doesn't always have an image ready on the first request - a fresh or recently-changed avatar can come back "Pending," and every avatar lookup used to just accept that and give up, which is very likely why profiles didn't always render. Now retries briefly before giving up for real. Also fixed a real, previously-silent bug: /cardmarket traded watch|unwatch|pricecheck's player-name autocomplete has done nothing since the command was renamed from /tradedmarket - it was still checking the old name.

v10.9New
Signing offers now share one real core with the website

/sign's Accept/Decline buttons run through the same core the website's inbox now uses for the exact same offer (see the website changelog) - only the ranked-player random-team spin animation stays Discord-specific, everything else (roster caps, role assignment, transaction log, initiator DM) is identical either way.

v10.8Fixed
Release-clause offer preview: real bugs, not "the bot is slow"

Two confirmed live bugs, found in the error log after a direct "he clicks the button but the bot doesn't respond" report. The preview's Confirm & Send button never acknowledged the click before doing real work, so Discord's 3-second interaction window regularly expired first, leaving the clicker with nothing even though the offer itself had usually already gone through. Separately, the preview posted publicly in the channel with no check on who clicked it - anyone could confirm-send someone else's offer. Both fixed: an immediate acknowledgment, and the preview (plus /sell's own confirmation) is private to whoever ran the command now.

v10.7Fixed
Head Coach wasn't getting team debt notices

checkTeamDebt only ever DMed the Team Manager and Transfer Manager when a team's budget went negative - Head Coach was silently left out, even though they have identical day-to-day team authority to Team Manager everywhere else. Fixed on both the bot and the matching website inbox notice.

v10.6Improved
Legacy Mode's core logic now shared with the website

/legacy itself is unchanged - same commands, same behavior, verified live. Its logic moved to a shared module the new website Legacy hub also uses, so a season started on Discord and one started on the website are genuinely the same league, not two separate implementations that could drift apart.

v10.5Fixed
Icon cards granted above a player's own tier had stats that didn't match their rarity

Direct report, confirmed real: granting a player as a 5-star Icon showed 5 stars, but the actual attributes (and the overall averaged from them) still sat down around whatever tier that player naturally was - a small flat bonus was never enough to bridge the gap. /icon grant now rolls fresh attributes AT the chosen rarity first, matching how every other special card (TOTW, Showtime, Captain Cards, Gem Shop's summon) has always worked, then applies Icon's own bonus on top of numbers that actually belong to that tier. Verified live: a real 2-star player granted as a 5-star Icon now averages 94-95, not the high-70s it would have before.

v10.4Fixed
Database connection pool was too small under real load

Found in the error log, not reported directly: the bot was regularly timing out waiting for a free database connection (across GuildConfig, Fixture, Gameweek, Giveaway, and more) - its connection pool was sized off a default formula that came out far too small for its real concurrent load. Raised, with plenty of headroom confirmed against the database's own actual connection cap.

v10.3Fixed
/cardmarket list was missing a sellable check the website already had

Found while auditing the bot and website's trade-market logic for drift: the bot's own listing path let a special/non-tradeable card be listed via /cardmarket list, a check the website's version already enforced. Both now share the exact same core logic, so this can't happen from either side again.

v10.2New
Failed transfer offer DMs now point at the website inbox

When a transfer offer or player-consent DM can't be delivered, the failure message now links straight to the Career Portal inbox, which has the exact same Accept/Decline the DM's buttons would - a real fallback, not just a "sorry, couldn't reach you" notice.

v10.1Fixed
Duplicate transfer offers on the same player, closed

A second release-clause or standard transfer offer could be created for a player who already had one PENDING or awaiting their own consent - confirmed live on a real duplicate case. Both entry points now check for an existing offer first and point at it instead of creating a second one.

v10.0New
Respond to transfer offers from the website inbox

A Team Manager/Head Coach/Transfer Manager can now Accept or Decline a standard transfer offer sitting on their own roster straight from the website's existing inbox - previously that only ever arrived as a Discord DM. Runs the exact same PENDING re-check and player-consent handoff the Discord Accept/Decline buttons do; Counter still requires Discord's negotiation modal.

v9.0New
Propose a transfer from the website

Every rostered player's profile page on the site can now start a real standard transfer offer - same market-value floor, transfer-window allowance, and captain-protection checks /transfer offer runs, same Discord DM the responding team gets either way. Loans, trades, and release-clause offers still stay Discord-only for now.

v8.0New
Create a team from the website

/team create's validation and Discord-role/log setup is now shared with a new internal endpoint, so Manage > Teams on the website can create a real team - its own Discord role, budget, optional Team Manager - without a second, weaker implementation of any of it.

v7.1Fixed
Patched a dependency vulnerability

Updated undici to clear 3 known vulnerabilities (1 high, 2 moderate) flagged in it.

v7.0Improved
Configurable transfer windows and loan pricing

Transfer window length, the market bid raise percentage, and loan/transfer offer expiry hours are all real per-server settings now instead of hardcoded values. Also fixed loans silently assuming every gameweek is the same length, and a Loan Price Floor display that didn't match what was actually being charged.

v6.2Fixed
/gemshop crashing on the icon-flavor filter

An invalid IconCard relation filter meant filtering the gem shop by icon flavor crashed every single time. Fixed.

v6.1Fixed
Budget double-fire races, and /sell ignoring a paused transfer window

/budget revert and adjust-confirm could both be double-clicked into firing twice - now guarded. /sell was able to go through even while transactions were paused for the server, the only stat/transfer command that could; closed, and Results Reporter's permissions extended to cover the stat commands too.

v6.0New
Results Reporter is a real Discord role now

The Results Reporter permission previously only existed as a website concept with no Discord-side equivalent. /configroles resultsreporter gives it a real role, matching every other permission the bot already models both places.

v5.1Fixed
Website roster moves now respect roster caps

Every other real roster-move path (transfer, loan, draft, trade) already rejected a move that would bust a league's roster size/position/star caps - the website's own roster manager was the one path that didn't. Closed.

v5.0Improved
Card v4: a full visual redesign

Player cards were rebuilt against a real FUT-style reference: real per-tier backgrounds and text colors, a full-body Roblox avatar in a portrait frame instead of a cropped bust, and a real 6-stat row. Went through several rounds of avatar framing/crop tuning per tier before going live as the card everywhere /card and the shop render one.

v4.0New
Match Officials, scheduled kickoff announcements, and free-vote predictions

Real Referee/Cameraman/Commentator roles with Discord-native claim/release buttons, a dedicated kickoff channel, and scheduled match announcements. Predictions got rebuilt as a real free 3-button vote widget (no currency involved) posted alongside the reminder at the 30-minute mark, sent via webhook for its own branded identity.

v3.0New
/budget adjust, and complete budget-change audit logging

A staff-only, confirmed, fully-audited manual budget credit/debit command - and every other budget-touching path (not just releases/transfers) now logs through the same audit trail, not just some of them.

v2.0Improved
Internal API parity layer

Suspensions, forfeits, releases, roster moves, and schedule generation all got a shared "core" function extracted from their slash command, plus a matching internal API endpoint - the foundation that let the website start triggering these with full Discord parity (role changes, DMs, channel posts) instead of a second, DB-only implementation. Team creation and transfer offers (v8.0/v9.0/v10.0) build on the exact same pattern.

Back to Home