// bot docs //
PlayChart bot docs
Last updated
Everything the bot does and how to set it up. New here? Start with the bot overview.
// 01
Adding the bot
Add the bot to a server you manage (you need Manage Server there), or install it to your own Discord account. Installed for yourself, /versus, /leaderboard, /game, /chart and /help work in any server or DM.
When it joins, the bot posts a short welcome. Run /setup view to see the defaults, then /duel to try it.
// 02
Permissions
The invite asks for these. Each one is there for a reason:
| Permission | Why |
|---|---|
| Send Messages | Posts duel cards, results and replies. |
| Embed Links | Duel results, charts and recaps are embeds. |
| Attach Files | Duel cards and bracket images are uploaded images. |
| Read Message History | /duel-summary reads the chat posted after a card. |
| Use Application Commands | Slash commands. |
| Create Public Threads | Discussion threads on cards (thread options), and bracket round threads. |
| Send Messages in Threads | Posting cards inside those threads. |
| Mention @everyone, @here, and All Roles | Pinging an alert role on scheduled duels when the role itself isn't mentionable. |
Optional: Manage Roles, with the bot's role above the roles it hands out. Only needed for the linked role and schedule alert roles. /setup checks and tells you exactly what's missing before it saves.
// 03
Setup
Everything is configured with /setup (Manage Server only). Run /setup view any time to see the current config. Defaults: anyone can duel in any channel, 10 duels per person per day, a 120 second channel cooldown, and votes close at the end of the day (UTC).
| Vote close mode | What happens |
|---|---|
| End of day (default) | Voting closes at midnight UTC. |
| Custom | Voting closes custom_minutes after the card posts, 15 minutes to 7 days. |
| Manual | Voting stays open until the person who started the duel, or an admin, closes it. |
/setup access role:@Memberslimits/duelto a role.open:Trueremoves it./setup channels add:#duelslimits/duelto listed channels (25 max).clear:Trueallows any channel again./setup limits daily:5 cooldown_seconds:300sets the daily limit and cooldown./setup voting thread:Trueopens a discussion thread on every/duelcard.- Schedules, recaps, the server page and the linked role have their own sections below.
// 04
Commands
Everyone. Anyone in the server can use these.
/duelEveryonePosts a random matchup card with vote buttons. Pick a side; your vote locks in. Votes close on the schedule your server picked in
/setup voting.Admins can lock it to a role, limit it to certain channels, and set a daily limit (1 to 10 per person, reset at midnight UTC) and a channel cooldown.
Server only.
Example:/duel/duel-summaryEveryoneReads the room on the last
/duelin this channel: the button result, which way the chat leaned, and the best quotes for each side. Works on open duels too, as a "so far" read.The buttons decide the winner. The chat is color.
Example:/duel-summary/versusEveryoneWorks anywhereHead-to-head record between two games on PlayChart.
- arequired
- First game. Start typing and pick from the list.
- brequired
- Second game.
Example:/versus a:Elden Ring b:Hollow Knight/leaderboardEveryoneWorks anywhereThe global top games on PlayChart.
- genre
- Filter by genre: Action, RPG, Adventure, Strategy, Indie, Shooter, Platformer, Puzzle, Simulation, Sports, Racing or Fighting. Defaults to all.
- top
- How many to show, 1 to 25. Default 10.
Example:/leaderboard genre:RPG top:15/gameEveryoneWorks anywhereA game's PlayChart rank, rating, duel record and reviews.
- namerequired
- The game. Start typing and pick from the list.
Example:/game name:Hades/chartEveryoneWorks anywhereSomeone's PlayChart top games, posted for the channel. Defaults to you.
- user
- A linked Discord member.
- username
- A PlayChart username, for people who aren't on Discord.
- top
- How many to show, 1 to 25. Default 5.
With no options it shows your own chart, which needs a linked account.
Example:/chart user:@friend top:10/serverEveryoneThis server's own game chart, built from its closed
/duelvotes, with each game's global rank beside it.Example:/server/hottakesEveryoneGames this server rates way higher or lower than PlayChart does. A game needs 5 server duels to count; until then it says how many more it takes.
Example:/hottakes/bracket statusEveryoneThis server's bracket: the current round, when it closes, and the bracket image.
Example:/bracket status/whatshouldweplayEveryoneMultiplayer and co-op picks for your group, from everyone's PlayChart charts. Mention up to 8 players, or leave it empty to use everyone in your voice channel.
- user1
- Who to pick for. Leave empty to use your voice channel.
- user2 … user8
- More players.
You count too. Needs at least 2 linked players; it names anyone who isn't linked.
The reply is public so the group sees it, but nobody gets pinged.
Example:/whatshouldweplay user1:@sam user2:@alex/linkEveryoneLinks your Discord to your PlayChart account with a one-time code. The easier way is the Link Discord button on playchart.gg/settings;
/linkis the fallback.- coderequired
- The code from the site, like PC-XXXXXX. Codes last 10 minutes.
Replies are only visible to you. Works in servers with the bot and in its DMs.
Example:/link code:PC-7K3MQX/notifyEveryoneChoose which PlayChart DMs you get: new followers and a weekly chart digest. Both are off until you turn them on.
Linked accounts only. Replies are only visible to you. Works in servers and in the bot's DMs.
Example:/notify/helpEveryoneWorks anywhereEvery command and how to use it, plus this server's
/duelsettings.Example:/helpView PlayChartEveryoneRight-click a member (or long-press on mobile), then Apps, then View PlayChart. Shows their chart to you only.
Servers with the bot only.
Example:Right-click a member > Apps > View PlayChart
Admins. These need the Manage Server permission.
/setupAdminThe server config. Each part is a subcommand; most show the current config when run with no options.
- view
- Show the current config.
- access
role: lock/duelto members with a role.open: remove the lock.- limits
daily: duels per person per day, 1 to 10 (default 10).cooldown_seconds: gap between duels in one channel, 0 to 3600 (default 120, 0 is off).- voting
close_mode: Manual, End of day (UTC, the default) or Custom.custom_minutes: 15 to 10080 (7 days), Custom only.thread: open a discussion thread on every/duelcard.- channels
add/removea channel where/duelmay run (25 max), orclearto allow any channel. Threads under a listed channel count too.- page
public: turn the server page on playchart.gg on or off.slug: its address, 3 to 32 characters, a-z, 0-9 and dashes.- schedule
mode: Off, Daily or Weekly.channel,hour_utc(0 to 23),weekday(weekly),alert_role/alert_role_off,thread.- recap
channel: where the weekly recap posts (Mondays 00:00 UTC).off: stop it.- linked-role
role: give members with a linked PlayChart account a role.off: stop.sync: sync now instead of waiting for the daily sync.
Hidden from members without Manage Server, and checked again when it runs.
Example:/setup voting close_mode:Custom custom_minutes:120 thread:True/bracket startAdminStarts a knockout tournament of top PlayChart games in this channel. Every matchup is a normal duel card your server votes on.
- sizerequired
- 8, 16 or 32 games.
- round_hoursrequired
- 12, 24 or 48 hours per round (per wave, in big rounds).
- pool
- Global top or Genre. Defaults to global, or genre if you pick one.
- genre
- The genre, for pool:Genre.
- thread
- Give each round its own thread for its cards. Default off.
Needs Manage Server, checked when it runs. One bracket per server at a time.
Example:/bracket start size:16 round_hours:24/bracket cancelAdminCancels the running bracket after a confirm button. Its open cards are marked cancelled and count for nothing.
Needs Manage Server, checked when it runs.
Example:/bracket cancel
// 05
Scheduled duels
The bot can post a duel card on its own, daily or weekly. Set it with /setup schedule.
mode:Dailyneeds achannelandhour_utc.mode:Weeklyalso needs aweekday.mode:Offstops it.alert_rolepings a role on each card, and the card gets an Alerts button so members can opt in or out. Needs Manage Roles.thread:Trueopens a thread on each card, named after the matchup.- Scheduled cards don't use up anyone's daily limit, and votes close with your server's normal close mode.
- If the bot was offline, a missed run posts once when it comes back, never a backlog.
Example: /setup schedule mode:Weekly channel:#duels hour_utc:18 weekday:Friday alert_role:@Duelists
// 06
/bracket
A knockout tournament of top PlayChart games, decided by your server. Admins run /bracket start; anyone can check /bracket status.
- Sizes: 8, 16 or 32 games, seeded from the global chart or one genre.
- Round lengths: 12, 24 or 48 hours.
- Big rounds run in waves of 4 matchups at a time, each wave as long as the round length.
- Every matchup is a normal duel card, and bracket duels count toward your server chart like any closed duel.
thread:Truegives each round its own thread. One bracket per server at a time;/bracket cancelends it.- Brackets also show on your server page, if it's public.
// 07
Weekly recap and /hottakes
/setup recap channel:#general posts a recap every Monday at 00:00 UTC for the week that just ended. A new recap channel waits until the next Monday. Weeks with no closed duels are skipped.
- Top 5 movers on your server chart, plus new entries.
- The closest duel and the biggest landslide.
- The biggest upset: your server's pick that PlayChart as a whole disagrees with most.
- Duels and votes for the week.
/hottakes shows the games your server rates way higher or lower than everyone on PlayChart. A game needs 5 server duels before it counts.
// 08
/whatshouldweplay
Picks games a group would all enjoy, from everyone's PlayChart charts. Only multiplayer and co-op games are suggested.
- Mention up to 8 players, or run it with no options in a voice channel to use everyone there. You always count.
- Only linked players count, and you need at least 2. The reply names anyone who isn't linked so they can fix it.
- Bots never count. The reply is public, but nobody gets pinged.
// 09
Linking your account
Linking connects your Discord to your PlayChart account, so /chart, View PlayChart, /whatshouldweplay and DMs know who you are.
- 1Link your Discord.
- 2Join the PlayChart server.Join server
- 3Get your role.
Your linked role shows up automatically within a few minutes of joining.
Having trouble?
Go to #/bot-help in the PlayChart server and type /link with a code from here.
Log in first to get a code.
Open #/bot-helpUnlink any time from settings. Unlinking removes the PlayChart server's linked role and turns off bot DMs.
// 10
Linked role
In the PlayChart server, linked members get a linked role automatically: right away if you're already in the server when you link, or as soon as you join. It goes away if you unlink.
Any server can do the same with /setup linked-role role:@Linked. Saving syncs the role straight away, and the bot syncs it daily after that (sync:True runs it now). The bot needs Manage Roles, with its role above the linked role.
// 11
DMs
The bot can DM you two things. Both are off until you turn them on, and need a linked account.
- New followers: a DM when someone follows you on PlayChart.
- Weekly chart digest: Mondays. Your top 3, your week of duels, your biggest mover, and games people you follow love that you haven't ranked.
Turn them on or off with /notify in Discord, or under Discord settings on the site. If Discord blocks the bot from DMing you, both turn off; allow DMs from server members, then turn them back on.
// 12
Server pages
Your server can have a public page on playchart.gg with its chart, hot takes and brackets. It's off by default and nothing is public until an admin turns it on.
/setup page public:True slug:my-serverpublishes it at playchart.gg/servers/my-server./setup page public:Falsehides it again. The slug is kept, so republishing keeps the same address.- Public pages are listed in the server directory.
// 13
FAQ and troubleshooting
›Do votes in Discord count toward the global rankings?
No. Discord votes only build your server chart. Global rankings come from duels on playchart.gg.
›The bot isn't responding.
Check it can see and post in the channel, and that /duel isn't limited to other channels or a role (/setup view). If commands don't show up at all, make sure the bot was added with the applications.commands scope by re-adding it with the invite link above.
›It says a permission is missing.
Give the bot's role the permission it names, in server settings or on the channel. For roles (linked role, alert role), the bot needs Manage Roles and its role must be above the role it hands out.
›My linked role didn't show up.
Make sure you're linked (settings shows Linked ✓) and in the PlayChart server. It usually shows up within a few minutes. Still nothing? Unlink and link again, or ask in the server.
›/link says the code didn't work.
Codes last 10 minutes and work once. Get a fresh one from the Having trouble section above, or use the Link Discord button instead.
›/duel-summary shows no chat.
It only reads messages posted after the card, in the same channel. The vote result always shows.