A leaderboard game bot for Slack. Install here. Works for ping-pong (2, 4 or more players), chess, etc. This is a fork of slack-gamebot that supports leaderboards per channel. Inspired by slack-pongbot, but more robust, generic and easier to improve and contribute to.
Start talking to your bot!
Shows Gamebot version and links.
Politely says 'hi' back.
Get help.
Bot credits.
You can tell the bot that it sucks. But it will talk back.
Re-registers a user. This is automatic, but a user can unregister and come back with this command.
This command can also update a user's registration, for example after the user has been renamed. The bot notices user renames, but this may be necessary if the bot wasn't running during that operation.
gamebot register
Welcome back Victor Barna! I've updated your registration.
You can also remove yourself from the leaderboard with gamebot unregister me
and re-register yourself again with gamebot register
.
The data is not removed, but the user will no longer appear in the leaderboards and cannot participate in challenges.
Creates a new challenge between you and an opponent.
gamebot challenge @WangHoe
Victor Barna challenged Wang Hoe to a match!
You can challenge anyone to play.
gamebot challenge @here
Victor Barna challenged anyone to a match!
You can create group challenges, too. Both sides must have the same number of players.
gamebot challenge @WangHoe @ZhangJike with @DengYaping
Victor Barna and Deng Yaping challenged Wang Hoe and Zhang Jike to a match!
Show elo at stake for each opponent.
gamebot challenge? @WangHoe
Victor Barna challenging Wang Hoe to a match is worth 48 and 24 elo.
Accept a challenge.
gamebot accept
Wang Hoe and Zhang Jike accepted Victor Barna and Deng Yaping's challenge.
Record your loss.
You cannot record a win.
Record your loss with a score, loser first.
gamebot lost 5:21
Match has been recorded! Wang Hoe crushed Victor Barna with the score of 21:5.
You can record scores for an entire match.
gamebot lost 15:21 21:17 18:21
Match has been recorded! Wang Hoe defeated Victor Barna with the scores of 21:15 17:21 21:18.
You can record scores for a match you have already lost.
gamebot lost
Match has been recorded! Wang Hoe defeated Victor Barna.
gamebot lost 15:21 21:17 18:21
Match scores have been updated! Wang Hoe defeated Victor Barna with the scores of 21:15 17:21 21:18.
You can record a loss without a challenge.
You can also record scores and record lost matches without a challenge including with multiple players.
gamebot lost to @WangHoe @ZhangJike with @DengYaping 5:21
Match has been recorded! Wang Hoe and Zhang Jike defeated Victor Barna and Deng Yaping with the score of 21:5.
Draws a challenge, and records a tie. All other players will also have to draw to record a match.
gamebot draw
Match is a draw, waiting to hear from Victor Barna.
gamebot draw 2:2
Match has been recorded. Victor Barna tied with Zhang Jike with a score of 2:2.
You can also record scores and ties without a challenge.
gamebot draw to @VictorBarna
Match is a draw, waiting to hear from Victor Barna.
gamebot draw 2:2
Match is a draw! Wang Hoe tied with Victor Barna with the score of 2:2.
You can also record scores and have multiple players.
Records your resignation, which is a special kind of lost
without a score.
gamebot resigned
Match has been recorded! Victor Barna resigned against Wang Hoe.
You can resign without a prior challenge.
gamebot resigned to WangHoe
Match has been recorded! Victor Barna resigned against Wang Hoe.
Decline a challenge.
gamebot decline
Wang Hoe and Zhang Jike declined Victor Barna and Deng Yaping's challenge.
Cancel a challenge.
gamebot cancel
Victor Barna and Deng Yaping canceled a challenge against Wang Hoe and Zhang Jike.
Taunt other players.
gamebot taunt @WangHoe
Victor Barna says Wang Hoe sucks at ping pong!
Get the leaderboard.
gamebot leaderboard
1. Victor Barna: 3 wins, 2 losses (elo: 148, lws: 5)
2. Deng Yaping: 1 win, 3 losses (elo: 24)
3. Wang Hoe: 0 wins, 1 loss (elo: -12)
The leaderboard contains players ranked by Elo, use leaderboard 10 or leaderboard infinity to see 10 players or all players, respectively. Use set leaderboard max 3
to limit the default leaderboard size to 3.
The leaderboard also shows the longest winning (lws) and losing (lls) streaks of at least 3.
In case you want to see the leaderboard in reverse order (which would be totally wrong but motivational for people at the bottom of the leaderboard), specify a negative number or -infinity
:
gamebot leaderboard -5
1. Wang Hoe: 0 wins, 1 loss (elo: -12)
2. Deng Yaping: 1 win, 3 losses (elo: 24)
3. Victor Barna: 3 wins, 2 losses (elo: 148, lws: 5)
Displays top 10 match totals in the current season.
gamebot matches
Victor Barna defeated Wang Hoe 3 times
Deng Yaping defeated Victor Barna once
You can also get match totals for specific players.
gamebot matches @WangHoe
Victor Barna defeated Wang Hoe 5 times
Wang Hoe defeated Deng Yaping twice
Use matches 3 to see top 3 matches or matches inifinity to see all matches in the season.
Displays all outstanding (proposed and accepted) challenges.
Show the smallest range of ranks for a list of players. If no user is specified, your rank is shown.
gamebot rank @WangHoe @DengYaping
2. Deng Yaping: 1 win, 3 losses (elo: 24)
3. Wang Hoe: 0 wins, 1 loss (elo: -12)
Promotes other users to captain. Must be a captain to do that.
gamebot promote @WangHoe @DengYaping
Victor Barna promoted Wang Hoe and Deng Yaping to captain.
Demotes from captain to a normal user. Must be a captain and the team must have other captains to do this.
gamebot demote me
Victor Barna is no longer captain.
Display current team's info, including captains.
gamebot team
Team T04KB5WQH #pong, captains Deng Yaping and Victor Barna.
Reset all users and pending challenges and start a new season. Must be a captain to do this and confirm by specifying the team ID or name.
gamebot reset #pong
Welcome to the new season!
Display the current season's leader and game totals.
gamebot season
Current: Deng Yaping: 1 win, 0 losses (elo: 48), 1 game, 2 players
Display the current season's leader, past seasons' winners and game totals.
gamebot seasons
Current: Deng Yaping: 1 win, 0 losses (elo: 48), 1 game, 2 players
2015-07-16: Wang Hoe: 28 wins, 19 losses (elo: 214), 206 games, 25 players
Captains can remove users.
gamebot unregister @WangHoe
I've removed @WangHoe from the leaderboard.
Users that have left a Slack team can be removed by omitting the @
, e.g. gamebot unregister WangHoe
.
Show current default settings in a DM or channel settings in a channel.
Sets a nickname for display purposes in a channel.
gamebot set nickname John Doe
Unset a nickname.
gamebot unset nickname
Captains can set nicknames of users by using a Slack mention.
gamebot set nickname @WangHoe John Doe
Captains can unset nicknames, too.
gamebot unset nickname @WangHoe
Enable/disable GIFs for your team.
gamebot set gifs off
GIFs are now off.
Using unset gifs
is equivalent to set gifs off
.
Set and reset the leaderboard max. The default is infinity, ie. to show the entire leaderboard.
gamebot set leaderboard max 5
The following are equivalent.
gamebot set leaderboard max 0
gamebot set leaderboard max infinity
gamebot unset leaderboard max
Set and reset the base elo for new seasons. The default is 0.
gamebot set elo 1000
gamebot unset elo
Set additional aliases for the bot. For example, you could upload a custom emoji for :pong: and set an alias for it.
gamebot set aliases pp :pong:
Bot aliases are set to pp and :pong:.
Remove all aliases with unset aliases
.
Aliases only work in public channels.
Use elo
to display ELO change details when a match being recorded.
Use leaderboard
to display a leaderboard in a thread after a match has been recorded.
gamebot set details elo leaderboard
Channel details are now `elo` and `leaderboard`.
Remove all details with unset details
.
Enable/disable team data in the public API for your team and display team API URL.
gamebot set api on
API is now on!
https://gamebot2.playplay.io/api/teams/57224e65bc526eac95bfe316
gamebot unset api
API is now off.
You will need a token to use the API, DM the bot set token xyz
, then pass X-Access-Token: xyz
in a header to the API.
Allow unbalanced challenges with different numbers of opponents.
gamebot set unbalanced on
Unbalanced challenges are now on!
DM to show paid subscription information.
subscription
Your trial subscription expires in 13 days. Subscribe your team for $49.99 a year at ... .
Captains can see credit card info.
subscription
Customer since August 11, 2018.
Subscribed to Slack PlayPlay (Yearly) ($49.99), will auto-renew on August 11, 2019.
Invoice for $49.99 on August 11, 2018, paid.
On file Visa card, user@example.com ending with 4242, expires 2/2022.
Update your credit card info at ... .
DM to cancel auto-renew for a paid subscription.
unsubscribe
Subscribed to Slack PlayPlay (Yearly) ($49.99), will auto-renew on August 11, 2019.
Send `unsubscribe sub_DOvlBd1lETNimB` to unsubscribe.
unsubscribe sub_DOvlBd1lETNimB
Successfully canceled auto-renew for Slack PlayPlay (Yearly) ($49.99).
Slack-gamebot implements a Hypermedia API. Navigate to the application root to browse through available objects and methods. PlayPlay.io's Gamebot is here.
A team captain must opt-in to serve data via the API with set api on
. The data served by the API includes the team's Slack IDs, usernames and game stats.
We recommend HyperClient to query the API programmatically in Ruby.
This bot is built with slack-ruby-bot-server. See CONTRIBUTING.
Copyright (c) 2015-2025, Daniel Doubrovkine, Vestris LLC, Artsy and Contributors.
This project is licensed under the MIT License.