Skip to content

Instantly share code, notes, and snippets.

@Paturages
Last active July 6, 2024 02:09
Show Gist options
  • Save Paturages/ff68863de98cff16184969a34197ef03 to your computer and use it in GitHub Desktop.
Save Paturages/ff68863de98cff16184969a34197ef03 to your computer and use it in GitHub Desktop.
So you want to be a referee huh?

Table of contents

Setup

You need to download, set up and know a few amount of things before getting started.

Get your osu! IRC credentials

Go to this page. It will prompt you to log in to the old osu! website, do so. You should then be able to get your IRC credentials as follows.

image

Download and set up chat4osu

You can use any IRC client, but chat4osu is one of the more straightforward ones to use and is tailored towards usage on osu!.

Download and install it. Open it: it will prompt you to log in with the credentials you just got above (only username and server password matter for chat4osu). Log in. If you see #osu bumbling with activity, you succeeded.

Basics

How to create a room

As a referee, you will make extensive use of tournament management commands. The very first one you will learn is the one to create your own multiplayer room.

image

In chat4osu, open DMs with BanchoBot by clicking the + button as indicated by the arrow and entering BanchoBot. Create your first multiplayer room by sending BanchoBot !mp make My First Multi Room. chat4osu should open a new tab for your new room: switch to your room.

Following this section, all commands have to be done in the match room tab. Keep in mind that your match room will be automatically closed after 30 minutes of inactivity (chat4osu yields a err_nosuchnick error), so you may have to re-create your room in your learning process.

Incidentally, this is also why referees do not create rooms too much in advance.

As a side-note, you can also perform those commands in-game: it will automatically put you in the room. That setup may be preferable if you want to experiment with commands alone and play through the maps yourself.

Set ScoreV2, team mode and lobby size

One of the first operations you should perform in a tournament room is setting ScoreV2 (very important!) and lobby size. That is done in one command:

!mp set <teammode> <scoremode> <size>

where:

  • teammode is either 0 for 1v1 tournaments or 2 for team tournaments (other values are useless in tournament settings)
  • scoremode is 3 for ScoreV2 (other values are useless in tournament settings)
  • size is the amount of slots in the room (maximum 16)

Examples:

Set up a ScoreV2 1v1 room with 3 slots (1 spare slot for slot switching, useful for streamed matches)

!mp set 0 3 3

Set up a ScoreV2 qualifiers room with 8 slots

!mp set 0 3 8

Set up a ScoreV2 3v3 room with 9 slots (for switching, again)

!mp set 2 3 9

Force and set up mods

Another initial operation upon creating a room is setting up Freemod:

!mp mods freemod

You can apply multiple mods at a time: subsequent commands will overwrite current status, e.g.

!mp mods HR DT Freemod

Add additional referees (and streamers)

Streamers need referee permission to be able to browse chat history. You can add additional referees using the following command:

!mp addref <username>

Keep in mind that the target user has to be logged in either in the game or on IRC.

Change and set maps

Grab a random map link. Here's a random one for you. Pay attention to the trailing number at the end of the link, after the /. This is your "beatmap ID". Knowing that, the command to send is:

!mp map <beatmap ID> <playmode>

where playmode is 0 for std, 1 for taiko, 2 for catch and 3 for mania.

In this case, !mp map 3905455 1 is the correct answer.

It is standard to set a map as an initial step (usually the tiebreaker) in order to set the playmode properly for warmups. Otherwise, they might be played in playmode=0, which will yield std formatted scores in your MP link.

Invite players in the room

It is time to invite people in your room (you can ask a friend to be your guinea pig). The command to send is:

!mp invite <username>

Keep in mind that your target user has to be logged in the game.

Debugging player invites

A big referee pain is that invites will not always get through to your players. This is why you may have to perform some preemptive steps before inviting your players.

Ask the user to DM you in-game

Invites have a greater chance of getting through to the user if you already have an active DM session with them. Ask them to DM you in-game before inviting them (it is usually doable in practice by asking for warmup links). Only invite them once you actually receive the DM from them in chat4osu.

You may not even guarantee getting those DMs on your end yourself sometimes: open DMs with your target user and send them some messages to try and get it going, anything to get that sweet link to your target user.

Dealing with chat censors

Sometimes, you will not be able to invite your players through commands because of the chat censor replacing part of their username with something else. For example, loli_seale becomes fine lady_seale.

For that reason, keep in mind that you can also invite players through their user ID: to get it, grab their profile ID (e.g. https://osu.ppy.sh/users/1375479) and get that trailing number (1375479). Use it in your invite command as follows:

!mp invite #1375479

Worst case scenario: ask players to invite themselves

If you manage to get one player in but not the other and no commands will do anything, know when to give up and ask the player themselves to help you.

Move player slots for streams

Streamers will only spectate the first X slots of a room, X being the total amount of players that should be playing (e.g. 2 for a 1v1 tournament, 4 for a 2v2). For that reason, players should not be hiding in the last slots that you happened to open for slot switching.

You can either ask the players to move themselves to their respective slots, or just do it yourself through the following command:

!mp move <username> <slot>

where slot is the number corresponding to the slot position (starting with 1).

Your target slot have to be vacant, so switching 2 players between each other requires a total of 3 commands, which is cumbersome enough that asking players to switch slots is pretty standard.

Other commands for warmups

  • !mp host <username> passes the host to a certain player so that they can set a map for the room. This is most commonly used for warmups. You can however still control the room through commands as a referee.
  • !mp clearhost removes host from players in the room, so that no player in the room should be host. This lets you do actual referee business after warmups.
  • !mp team <username> <color> sets players to a team (red or blue).

Logistics

  • !roll <max_number> is used to roll a number between 1 and max_number. The max number is optional: the default max number is 100. This is why it's standard to ask players to !roll in order to make them pick a random number between 1 and 100.
  • !mp timer <t> makes BanchoBot start a timer of t seconds (number). You can stop the timer by using !mp aborttimer. This is useful to enforce time-based rules such as picking maps and getting ready.
  • !mp settings tells you the status of your room and its players. This is very useful to know whether your players have put some funny mods such as HR when it's not allowed. chat4osu actually has a shorthand in its sidebar: to open it, click the "people" icon as indicated by the blue arrow in the following screenshot. The refresh link sends a !mp settings without requiring you to type it.

image

Starting and managing a match

chat4osu tells you when all players in your lobby are ready with a All players are ready message. After performing one last !mp settings to double-check, you can start the map:

!mp start <t>

where t is the amount of seconds before it actually starts. You want to set this time to at least 5 seconds in order to not jumpscare your players into a loading screen. chat4osu has another shorthand in the sidebar (start in 10s).

To cancel a match (e.g. if a technical issue happens and/or a player prompts you to abort):

!mp abort

Or use the chat4osu shorthand in the sidebar.

At the end of a match, chat4osu will tell the scores of each player as they come and are registered by Bancho, but you can also open the MP link in your browser and follow your match scores on the website.

Closing your room

While your room will automatically close itself in 30 minutes of inactivity so it's not an issue if you forget, it's usually standard to !mp close your room after your match is done.

Your tournament

Now that you know how tournament chat commands work (more or less, you really don't have to remember them by heart, you'll see why), you should get more information about how your particular tournament works.

Rules

Your first task as a referee is to actually read your tournament's forum post, which will usually feature the rules that you should enforce as a referee.

Match assignment

Different tournaments will have different ways of assigning you to the matches that you have to referee. Those usually take place on spreadsheets several days before the matches actually take place.

  • Some tournaments will let you volunteer and sign up to the matches that you want to referee. This should be pretty straightforward, but don't be tempted to take too much on yourself.
  • Other tournaments will have availability sheets. Hosts and/or managers will prompt you to fill them in according to your availabilities. To be clear, those are never guarantees that you will get a match in those times, so make sure to fill in according to your availability. Your host/manager will take care of distributing matches to the referee team in a fair and sane way for everyone, and you should get informed about the matches you've been assigned after pings from them.

Referee sheets (or "refsheets")

They will manifest in different forms in different tournaments, but the principle of a refsheet is a spreadsheet-based dashboard that is designed to help referees manage the progress of their match. It usually features many of the commands you have seen previously, pre-filled with the maps of the current round, along with player usernames.

You should still get used to referee by using commands manually, but refsheets enable you to just copy/paste those commands instead, leading to a much more streamlined referee experience. Some refsheets even have messages that you can paste to players for instruction prompting, and Discord messages for match feeds.

Your community

Last but not least, you are not alone. Tournaments will almost always ask for a sizeable amount of referees in order to be able to cover all matches reasonably, so don't be afraid to ask for help in your respective staffing Discord.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment