Introducting: Short-Links

System
VRChat
Published in
4 min readFeb 8, 2020
lol -face box man

Hi there! It’s me, System! We haven’t talked in a while! It’s been ALMOST A YEAR!

I’ve been doing all kinds of stuff!

Since the last time we talked, I integrated Notification Sockets and Friend Sockets with the website — they still need work, but they’re there. I also started pushing towards Friend Sockets (aka Friend Sync)in the client — in other words, making your friends list in-VRChat much faster.

Friend Sync is currently waiting in the queue behind some client updates, and also behind a much larger queue marked “System entirely forgot how to program in C# in the past six months.” I’m also trying to convince the team that we should wait to fiddle with it until after we’ve got Unity 2018 shipped, but that is just a stalling tactic. We’ll get there, though.

I added Friend Locations and “Hey, Have You Seen This Completely Random World?” (Have you?)

I shipped support for managing Mutes & Blocks from the website!

I built Bios and Bio-links. You can see mine here! I even built a special website for my bio-links to link to.

I solved problems by reading AWS’s entire manual, and then forgot 95% of it and pressed buttons randomly while shouting into a pillow.

We rolled out ask.vrchat.com, a Discourse forum where you can discuss exactly one thing: UDON. We are currently debating whether or not to allow discussion of other things, or even what those things would be. The weather? Corn? Alternative kinds of noodle?

Arctor’s been plugging away on filesystem stuff. He’s also learned — first hand — that it’s tricky to rock a rhyme, to rock a rhyme that’s right on time, it’s tricky. Tricky (tricky) tricky (tricky).

Jenn moved our entire infrastructure over to new servers and then left for several months to create Real Actual Life. Pfft. I guess.

We just hired a bunch of new people in the API team — which is good, it gets lonely in here. Slorg, Nyxii, and bd_ have been killin’ it on new website features.

For example, if you get stuck in an avatar for whatever reason, you can now reset your avatar on VRChat Home! Just click “Avatars” on the left side. There’s a new button in there aptly named “Reset to Default Avatar”.

Click it to be turned into a gray, featureless, emotionless robot. It’ll take effect next time you restart the application. This may also happen to you in real life. If it does, we have many helpful tips on where to find supercharger stations and how to get your oil changed.

We’re really excited about our new year of, uh, let’s see what’s on the schedule. “Generating more HTTP 500 errors”. Done. “Allow users to manage long lists of friends without just declaring friend-bankruptcy and running into the woods to become a hermit.” This one just says “become profitable by selling VRPill to laboratory.” Yes, much more of that in the new year.

Enough About The Past, What Is This Short Link Thing All About?

Recently the design team asked me for something very, very simple. “Can we group Quest users together slightly better?”

Of course not! Our instances are totally ephemeral! They exist in Redis, a land where secondary keys are forbidden and data disappears every time you sneeze too loud. We can’t search instances! Madness!

Anyways, I set to work on a scheme that would allow me to actually search against instances. This involved no small amount of refactoring, and some parts of our instance table moving to the much slower but infinitely-more-searchable Mongo.

With that complete, though, it unlocked an ability that I’ve always wanted — the ability to construct an instance short-link.

I can hit the launch page for an instance, grab this link, https://vrchat.com/i/mimicrusher-98f (ed: sorry Mimi this is completely randomly generated I swear), and share it with my friends. Hopefully now I can say goodbye to links that look like https://vrchat.com/home/launch?worldId=wrld_a0018a31-ddf7-4ffd-85e3-5f02a82e33cc&instanceId=67887~private(vF8OwsCETo)~nonce(782da713-d618-4bff-8aaa-730d4763f4fb)~canRequestInvite forever!

There’s one caveat, though — these instances are no longer completely ephemeral, like they were in the old system. Instead, they’re garbage collected according to extremely complicated and byzantine rules which amount to “about an hour after the last person leaves the room if nobody has ever used the short-link, and about six weeks after the last person leaves the room if someone has”.

If you’re holding an event, want a gathering place with your Discord server, or anything else that requires directing lots of people to one instance — short links are how you do it!

Go forth and share these links with your friends! Your neighbors! Confused members of the press! DO NOT TAKE NO FOR AN ANSWER!

It’s my hope that these short links will usher in a new golden era of links-to-VRChat-instances-not-looking-like-complete-garbage.

--

--

System
VRChat
Writer for

Hey‚ I’m System․ I’m the backend dev-ops lead at VRChat․