Discord bot

Dear OSR Community,

As you already know, here at OSR we try to provide you with all you need to help you advance your Go studies and to facilitate the needs of our community. As part of this, we have decided to create some extra functionality through our Discord server by using our bot. The base functionality of the bot was initially written by FluffM, and then further advanced by climu and korni, later on joined by Razza and Xandaros. True love to all of you. <3

Our little creation, called “OSR bot” has been in development phase up to now. We have annoyed many of you by changing the commands and/or functionality from time to time, but we are trying to achieve the best results for the end users. With this post, we are ready to officially announce our Discord bot and guide you through the actions it can perform for you. Remember that most of these actions can be performed in our Discord server, as well as by direct messaging the bot.

At this point, we would really like your help to improve our bot and its functionality. Although we have come to the official stage of our bot, this will be the real test! We want you to (ab)use our bot and feedback to us not only what has gone wrong, but also what you find inconvenient and how would you prefer to see it. Although all the developers (erhm!) involved are proud for what we’ve built so far, you need to remember that it will be a failure for us if it doesn’t serve the community. So please, please, please, give us your feedback openly!

So without further ado, here is the user guide with the current functionalities:

“OSR bot” user guide

!who [nickname or discriminator]
If you want to find the rank or a user, or a quick link to their OGS/KGS accounts, then you will find this command very useful. For users to be listed, they will have to link their OSR website account with their Discord account and be assigned the “OSR Member” role from one of our team members. If the search is not successful, the closest matching users in our Discord server will be returned.



This command will list the various discord roles available for organising the server, along with the commands you can use to join or remove yourself from a specific role. Al of our roles are designed to be long term roles, so you can assign yourself once and forget about them, unless your circumstances change. The available roles are:

  • @player: All users (new and old) will be assigned this role by default. This will be equivalent to the tag @here, but with an easy way to opt-out (!no go) for those people that don’t want to be tagged. Of course you can always opt-in at any time (!go). Please note that this is not an active role, and it won’t guarantee that people will want to play games. It is only there to show people who are generally interested in games, but not necessarily available right now.

  • @tsumegoer: Oftentimes, tsumego get posted on our channels, with discussions and solutions. By joining this role, when someone posts a new tsumego, they will be able to tag you and notify you of their post.

  • @reviewer: Big part of our community is to help each other in improving at go. Apart from reviewing the games with our opponents, we have many high-ranking people who offer to help us in reviewing our games. People who are happy and able to help in reviewing games are encouraged to join this role, so that users can quickly refer to this group to get a review.

  • @ddk/@sdk/@dan: The last set of roles separates people with respect to their skill level. This can be used for when appropriate material is posted for one specific group, or there is something of interest that can be split based on skill level. This is probably our least used role so far.

!no [role] (where role = [go/tsumego/review/ddk/sdk/dan])

Remove yourself from a specified role

!list [role] (where role = [go/tsumego/review/ddk/sdk/dan])

Get the names of the users in a specified role

!league [optional parameter]

This command is mainly for new users and it lists the various OSR league games and their rules. Further information can be shown through the optional parameters = [ladder, meijin, dan, ddk, join, rules, faq]

!sensei [term]

Sensei’s Library is an invaluable tool for every Go player. To provide our users with a quick reference, this command can be used to draw information from Sensei’s Library on a specific topic. If the search is successful, it will return the first paragraph from Sensei’s Library, along with other potential matches. If the search is unsuccessful, it will return the closest matches it could find.

!quote [message ID] [response]

One of the features Discord is missing is quoting messages. Fear not, because your favourite Discord bot is here to save the day! You can now quote and reply to a message by using this command. To be able to get the message ID for messages you want to quote, you will have to enable the developer features on your Discord platform. This is enabled through: User Settings > Appearance > Advanced > Developer Mode. Don’t worry about this, it only means you will have more options (such as Copy ID in messages) when pressing Right-Click on your mouse.


This will display a more concise version of this user-guide within Discord.


It will display some generic info about our lovely bot.


To avoid potential spamming, most of our commands will indicate in one way or another who the command was requested from. If you want to achieve something in private, try sending a Direct Message (DM) to OSR bot.

How to find a game

One of the most important pieces of information is finding a game. The process of finding a game will remain unchanged, with the only difference that instead of tagging @here, players will now be tagging @player group instead. This is done in order to be able to give people the ability to opt-out from being pinged at each game request.


 Let us know what you think!

We are again, building this to make your OSR go experience easier and better, just for you. Feel free to let us know what you think. Feedback, critics and ideas are always helpful.