SaberFy

During covid, I got pretty good at Beat Saber. Like, top 2,000 in the United States. I might have a Scoresaber screenshot lying around, but you’ll just have to trust me. Lots of time spent. As such, I was playing these songs quite a bit and I thought “Wouldn’t it be nice if these were the songs I was listening to regularly?”

So, I made a tool. SaberFy takes any (public) Spotify playlist and searches all the songs on the list against BeatSaver, a community-maintained database of 3rd party song “maps” for Beat Saber. The highlight features are in-browser map previews and one-click download buttons to make it quicker to go from a playlist to playing.






Have some time? Read more about the thought and work that went into SaberFy.



Behind the design

SaberFy was first developed as a tool to try and connect my Spotify and my Beat Saber songs, but it turned into an imitation of the Beat Saber UI that I spent so much time in during 2020 and 2021.

This video showcases what the game’s UI looked like before it had a redesign that italicized the text and tightened the border radii of many of the screens. Of course, I didn’t implement many aspects of the UI such as the 3D nature of the panels or the shockwave shader on click, but for many of the other aspects, I did my best.

Small items such as the pointer being a blue dot, the translucent panels, the exact font, the PS3-like floating particle background, and so many other tidbits were carefully constructed to make a cohesive replica of the in game user interface.


What worked, and what didn’t

I believe in designing and testing simultaneously. It helps verify if a design is heading in the right direction, and steers away from objectives that bring big technical issues, or other headaches.

However, this has its drawbacks, because as soon as I stop testing the system, I stop working on it - so the search of SaberFy isn’t awfully amazing. I fixed some immediate issues such as case sensitivity and removing completely off matches, but there’s still days of work that could be put into smarter search queries and making better matches between Spotify songs and BeatSaver songs using info such as song length, BPM, and matching more fields such as the artist. Even if I did this work, it wouldn’t really fix the practice of mappers sometimes putting the mapper’s name in place of the song’s author, and other metadata consistency.

But even if the search wasn’t perfect, when it found anything remotely related to the song, it was a joy to browse the offerings because of the song preview page. In-browser map previews means that anyone with knowledge on what looks like a good Beat Saber map would be able to filter a map’s quality quickly, and quick access buttons to common tasks such as downloading, copying BSR codes, or OneClick installs super easy.

The last quality-of-life update I made to SaberFy included using cookies and the browser’s local storage to keep track of previously viewed Spotify playlists.


What are Beat Saber maps?

Maps are songs (or any audio) paired with timed blocks, walls, and bombs in Beat Saber. Very often, rhytmic patterns appear in maps so that hand and wrist movement can smoothly flow from one section of a song to another. Colloquially, any deviation in a pattern of a map without ample break time is called a “jump” - just to describe how consistent these patterns are expected to be.

It takes hours, if not days of work to create a map for even a 3 minute song. Good maps are at the very least, timed correctly to the song so that the beat of the song matches the slash movement and are playtested to make sure there are no rough edges, weird blocks, and awkward movements required to cut all the blocks. Creative song mappers can pull off tricks such as using walls to make the player squat, move left and right, and generally stay on their toes.

For all the work that goes into these maps, it may be surprising to learn that for years, maps have been generally free - a gift from a creater to the community, with the only exception being the official songs made by employees of Beat Games, the creators of Beat Saber. Furthermore, the audio of songs is directly included in a map file, which stands in a legal gray area as maps are distributed freely online.

Despite this, the search function in SaberFy is extremely simple. Often, there is a limited choice of maps for a given song, and map quality is subjective to skill level.


What now?

Well, I don’t play Beat Saber anymore. My wrists hurt whenever I go too hard, and I don’t have quick access to a VR headset anymore. However, I love that SaberFy will be up for as long as the Spotify API and BeatSaver search API is up. It’s a time capsule of the design language of Beat Saber nearly 4 years ago, and of the memories and turbulent year that the game brought me through.

So much has changed in the nature of Beat Saber, and maybe I should have focused on making an in-game mod that helped keep the user inside the headset instead of back on the desktop to find their next song. Even so, so many more users are on the Quest now, and the friction that Meta (Facebook) puts on patching the game to play custom mods probably stops millions of people from being able to play their favorite song, no matter how badly it’s been mapped. The freedom of choice doesn’t have to be pretty, but the taste of something greater has inspired many to build better things.

For now, you’ll be able to see how similar your music tastes are to those in the Beat Saber mapping community, and I hope future tools like mine take care in designing the details. Visit SaberFy here.