Skip to content

stable ​

Today's osu!stable client connects to a TomYum server with its -devserver option. Nothing needs patching.

Connecting ​

Make a shortcut to osu!.exe with the target:

"C:\...\osu!\osu!.exe" -devserver example.com

The client then talks to c.example.com (bancho), osu.example.com (/web/*), a.example.com (avatars), b.example.com, assets.example.com and so on, over HTTPS. All of them must be set up (Domains, DNS and Caddy).

Players can register from the client, or on the website: it's one account either way.

TIP

Sign out of an official osu! account in that client first: its login would be sent to your server.

What works ​

  • Login, in-game registration, chat, PMs, friends (shared with lazer and the website).
  • Score submission and leaderboards: global, selected mods, friends and country, with replays.
  • Relax and Autopilot on their own leaderboards.
  • Multiplayer, with !mp commands and match history on the website.
  • Spectating, and the tournament client.
  • osu!direct (search, downloads, this server's custom beatmaps), favourites, screenshots, in-game comments, map ratings, star ratings with mods.
  • Beatmap submission from the editor.
  • Medals.

BanchoBot commands ​

!help lists the commands a player can use. Some of them:

CommandWhoWhat
!helpeveryonethe command list
!roll [max]everyonea random number
!versioneveryonethe server's version
!report <player> <reason>everyonereport a player to staff
!irceveryonean IRC password, without website accounts (IRC)
!mp <start|abort|countdown|host|kick|invite>in a roommultiplayer room commands
!map <rank|love|qualify|unrank|reset> [set|map]BNschange the status of the map from /np
!setpriv <user> <role>staffgive a staff role
!restrict, !unrestrict <user> <reason>staffrestrict a player, or lift it
!silence <user> <10m|1h|1d|1w> <reason>, !unsilencestaffsilence a player, or lift it
!alert <message>, !alertu <user> <message>staffa notification to everyone, or one player
!alts <user>, !verify <user>staffaccounts sharing a device; verify an account by hand

/np to BanchoBot answers with the map, its status and pp at 95–100%. Plugins can add their own commands.

Device verification ​

TomYum can do what osu! does: a login from a new device is refused until the player confirms it on the website (osu.example.com/p/verify). An account's first device is trusted. It's off by default; turn it on in tomyum.env:

ini
TOMYUM_CLIENTVERIFICATION__ENABLED=true

Only builds from b20151228 on can be asked to verify. Older builds follow TOMYUM_CLIENTVERIFICATION__OLDCLIENTS (Unverified, the default, lets them in without the check). If you want original old builds on your server, leave verification off: see old clients.

Wrong passwords ​

Every password check (the game's login, the /web endpoints, IRC) counts wrong guesses for 15 minutes. An address that guesses wrong 10 times for an account is refused for it, even with the right password, until then. Once an account has had 10 wrong guesses from anywhere, an address that guessed wrong 3 times is refused too. An address that hasn't been guessing, such as the player's own game, is never refused, so nobody can lock a player out by guessing their name. One address is also refused after 30 wrong guesses across accounts. Repeating the same wrong password counts once.

The tournament client ​

osu!'s tournament client logs in once per window, all with the same account. Those windows are extra sessions: they don't replace the player's own game, aren't listed as players, and get no channels, PMs or login announcement. A window follows a match's state and its #multiplayer chat, and spectates players like a game does, so each window shows its own player.

The tournament client starts its windows by itself, without -devserver, so they connect to osu!'s servers unless the player's network sends them to yours. See tournaments for how players set that up.

Bots ​

Bot accounts can't log in to the game: they're refused with a message telling them to use IRC. See bots.

TomYum is MIT licensed. Not affiliated with ppy Pty Ltd; osu! is a trademark of ppy Pty Ltd.