Skip to content

About

Toolkit for streaming osu!lazer tournaments using lazer tournament overlay

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

osu!lazer streaming tools

Welcome, here you will find a toolkit for streaming osu! tournaments hosted on the lazer client. Please jump here if you want to install it ASAP

As you might know, there are no official tools for streaming tournaments on lazer client, unlike stable, which has special stream client for multi-spectating and tournament overlay. So I decided: "why not try make something for streaming lazer tourneys?"

Of course, there are actually modded forks of tournament overlay with room spectating ability embedded into it. But here is another problem: you can't connect to multiplayer room in lazer when using unofficial build of the client unless you have official support, as I was told by the people I talked to about hosting lazer tourneys

And so, I had to find a way to stream lazer tournament without any official support

So how did I do it?

I decided to use tosu memory reader (modified, see here) and custom bridge to receive data from tosu and write it in real time into the stable's file-based IPC format. The rough idea is:

osu!lazer → tosu (fork) → WebSocket → IPC Emulator → ipc/*.txt → tournament client → OBS

File-based IPC format

ipc.txt

  1. Current beatmap ID
  2. Current required mods bitnumber

ipc-scores.txt

  1. Left side's current score
  2. Right side's current score

ipc-channel.txt

  1. Room's chat channel ID

ipc-state.txt

  1. Current state (Idle/Playing/Ranking)

For convenience purposes tournament overlay was modified too, see here

Versions compatibility

Memory reading is very version-sensitive, but this should not be a worry as tosu will automatically download new offsets when the new version of osu!lazer will be released. In case of a breaking change and me not noticing it, please give me a heads up on Discord: @tracexr or create an issue

Installation

  • Download latest release for your system
  • Extract the folder from the archive
  • Launch tclient.sh for Linux or tclient.bat for Windows to launch Tournament Overlay
  • On the Setup screen you should see fields for Client ID and Client Secret. Follow Authorization section for instructions
  • Launch tosu.sh for Linux or tosu.bat for Windows to launch tosu memory reader
  • Point tournament overlay to the IPC folder location. It should be the tclient-win/ipc or tclient-linux/ipc depending on your system
  • Done! You can set up your tournament and stream the matches. For guide on tournament setup, reference the osu! wiki article

Note

You don't need to launch tosu when you're not streaming and just setting up tournament. However, you do need to launch it when you're spectating and streaming, or overlay won't receive any data at all

Authorization

  • Go to the osu! website
  • Scroll to the bottom of OAuth section and find the button New OAuth Application
  • Create the new OAuth Application and set Application Callback URL to exactly http://127.0.0.1:48732/

Warning

Application Callback URL should be exactly http://127.0.0.1:48732/

  • Copy Client ID and Client Secret and paste them into the tournament overlay
  • Click on Login. You'll be taken to the browser page where you'll be asked to give authorization
  • In case of success, you'll see the notice about successful authorization on the browser page and in the tournament overlay

Caution

Never share your API credentials anywhere. If compromised — delete the application on the osu! website

Technical limitations

  • This toolkit will only work on Windows or Linux with x64 architecture
  • Ports 24050 and 48732 should be free

FAQ

Where can I report bugs or share my thoughts?

Please report the bugs by creating an issue on GitHub or DMing @tracexr on Discord

How can I build binaries?

Clone this repository using this command:

git clone --recurse-submodules https://github.com/TraceXR1/lazer-stream-tools.git

If you've already cloned repository without the flag, please update submodules using:

git submodule update --init --recursive

Then please reference README.md files of each submodule

tosu modifications

  1. added ability to read lazer's fields, namely scores in multiplayer room, chat id of multiplayer room and current required mods in multiplayer room by @TraceXR1 on 2026-09-26
  2. added state spectating by @TraceXR1 on 2026-09-26

All diffs can be found in this repository

Tournament overlay modifications

Tournament client was modified in numerous ways, but mainly these are customization options. One of the technical modifications is replacement of password grant login method with APIv2's authorization code grant due to inability to be logged in using login/password in two clients at the same time

Licensing

Disclaimer: unofficial community project, not affiliated with or endorsed by ppy Pty Ltd or the tosu authors; "osu!" is a trademark of ppy Pty Ltd

This repository only aggregates the components below; each of them is distributed under its own license

tosu: Copyright (C) 2023-2026 Mikhail Babynichev https://kotrik.ru/; LGPL-3.0 license; fork repository

osu!lazer: Copyright (c) 2025 ppy Pty Ltd contact@ppy.sh; MIT license; fork repository

IPC Emulator: Copyright (c) 2026 TraceXR; MIT license; repository

About

Toolkit for streaming osu!lazer tournaments using lazer tournament overlay

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors