// 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.

[Screenshot: Discord "Add app" screen for PlayChart]

// 02

Permissions

The invite asks for these. Each one is there for a reason:

PermissionWhy
Send MessagesPosts duel cards, results and replies.
Embed LinksDuel results, charts and recaps are embeds.
Attach FilesDuel cards and bracket images are uploaded images.
Read Message History/duel-summary reads the chat posted after a card.
Use Application CommandsSlash commands.
Create Public ThreadsDiscussion threads on cards (thread options), and bracket round threads.
Send Messages in ThreadsPosting cards inside those threads.
Mention @everyone, @here, and All RolesPinging 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 modeWhat happens
End of day (default)Voting closes at midnight UTC.
CustomVoting closes custom_minutes after the card posts, 15 minutes to 7 days.
ManualVoting stays open until the person who started the duel, or an admin, closes it.
  • /setup access role:@Members limits /duel to a role. open:True removes it.
  • /setup channels add:#duels limits /duel to listed channels (25 max). clear:True allows any channel again.
  • /setup limits daily:5 cooldown_seconds:300 sets the daily limit and cooldown.
  • /setup voting thread:True opens a discussion thread on every /duel card.
  • Schedules, recaps, the server page and the linked role have their own sections below.
[Screenshot: /setup view embed]

// 04

Commands

Everyone. Anyone in the server can use these.

  • /duelEveryone

    Posts 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-summaryEveryone

    Reads the room on the last /duel in 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 anywhere

    Head-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 anywhere

    The 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 anywhere

    A game's PlayChart rank, rating, duel record and reviews.

    namerequired
    The game. Start typing and pick from the list.
    Example: /game name:Hades
  • /chartEveryoneWorks anywhere

    Someone'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
  • /serverEveryone

    This server's own game chart, built from its closed /duel votes, with each game's global rank beside it.

    Example: /server
  • /hottakesEveryone

    Games 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 statusEveryone

    This server's bracket: the current round, when it closes, and the bracket image.

    Example: /bracket status
  • /whatshouldweplayEveryone

    Multiplayer 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
  • /linkEveryone

    Links your Discord to your PlayChart account with a one-time code. The easier way is the Link Discord button on playchart.gg/settings; /link is 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
  • /notifyEveryone

    Choose 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 anywhere

    Every command and how to use it, plus this server's /duel settings.

    Example: /help
  • View PlayChartEveryone

    Right-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.

  • /setupAdmin

    The 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 /duel to 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 /duel card.
    channels
    add / remove a channel where /duel may run (25 max), or clear to 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 startAdmin

    Starts 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 cancelAdmin

    Cancels 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:Daily needs a channel and hour_utc. mode:Weekly also needs a weekday. mode:Off stops it.
  • alert_role pings a role on each card, and the card gets an Alerts button so members can opt in or out. Needs Manage Roles.
  • thread:True opens 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

[Screenshot: Scheduled duel card with Alerts button]

// 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:True gives each round its own thread. One bracket per server at a time; /bracket cancel ends it.
  • Brackets also show on your server page, if it's public.
[Screenshot: /bracket round card]
[Screenshot: /bracket status image]

// 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.

[Screenshot: Weekly recap embed]
[Screenshot: /hottakes embed]

// 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.
[Screenshot: /whatshouldweplay result]

// 09

Linking your account

Linking connects your Discord to your PlayChart account, so /chart, View PlayChart, /whatshouldweplay and DMs know who you are.

  1. 1
  2. 2
    Join the PlayChart server.
    Join server
  3. 3
    Get 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-help

Unlink 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.

[Screenshot: Member list with 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.

[Screenshot: /notify toggles]

// 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-server publishes it at playchart.gg/servers/my-server.
  • /setup page public:False hides it again. The slug is kept, so republishing keeps the same address.
  • Public pages are listed in the server directory.
[Screenshot: Server page on playchart.gg]

// 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.