Cannot join private servers via links

Not me, but can confirm that this has happened to a user I know.

Unsure what work around is though… perhaps our lord and savior @kornelek09 could cook something up? :innocent: :pray:

1 Like

I’m also having the same issue, looks like it might be happening for everyone? Trying to join private server links that start with share?Code does redirect you to the login page and is happening to other people who are trying to join private servers. Unsure if ?privateServerLinkCode works as I can’t find one for testing

2 Likes

i was able to force roblox into redirecting me into privateServerLinkCode, will send a followup soon

9 Likes

I’ve seen a lot of people say links work on mobile, but not desktop. Is that still the case or have they now fixed it so it’s broken fairly across the board?

mobile players have to use the same links, it’s the same page so from what I know it should also be broken for them

2 Likes

Confirmed links have been working on mobile, seems to just be desktop affected.

One messy but useable workaround:

Anyone that usually posts private server links -

  • Change your profile settings to allow “everyone” to join you.
  • Go into an empty public server.
  • Post your profile link for people to join you.

It’s not perfect, but it seems to be working.

something came up so a little delayed, but here you go, paste this script into Tampermonkey (an add-on) and everything will be done automatically, as always remember to check what you’re pasting

// ==UserScript==
// @name         VIP
// @version      1
// @description  VIP server fix
// @match https://www.roblox.com/login?returnUrl=*
// @match https://www.roblox.com/games/*
// ==/UserScript==

(function() {
    'use strict';

    const url = window.location.href;

    if (url.includes("share-links%3Fcode")) {
        var fetchPrivateServerCode = async () => {
        var code = window.location.href;
        code = code.substring(code.indexOf("3D")+2,code.indexOf("%26"));
        const body = JSON.stringify({
            linkId: code,
            linkType: "Server",
        });

        const response = await fetch("https://apis.roblox.com/sharelinks/v1/resolve-link", {
            method: "POST",
            body: body,
            credentials: "include",
            headers: {
                "x-csrf-token": document.querySelector('meta[name="csrf-token"]').getAttribute("data-token"),
                "Content-Type": "application/json;charset=utf-8"
            }
        });

        var data = JSON.parse(await response.text()).privateServerInviteData;
        window.location = `https://www.roblox.com/games/${data.placeId}/Game?privateServerLinkCode=${data.linkCode}`
        };
        fetchPrivateServerCode();
    } else if (url.includes("?privateServerLinkCode=")) {
        var content = document.getElementsByClassName("content")[0].textContent;
        content = content.slice(content.indexOf("xLaunch.Request")+55);
        content = content.substring(0,content.indexOf(")")).replace(", null","").replaceAll("\'","").split(", ");
        window.location = window.location.href.replace("?","#")+"&"+content[1]
    } else if (url.includes("&")) {
        var id = url.slice(url.indexOf("games/")+6);
        id = id.substring(0,id.indexOf("/"))
        const data = url.slice(url.indexOf("Code=")+5).split("&")
        Roblox.GameLauncher.joinPrivateGame(id,data[1],data[0]);
    }
})();
3 Likes

You’re a hero. Thank you very much.

1 Like

you’re welcome, no clue how Roblox still didn’t do anything about this except break it more

2 Likes

great news, looks like an awesome admin responded

if anyone is investigating, on the share link, isAuthenticatedAccount returns false and invite type is Server instead of ExperienceAffiliate (so it’s also false)

also please, don’t make the website run on sticks, don’t load all the scripts and assets on redirect URLs like the share link

1 Like