In Catan Community, games are made and tracked using our resident discord bot. If you want to play, consider picking up a role in #role assignment to get a ping when people are looking for a game. Games are not just fun, but can earn league points and hopefully qualify for the end of month tournament.
Having trouble with the bot? Ask any CC team member and we will be happy to help. Many other community members would be glad to help you too.
🎮 Joining a game 🎮
- Get a role in #role-assignment so you can get notified when a game of your preferred type is created.
- When a player starts a game, press the 🎮 under the bot message to join. Be sure to read any special rules the host has set.
- The host should post a link to the game on colonist.io. Click the link to join the game.
- Say Hi and be friendly to the other players.
- After the game ends, see Reporting results to see how to report the game results.
Creating a game
- To start a base game with new players, type in #colonist :
!base [link to game on colonist.io]
Replace !base with
!sf depending on the mode you want to play. If you don't provide a link one will be
created for you.
If you have a full room already create the game in #rematch instead so players know not to join.
- Tag the appropriate role. See #role-assignment for available roles. Be specific with yours pings Include the game mode, speed, any wager, and any special rules. Do not ping a role more than once every 5 minutes.
- The bot will create a game for you.
- Wait for players to react 🎮 under the bot message. Any player can join by pressing the icon.
- When the game fills up, start the game and enjoy
- After the game ends, see Reporting Results to see how to report the game results
🏆 Reporting the results🏆
- One player takes a screenshot of the game end screen. This should include the scores of each player including hidden VPs
- Post the screenshot in #report-winner
!win [Game id] @WinnerDiscordName
- At least one other player has to react with 👍 for the win to be approved.
- The winner will get LP for winning, other players can get LP too if it's their first game of the day.
- (Optional) Type
!rankin #bot-spam to see how you did.
- Play another game
📈 Playing with wager📈
Want a bit more tension? Wager games can raise the stakes. Create a wager game by including a number immediately after
the bot message. For example:
In this case, the winner gets another 25 LP per player while everybody else loses 25 LP. Overall the LP increases the same as a normal game.
📝 Other Rules📝
- General server rules apply
- If you are creating a game while there is another game waiting for players, promote is as well in your tag. For example:
@Colonist 3 people needed for 4p or wager game above
Do not ping any role more than once every 5 minutes. Please also only ping the role for the type of game you are creating
Choose whatever settings you want, as long as it's not clearly intended to cheat the league point system. For example a game to 4vp.
Common Bot Commands
Commands tagged with ✈️ can be sent over direct message.
Commands tagged with 🛡️ can only be used by the CC team. Want admin powers yourself, check out this page for more info about how to join.
Make a game. React to the result to join a game. Joining a game will add 25 lp to the prize pool. Wager is optional.
You can optionally write a link after this command which will be copied to the response. Examples:
Create a base game with 0 wager:
Create a ck with 0 wager and a link:
Create a seafarers with 25 wager: (winner of a 4 player game with 25 wager will earn 175 points)
Make a game with both a wager and a link:
!creategame 25 https://colonist.io/#mouse
Tag colonist in the same message:
!base 25 https://colonist.io/#mouse @colonist 25 wager game join now!
!win [game id] [@winner]
Finish a game. This message must include a screenshot of the final scores. All players must react to the message to confirm.
!winner SilverWheat242F @mousetail
Shows you the games that you were in but are still unconfirmed. If you are not the winner, please confirm or tag the player that needs to confirm the game
For admins and members of CC team, it will show all unconfirmed games.
Shows your rank and total lp. Accepts filters, for example:
Get your rank for only C&K games this month
Get your rank for only 4 player games this month
Get your rank for February this year
!rank season 3p
Get your rank for 3 player games this season.
To get your rank for a specific league use
get a specific users rank. Accepts the same filters as for
get your most recent LP events
get a users LP history
get your net amount of wagered LPs
get a users net amount of wagered LPs
!leaderboard [time period] ✈️
Shows the 25 best players. Accepts the same fitlers as
!rank. For example:
Get the best cities and knights players this month
!rank 4p all
Get the best at 4 players games in any game mode over all time
️Shows this page.
!start [game id]
Mark a game as started, so that no further players can join.
!remove [game id] [user mention]
Remove a user from a game. Please ask a player to leave first, only kick them if they won't respond.
!remove SilverWheat298K @mousetail
Learn what history can teach us about how to play catan.
If you have ideas for more quotes you can edit the file here. All changes need to be approved.
These commands require the user to be admin/mod.
!adminwinner [game id] [@winner] 🛡️
Immediately closes a match and awards the specified winner VP.
!adminwinner SilverWhat242F @Puzzles
!adminlp [@user] lp [games] 🛡️
Gives \@user lp according to
lp. You can use
!adminlp [@user] 0 to add a user to the leaderboard without giving them
Example of giving Hippo 25 LP:
!adminlp @Hippo 25
Add NordicZombie to the leaderboard:
!adminlp @NordicZombie 0
Add one game and 100 LP to ReMarkable:
!adminlp @ReMarkable 100 1
Subtract one LP from Mousetail
!adminlp @mousetail -1
!admincancel [game id] 🛡️
Cancels a game. If the game is finished refund lp. If not, set a flag that prevents if from being
Gets all players LP's as a CSV file. Guaranteed to work upto 500 players. Accepts the same filters as
Adds LP to all players based google sheets document. File should have 3 columns and a header row: Discord name, ( ignored), LP
Sets game settings, options are:
|link||The link spammed in
|min_wager||The minimal wager amount allowed, 0 wagers are always allowed|
|max_wager||The maximum wager allowed per person per match|
|wager_step||The wager must be a multiple of
|first_game_bonus||LP bonus for first game of a specfic mode every day|
|first_win_bonus||LP bonus for first win of a specific mode every day|
|Server layout settings||Meaning|
|report_channel||The ID for the channel reports should be sent to.|
|bot_spam_channel||The ID of the channel reserved for bot spam. Some commands work only there|
|donator_role||The role id of the donator role, displayed on the website|
|Finals LP Settings||Meaning|
|rank_bracket_multiplier||The multiplier of given LP given during finals for each successive bracket. Effected by rank_bracket_multiplier.|
|rank_bonus_win_semifinal||Bonus LP given to those who win a semifinal, default 0. Effected by rank_bracket_multiplier.|
|rank_bonus_win_final||Bonus LP given to whoever wins the finals. Effected by rank_bracket_multiplier|
|rank_bonus_sf_loser_bonus||Bonus LP given to whoever loses semifinals. Default 0. Effected by rank_bracket_multiplier|
|Qualifier LP Settings||Meaning|
|qualifier_template||Template used for qualifiers.|
|qualifier_games_per_row||How many games are placed side by side each row|
|qualifier_horizontal_distance||number of columns between the leftmost cell of one game and the left of the next|
|qualifier_vertical_distance||number of rows between the top of one game and the top of the one below it, assuming 0p games. 1 will be added per number of players per table|
|qualifier_horizontal_offset||Position of top left corner of top left game. A=0, B=1, etc.|
|qualifier_vertical_offset||Position of the top left corner of the top game. 0 indexed so subtract 1|
To change the maximum wager to 100:
!adminsetting max_wager 100
To set the link to this page:
!adminsetting link https://catan-community-website-2.vercel.app/info
To disable wagers all together:
!adminsetting max_wager 0 !adminsetting min_wager 100
Mod tournaments commands
!updatescores [drive link]
Update the scores from the tournament page given by
Will sum up the scores form all players in sheets containing the word "Match" and paste the results in any sheet containing the word "ranking". Will not change formatting.
In order to edit the document, share the drive sheet with
Expects the sheet to be formatted according to the standard format which means:
- 4 tables, starting at B2, F2, J2, and N2
- Each table consits of 3 columns: Discord Username, Colonist Username, VP
- 10 VP = win
- Second row of tables starts at 9, and so forth for every row
- Ranking starts at B3, and has 10 columns:
- Discord name
- Colonist Name
- Points Percent
- Table Points
- Points Difference
- Average Opponent VP
- Total Opponent Wins
This function is intended for the scors of a single day, it will not merge scores form two different sheets or do backup merging etc. and other function that require cross-referencing any other data source.
Calculate the LP's everyone gets for finals. Resulting file is suitable for
Please check the file before uploading. It is viewable by everybody but editable by mods. If you are a mod and don't have access PM anyone who does.
Calculate the number of raffle tickets everyone gets from the finals. Returns a file in a a suitable format for the raffle program. Number of tickets is based on the Anora distribution.
Mod Management Commands
!adminrole [@role] 🛡️✈️
role to the list of roles permitted to use admin commands.
!unadminrole [@role] 🛡️✈️
role form the list of roles permitted to use admin commands. The server owner can always use admin commands
regardless of the role settings.
I am just one guy and also have a full time job, so won't always be able to fix all the issues with the bot. If you find a problem and don't want to wait for me to fix it, just do it yourself! The code is right here, just submit a pull request, and if it's a good suggestion I'll be sure to merge it in.