Current Version: 0.99.9b (Public) – V0.99.9.1b (Dev/Discord)


  • Beat Saber 1.7.0 (or higher)
  • BMBF 1.7.0 (or higher)
  • Windows PC with Sidequest Installed (currently needs to be “Only For Me” – not “For Everyone”)
  • Quest 2 needs SideQuest/ADB to issue “wake up” commands due to BMBF being put to sleep

Getting Started

  • Watch a tutorial video on setup:
  • Quest should be connected to your home network
  • BMBF is running (you’ll need your IP address; get it from TOOLS or from Sidequest)
  • Beat Saber is currently modded with BMBF and already working
  • PC running Playlist Editor Pro is on the same network as the Quest (and can ‘see’ it)

Using Playlist Editor Pro

Features Requiring Sidequest/ADB

While Playlist Editor Pro is primarily a front end for BMBF, many features have been added that require Sidequest/ADB to use. Here is at least some of those features:

  • Fast Switching of Modded/Unmodded Beat Saber
  • Backing up covers
  • Sending “wake up” commands to Quest 2
  • All BMBF Tools (Start/Kill BMBF, Start/Kill Beat Saber, Install BMBF, etc)
  • Getting storage space stats of Quest
  • Backing up songs
  • Do your manual song deployments before you pull the config down from Quest – these show up in CUSTOM SONGS
  • If you keep BMBF open in your PC’s web browser, you can watch what is going on and verify visually PEP is working
  • Keep backups frequently during testing
  • During operations to the Quest, the application may not be responsive.  This is currently expected.
  • Sorting isn’t being respected by BMBF when the playlists are pushed. Unicorns are looking into this.
  • Recommended to have your Quest charging (it won’t go to sleep as often)
  • As always, keep an eye on the OUTPUT/LOGS area for messages

Change Log / What’s New?

  • V0.99.9b (Public Release)
    • Adopted the use of BeatSaverSharp from lolpants.
    • Another fix to the useragent being denied access to Beast Saber (affects song lookups). I registered PEP properly with the Jellyfish so hopefully this doesn’t show up again.
    • Delete system was rewritten to allow multiple deletes.
    • There is now a pane indicator showing you the last list you worked with. Actions like DELETE, PREVIEW, etc. act on the songs in the active panel. Rewrote the code around those actions.
    • Brand new “wake up” and “keep alive” system that will hopefully stop all the BMBF sleeping issues and Quest 2 snooze issues once and for all. This is huge. Should also ensure PEP can properly start BMBF if it was never running (i.e. cold boot of Quest 2).
    • Bug with NEW playlists being created. After moving songs to them from UNSORTED, sometimes accessing the song list would crash PEP. I believe I got this fixed.
    • Added SHOW TIMESTAMPS option for Output/Logs (by request). Also, if you select the output window and hit ENTER it will make the box bigger (enter toggles it back).
    • BPLIST was failing to export more than 60 songs (too rapid API hit, apparently). Added a small delay and it seems to be working
    • BPLIST export would stop processing after a single failed hit to the API. This has been fixed and the export continues in the event the API lookup fails to return a song.
    • BPLIST export now offers to open the folder it saved to (need to create custom BPList location feature at some point)
    • Backing up playlists with NAMES that had illegal Windows Filename characters were causing issues (I strip them from the song names, but failed to do it for playlists names). This was fixed.
  • V0.99.8b (Public Release)
    • Due to a bit of a snafu, I had to do some rebuilding of Playlist Editor Pro. Because of this, I chose to take another work around with the UI (I know, I promised not to mess with it) which was not only running out of room, but was debilitating to those running on laptops with 768 vertical resolution. Let’s get started with all the changes.
    • Song Backup Tool! You can backup all the songs on your Quest in several different ways. You can back them up as ZIPs or FOLDERS – and you can put them in a single folder or have them sorted by Playlist name. If you elect to go with no playlist folders and just use folders? You can actually point the backup to your CUSTOMSONGS folder for your PC version of Beat Saber. I’ve added some verbiage to the existing backup tools to denote them as “Playlist” backups.
    • The biggest change is that several panels in the UI are now in a small tabbed area – Quest Info, Backups, ADB Tools and BSaber all reside in one spot. Lots of small UI/font changes and realignment.
    • Test BMBF has moved to the PLAYLISTS area so you have access to it regardless of the tab in view
    • Uploader is now under the Quest Info tab. Get Help moved there too.
    • The status bar stuff; Storage, BMBF/BS versions and BMBF status are now in the lower left instead of the valuable real estate on the bottom.
    • New! Toggle Q2 “stay alive”. If you click that button, PeP will perform a Quest 2 wake up every 15 seconds. This keeps BMBF responsive if you’re using a browser version – and if the Q2 goes to sleep, it will stop fetching song covers too. Click the button again to turn off the stay alive; when you exit PeP, this feature stops working.
    • The Fast Mod Switch system has been overhauled. It will no longer run as part of the first run wizard (since people seem to be ignoring it), but you’ll instead go to the ADB Tools tab and there will be a dedicated Setup button and the toggle button has been revamped.
  • V0.99.7b (Discord Release)
    • Got off my lazy butt and added ADB device detection; this was causing a lot people grief – those that have ADB devices like emulators connected. You can choose the device from a new drop down in the BMBF tools.
    • Quest 2 v23 update seems to have broken the WAKE UP command I was using; found a different one that seems to work. Hopefully it still works in < v23.
    • Moved Disable Update Checks to above Output Logs.
    • ADB Device Override field has been added for people that have multiple ADB devices connected simultaneously (many people are using a Quest and have something like Bluestacks or other Windows based emulator). You may also have a Quest and Quest 2 connected at the same time. If this new field has a value (no checking is done; honor system) any ADB calls will be redirected to this device name. PeP assumes you only have one ADB device connected; this lets you work around this. This value is sticky and will be there each time you run PeP. A clear button is provided.
    • BMBF/BS versions have moved to the status bar at the bottom.
    • Song counts have been added; total songs across all playlists (when you load the config) and per-playlists counts (when a playlist is selected). Note: total song counts are what “BMBF sees”, so even if you delete songs from a playlists, that TOTAL SONG COUNT will not change until you commit your playlists back. I’m open to discussion on whether this is the best way to handle it.
    • Preliminary support for “alternate IP address” for those with more than one Quest – you don’t have to keep changing the IPs when working with the other one.
    • Ability to set a PLAYLIST COVER from a SONG COVER with one click. Note: this requires a CONFIG push, so a warning will be given if you have unsorted songs. All changes (and the new cover) will be committed at once.
    • Added Storage Space in the status bar at the bottom showing how much space your Quest has total, used and free.
    • Allow BPLIST files to be uploaded via the UPLOAD TO QUEST button. Note: Big playlists could take a significant amount of time and could cause a timeout. I would make sure all changes are committed before using this feature – and if something happens, fire up a BMBF browser instance and press SYNC TO BEAT SABER yourself when it finally finishes. I would definitely NOT do it as a batch process.
V0.99.6b (Public Release)
  • FAVORITES button is now available for any playlist – not just Bookmarks! Any song you tag as a favorite inside the game will trigger the button to light up when loading the applicable playlist. Using the button will move those favorites to the Unsorted list to put in another playlist.
  • Export your playlist to BPLIST format! This can take a bit because I have to look up songs from Beat Saver. Note; any maps that weren’t downloaded from Beast Saber will likely fail. Needs more work for these situations. But if you’re all Beast Saber syncing? This should work OUT OF THE BOX.
  • Finally overhauling the dialog box system to skin with Metro look and feel as well as allow for stick “don’t show this message again” for certain boxes. Tons of work and overhaul, but needed. All dialogs are converted – but not all the “don’t show” messages I intend to add are there.
  • Preview button now uses the same method of acquiring a song key as the BPLIST lookups to (using As long as the song in question was synced from Beast Saber, this should work 100% of the time now.
  • DeMark button now uses the same method of acquiring a song key as the BPLIST lookups to (using As long as the song in question was synced from Beast Saber, this should work 100% of the time now. It is still using a screen scraper, so this could break should BSaber update.
  • Bsaber button now uses the same method of acquiring a song key as the BPLIST lookups to (using As long as the song in question was synced from Beast Saber, this should work 100% of the time now.
  • Fixed Delete Playlist not properly moving songs to the UNSORTED list.
  • Demarking wasn’t working anymore. This has been fixed.
  • Rebranded UPLOAD SONGS TO QUEST to be friendly to MODS too, since the upload process is identical. There is still no validation that what you’re trying to upload is a valid map or mod.
  • Added link to (the released mods directory).
  • Backup Covers had a “spaces” issue surrounding ADB. Some covers wouldn’t back up properly.
  • Set Cover had a glitch if you tried to upload a cover from the PeP application folder.
V0.99.5b (Public Release)
  • Fixed the “spaces in PeP path” issue with pulling APK files during initial set up.
  • Added update check on startup. Any special alerts will also show up in the Output log. For those concerned about privacy, two calls to my web site are made to get version and alert text. NO DATA IS SENT. There is an opt out check box at the top right of the window.
  • Moved GET HELP to a more appropriate location in the upper right.

V0.99.3b (Public Release)
  • Beat Saber switching is all built in. Make sure your Beat Saber is already modded and run the new Playlist Editor Pro and you’ll be prompted to download the modded and unmodded APK files; there is no more manual process for preparing PeP to switch versions
  • First Run Wizard has a Quest 2 query.
  • During startup, PeP does various checks to see if you can/want to get apks downloaded from your Quest.
  • Added a closing warning if you didn’t set your IP address (you have to sit through the First Run Wizard if you don’t)
  • Tightened up Quest 2 calls for keep alive
  • Updated my config file calls to handle adding/updating keys more efficiently.

V0.99.2b (Discord Beta)
  • Added Beat Saber version switching (requires a lot of manual setup for now – see here)
  • Added Quest 2 checkbox to denote you’re using a Quest 2 so I can make some additional calls to the unit when working with it
  • Quest 2 likes to go to sleep and make BMBF stop responding to calls. I’ve added manual calls to the Quest 2 to wake it up – but BMBF must always be the last thing you ran and be front and center on the Quest 2 screen before you start working with PeP. Sucks, but it is what it is. These calls have to be added before any “comms” with Quest 2 – and I think I have them all in the latest beta, but I’m sure I missed one somewhere.
  • Hid the DL button for Backups (it was something I was working on and doesn’t work)

V0.99.1b (Public Release)
  • Forgot to update the FIRST RUN WIZARD with the datagrids. I used this opportunity to number the steps and rewrite some of the text for clarity.
  • Resized the TEST BMBF Server button to match the rest, since it is now inside a panel.

V0.99b (Discord Beta)
  • Another UI shuffle. I swear, this is the last one. This still fits in 1280×1024 resolution and it gives priority to the song lists themselves and opens up the columns added with the datagrids.
  • The sorting wasn’t working on the UNSORTED SONGS – took care of that.
  • Currently the datagrids are a facade for the real listviews hiding underneath (I really don’t want to recode everything just yet) so the sorting headers were turned off (since they wouldn’t have updated the datagrids). I have manually wired them up to simulate the button pushes. I know, they still don’t reverse sort … when I purge the listviews, we’ll get that back
  • Added the Beat Saber version number; it is fetched when you LOAD ALL and is displayed properly now. No more guessing what version of Beat Saber you have.
  • Big change; moved to asynchronous web client calls. I still have to lock out the UI, since I can’t have the user changing content while the config commit is happening (I suppose I could – just lock out the Save button – but this is safer). This is currently for CONFIG committal, but am going to move song uploading to Async too.
Older Releases
  • V0.98.3b (Discord Beta)
    • Cover uploading has been restored; the adb solution simply will not work – therefore, each cover change requires a CONFIG commit. Kinda sucks, but … it works again, anyway. 
  • V0.98.2b (Discord Beta)
    • Added the logic to stop FAVORITES from attempting to be parsed if user doesn’t have a usable SideQuest/ADB setup.
    • Added some graceful handling of timeouts during Config Processing. 
  • V0.98b (Discord Beta)
    • Finally, multi-select in the Song List views.
    • By request, you can now upload MULTIPLE songs manually instead of just one.  Again, no parsing or validation is done; if they are valid, they are added.  If not?  YMMV.  Each song is committed instead of the committing happening at the end – this takes longer, but it is safer in case of a downstream ZIP being bad. Also added a counter during upload.
    • Added sorting indicators for both panes to show what the current sorting selection is.  Note: when you move files to a pane, that pane’s sorting is reset.  I thought about making it sticky and forcing the pane to resort again after the copy – but it didn’t always make sense.  If you have an opinion, please let me know.
    • Expanded the backup tool to allow you to name your backups, delete your backups.  If you leave the backup name blank, it defaults to using a data/time stamp.  Also, since the date may no longer be part of the name, when you select a backup, it will show you the date/time it was created.
    • Fixed a window sizing issue that might have caused issues on 4k monitors.
    • Changed the PLAYLIST COVER uploader to use ADB vice CONFIG file hack (this was causing loss of data). We’re back to PNG only for now; I’ll have to write a converter for the other supported types.
    • Cover Search. Select a song, then click FIND by the cover. A premade Google search will pop up, searching for a cover for that artist, song title with some preconfigured settings to make sure you get a large, SQUARE image only. Nice?
    • Favorite Song Support: Put songs you want to try out in the BOOKMARKS folder. After you play, if you like the song, use Beat Saber’s FAVORITES button. When you bring that list up in PeP? A button will appear FAVORITES>>, click that and all Favorite songs are moved to the staging area for proper sorting into a permanent playlist.
  • V0.97b (Discord Beta)
    • NEW: Overhauled the UI; this is based on feedback and growth of the system.  Things are a bit more logically organized.
    • NEW: Native ADB commands based around SideQuest.  This is branded “BMBF Tools (BETA).  Start Wireless ADB, start/kill Beat Saber/BMBF – added beta installer to grab the LATEST BMBF and install it
    • Added button to search selected song on ScoreSaber
    • Laid some groundwork for being able to NAME your backups instead of using dates
    • Added sorting to lists for Artist, Mapper (ascending only, for now)
    • Added Song Author to the Selected Song window and did a little reformatting
  • V0.96b (Public Release)
    • FIX: Program Icon
    • FIX: Unsorted Song cover wouldn’t load (only the metadata).
    • UPDATED: Added JPG and GIF to the filetypes allowed for a cover upload
    • BETA: The ability to de-bookmark a song on your playlist!  Log into in your main browser.  Then you can use Playlist Editor Pro to select a song and “de-mark” it from your bookmarks.  
    • BETA: Added the ability to “preview” a song using Rabbit’s web player..
    • BSaber button added to open the song on
  • V0.95b (public release)
    • Added warning if you leave songs in the staging UNSORTED SONGS list; both pushing the Config or exiting the app.
    • Added a GET HELP button that brings you to these docs
    • BETA: Playlist Set Cover!  I’m using a sort of weird technique and I haven’t done a ton of testing, but if you choose a Playlist, hit Set Cover – choose a good size square PNG file.  Note: Upon selecting the image, the config will IMMEDIATELY be pushed without notice.  I will clean this up over time, put in size checks, image constraints etc.  I just had to share now.
    • Added FIRST RUN WIZARD that teaches the first time user the basics of how to get started.  Once you enter an IP address and exit?  That first run wizard will go away.  If you want to see it, clear your Quest IP and exit – restart the application.
  • V0.94b (internal)
    • Added sorting to both lists (unfortunately, there is a glitch in BMBF that the sorting of songs doesn’t commit to Quest; working with the unicorns to fix that – but it is still useful for finding and moving songs, so I left it in)
  • V0.93b (public release)Validation on IP address
    • Store IP address if the BMBF test is successful
    • Added notices regarding the rename and delete of BOOKMARKS
  • V0.92b (internal)
    • Clear lists when re-reading the config
    • Fixed ambiguity when doing a delete of a playlist
  • V0.91b (internal)
    • added restraints against MOVE ALLs working with built in playlists.
  • V0.9b (internal)
    • MOVE ALL left and right implemented
  • V0.8b (public)
    • Covers for Playlists and Songs added
  • V0.7b (internal)
    • DELETE songs support