2026-04-11 17:59:45 -07:00
2026-04-11 14:47:59 -07:00
2026-02-19 08:47:37 +00:00
2026-04-11 17:45:13 -07:00
2026-03-24 16:56:13 -04:00
2026-03-14 00:31:51 -04:00

Beat Saber Overlay

Beat Saber stream overlay, originally based on twitch.tv/iza_k but rewritten in Deno TypeScript. Requires BeatSaberPlus

Preview

Setup

  • Clone the repo
  • Configure overlay.toml
  • Install Deno (winget install Denoland.Deno)
  • Maybe run deno task build
  • Run deno task serve
  • In OBS add a Browser source and set the url to the served address (http://127.0.0.1:8080/index.html)

Configuration

Configuration is overlay.toml in the repo root (copy from overlay.toml.example; the real file is gitignored). It can set:

  • chat_request_database — absolute path to Beat Saber Plus ChatRequest/Database.json. The server serves that file as ChatRequest.json over HTTP (no symlink).
  • beatleader_player_id — default BeatLeader id for friend scores (the server logs a warning if this is missing).
  • Overlay UI defaults — optional toggles and layout matching the settings dialog: cover, map_info, time, score, friends, friend_mode (mutual | following | followers), bsr, right, bottom, scale, fade.

Mutual friend mode shows scores from players that you follow and that follow you back on Beatleader. Or in other words, users that are in both your following and follower list.

Usage

Clone the repo and run deno task serve as above.

Development tasks

  • deno task build - bundle/check src/client/index.ts for browser output (index.js)
  • deno task serve - build, then serve index.html and JSON files
  • deno task dev - watch and rebuild index.js when client TS changes

Testing in a browser

Click anywhere on the page (outside the settings dialog) to toggle preview mode. The song overlay appears with the built-in placeholder labels so you can check layout, toggles, scale, and fade without a game connection.

Description
No description provided
Readme 597 KiB
Languages
TypeScript 54%
JavaScript 33.7%
CSS 7.6%
HTML 4.7%