Skip to content
/ tosu Public

Memory reader and PP counters provider for osu! and osu! Lazer

License

Notifications You must be signed in to change notification settings

tosuapp/tosu

Repository files navigation

Version License: GPL--3.0 Twitter: kotrik0

Welcome to tosu 👋


Tosu is a memory reader for osu! that sends data to overlays (aka pp counters) via WebSocket API, with extra features.

Note

Supports stable and osu! lazer.
Compatible with gosumemory and streamCompanion overlays.


Installation guide

  1. Download tosu
  2. Extract tosu.exe to a Folder
  3. Run tosu.exe
  4. Go to http://127.0.0.1:24050
  5. Now you in overlays dashboard, in here you can download counters, or tweek settings of tosu
  6. Here you can watch showcase of dashboard: link
  7. Have fun!


Features

  • All Gamemodes are supported. Using rosu-pp for pp calculations
  • gosuMemory compatible api
  • streamCompanion compatible api
  • Lazer support
  • Brand new api for websocket
  • In-game overlay, allow adding multiple overlays (pp counters)
  • Available websocket data:
    • Settings
    • Gameplay data
    • User ingame data
    • Beatmap data
    • Session (Work in progress)
    • Multiple graphs for different skill sets (aim, speed, etc)
      • Extended starrating stats (per mode)
    • Leaderboards list (array)
    • Folders paths and Files names
    • Direct paths to files
    • Result screen
    • Tourney data (not tested, yet)
  • LOW CPU USAGE (I actually checked, this thing has a much lower memory recoil than the gosu)


In-game overlay

  • To enable it, you need to edit tosu.env, and turn on ENABLE_INGAME_OVERLAY=true (make it equal true)
  • Tutorial: TBA


API

  • / - List of all counters you have

gosu compatible api

  • /json - Example of /ws response
  • /ws - response example
  • /Songs/{path} - Show content of the file, or show list of files for a folder

streamCompanion compatible api

  • /json/sc - Example of /tokens response
  • /tokens - response example
  • /backgroundImage - Current beatmap background

v2 (tosu own api)

  • /json/v2 - Example of /websocket/v2 response
  • /websocket/v2 - response example
  • /websocket/v2/precise - response example
  • /files/beatmap/{path} - same as /Songs/{path}
  • /files/beatmap/background - Background for current beatmap
  • /files/beatmap/audio - Audio for current beatmap
  • /files/beatmap/file - .osu file for current beatmap
  • /files/skin/{path} - similar as /files/beatmap/{path}, but for a skin

api

  • /api/calculate/pp - Calculate pp for beatmap with custom data
    • Response example
    • BY DEFAULT IT USES CURRENT BEATMAP (:))
    • All parameters are optional
    • path - Path to .osu file. Example: C:/osu/Songs/beatmap/file.osu
    • lazer - true or false
    • mode - osu = 0, taiko = 1, catch = 2, mania = 3
    • mods - Mods id or Array of mods. Example: 64 - DT or [ { acronym: "DT", settings": { speed_change: 1.3 } } ]
    • acc - Accuracy % from 0 to 100
    • nGeki - Amount of Geki (300g / MAX)
    • nKatu - Amount of Katu (100k / 200)
    • n300 - Amount of 300
    • n100 - Amount of 100
    • n50 - Amount of 50
    • sliderEndHits - Amount of slider ends hits (lazer only)
    • smallTickHits - Amount of slider small ticks hits (lazer only)
    • largeTickHits - Amount of slider large ticks hits (lazer only)
    • nMisses - Amount of Misses
    • combo - combo
    • passedObjects - Sum of nGeki, nKatu, n300, n100, n50, nMisses
    • clockRate - Map rate number. Example: 1.5 = DT


Support

  • Give a ⭐️ if this project helped you!
  • If you need help setting up this program or have any suggestions/comissions, feel free to go to the discord channel above in the 🔵 tosu section


Maintainers

🐱‍👓 Mikhail Babynichev


🍒 Cherry


😪 ck


🤝 Contributing

Contributions, issues and feature requests are welcome!
Feel free to check issues page. You can also take a look at the contributing guide.


📝 License

Copyright © 2023-2024 Mikhail Babynichev.
This project is LGPL-3.0 licensed.