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
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+
- BSIndexHapticFix Fixes issue with Index Knuckle controllers dropping haptic feedback randomly
- BeatSaverUpdater Notifies of updates to custom maps
- BeatSaberPlus In-game chat, song requests, emote rain stuff
- BetterSongList Tools to help sort through the song list
- BetterSongSearch Advanced BeatSaver search tools
- Camera2 Custom camera stuff (what you all see)
- Chroma
- Data Puller Overlay stuff
- Easy Offset Grip settings
- Enhancements More control over game volume, also an in-game clock
- FastFail Brings me back to the results screen quicker when failing a chart
- GottaGoFast Makes the game snappier/load faster at cost of memory usage
- HTTPStatus (HttpSiraStatus fork) More overlay stuff
- HighlightBombs Adds a highlight shader to mines/bombs for easier visibility in dark lightingVersion from 1.18.3 works fine in 1.20+
- Hitbloq Community-run custom ranked map pools
- ImageFactory Shows various images in-menu and in-game.
- ImBlindedByTheLights Static lighting within the HMD
- JDFixer More control over jump distance offsets (I typically sit around 525ms in midspeed, 470-500ms in speed, 525-600ms in tech; all vary slightly with NJS <= 17)
- MappingExtensions
- MemoryMinimizer Adresses various memory leaks and improves song-cover-loading speed
- MenuSaberColors Keeps menu sabers' colors consistent with the selected custom color scheme
- NalulunaAvatars In-game avatars (current config)
- NalulunaMenu Adds the ability to set a game environment as the menu environment (currently on Glass Desert), also adds cubes (currently 90).
- NoodleExtensions
- ParticleOverdrive Changes the amount of particles that spawn on cuts
- SaberFactory Custom sabers (iSF-NSG-Tempus with Udon's Community Sabers's trail) (current config) (current default preset)
- ScorePercentage Displays my overall accuracy/percentage on the results screen
- SearchFixes More search tweaks
- Shaffuru Creates a randomized chart for a specified duration consisting of random jumpcuts of charts
- SmoothedController Smooths out controller movement in menus(Appears to work fine with 1.21.0)
- SongBrowser More tools to help sort through the song list
- SoundReplacer Changes various sounds/music
- Tweaks55 Disables haptics on certain events, changes mine colors (current config)
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
- Moved the Menu camera further back and decreased FOV, more of the center platform is now visible
- Added a third person in-game camera scene for a channel point redeem
- Re-organized custom scenes for better use with BeatSaberPlus's Chat Integrations
- Assigned custom scene shortcuts to F4 (In-Game Firstperson), F5 (In-Game Thirdperson), F6 (Menu Image Wall), and F7 (Menu Thirdperson)
Camera settings as of 28 March 2022
- Brought normal first person camera forwards a bit, lowered FOV a bit
- Significantly reduced the amount of positional smoothing on both FPV cameras
- Slightly reduced the amount of rotational smoothing on both FPV cameras
Camera settings as of 5 March 2022
- Added camera to show the wall of images behind me, toggleable by the F6 key
- Added first person scene without the avatar visible for use with modcharts
- Added custom scenes to switch between various camera setups
- Removed the block camera, felt it was useless now considering the main first person camera is centered
Camera settings as of 11 February 2022
- Reset rotation on in-game first person POV, now correctly centered
- Adjusted angle of avatar camera
- 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.
Camera settings as of 25 January 2022
- Re-angled in-game first person POV
- Pushed in-game first person POV slightly further back
- Rolled in-game frontal avatar view camera more to the left, should be straight up now
- Increased menu camera FOV slightly
- Re-positioned menu camera slightly
Camera settings as of 15 January 2022
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
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
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
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
Commands
- !bsr Triggers an external PHP script to give out extra map information. Some filters are applied to retrieved data due to BeatSaver's negligence, will say [REDACTED] when caught on filters. (see below)
- !r Gives information on how to request songs in Beat Saber/AUDICA (should automatically switch)
- !lurk Announces the user is... going away? Going silent? I still don't understand the point of this command, but here it is anyways. People use it. /shrug
- !modadd Command wrapper to give VIPs this command
- !pronouns Gives information on adding pronoun tags in chat
Wildcard Triggers
- how.*request, how.*add, can you play.*, do *.* pls, do *.* pleaseTriggers !r automatically
!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