Hello, and welcome back to this week’s community profile! This week, we have Moon, a modder within the Beat Saber community. Their contributions has been invaluable to many tournaments; without their dedication, Beat Saber tournaments would not be the same. We hope you enjoy getting to know a little bit more about Moon!
When did you start getting involved in the Beat Saber community as a whole? What brought you in?
Well I first heard of Beat Saber when the teaser video was released on May 3, 2018. That video was just so satisfying, I knew it would end up being a personal favorite. I told my friend at the time, who I was borrowing a headset from to play Superhot, “Dude, this is the new ‘thing’ for VR.” I ordered a headset soon after and watched that teaser trailer every night before bed. I started off as a player (and once, a mapper, but we don’t talk about that), learning along with the rest of the early community, but I didn’t start modding until about six months later.
The teaser in question!
Are there any other aspects of the community you’re involved with, aside from modding?
Well, yes! Since I make tournament/event mods, I find myself very involved in the tournament scene. From BTH to Shitmiss, Beatkhana to the World Cup, I’ve had the great pleasure of working with some dedicated folks to help make these events a reality.
When and why did you start coding?
I started programming almost 8 years ago now. Man, how time flies. I was really interested in security at the time, and by extension, I loved the idea of taking control of other computers. Sounds like a typical angsty teen’s dream, doesn’t it? Well, I suppose something productive came of it, I picked up C++ and socket programming to further my goals, and soon ended up with an Android app that could open all the disc trays in my school’s computer lab (with permission from my teacher). Neat. I had a plethora of other small personal projects which you can see on my Github, but my next big adventure was Android reverse engineering. I stayed there for a couple years, and then when Beat Saber released, I picked up .NET and Unity and got to work.
What mod(s), websites, tools etc. have you done for the Beat Saber community?
I don’t do public facing mods most of the time. The community is wonderful, and so many talented modders are out there making things for us, I found it hard to find a niche that I could fill. So, I ended up using my passion for transporting data to make a Weekly Event plugin for a certain server I was a part of. Instead of gathering screenshots, manually tallying scores, and giving people their proper roles, a bot and plugin were made to automatically do those things. That bot has seen many different names and functions, but today it’s probably most recognizable as the World Cup Qualifier bot. On top of that, I also ended up with TournamentAssistant, which is used to help match coordinators get everyone on the same page and synchronize streams during tournaments.
TournamentAssistant in practice!
Which one are you the most proud of? Could you walk us through the development process a bit?
Honestly, at the moment I’m most proud of TournamentAssistant. TA is the pinnacle of my experience in socket programming so far. All of its networking functionality was written from the ground up, and it’s one of the first things that I’ve written that feels… Right. Well, the networking part at least. The UI and other features have a long way to go! For me the development process goes like this:
1) I wonder if I could do this
2) I wonder if I should do this
3) (Inspiration randomly strikes) OR (I tell a bunch of people about my idea so I’m obligated to finish it)
4) I spend a few days pushing out the proof-of-concept
5) Get some people to use it and find improvements to make or bugs to fix
6) Repeat (5) until I get bored of the project
How long does it take you to make a mod, generally? What tools do you use?
A mod is never done! There are always improvements to be made, and bugs to fix. To get something working though, I’d say a matter of a couple days, depending on the scale of the project. As far as tools, Visual Studio and dnSpy (with Unity debugging set up!) are absolutely essential.
What has been the biggest challenge you’ve had to overcome so far?
My biggest personal challenge is finding something worth doing, which I’m also passionate about. As I mentioned before, there’s a lot of talented modders out there doing good work. Areas for significant quality of life improvements in Beat Saber are getting slimmer by the day. There’s always a golden mod idea out there, but that golden idea isn’t always going to be something you’re interested in doing.
If I could wave a magic wand and grant you one modding-related wish, what you would ask for?
You’re kidding, right? I wish everything worked on the first try. If I had a nickel for every time a programmer threw something together with nothing breaking on the first try, I’d be in debt.
Do you have any advice for someone that would like to begin making mods for Beat Saber?
My best advice is that you’ve just gotta start.
If you have prior programming experience, that’s best, but if not that’s okay too. Everyone has to start somewhere. Take a look at how existing mods work, and see if you can make some changes to them and see what happens, until you understand what they do. Patience, determination, and a little bit of insanity are the keys to programming. There’s no problem that can’t be solved by time and Google.
For more experienced programmers, my advice is quite similar. Take a look at the repos for some of your favorite mods. ReflectionUtils is a godsend class, take it from almost any plugin, it and use it well. Set up Unity debugging with dnSpy, you can attach a debugger to Beat Saber and step through the game’s code and also your own. Not every problem’s solution is Harmony.
What does the future look like for you as a modder? Are there any upcoming projects you’d to tease?
I have a couple good ideas. I’ll make no guarantees that I’ll do it first, or best, though. What if Beat Saber had a multiplayer where you could use powerups against each other?
Is there anything else you’d like to add?
My hot take: Harmony is the devil. 99% of what modders use Harmony for can be solved with Action/Event manipulation.
Thanks so much to Moon for their time! We hope you enjoyed getting a little sneak peek into the inner workings of Moon’s mind. Beat Saber would not be the same without them!