From an empty Discord server to a league that advances itself. Takes about fifteen minutes, and nothing you do here is permanent — every setting on this page can be changed later without losing anything.
Most commissioners arrive here worried about breaking something — their server, their dynasty, or a league other people are counting on. So here is what is actually true, up front.
Nothing here is one-way. Every choice below — your channel, your league name, your week, your member role — can be changed afterwards with a single command, and none of them touch your league's recorded data. There is no step in this guide you have to get right first time.
You can run setup more than once. /dd setup is built to be re-run. It adds commissioners rather than replacing them, and it leaves your current week and dynasty year alone unless you deliberately fill those boxes in. If you mistype your league name, just run it again.
DynastyDesk never asks for Administrator. It requests ten specific permissions, all of them about posting and managing its own board and threads. The full list is in Phase 1.
Who sees what: almost everything the bot says back to you is private — visible only to you, in the channel, and gone when you reload. Throughout this guide, anything that posts publicly is called out explicitly. If a callout doesn't say so, nobody else sees it.
That's the whole list. You do not need your players present, your schedule decided, or your dynasty at any particular point.
Yes — at any point. Week 3 of year one, or halfway through year six. This is a normal way to start, not a workaround, and there are two boxes in the setup command built specifically for it.
Fill those two in and DynastyDesk picks up exactly where your dynasty already is. It won't try to advance you forward from the preseason, and it won't ask you to backfill anything you don't want to.
What about the seasons you've already played? Entirely up to you. The league runs fine from today forward with no history at all. If you'd like past results in the record book eventually, you can add them later from the web app at your own pace — it is never a prerequisite for anything.
Use the Add to Discord button at the top of this page. Discord will ask which server to add it to and show the permissions it wants. Pick your league's server and approve.
Those permissions, and why each one is needed:
#dynasty-desk for you, so you don't have toNo Administrator, and no access to your other channels' history. The list above is the whole request. DynastyDesk only acts in the channels you point it at.
Who sees this: nobody but you. Adding the bot posts nothing in your server. You'll get a DM explaining what to do next and what setup will make public — your members see nothing at all until you run /dd setup. If you change your mind before then, removing the bot leaves no trace.
Added the bot before August 2026? The invite now also asks for Manage Channels, and Discord does not grant new permissions to a bot already in your server. If you ever see "Couldn't create a channel", either use the invite link again or tick Manage Channels on the DynastyDesk role under Server Settings → Roles. Everything else works either way — you can always make the channel yourself and point the bot at it.
DynastyDesk keeps one status board — a single post showing who's ready, who's away, this week's games and the advance deadline. It doesn't post a new one each week; it edits the same message in place, so it's always current and never buried.
That's why the channel choice matters more than it looks: the bot keeps its board channel clear of chat. A human message pushes the board out of view and makes it look stale, so the bot deletes messages posted there and sends the author a short DM explaining where to talk instead.
Leave the channel box empty in the next step and DynastyDesk creates #dynasty-desk for you, already configured:
This is the option to pick if you're unsure. It's a brand-new channel, so there's nothing in it to disturb.
You can name any existing channel instead. Do this with a channel you've made for this purpose.
Don't point it at a channel people talk in. Chat in the board channel is deleted — and unlike Option A, an existing channel keeps whatever permissions it already had, so people can still post there and will keep having their messages removed. Pointing DynastyDesk at #general means your league's conversation starts disappearing.
If you want the board in an existing channel, deny Send Messages for @everyone on it first, the way Option A does automatically.
Changing your mind later costs nothing. /dd channel #somewhere-else points DynastyDesk at a different channel, then /dd board posts a fresh board there. Your league, rosters, results and history are untouched — only the posting location changes. This is why the channel decision is genuinely low-stakes.
/dd setupIn any channel, type /dd setup and press Tab. Discord shows you a box per option. Fill in what applies and leave the rest empty — every one of them has a sensible default.
#dynasty-desk created for you.Who sees this: the command and its reply are private to you. This is the step that goes live — setup posts your status board and a pinned control panel into the channel, and your league can see both. The reply tells you exactly what became visible.
A confirmation listing your league name, channel, commissioner and starting week, then what your league can now see, then what's left to do:
✅ DynastyDesk is set up!
🏈 League: Your League | 📋 Channel: #dynasty-desk | Commish: @you | No role restriction
📅 Starting at Year 2026, Preseason
📢 Now visible to everyone in #dynasty-desk: the Preseason status board, and a pinned control panel with the weekly commands and your setup checklist.
🔒 Still private: this message, and every reply to a panel button.
Next steps:
1. Add league members with /roster add
2. Set the advance schedule with /schedule cadence
3. Use /week set anytime to correct the week or deadline
Setup pins a panel in your channel so the next steps aren't only in a message that disappears. It carries the week and deadline, the commands your league actually uses each week, and buttons for adding members, setting the cadence and re-posting the board.
Its checklist reads your league rather than remembering what you were told — tick things off by doing them, in Discord or on the web, and it updates itself. Once all four are done it drops the checklist and just gets on with being a reference.
Who sees this: everyone can see the panel; nobody sees anyone's clicks. Every reply to a panel button is shown only to the person who pressed it. The one exception is Post status board, which posts to the channel and says so before it does.
You'll also get a follow-up asking whether you need a team draft — that's for leagues that haven't settled who coaches which school yet. If everyone already has their team, dismiss it and carry on.
Got something wrong? Run /dd setup again. It merges rather than overwrites: existing commissioners are kept, and your week and year are left exactly as they are unless you fill those boxes in on purpose.
Setup already posted this — it goes up with the control panel the moment /dd setup finishes, so your channel is never sitting empty. You only need /dd board if you want to re-post it.
Who sees this: everyone. It's the first thing your league notices, so it's worth having your channel settled before you run setup.
To re-post a board, use /dd board, never /advance. Advancing is how you move to the next week — run it to fix a board and you'd skip past the week you're on. /dd board only posts; it never moves your league.
The board is the one thing your players need to look at. It shows the week, the deadline, every coach and whether they're ready, and this week's games. It edits itself in place all week, so it never goes stale and nobody has to scroll back for it. Pin it.
Board looking wrong, or gone? /dd board again. It's safe to run whenever — it replaces the board, not your data.
Phase 1 got the bot running. This is everything else you need before your league can actually play a week through it — and it is a short list.
Every coach needs a team. Two ways, and you can mix them:
/roster add for each member, picking their school from autocomplete. Fastest if your teams are already settled./roster set and claims their own school, plus their Twitch or YouTube link if they stream. Less work for you.All 138 FBS schools are preloaded. /roster view shows you where everyone stands.
Run /schedule cadence and pick how often your league advances — a day, a time, a timezone and an interval in hours. DynastyDesk anchors to that schedule, so it doesn't drift a few hours later every week the way a manual reminder does.
The one option worth a decision:
/advance. The cadence still tracks, so there's no drift; you just hold the trigger.Not sure? Start on Auto. Leagues that pick Manual usually do it because they want a grace period for someone to finish a game. You can switch whenever, and you can override a single week either way without changing your league default.
You can set this from Settings → Advance Schedule in the web app instead — it's the same setting, not a second copy.
Once you're set up, every week is the same four beats — and three of them belong to your players, not you.
Coaches react ✅ on the status board when they're free to play, or 🏝️ if they're away. The board updates live.
Coach-vs-coach games get their own thread automatically so the two of them can sort out a time. Everyone playing the CPU shares one thread.
/result log with the score. CPU games record instantly; coach-vs-coach games ask the opponent to confirm. Screenshots via /stats submit are optional and can come later.
On Auto, this happens on its own. On Manual, you run /advance start, check the summary, then /advance confirm.
Your league is photographed before every advance. DynastyDesk records the state of everything an advance is about to change, immediately before changing it — and if it can't record that, the advance doesn't run. Advancing is not a step you need to be nervous about.
Very little, which is the point. Send them this:
We're using DynastyDesk. Claim your team with /roster set, react ✅ on the pinned status board when you're ready to play, and run /result log with your score when you're done. That's it.
If they want the longer version, the player guide covers everything a coach needs and nothing an admin does. It's a five-minute read.
That's a working league. The bot posts your board, tracks who's ready, opens your matchup threads, records results and advances your weeks on schedule.
Everything past this point is optional. None of it is on by default, nothing is worse for being left off, and you can turn any of it on months from now without redoing anything above.
Everything below is off until a commissioner switches it on, and every one of them can be switched back off.
#stream-alerts channel, or uses one you name.