hadeutscher / OvercookedTool

Overcooked 2 savegame conversion tool
45 stars 8 forks source link

user id on Xbox Game Pass for PC #5

Open peteer22r opened 3 years ago

peteer22r commented 3 years ago

Is it possible to use this tool to decrypt saves from Overcooked2 from Xbox Game Pass for PC ? If yes how can I get user id in this case?

hadeutscher commented 3 years ago

good question; I need to look again at the binaries, but have you tried the unity uuid?

peteer22r commented 3 years ago

Yes, no luck, I get "Wrong key?" or something.

Saves are located in folder with long name made from digits, this also didn't work. I assume this can be user id or something because other games also use same string.

Files with saves have also filenames made from digits (but this is similar for other games) so I guess I had correct files, but not 100% sure.

LinnielDW commented 3 years ago

Hey, author of the unity uuid-getter here. In the Assembly-CSharp.dll for the game, it uses this method to get the id to use as defined below:

private string GetUniqueId()
    {
        string text = SteamUser.GetSteamID().ToString();
        return (text == null) ? SystemInfo.deviceUniqueIdentifier : text;
    }

I took a look around and it appears that their codebase is compiled to be platform-specific. If you find where your game is installed, there should be a Assembly-CSharp.dll file in the _Data/Managed folder. Decompile that and look for a file called 'GlobalSave' and the method as defined in the above code bracket. That should tell you what you need to input into the tool as the user id.

EnochDogu commented 2 years ago

private string GetUniqueId() { string text = null; if (GRDKPlayerManager.TryGetUserId(out var userId)) { text = userId.ToString(); } return (text == null) ? SystemInfo.get_deviceUniqueIdentifier() : text; } Hello, i met the same problem. And i tried to decompile the .dll file of the XGP version. That's what i got. Does that mean i have to get userid of XGP?

LinnielDW commented 1 year ago

private string GetUniqueId() { string text = null; if (GRDKPlayerManager.TryGetUserId(out var userId)) { text = userId.ToString(); } return (text == null) ? SystemInfo.get_deviceUniqueIdentifier() : text; } Hello, i met the same problem. And i tried to decompile the .dll file of the XGP version. That's what i got. Does that mean i have to get userid of XGP?

I don't have gamepass, so I can't check, but please give it a try and see if it works, because I am curious.

Acru commented 1 year ago

Reporting success~ The key used for the Xbox Gamepass PC version is your XUID in decimal form Use this tool with decimal checked; https://cxkes.me/xbox/xuid