A Beat Saber custom counter that displays your heart rate in game.
Supports BLE HR Monitor, Apple Watch, Fitbit, Galaxy Watch, WearOS and more! Check out instructions on HR monitors.
It also supports anything that Pulsoid, HypeRate, YUR Desktop App / MOD support! Check out instructions on data sources.
It can even pause the game for you if your heart is beating too fast!
These can be downloaded from BeatMods or using Mod Assistant (Recommended!).
Alternatively, you can also download them from their own site.
- BSIPA v4.2.0+
- BSML v1.6.0+
- SiraUtil v3.0.0+
- Counters+ v2.0.0+ (Recommended Optional, install if you want to use Counters+ custom counter system)
- Websocket-sharp (Optional, install if you want to use Pulsoid, HypeRate or FitbitHRtoWS)
- YUR Mod (Optional, install if you want to enable YUR Mod support)
- YUR Desktop App (Optional, install if you want to enable YUR App support)
Make sure all the required mods are working correctly brfore installing this mod!
- Head over to the Config Generator and download the mod with config included.
- Extract the files into your
Beat Saber
game directory. - Run the game and read instruction below if don't know how to use it.
- Download the latest release and extract the files into your
Beat Saber
game directory. - Run the game once
- Depend on your devices, follow the instructions below to configure the auto generated config file.
- Run the game and read instruction below if don't know how to use it.
The config file is at Beat Saber/UserData/HRCounter.json
. You can use notepad to open and edit it.
- Download the latest release and extract the files into your
Beat Saber
game directory. - Choose Overwrite if asked.
- Done!
- Install or update it first. Instructions above.
- If you are using Counters+, enable this counter in Counter+'s counter configuration page
- Checkout the full configuration page of the mod under the "HRCounter" button in the main menu mods section.
- Toggle on Auto Pause in the "Health & Safty" tab if you want the mod to pause the game for you. Also set the Pause Heart Rate for yourself!
If first time configure, checkout Config Generator to download mod with config included.
- Get you self a token HERE for free or HERE if you are a BRO.
- Keep that token in a safe place because it will not expire in a short time. You can always reuse the token in the future.
- Paste the token in the config file as below and set the value of
DataSource
toPulsoid Token
If first time configure, checkout Config Generator to download mod with config included.
- In the HypeRate app on your phone or watch, there is the session ID, which is also the few hex digits at the end of your overlay link.
- Change the value of
HypeRateSessionID
to yours in the config file. - Set the value of
DataSource
to"HypeRate"
.
For example, if your overlay link is https://app.hyperate.io/12ab
, then your session ID is 12ab
and the config will look like "HypeRateSessionID": "12ab"
For support on how to set up FitbitHRtoWS, please ask for help in 200Tigersbloxed's Discord server
- Follow the instruction on FitbitHRtoWS and set up your heart rate broadcast.
- Change the value of
FitbitWebSocket
to"ws://YOUR_IP:YOUR_PORT/"
. - Set the value of
DataSource
to"FitbitHRtoWS"
For example, "FitbitWebSocket": "ws://localhost:8080/",
or "FitbitWebSocket": "ws://192.168.1.100:8080/",
- Download and start YUR from Steam
- Set the value of
DataSource
to"YUR APP"
There are 2 options
- Download Pulsoid on your phone and set up heart rate broadcast. Then follow instruction for Pulsoid above.
- Download HypeRate on your phone and connect to your BLE device. Then follow instructions for HypeRate above
Note: You need to have testflight since HypeRate is still in beta.
There are 2 options.
- Use Heart for Bluetooth on your watch and use it as a BLE heart rate monitor. Then follow the instructions for BLE Compatible HR Monitor above
- Install HypeRate on your watch which you can download it on the play store and follow instructions for HypeRate above
Depending on your watch, monitoring quality may not be as good as a dedicated heart rate monitor.
- Use HeartRateToWeb and this app on your watch.
- Follow the instrucrion on their github page to set up heart rate broadcast. Make sure you download the first realease, the csharp one is bugged (filelock issue, and requires admin for no reason).
- Make sure your watch and your computer is in the SAME network.
- Use either from file or from /hr endpoint in the OBS section of HeartRateToWeb instructions.
- If you decide to use "from file", then use the path to the
hr.txt
file generated by HeartRateToWeb asfile:///PATH/TO/THE/FILE
. - If you decide to use "/hr endpoint", then enter the feedlink as
http://YOUR_IP:YOUR_PORT/hr
- If you decide to use "from file", then use the path to the
For example
- from file:
"FeedLink": "file:///D:/example/folder/hr.txt",
- from /hr:
"FeedLink": "http://192.168.1.100:6547/hr",
When this mod is requesting hr data, it expects a string containing one of these:
- A json contains key
bpm
with int type value and an optional keymeasured_at
with string type value. - Only numerical digits. (Regex
^\d+$
)
It can be in a file or can be requested from a link. Then set DataSource
to "WebRequest"
and the link.
More data sources and devices are planned to be supported. See below.
Open an issue if there is a device or data source you want me to support!
Here is a table for all the setting options if you want to edit config file instead.
Field | Type | Default | Description |
---|---|---|---|
ModEnable |
bool | true |
DUH |
LogHR |
bool | false |
Whether the received HR data will be logged |
DataSource |
string | "YUR MOD" |
The data source you want to use to get hr data. Use Random if you want to test things |
HypeRateSessionID |
string | "-1" |
Session ID for HypeRate, it is also the the few hex digits at the end of your overlay link. |
PulsoidWidgetID |
string | "NotSet" |
Widget ID for HypeRate, it is also the last part of your widget link. |
FitbitWebSocket |
string | "ws://localhost:8080/" |
WebSocket Link for FitbitHRtoWS |
FeedLink |
string | "NotSet" |
Your pulsoid feed link |
NoBloom |
bool | false |
Do you want no bloom on the text? |
Colorize |
bool | true |
Whether the hr value will be colorized by the following 4 detail settings |
HideDuringReplay |
bool | true |
Hide this counter while in a replay |
HRLow |
int | 120 |
The lower bound heart rate for when the color gredient will start |
HRHigh |
int | 180 |
The upper bound heart rate for when the color gredient will end |
LowColor |
string | "#00FF00" (Green) |
The RGB color in hex that where your hr is not higher than HRLow . This is also the starting point of color gredient. |
MidColor |
string | "#FFFF00" (Yellow) |
The RGB color in hex which is the middle point of color gredient. |
HighColor |
string | "#FF0000" (Red) |
The RGB color in hex that where your hr is higher than HRHigh . This is also the end point of color gredient. |
PauseHR |
int | 200 |
The heart rate that game pause will be triggered |
AutoPause |
bool | false |
Whether the mod will pause the game if heart rate reaches PauseHR |
IgnoreCountersPlus |
bool | false |
Ignore whether Counters+ is installed, ignore it to allow 2 hr counters to present at the same time |
DebugSpam |
bool | false |
Only effective in Debug build, toggle spamming of debug message in logs |
StaticCounterPosition |
3D Vector | (0, 1.2, 7) |
Location of the standalone static counter, has no effect on the counters+ counter |
HypeRateApple Watch (via HypeRate)WearOSFitbit (via FitbitHRtoWS)(By 200Tigersbloxed)
Open an issue if there is a device or data source you want me to support!
- Remember to exit the game first before editing config files.
- Please open an issue if you have problem using this or found a bug.