Feature catalog
Everything Tempo does, in the order you'll need it.
Grouped by the job, not the command. Each section starts with what it does for your league and lists the commands underneath. Pick a sport. Nearly every section here can be switched off if your league doesn't run it.
Setup
Empty server to week one, without a checklist.
One guided setup
A single wizard walks through league name, channels, staff roles, join and leave messages, and which features you want. Re-run it any time to change an answer. Nothing is locked in on day one.
/setup run
Your league, already loaded
All 134 FBS programs or all 32 Madden teams, seeded with abbreviations, team colors and a starting conference layout you can realign in one command. You pick the set; Tempo fills in the rest.
A setup check that finds what's missing
Audits your saved configuration against the live server and names what is unset or broken. A deleted channel, a missing role, a permission somebody revoked. You find out before your coaches do.
/setup status
Turn off what you don't run
Points, upgrades, drafts, rivalries, Game of the Week, the rulebook, the open-teams board and schedule posts each toggle independently. Switched-off commands disappear from the Discord picker entirely.
Rename without starting over
Change the league name and every embed, board and welcome message follows.
/setup name
Teams & coaches
Who runs what, and what's still open.
Assign a team, get the role
Give a coach a program and Tempo creates the Discord role, colors it to the team, and applies it. Removing them hands the team back.
/team assign/team remove
A recruiting board that updates itself
A live list of every program still available, posted in its own channel and edited whenever a team changes hands. That includes when someone rage-quits the server at 2am and their program comes back on the board without you.
/openteams/team open/team close
Open the whole board at once
Start a recruiting cycle in one command instead of clicking through teams one at a time. Works per conference too.
/team openall/team closeall/conference open/conference close
Realign to match your league
Move teams between conferences, rename a conference, or see the whole alignment with team counts. Your league doesn't have to match real life.
/conference move/conference rename/conference list
Hand-edited roles stay in sync
If someone adds or strips a team role manually in Discord, Tempo notices and updates its own records to match. It also reconciles every role on startup, so a restart repairs drift instead of causing it, and you can force a resync yourself.
/team syncroles
One card per coach
Team, points balance, upgrade history and record in a single card that any member can pull up.
/profile
Edit any team's details
Name, conference, abbreviation, colors, rating and notes. For custom teams, relocations, or fixing the typo you have been looking at all season.
/team edit/team info
Welcome & departures
The first thing a new coach sees, and the cleanup when one leaves.
Write your own welcome message
Not a fixed greeting you toggle on. The actual text is yours, with inserts that resolve to your real channels, so a new coach gets pointed at your rules, your league info and your open-teams board by name.
And your own leaving message
The same control over departures. The default announces who left and which team just opened up.
You never have to open the template
Both messages ship with wording that already reads well and already contains the right inserts. Pick your channels in the setup wizard and the defaults are good enough to leave alone.
A departing coach frees their team
When someone leaves the server, their program is released automatically and the open-teams board refreshes. No stale roster, no orphaned role.
See it exactly as they will
Preview both messages fully rendered, with real channel links and your real league name, before anyone joins.
/welcome preview
Drafts
Signup through final pick, run in the server.
Signups with a button
Post a signup board and coaches join or leave by clicking it. The board survives bot restarts, so a redeploy mid-signup costs you nothing.
/draft open/draft join/draft leave/draft list
Order revealed one pick at a time
Close signups and run the randomized order. It's shuffled once and stored, then revealed with suspense rather than dumped as a list.
/draft close/draft start
On the clock, and pinged for it
Coaches pick their program in order. Whoever is up gets mentioned by name, and picks are validated against what's actually available. The selection board can be reposted at any time.
/draft selection/draft pick/draft board
Keep it moving
Skip a coach who's gone quiet, re-run an order if you have to, and post the final results.
/draft advance/draft reroll/draft results
Week to week
Deadlines, storylines and reasons to show up.
Schedule posts that count themselves down
Post the week with the advance deadline as a Discord timestamp. It renders in every coach's own timezone and ticks down on its own, so nobody asks what time that is for them.
/schedule
Rivalries with an all-time record
Coaches can challenge each other directly and accept with a button, or you can set a series yourself. Every result is kept, so the record and streak follow the series season to season. A rivalry that's run its course gets archived rather than deleted.
/rivalry invite/rivalry set/rivalry result/rivalry list/rivalry archive
Game of the Week voting
Put the headline matchup up for a server-wide vote. Record the winner and everyone who picked right is paid automatically, including the members who don't hold a team.
/gotw create/gotw close/gotw winner/gotw list
Coaches announce their own streams
A coach saves their Twitch channel once, then runs the command on its own whenever they go live. Tempo posts the announcement with a watch button, so nobody has to dig up the link. Saving or correcting a channel never pings the server, and going live is capped at once an hour per coach.
/stream
Points & upgrades
The league economy, if you run one.
Points with a reason on every line
Award, deduct or set a balance outright, each with a reason attached.
/points add/points remove/points set
A ledger anyone can check
Every point in and out is appended, never rewritten. Balance disputes end in ten seconds because the coach can look it up themselves.
/points history
Coaches spend points on ratings
The cost scales with how many rating points they're buying, at a per-point rate you set. Requests land in a queue instead of your DMs.
/upgrade
Approve or decline from your phone
Every request is a card with buttons. The cost is held the moment a request goes in, so the same points can't be spent twice, and a decline refunds them automatically and exactly once.
/upgradepending/upgradehistory
43 ratings out of the box, or your own list
Ships with EA's skill ratings across seven categories: passing, receiving, ball carrying, blocking, defense, special teams and athleticism. Add your own, rename one, or remove any you don't allow. Removed ones stay readable in old history.
/attribute list/attribute add/attribute rename/attribute remove
Rules & announcements
The things people ask about twice a week.
A starter rulebook, pulled up by section
Tempo ships a standard dynasty ruleset in five sections: starting off, gameplay, fourth down, scheduling games and violations. Anyone can read it in the server without hunting for a pin. It is a starting point, not a custom rulebook. If your league already wrote its own, switch this off and keep your own.
/rules
Announce as Tempo
Write in a popup and post it to any channel as the bot, with mentions under your control.
/say
Clean up a channel
Bulk-delete recent messages, optionally only from one member.
/clear
Staff controls & safety
Control, accountability and the boring-but-important parts.
Commissioners without Administrator
Name the roles that count as staff. Your commissioners get Tempo's staff commands without being handed the keys to the whole server.
A log of every staff action
Team changes, point adjustments, upgrade decisions, draft events and conference moves all post to a channel you choose. When a coach insists you never took those points off him, you have the line.
Your league's data is yours
Every setting, team, balance and transaction is scoped to your server. Nothing is shared or visible between leagues.
Billing never leaves the server
The same command subscribes the server and, once it is active, hands you a button into Stripe's billing portal to change the card or cancel. If a renewal fails you get seven days before commands lock, not an outage mid-season.
/activate
Setup
Empty server to opening night.
One guided setup
The same single wizard as Football, with 2K-specific questions: league name, channels, staff roles, join and leave messages, and which features you want on.
/setup run
All 30 franchises, already loaded
The full NBA seeded with conferences and colors on setup. Nothing to import.
A setup check that finds what's missing
Audits your configuration against the live server and reports anything unset or broken before your league runs into it.
/setup status
Turn off what you don't run
Trades, the committee layer, the lottery, the team draft, Picking Games, points, upgrades, rivalries, schedule posts, force wins and position changes each toggle independently. Disabled commands disappear from the picker.
Teams & coaches
Who holds which franchise, and what's still open.
Assign a franchise, get the role
Tempo creates the Discord role, colors it to the team and applies it. Removing a coach hands the franchise back.
/team assign/team remove
A board that updates itself
A live list of every franchise still available, edited whenever a team changes hands, including when a coach leaves the server.
/openteams/team open/team close
Conference management
Move franchises between conferences, rename one, open or close a whole conference at once, or see the full alignment with counts.
/conference move/conference rename/conference open/conference list
Hand-edited roles stay in sync
Edit a team role manually and Tempo updates to match. Roles are also reconciled on startup, and you can force a resync yourself.
/team syncroles/team info
One card per coach
Franchise, points balance and league history in a single card.
/profile
Welcome & departures
The first thing a new coach sees, and the cleanup when one leaves.
Write your own welcome message
The actual text is yours, with inserts that resolve to your real channels, so a new coach is pointed at your rules and your open-teams board by name instead of a generic greeting.
And your own leaving message
The same control over departures, defaulting to who left and which franchise just opened up.
A departing coach frees their franchise
Leaving the server releases the team automatically and refreshes the open-teams board.
See it exactly as they will
Preview both messages fully rendered before anyone joins.
/welcome preview
Trades
The part of a 2K league that causes the most arguments.
A public trade block
Coaches post what their team has available and pull it down when it's gone. Everyone can read the board, so shopping happens in the open.
/trade block/trade unblock/trade blocklist
Structured proposals, not a wall of chat
Each offer records what both sides give, so it can be reviewed later instead of reconstructed from scrollback. Staff can also draft a trade between two other teams.
/trade propose/trade proposefor/trade list/trade cancel
Optional committee voting
Turn on the committee layer and every proposal carries vote buttons. The tally is recorded and shown to staff, who make the final call with the reason on record.
/trade override
Lottery & team draft
Setting the order, then picking franchises in it.
An equal-odds lottery
Every entrant has the same chance. The order is drawn once and stored, so a restart can never re-roll it, and the result can be re-posted any time.
/lottery run/lottery results
Signups with a button
Coaches join or leave by clicking the board, which survives bot restarts.
/draft open/draft join/draft leave/draft close
On the clock, and pinged for it
Franchises are picked in lottery order. Whoever is up gets mentioned, and picks are validated against what's still available.
/draft start/draft pick/draft board
Keep it moving
Skip a coach who's gone quiet and post the results.
/draft advance/draft results
Week to week
Deadlines, storylines and reasons to check in on an off night.
Schedule posts that count themselves down
Post the week with its deadline as a Discord timestamp. It renders in every coach's own timezone and ticks down on its own.
/schedule
Picking Games
Put a matchup up for a league-wide vote with a point reward you set. Record the winner and everyone who picked right is paid automatically, exactly once.
/picks create/picks close/picks result/picks list
Rivalries with an all-time record
Coaches challenge each other and accept with a button, or you set a series yourself. Every result is kept, so the record follows the series season to season, and a rivalry that's run its course gets archived rather than deleted.
/rivalry invite/rivalry set/rivalry result/rivalry list/rivalry archive
Coaches announce their own streams
A coach saves their Twitch channel once, then runs the command on its own whenever they go live. Tempo posts the announcement with a watch button, so nobody has to dig up the link. Saving or correcting a channel never pings the server, and going live is capped at once an hour per coach.
/stream
Points & upgrades
Attributes and badges, on your terms.
Points with a reason on every line
Award, deduct or set a balance outright. Picking Games and upgrade decisions write to the same ledger.
/points add/points remove/points set
A ledger anyone can check
Every movement is appended with its source, so a coach can answer their own balance question.
/points history
Attribute upgrades priced by the jump
Cost scales with how far a rating moves, so a two-point bump isn't the same price as a ten-point one, and a league rating cap stops the request before it is filed.
/upgrade request
A separate badge track
Bronze to Silver to Gold to Hall of Fame, with its own price per step and one tier at a time enforced. Nobody buys their way from Bronze straight to Gold.
/upgrade request
Approve or decline from your phone
Attribute and badge requests share one queue of cards with buttons. Points are returned if you decline.
/upgrade pending/upgrade history
League requests
The two things coaches always need a ruling on.
Force wins for no-shows
A structured path for unplayed games instead of a paragraph in general chat, with the opponent and the reason on record.
/request forcewin
Position changes
Coaches submit the player, the current position and the one they want. You approve or decline it.
/request position
One queue, with buttons
Everything waiting on a ruling in one place, and a full history of who asked for what and who decided.
/request pending/request history
Staff controls & safety
Control, accountability and the record.
Commissioners without Administrator
Name the roles that count as staff. Committee and commissioner permissions map to roles you already have.
A log of every staff action
Trades, votes, upgrade decisions, roster moves, lottery runs and point adjustments all post to a channel you choose.
Announce as Tempo, and clean up
Post to any channel as the bot, and bulk-delete recent messages when a channel gets away from you.
/say/clear
Your league's data is yours
Every setting, franchise, balance and trade is scoped to your server. Nothing is shared between leagues.
Billing never leaves the server
The same command subscribes the server and, once it is active, opens Stripe's billing portal to change the card or cancel. A failed renewal gives you seven days before commands lock.
/activate
Turn on what you need. Ignore the rest.
Most of what is on this page is optional. /setup run lets you pick, and you can change your mind mid-season without starting over. A switched-off feature's commands disappear from the Discord picker entirely, so your coaches never see an option that does nothing. $24.99 per year, per server, whichever sport you run.
See the four steps or read the FAQ first.