FIBS logo with TourneyBot added on

FIBS TourneyBot Home

What fun it is to play backgammon on FIBS. People from every corner of the globe, from beginners to world class players, available for simple games and chatter or for serious high level matches. But every once in a while one wishes that there was something else, something more competitive than just strings of non-related matches...

This is where TourneyBot tries to help. TourneyBot is an automated tourney manager. It is a non-playing bot that can organize and manage tourneys. It advertises scheduled tourneys via shouts, registers players, draws the match-ups, records the score and declares winners.



How does this work?

A Tourney Director creates a new tourney of a pre-defined type and then sets its properties, like name, required number of players, match length, description etc.

Once she opens the tourney, players start registering for participation. They do this simply by sending a tell to TourneyBot.

The Tourney Director starts the tourney once enough players sign up. TourneyBot then calculates the match-ups and notifies the players on who their opponents are.

When a pair completes a match, TourneyBot tries to automatically register the result and take appropriate action (advance the winner to the next round, eliminate the loser or similar). It keeps doing that until the winner is determined, at which point it closes the tourney and announces the winner. I think that's about it in a nutshell.

Quickstart Guide

This section provides a quick introduction to using TourneyBot. If you're interested in detailed description of all commands that the bot understands, you should check out the Command Reference.

Players' Guide

To get the list of available tourneys, you need to send the tourneys command to the bot:

tell TourneyBot tourneys

TourneyBot will then send the list of current tourneys, one per tell. For example, a possible response might be:

TourneyBot: Listing tourneys:
TourneyBot: |7: [bracket] MadMatt's Simple Tourney| |Directors: MadMatt| |Status: Signing up!|
TourneyBot: Finished listing current tourneys.

The above means that there is currently one tourney, namely Tourney #7, which is of type bracket (simple single elimination tourney). The tourney's name is MadMatt's Simple Tourney, the Tourney Director is MadMatt and sign-ups are currently possible.

If you want more information about Tourney #7 before you sign up for it, do:

tell TourneyBot tourney 7

TourneyBot's will send back something like the following:

TourneyBot: Displaying information about Tourney 1:
TourneyBot: |7: [bracket] MadMatt's Simple Tourney| |Directors: MadMatt| |Status: Signing up!|
TourneyBot: Min players: 4 Max players: 16 Registered players: 9 (7 spots left)
TourneyBot: Match length: 1 Match length finals: 3
TourneyBot: Description: This is a simple single elimination tourney. All matches are 1 pointers except for the final one, which is a 3 point match. If you lose connection while playing a tourney match, you have 10 minutes to come back. Should you fail to do so, your opponent will be awarded a win.
TourneyBot: Done displaying information on Tourney 7.

Once you decide to register for the Tourney #7, all you have to do is:

tell TourneyBot register 7

If you meet the requirements, TourneyBot will register you for Tourney #7.

TourneyBot: You have registered for Tourney #7. You will be informed on who your first opponent is as soon as the tourney starts.

From your perspective, this is pretty much it. Now, every time something important happens in the tourney (it's been started, you win or lose a match, your next opponent is determined etc.), you'll get a message from TourneyBot. For example, when the bot draws your match, you'll get something like this:

Message from TourneyBot: T7R1M3: You (1629.45) vs. TwoTimesCharlie (1411.9)

The message says that your opponent in Tourney #7 Round 1 Match 3 is TwoTimesCharlie, whose rating is 1411.9.

When you've finished playing your opponent, TourneyBot will try to automatically register the result. If it fails to do so, the loser has to report the result with the report loss command, like this. Let's say, that in the above example, TwoTimesCharlie lost the 1 point match 1-0 and TourneyBot was having connection problems and therefore wasn't online to register the result. TwoTimesCharlie should issue the following command:

tell TourneyBot report loss 1-0 tourney 7

You should then receive confirmation that you won the match.

If you want to get the match-ups for the current tourney round, you issue:

tell TourneyBot current 7

And the response should be something like:

TourneyBot: Listing Tourney #7 Round 1 (match length: 1):
TourneyBot: T7R1M1: xyz (1705.0) vs. abc (1585.31)
TourneyBot: T7R1M2: Yodelboy (1401.1) def. ttyyzz (1614.93) 2-0
TourneyBot: T7R1M3: You (1629.45) def. TwoTimesCharlie (1411.9) 1-0
TourneyBot: 2 out of 3 completed.
TourneyBot: Finished listing Tourney #7 Round 1.

Tourney Director's Guide

If you want to host your own tourneys, you need to appoint yourself as a Tourney Moderator. You can do that by telling TourneyBot add moderator. It will only work if you have a FIBS experience of 1000 or more. Be warned, however, that running tourneys (properly) might be more work that you would have believed beforehand. Fortunately, it can be quite fun and rewarding, too.

Right, once you're appointed moderator, you'll probably want to run your own tourneys. To do that, you first have to create one, like this:

tell TourneyBot create bracket

bracket is one of the tourney types that TourneyBot supports. (It's an unseeded single elimination bracket tourney). TourneyBot should respond:

TourneyBot: Tourney #9 created.

The important thing to note is the Tourney number, which is 9 it the example above. Most director commands require that you specify this number so that the bot knows which tourney to apply the changes to.

Once you've created the tourney, you'll probably want to customize it a bit. To change the tourney's name, use the rename command. To change the long description, use describe. To set minimum or maximum number of players, use the minplayers or maxplayers commands. To appoint someone else as a Tourney Co-Director, use the appoint moderator command. They're all described here.

An example: to change the match length of every round but the final one to 3 (default is probably 1 for most tourney), do:

tell TourneyBot matchlen normal 3 tourney 9

To set the match length of the finals to 5, do:

tell TourneyBot matchlen finals 5 tourney 9

When satisfied with your customization, you can open the tourney for sign ups:

tell TourneyBot open 9

TourneyBot will announce to FIBS that Tourney #9 has been opened and people should start signing up for it. You can check who has registered with:

tell TourneyBot players 9

Sample output:

TourneyBot: Tourney #9 players:
TourneyBot: LuckyLuke, JohnnyBGood, marvelous, Ishtar, modest, Citrus
TourneyBot: Done listing Tourney #9 players.

To start the tourney (note that you can only do so when minplayers <= registered players <= maxplayers), do:

tell TourneyBot start 9

TourneyBot: Tourney #9 started.

TourneyBot will calculate the match-ups and inform the participants via messages. Everything from here on should be automatic if everyone abides by the rules.

However, if a tourney participant fails to do so, you can award a win to his opponent. Let's say marvelous and LuckyLuke are paired in Round 1 of Tourney #9 and LuckyLuke fails to show up on time. Here's how to award the victory to marvelous:

tell TourneyBot award win marvelous 3-0 round 1 tourney 9

TourneyBot: You awared a victory to marvelous in Round 1 of Tourney #9.


A lot of functionality is planned for TourneyBot. Whether or not these will be added depends mostly on two things - my time and TourneyBot's popularity. Obviously, if TourneyBot becomes an accepted FIBS feature, I will be motivated to keep improving it. So, if you want it developed further, keep using it!

Current Features

Upcoming Features

Possible Future Improvements

Types of Tourneys

Important: If you're organizing FIBS tourneys and would like to see your tourney type supported by TourneyBot, send me an email. Make sure to include all the relevant information, especially the format of the tourney and all the propertis (minumum and maximum number of players, match lengths, rating requirements, how to calculate match-ups etc.)

TourneyBot currently supports the following types of tourneys:

Bracket Tourney

This is the most common tourney type, a single elimination bracket tourney for anywhere between 2 and 128 players. If the total number of players does not equal 2^n, then some players will be given a "bye" in the first round, automatically transferring them to Round 2.

When a participant loses a match, he is eliminated from the tourney. The winners advance to the next round until there is only one undefeated player left. That player then wins the tourney, while the other finalist is the Runner-Up.

The distribution of participants into brackets is random (which means that byes are random as well).

Double Tourney

Double Elimination differs from Single Elimination in that every player has to lose twice before being eliminated from the tourney. On the first loss, a player is transferred to the lower (=loser) bracket where they continue to play until the second loss. The winner of the tourney is the only player left with one or no loss.

FLG Fridays3 Tourney

A popular FIBSLeaGammon event, Fridays3 is a single elimination tourney with 3 point matches (5-pt finals). It is held every Friday at 15:00 UTC. Detailed rules can be found here.

A special feature of this tourney is that it keeps monthly scores for players - at the end of the month the overall monthly winner is announced. TourneyBot keeps tracks of the standings and calculates how many points to award to each player at the end of each tourney. You can see the current standings by sending standings fridays3 to TourneyBot.


These are held several times a week in the standard single elimination format, for the purpose of forming country-specific teams for the FIBS World Cup. See the official web page for more details.


If you're a coder trying to develop a FIBS bot/client, or if you would for some strange reason like to run your own copy of TourneyBot, you can download either the latest stable release (1.0 stable, not recommended, as it is obsolete) or the current beta (developers' preview) release 1.5beta6. The latter includes the free moderator system and the SpamGuard improvements. If you do not wish to get those, check out 1.4beta5.

The very latest code that might not even work and has not been released yet, can be checked out from the CVS repository.

To run it, you will need to install a Ruby interpreter.


FIBS Board kindly provides a forum for discussing TourneyBot.

Mailing List

TourneyBot-info is a mailing list for the of everything related to TourneyBot, automated tourney management and even FIBS in general.

You can subscribe here and you can find the archive of past messages here.





Email Tom Moulton directly, Email MadMatt directly, use the forum or subscribe to our mailing list, then email your message.

Back to the top

Last update: 21 January 2008
Created by: mkejzar
Maintained by: Tom
Hosted at FIBS Board and Rubyforge.

Valid HTML 4.01! Valid CSS!