You've been handed a league on SapphireSportz and you're the one running it. This is everything that takes, in the order you actually do it — no steps skipped and nothing assumed. Start at 1 and go down. About twenty minutes, and most of that is waiting for Madden.
Not running it — just playing in somebody's league? You want Your first five minutes instead. Five steps, and only the first three are urgent.
Yours: your league's data, your Discord
server, your members, your teams, your economy settings. Every step
below is something you do from your own pages — nothing here needs
anybody's permission and nothing waits on anyone else.
Not yours: the site itself, the bot's
hosting, anything that is broken for everybody at once. You are not
expected to fix or even understand those. When you hit one, the
Help page
has a box that reaches the site owner directly — and it sends him what
your league looks like from here, so you do not have to describe any of
it.
This trips up nearly everybody, so here it is before anything else. There are four separate things, and they are not the same thing.
Top right of this site, hit Sign in — Discord or an email address, whichever you use. Discord asks if it's OK. Say yes. That's the whole thing — there's no password to make and nothing to remember.
Your Discord name in the top corner instead of the sign-in button.
If you opened this link from inside Facebook, Instagram, TikTok or X, it will fail — those apps use their own cut-down browser and Discord sign-in doesn't work in it. Tap the ⋯ menu and choose Open in browser, then try again. This is the single most common reason people can't get in.
Go to Sync Your League and hit Copy link. You'll get a web address ending in a long jumble of letters. That jumble is the important bit.
Treat this like a password. Anyone who has it can push data into your league, because Madden's app can't sign in — the link itself is the proof it's you. Don't paste it in a public channel.
- Open the Madden NFL Companion app on your phone.
- Sign in with an EA account that's in your franchise.
- Pick your league, then Export League Data.
- Paste the link from step 2 in as the destination.
- Choose All Weeks — not one week.
- Run it. It takes a minute or two.
The app works through a list — teams, then rosters, then each week — and ticks them off. That's fifty to eighty little uploads, which is why it isn't instant.
- Check for a space at either end of the link you pasted. A trailing space is invisible and it is the most common cause. Delete it and run again.
- You picked one week instead of All Weeks. Run it again with All Weeks.
- You don't know your EA login? Someone else in your franchise can run the export for you — the site doesn't care who does it, only that the link is right. Give the link to somebody you trust.
Open your league page.
Teams with logos, standings, and scores. That's it — the site is now your league. Every page fills itself in from that one export.
The page will tell you so in plain words rather than looking broken. Give it a minute and reload first — a full export is a lot of little uploads. If it stays empty, go back to step 3's checklist.
Read this bit twice. Adding the bot and connecting it are two different jobs. Almost everyone does the first one, thinks they're finished, and then wonders why the bot sits there saying nothing.
Go to ADMIN → The Bot and hit Add the bot. Discord asks which server. Pick yours and confirm.
You need Manage Server on that Discord. That's Discord's rule, not ours — if you don't have it, whoever owns the server has to do this step.
- Same page — hit Get a fresh code. You get something like K7QM-3XPD.
- Go to your Discord and type /connect, then paste the code.
- Send it.
The bot replies naming your league. Type /league-status any time to check it's still connected — that command answers "why isn't it working" about nine times out of ten.
The code works once and dies after thirty minutes. Getting a new one kills the old one. Don't post it in a public channel — anyone who grabs it could point their own server at your league. If you ever need to reconnect, just get a fresh code; re-linking is a totally normal thing to do.
Open the setup checklist
— there is a name box on it. Type the name people call your league and save.
The recruiting desk has
a name box too, but it arrives pre-filled with your short code, and
saving that does not count as naming the league. Both places refuse it
now and say why, instead of quietly accepting it and leaving the
checklist stuck.
Until you do, every headline and every link you share says the short code instead — which looks like a bug to somebody you're trying to recruit. Thirty seconds, and every shared link starts looking deliberate.
ADMIN → Team Assignments. Match each person to their team. They can also claim their own from Discord once they've signed in.
A team with nobody on it counts as open, and open teams are what the bot posts when somebody asks what's available. An unassigned league looks empty to a recruit even when it's full.
Leave it in. More people fail at sign-in for that one reason than every other reason put together.
Play money. Your league earns it, gambles it, buys things with it and argues about it. It is never real money and it never will be — nobody can put a card in and nobody can take anything out. That promise is in writing on the front page.
The money lives in Discord — the bot keeps the books. The website is the shop window: balances, the ladder, who's up and who's broke. So the economy pages here stay empty until the bot has something to show, and that's normal on a brand new league.
Nothing leaves the league. Money people lose goes to the World Bank, and you hand it back out as payouts, prizes and income.
- /eco start — opens the economy and gives everyone a starting balance.
- /eco bank — put money in the World Bank so there's something to pay out. Fines top it up on their own after that.
- /eco settings — with no options it just shows you everything: win chances, tax, how often people can collect. Look before you change.
- Tell your league to run /work. That's it — they're in.
Balances appear on the Economy page after the bot's next sync. If it says the vault is empty, that usually just means nobody's earned anything yet — not that anything is broken.
Every earner has a cooldown — a wait before it can be used again. Out of the box: /work every 15 minutes, /crime 30, /rob 40, /highroll 60.
To change one: /eco cooldown action:work minutes:30. minutes:0 puts it back to default. It takes effect immediately.
Anyone can run /cooldowns to see what they can use right now and when the rest come back.
Short cooldowns make money cheap and betting meaningless. Long ones make people feel locked out. Start with the defaults for a couple of weeks and only change them if the leaderboard runs away from everybody.
- Advance the week in Madden like you always have.
- Run the export from the Companion App again — same link, All Weeks.
- That's it.
Standings, stats, the leaderboards, the recaps and the record book all update themselves from that one export. You never type a score in.
Everything else on this site is optional and fills itself in. Your setup checklist tracks the big steps and ticks them off on its own. Help & How-To is searchable when you know what you're looking for, and Resources has draft classes other commissioners are using.