Astroneer: How to bypass "Preferred" Dedicated Server requirement

Astroneer: How to bypass "Preferred" Dedicated Server requirement

 Do you play Astroneer on Microsoft Store/Xbox/Gamepass, and want to join a friend on Steam or Playstation? Well, too bad. Astroneer co-op only works within the same platform... Fair enough, don't see many games that have true co-op crossplay. You find out that in order to play cross-platform, you must have a dedicated server. "Great!" You'll say, thinking you can just follow my guides to set up a server for free. (Guides removed)
Well... no. You'll go through that annoying process, launch Astroneer, and add your new server only to see:

"XBOX LIVE USERS CAN ONLY CONNECT TO PREFERRED SERVERS"

What? What is this? Why is this? Well, apparently, Microsoft doesn't trust you. Yes... you. Or me, or anyone other than G-Portal and Nitrado. Microsoft allegedly has a deal with these companies that ensures their servers are "safe" and "secure", and thus allows players on the Xbox network to join. Screw what the player wants, who cares if you're tech savvy enough to set a server up yourself in a secure manner, we don't trust you and we're protecting you from yourself. Classic Microsoft.


That being said... if you're going to ignore this article and rent from 1 of the 2 approved providers, pick G-Portal. It is significantly more reliable, and is the community's favorite of the 2.

Anyways, here's the workaround.

First, this obviously only works on PC, not Xbox. This is a client side bypass, not server side. There is no way to truly make a server Preferred, you can only lie to the clients.

We'll be using a tool called Fiddler Classic, a web-debugging tool that essentially Man-in-the-Middle's all your HTTP/HTTPs traffic on your computer. If you're unfamiliar with the technology, please do some research to familiarize yourself, as trusting unknown root certificates can be very dangerous, and you need to understand the risk you're taking. That being said, this is a fairly popular tool and you probably have nothing to worry about.

We'll have Fiddler intercept traffic between the game server and Playfab, the third party service that Astroneer Dedicated Servers register with, and have Fiddler automatically modify the response from Playfab in real time to lie to your game client that "all of the servers you asked me about are Preferred, legit, no lie, you can trust me"

Below are the steps to do this forbidden magic:

  1. Install Fiddler Classic
    I'm unsure if Fiddler Everywhere will work, but I know this works on Fiddler Classic

  2. Open Fiddler Classic and go to Tools > Win8 Loopback Exemptions

  3. In the box that pops up, check ASTRONEER, and Save Changes

  4. Go to Tools > Options > HTTPS > Check "Decrypt HTTPS" and install the root certificate if requested

  5. Go to Rules > Remove All Encodings

  6. Go to Rules > Customize Rules, Go > to OnBeforeReponse

  7. Replace the OnBeforeResponse function with the following script:

    static function OnBeforeResponse(oSession: Session) {
        if (m_Hide304s && oSession.responseCode == 304) {
            oSession["ui-hide"] = "true";
        }
        if(oSession.uriContains("/Client/GetCurrentGames")) {
            oSession["ui-backcolor"] = "lime";
            var oBody = System.Text.Encoding.UTF8.GetString(oSession.responseBodyBytes);
            var j: Fiddler.WebFormats.JSON.JSONParseResult;
            j = Fiddler.WebFormats.JSON.JsonDecode(oBody);
            var games = j.JSONObject["data"]["Games"];
            for (var iEach = 0; iEach < games.Count; iEach++){
                games[iEach]["Tags"]["category"]="Preferred";
            }
            var modBytes = Fiddler.WebFormats.JSON.JsonEncode(j.JSONObject);
            var mod = System.Text.Encoding.UTF8.GetBytes(modBytes);
            oSession.ResponseBody = mod;
        }
    }
    
  8. Launch Astroneer and add the server you want to join if you haven't already
    All servers, even ones self-hosted or hosted by a party other than GPortal/Nitrado, should now show up as "Preferred"

  9. Have fun! :)

Keep in mind that any time you want to join a non-preferred server, you will have to have Fiddler running with this script. As soon as you join, you can, and should, close Fiddler, as it can mess with other applications on your computer, and even breaks certain websites.