Parrot's Saber Resources

Feel free to use any of the stuff I use in my streams (if you want to)! I don't require credit, but it is much appreciated!

Mods Current Camera Settings Assets/Media Files Saber Grip Overlays Colors
BSPlus Settings OBS Setup Firebot Stuff Liked Songs Hitbloq Pool

Mods

I use the following mods with version 1.21.0 of the game (dependencies are NOT listed):

- Not updated for 1.20.0+
- Code/branch available for 1.20.0+, no binary file available
- Version available for 1.20.0+



Current Camera Settings

The Scenes.json file will go in your UserData/Camera2 folder, the other .json files will go in your UserData/Camera2/Cameras folder. I use the Camera2 mod for in-game camera things.


Camera settings as of 21 April 2022
  1. Moved the Menu camera further back and decreased FOV, more of the center platform is now visible
  2. Added a third person in-game camera scene for a channel point redeem
  3. Re-organized custom scenes for better use with BeatSaberPlus's Chat Integrations
  4. Assigned custom scene shortcuts to F4 (In-Game Firstperson), F5 (In-Game Thirdperson), F6 (Menu Image Wall), and F7 (Menu Thirdperson)
Scenes Back Centered FPV Facecam Menu Menu Images Static Thirdperson

Camera settings as of 28 March 2022
  1. Brought normal first person camera forwards a bit, lowered FOV a bit
  2. Significantly reduced the amount of positional smoothing on both FPV cameras
  3. Slightly reduced the amount of rotational smoothing on both FPV cameras
Scenes Back Centered FPV Facecam Menu Menu Images

Camera settings as of 5 March 2022
  1. Added camera to show the wall of images behind me, toggleable by the F6 key
  2. Added first person scene without the avatar visible for use with modcharts
  3. Added custom scenes to switch between various camera setups
  4. Removed the block camera, felt it was useless now considering the main first person camera is centered
Scenes Back Centered FPV Facecam Menu Menu Images

Camera settings as of 11 February 2022
  1. Reset rotation on in-game first person POV, now correctly centered
  2. Adjusted angle of avatar camera
  3. Camera layout now designed for 18.75% extra width to avoid awkward first person camera position/rotation shenanigans

With these settings, the desktop window is no longer sized at a proper 16:9 resolution. In the %APPDATA%/LocalLow/Hyperbolic Magnetism/Beat Saber folder, you should have a settings.cfg file. In that file, change the windowResolutionWidth number to set a non-standard resolution. I've pre-calculated some common widths that should match up with my 900p (1900x900) resolution.

DO NOT USE FULLSCREEN MODE.

Base 640x360 854x480 1280x720 1600x900 1920x1080 2560x1440 3840x2160
Adjusted 760x360 1014x480* 1520x720 1900x900 2280x1080 3040x1440 4560x2160

In OBS, drag your window capture/game capture source towards the left so that the rightmost portion of the source is visible.

Scenes Back Blocks Facecam Menu

Camera settings as of 25 January 2022
  1. Re-angled in-game first person POV
  2. Pushed in-game first person POV slightly further back
  3. Rolled in-game frontal avatar view camera more to the left, should be straight up now
  4. Increased menu camera FOV slightly
  5. Re-positioned menu camera slightly
Scenes Back Blocks Facecam Menu

Camera settings as of 15 January 2022
Back Blocks Facecam Menu

Assets/Media Files

I keep all of my menu music and custom sounds (commands too!) over in my public file dump. If you want to use any of them, feel free!

Here's my hit/slice/etc. sound.


Saber Grip

Everyone swings differently! Not everyone has a widely varied grip like I do, if you try this and it feels awful, then don't use it!
I physically hold my controllers closer to a claw grip (held sideways pointed inwards slightly) than a standard grip.

Current Easy Offset grip config json file


Game Overlays

Use these links in OBS browser sources for live in-game information. To change settings, append ?[arg]=[value]&[arg2]=[value2] to the end of the URL. (e.g. to flip the Song Information overlay to the bottom and hide backgrounds: add ?hideBackground=1&flip=1 to the end of the URL.
All overlays have IP and port options as well for multi-PC streaming setups.

Song Information

(HTTPStatus) https://theblackparrot.me/bs_overlays/3/songInfo (Data Puller) https://theblackparrot.me/bs_overlays/3/songInfo/datapuller
hideBackground
0 (default):
Shows the blurred album art background
1:
Hides the blurred album art background
flip
0 (default):
Lays out the overlay for use in the top left corner
1:
Lays out the overlay for use in the bottom left corner
font
(any string) (default: Sarabun)
Changes the font
headWeight
(any integer, or bold/thin/regular/etc.) (default: 700)
Changes the title font weighting
subheadWeight
(any integer, or bold/thin/regular/etc.) (default: 500)
Changes the artist/mapper font weighting
timeWeight
(any integer, or bold/thin/regular/etc.) (default: 500)
Changes the elapsed timer/total time font weighting
hideRanked
0 (default):
Shows the star rating for ranked charts
1:
Hides the star rating for ranked charts
Requires the HTTPStatus mod OR the Data Puller mod

Average Hand Accuracy

https://theblackparrot.me/bs_overlays/4/acc
font
(any string) (default: Manrope)
Changes the font
spacing
(any integer, in pixels) (default: 2)
Changes the character spacing
Requires the HTTPStatus mod

Combo

https://theblackparrot.me/bs_overlays/4/combo
font
(any string) (default: Manrope)
Changes the font
spacing
(any integer, in pixels) (default: 2)
Changes the character spacing
Requires the HTTPStatus mod

Percentage/Acc Overlay

https://theblackparrot.me/bs_overlays/4/percentage
name
(any string)
Name to search for on the leaderboards to show for the personal best; will not show at all if name cannot be found.
NOTE: Data is proxied through my server in order to get around the lack of an Access-Control-Allow-Origin: * header on ScoreSaber's side
font
(any string) (default: Manrope)
Changes the font
spacing
(any integer, in pixels) (default: 2)
Changes the character spacing
noFlash
0 (default):
Flashes the percentage on each block cut
1:
Percentage remains static on each block cut
Requires the HTTPStatus mod

Average Hand Acc / Combo / Overall Acc (Combined)

(Standard HTTPStatus) https://theblackparrot.me/bs_overlays/4/combined (HttpSiraStatus) https://theblackparrot.me/bs_overlays/4/combined/sirastatus
Requires the HTTPStatus mod OR HttpSiraStatus mod. Uses the same arguments/parameters/settings/etc. as listed above.

Health Bar

https://theblackparrot.me/bs_overlays/health/bar
height
(any integer, in pixels) (default: 48)
Changes the bar height
c1
(any hexadecimal/base16 color code, or HTML color name) (default: !fff)
Top color of the bar's gradient
c2
(any hexadecimal/base16 color code, or HTML color name) (default: !bbb)
Bottom color of the bar's gradient
flip
0 (default):
Shows the bar coming in from the bottom
1:
Shows the bar coming in from the top
Requires the DataPuller mod

Low Health Gradient

https://theblackparrot.me/bs_overlays/health/gradient
Requires the DataPuller mod

Color settings

Left Saber (R 122, G 193, B 255)
Right Saber (R 115, G 73, B 189)
Left Environment (R 162, G 195, B 255)
Right Environment (R 170, G 130, B 255)
Walls (R 0, G 0, B 0)
Wall Outlines (via Tweaks55) (R 255, G 255, B 255)
Bombs (via Tweaks55) (R 188, G 188, B 188)

BeatSaberPlus Settings

All of the commands that can output map information have either been modified not to send any map information, or have been outright disabled on my stream. Use the !bsr script in the Firebot section in tandem with a bot for map information.


The following files will go in these locations:
Chat/Config.json: UserData/BeatSaberPlus/Chat/Config.json
ChatEmoteRain/Config.json: UserData/BeatSaberPlus/ChatEmoteRain/Config.json
ChatIntegrations/ChatIntegrations.zip: Extract to UserData/BeatSaberPlus/ChatIntegrations/Import and use the in-game Import button
ChatRequest/Config.json: UserData/BeatSaberPlus/ChatRequest/Config.json
GameTweaker/Config.json: UserData/BeatSaberPlus/GameTweaker/Config.json
NoteTweaker/1650515904_Parrot.bspnt: Save to UserData/BeatSaberPlus/NoteTweaker/Import and use the in-game Import button


OBS Setup

Plugins

win-capture-audio (requires Windows 11 or at least Windows 10 20H2)


Beat Saber settings

Main volume 100%
Music volume (via Enhancements) 40%
Preview volume (via Enhancements) 40%
Good cut (via Enhancements) 100%
Bad cut (via Enhancements) 80%

Output settings

Canvas resolution 1600x900
Output resolution 1600x900
Downscale filter Bilinear (overall)
Cubic (depending on source)
FPS 60
Video bitrate 6800kbps
Video encoder x264 (software/CPU encoding)
Encoder preset veryfast
Audio bitrate 256kbps, 44.1kHz stereo

Twitch VOD Track (Uses Track 2) is checked on/enabled in the Output settings panel.

Ignore streaming service setting recommendations is checked on/enabled in the Stream settings panel. Twitch will allow you to reach 7000kbps without issue, but will throttle you down to 3500-4000kbps on your next stream if you push over too much.


Beat Saber Audio source

Main volume -5.5dB
Limiter -10dB threshold
30ms release
Compressor 13:1 ratio @ -35.8dB threshold
250ms attack, 500ms release
Microphone source is sidechained for ducking

Audio output is only sent to audio track 1 (live).


Microphone source

Main volume 0dB
Noise gate -26dB open threshold
-36dB close threshold
8ms attack, 1500ms hold, 350ms release
Noise suppression RNNoise (available here if needed)
Expander 3:1 ratio @ -37dB threshold
10ms attack, 50ms release
RMS detection

Audio output is sent to both audio track 1 (live) and 2 (VOD).


Firebot Stuff

Events Commands/Wildcards

Commands


Wildcard Triggers


!bsr Filtering Script

I've made my extra-map-information script available to the public for those that want to use it. I also have it filtering data since BeatSaver seems to not want to. The code for this and what I'm filtering out will remain private as to prevent people figuring out how things work/how to get around it.

https://theblackparrot.me/bs/bsr-filter/index.php
hash
(any hexecimal number)
ID number/code for the map being requested (e.g. 25f, 1ad3b)
showRanked
0:
Hides the star rating for ranked charts
1 (default):
Shows the star rating for ranked charts

Nightbot Command Setup


StreamElements Command Setup

(that 5 is the cooldown amount, it is not part of the url, go to the next line after "bsr-")
(streamelements btw, guys, there's this CSS property called "padding", y'all should try it sometime)

Streamlabs Cloudbot Command Setup

This script will not work with Streamlabs's Cloudbot. Not my fault, either, it's strictly Streamlabs's fault. Sorry. Yell at them to increase wait times on server responses. /shrug