rcelyte / BeatUpRcelyte

A lightweight modded Beat Saber multiplayer server
The Unlicense
16 stars 5 forks source link

icon BeatUpServer

"beat saber gettin violent these days" -some Discord user

A lightweight server to enable modded multiplayer in Beat Saber 1.19.0 and newer. Cross-version lobbies supported for 1.20.0<->1.31.1 or experimentally 1.32.0<->1.37.5 (ranges broader than 1.32.0-1.34.0, 1.34.2-1.37.0, and 1.37.1+ are not fully tested and may have issues).

Ways to Join

Beat Saber Server Browser [PC]

ServerBrowser lets hosts publicly list their lobbies for other ServerBrowser users to join, regardless of server.

BeatUpClient | BETA [PC]

BeatUpClient enables custom servers to be added in-game from the multiplayer menu using the + button, or directly in the config located at UserData\BeatUpClient.json. Using BeatUpClient will additionally enable the following features in BeatUpServer lobbies:

BeatTogether Mod [PC]

To access a custom server through the BeatTogether mod on PC, add its status URL to your BeatTogether config (located at UserData\BeatTogether.json in the game folder). As an example, here's what the file would look like with rcelyte's master.battletrains.org instance added:

{
  "SelectedServer": "BeatUpServer",
  "Servers": [
    {
      "ServerName": "BeatTogether",
      "HostName": "master.beattogether.systems",
      "ApiUrl": "http://master.beattogether.systems:8989",
      "StatusUri": "http://master.beattogether.systems/status",
      "MaxPartySize": 100
    },
    {
      "ServerName": "BeatUpServer",
      "ApiUrl": "https://status.master.battletrains.org",
      "StatusUri": "https://status.master.battletrains.org",
      "MaxPartySize": 126
    }
  ]
}

Building BeatUpServer

Compiling BeatUpServer requires a Linux/WSL2 host with git, make, and an updated version of GCC or Clang (at least GCC 12 or Clang 11). To build, simply run make in the repository folder.

Note: Some Linux distros like Debian ship C compilers too old for BeatUpServer. To specify a different compiler for building, set CC environment variable:

sudo apt install clang-11
CC=clang-11 make

Additionally, BeatUpServer may be cross-compiled for Windows using the mingw-w64 toolchain:

CC=x86_64-w64-mingw32-gcc make beatupserver.exe