Fumo-Unlockers / Xbox-Achievement-Unlocker

Achievement unlocker for xbox games (barely works but it does)
GNU General Public License v3.0
270 stars 60 forks source link

Event Based Achivements #2

Closed ItsLogic closed 4 months ago

ItsLogic commented 2 years ago

Different type of achievement which seems to use uploaded telemetry data to unlock the achievement and the server grants you the achivement instead of title managed achivements where a https request with some IDs would unlock it (documentation here) Very annoying to figure out how the telemerty upload works as the achievements are unlocked at seeminly random times after meeting the requirements

Achivement lists for games using event based achivements have extra data in the requirements field where it mentions the progress Some random guesses here but I would imagine: "id": "dc60fb99-6bc4-42a2-9987-4199b8e69756", is the telemetry item id for races/snowman skills. Not sure how to read/write this on its own

"current": "1","target": "1000", These two obviously being the current progress and the threshold for the achivement to unlock

"operationType": "SUM", sum of two different stats? not too sure but it may involve adding both snowman skills and races from two seperate stats

"valueType": "Integer", obviously just the data type

"ruleParticipationType": "Individual" This one is interesting. Are there any multiplayer achivements where data is collected from more than one account?

A full FH3 achivement for reference

{
    "id": "791",
    "serviceConfigId": "19020100-9575-4c2b-9916-3d664ce1dfab",
    "name": "#Forzathon Cleaning Up The Festival",
    "titleAssociations": [
        {
            "name": "Forza Horizon 3",
            "id": 1289871275
        }
    ],
    "progressState": "InProgress",
    "progression": {
        "requirements": [
            {
                "id": "dc60fb99-6bc4-42a2-9987-4199b8e69756",
                "current": "1",
                "target": "1000",
                "operationType": "SUM",
                "valueType": "Integer",
                "ruleParticipationType": "Individual"
            }
        ],
        "timeUnlocked": "0001-01-01T00:00:00.0000000Z"
    },
    "mediaAssets": [
        {
            "name": "bdd95ecb-f9b4-47c6-a09e-38f59e912086",
            "type": "Icon",
            "url": "http://images-eds.xboxlive.com/image?url=27S1DHqE.cHkmFg4nspsd7QE89C.A7nrC.W3XTwlVv3QC.AyedwcQAMZbwy36odMr5gIfUyogh8xYPCfUugViML4VMPIPOknFEBTT3zrkPls58s2VvkKFsQcxcVPniOtjd3GsBGvzbOwgeS8P6lPZSxH8UOv9ugoTh0_Ke4W00Y-"
        }
    ],
    "platforms": [
        "XboxOne"
    ],
    "isSecret": true,
    "description": "Complete 1000 Races or Snowman Skills",
    "lockedDescription": "Complete 1000 Races or Snowman Skills",
    "productId": "19020100-9575-4c2b-9916-3d664ce1dfab",
    "achievementType": "Persistent",
    "participationType": "Individual",
    "timeWindow": null,
    "rewards": [
        {
            "name": null,
            "description": null,
            "value": "125",
            "type": "Gamerscore",
            "mediaAsset": null,
            "valueType": "Int"
        }
    ],
    "estimatedTime": "00:00:00",
    "deeplink": "",
    "isRevoked": false,
    "rarity": {
        "currentCategory": "Rare",
        "currentPercentage": 0.27
    }
},
alwaystired-irl commented 2 years ago

hey mate - nice write up.

How did older programs like horizon manage to unlock these achievements?

Do you plan to push out your to-do list?

ItsLogic commented 2 years ago

As far as I know back on the 360 with horizon you could just add achievements directly to your profile file and the gamerscore would be added on to your online profile the next time you went online.

Yeah I plan to make a "real" todo list pretty soon

alwaystired-irl commented 2 years ago

Does horizon work outside of the 360 ? Is it be added to this ? (Not that I'm asking u to)

ItsLogic commented 2 years ago

I'm actually not sure if it did work outside of 360 games. I have no plans to add that kind of functionality to this tool though. I don't think profile files are even used anymore

alwaystired-irl commented 2 years ago

how about games like roblox or neverwinter - why don't they work?

ItsLogic commented 2 years ago

they are presumably using this event based achivement system which cant be unlocked in the way im unlocking achivements

SilverWhale44 commented 2 years ago

So I noticed that your tool DOES work on some Event Based achievements. The popup tells me it won't work but it does end up working. It depends on the game.

I can go back and check which ones if that information would be of assistance.

Apodisqulle commented 2 years ago

That sounds very interesting. Can you pls check which games worked?

SilverWhale44 commented 2 years ago

Did a windows update last night and it seems the tool doesn't work on anything now. Maybe something else is going on with the Xbox servers but just a headsup in case you have a windows update pending installation.

Can't check more due to the issue above but two I've done recently are Yakuza 0 and Doom Eternal.

ItsLogic commented 2 years ago

So I noticed that your tool DOES work on some Event Based achievements. The popup tells me it won't work but it does end up working. It depends on the game.

honestly its probably just my checking method messing up. if it works on those then I highly doubt they are event based achivements and that my check is just faulty

alwaystired-irl commented 2 years ago

It's faulty for sure

On Sat, 13 Aug 2022, 10:29 am ItsLogic, @.***> wrote:

So I noticed that your tool DOES work on some Event Based achievements. The popup tells me it won't work but it does end up working. It depends on the game.

honestly its probably just my checking method messing up. if it works on those then I highly doubt they are event based achivements and that my check is just faulty

— Reply to this email directly, view it on GitHub https://github.com/ItsLogic/Xbox-Achievement-Unlocker/issues/2#issuecomment-1213612405, or unsubscribe https://github.com/notifications/unsubscribe-auth/AZ4VOGUSFDQQQGBJMJNBAJTVY3T6VANCNFSM5ZYW7W7A . You are receiving this because you commented.Message ID: @.***>

Forzaleo commented 2 years ago

How did you manage to unlock those achievements in FH3? I tried but it doesn't work :( . Help

Apodisqulle commented 2 years ago

Hi Draff! At first I would like to thank you for your Xbox Achievement Unlocker Tool! Amazing work and please continue envolving this great tool. I do have a question about unlocking achievement... If I unlock an achievement using your tool will it have a valid Xbox timestamp (like "unlocked on 8.15.2022 11:32:34)? Thanks for your time!

ItsLogic commented 2 years ago

Yes the unlock time is set by the Xbox server so it will use the current time as the unlock time

mrsloth4994 commented 2 years ago

Hi logic! Thank you for the achievement unlocker. I'm new to GitHub and still learning my way around so if this is the wrong place to request/ask then I apologize.

Would it be possible for you to add a "Unlock All" button to each game?

Thanks again for your amazing work!

ItsLogic commented 2 years ago

this is the wrong place (ideally it should be in a new issue) but I am planning to add that when I get the time

TempAccountNull commented 1 year ago

This is exactly WHY your account gets flagged and banned.

NullP01nterExcept10n commented 1 year ago

From what you described, I assume it's not possible to add universal support.

I mean, we have to figure out how to upload telemetry data in the first place. Is that something handled by the Xbox Live API or just the game individually? If the latter, then I bet there's no universal solution, not even individual, I guess. If it's the former, then it still might be achievable.

Correct me if I'm wrong.

mrsloth4994 commented 1 year ago

I found a bunch of games that unlock achievements even when "event" pop up shows

NullP01nterExcept10n commented 1 year ago

I found a bunch of games that unlock achievements even when "event" pop up shows

That already has been discussed, the check for event-based achievements in the game's list is faulty. If achievement has been unlocked - it's not event-based.

mrsloth4994 commented 1 year ago

I found a bunch of games that unlock achievements even when "event" pop up shows

That already has been discussed, the check for event-based achievements in the game's list is faulty. If achievement has been unlocked - it's not event-based.

Oh right! Understood. So there's some games that don't actually unlock because the they are 100% true event based. And ones that do unlock even tho it says event based are not true

VespidEmperor commented 1 year ago

Hey, yeah sucks that most of the achievements do not unlock, but the achievements that do are class, also the time spoofing is great too, really appreciate the work you put into this, easy or not it's very impressive. Guess it would almost be near impossible to add stat changing? You know how some games have those stats next to your time played, something like that? Anyways, class tool, thank you very much pal!

ItsLogic commented 1 year ago

Hey, yeah sucks that most of the achievements do not unlock, but the achievements that do are class, also the time spoofing is great too, really appreciate the work you put into this, easy or not it's very impressive. Guess it would almost be near impossible to add stat changing? You know how some games have those stats next to your time played, something like that? Anyways, class tool, thank you very much pal!

I would actually like to be able to edit these values so I do plan to look into it in the future. Id imagine its possible but I havent looked into it yet so I couldnt say for sure

sunk1ll3r commented 1 year ago

Hey, yeah sucks that most of the achievements do not unlock, but the achievements that do are class, also the time spoofing is great too, really appreciate the work you put into this, easy or not it's very impressive. Guess it would almost be near impossible to add stat changing? You know how some games have those stats next to your time played, something like that? Anyways, class tool, thank you very much pal!

I would actually like to be able to edit these values so I do plan to look into it in the future. Id imagine its possible but I havent looked into it yet so I couldnt say for sure

Hey Logic, I just registered on GitHub specifically to thank you for this tool! As someone that tries to 100% all their achievements in every game this thing is a MASSIVE time saver for those one off grindy achievements I don't really want to do. My time is more limited than it used to be so being able to save any of it to play through more of my backlog is a godsend.

I know it's around the holidays so you've probably been busy and I have ZERO knowledge about anything when it comes to coding and stuff like this but I wanted to ask you if there's been any progress on the event based achievements or if those are pretty much dead at this point? I just checked a good chunk of games I'd want to use this on to knock out my last 1-3 achievements in them and about 10 of them were all event based so that was kinda heartbreaking lol.

ItsLogic commented 1 year ago

Hey Logic, I just registered on GitHub specifically to thank you for this tool! As someone that tries to 100% all their achievements in every game this thing is a MASSIVE time saver for those one off grindy achievements I don't really want to do. My time is more limited than it used to be so being able to save any of it to play through more of my backlog is a godsend.

Im glad my tool was able to help :)

I know it's around the holidays so you've probably been busy and I have ZERO knowledge about anything when it comes to coding and stuff like this but I wanted to ask you if there's been any progress on the event based achievements or if those are pretty much dead at this point? I just checked a good chunk of games I'd want to use this on to knock out my last 1-3 achievements in them and about 10 of them were all event based so that was kinda heartbreaking lol.

Its not completely dead since I am still working on it but I still havent been able to figure out how they work or see what happens when they are unlocked (which was trivially easy with title based achievements) I have a few good leads now though so I might end up with something pretty soon although no promises.

sunk1ll3r commented 1 year ago

Its not completely dead since I am still working on it but I still havent been able to figure out how they work or see what happens when they are unlocked (which was trivially easy with title based achievements) I have a few good leads now though so I might end up with something pretty soon although no promises.

That's awesome to hear! Fingers crossed. Lol, I doubt it but if there's anything I can do to help I'd be glad to!

RomanSky95 commented 1 year ago

Its not completely dead since I am still working on it but I still havent been able to figure out how they work or see what happens when they are unlocked (which was trivially easy with title based achievements) I have a few good leads now though so I might end up with something pretty soon although no promises.

That's awesome to hear! Fingers crossed. Lol, I doubt it but if there's anything I can do to help I'd be glad to!

Likewise, if there's anything I can do to help with progress on event-based achievements! This is a great tool but unfortunately most of the games I need help with have event-based achievements :(

FSKDOSDFSODIDSFJIDFSFSD commented 1 year ago

Can't wait for you guys to find the way to code to unlock event achievements so other people who have been perm banned by xbox for stupid reasons can unlock the achivements they earned on their main account (games that have event unlock achivements) so they don't have to do it again. My first xbox account got perm banned for no reason and I was playing hellblade 1. I kept my xbox account private (because of xbox bad moderation) I never said a message once on it and it got perm banned. 2016-2021. My second account 2021 - 2022. got perm banned for no reason and I was playing stardew valley at the time and it was single player. and account was privated. 2022 - 2022 xbox account privated and I got perm banned for a stupid reason. (FO76 and I thought I had my messages turn off) (I prop forgot because I had to turn it on to play among us) A guy at my camp with 10 cap bounty. I went to camp and did peaceful crouch and then did things at my camp then he message me. "Kill me" I said Ok (I thought it would not get my xbox account perm banned) and then I killed the guy and he said "Thank you" I said "NP" did normal stuff and then went to bed (the 10 cap bounty happen on DEC 22 at night time) I woke up at DEC 23RD and I signed into my 3rd xbox account and it was perm banned and now I had to make a new account and now it private for the 4th time. I worked hard to get the achivements on the accounts and I never used achievement unlocker and now how bad xbox moderation is. I just safely unlock all the games achivements. I had the golden doom skin on my main xbox account and now I have to do it for a 4th time in the future. Can't wait when you guys can make unlocking event achivement games possible.

sunk1ll3r commented 1 year ago

Hey Logic, I just registered on GitHub specifically to thank you for this tool! As someone that tries to 100% all their achievements in every game this thing is a MASSIVE time saver for those one off grindy achievements I don't really want to do. My time is more limited than it used to be so being able to save any of it to play through more of my backlog is a godsend.

Im glad my tool was able to help :)

I know it's around the holidays so you've probably been busy and I have ZERO knowledge about anything when it comes to coding and stuff like this but I wanted to ask you if there's been any progress on the event based achievements or if those are pretty much dead at this point? I just checked a good chunk of games I'd want to use this on to knock out my last 1-3 achievements in them and about 10 of them were all event based so that was kinda heartbreaking lol.

Its not completely dead since I am still working on it but I still havent been able to figure out how they work or see what happens when they are unlocked (which was trivially easy with title based achievements) I have a few good leads now though so I might end up with something pretty soon although no promises.

Hi Logic, was curious if any of those leads have panned out or no luck yet?

gaunterodimm11 commented 1 year ago

any latest news?

sunk1ll3r commented 1 year ago

Not trying to be a nag Logic, just wanted to mention that I noticed there seems to have been a couple recent pages/posts added (noticed a couple dated 3/15/23, didn't check all of them but at least two were that date) to the site you linked in the original issue post. Not sure if you've seen them already or not, or if they'd even be of help but wanted to let you know just in case.

Thanks again for this tool!

fluffy-godzilla commented 10 months ago

Its not completely dead since I am still working on it but I still havent been able to figure out how they work or see what happens when they are unlocked (which was trivially easy with title based achievements) I have a few good leads now though so I might end up with something pretty soon although no promises.

I'm not sure it's at all possible, because the logic of figuring out whether the achievement requirements are met is located and run on the xbox backend servers. The game, linked against GDK, when some specific stat (le.g. a number of chieftans killed in a gruesome manner) has changed in a way that satisfies some game-related logic, the game then simply calls an API to send an associated event to xbox backend servers. Example: https://learn.microsoft.com/en-us/gaming/gdk/_content/gc/live/features/player-data/achievements/event-based/how-to/live-writing-event-based-achievement

The achievement requirements and associated stats can be configured in the Partner Center. They are title-specific and can really only be queried/viewed in the Partner Center with proper credentials. Reference material: https://learn.microsoft.com/en-us/gaming/gdk/_content/gc/live/features/player-data/stats-leaderboards/event-based/live-how-data-platform-works https://learn.microsoft.com/en-us/gaming/gdk/_content/gc/live/features/player-data/achievements/event-based/config/live-achievements-eb-portal

ItsLogic commented 10 months ago

@fluffy-godzilla I have seen that documentation before but since I made that comment I have figured out all the information I need to unlock event based achievements

The main problem before was that I had absolutely no clue what was going on behind the scenes but now I can accurately emulate an event API request. The problem now is that there isnt a way to programatically get the stats from a game. I can get stats for a game through a mixture of pre exposed stat names, guesswork and reverse engineering but obviously for non pc games I cant get any other than the pre exposed and guessed stats.

I am 100% certain I could write an event based achievement unlocker for a single game but a one size fits all solution doesnt seem possible unless I come across a holy grail api endpoint (which while unlikely isnt impossible)

The final solution might just be leaving the end user with an event based stats editor and a text box so they can edit whatever event based stats they want

Currently I am rewriting the whole tool though so I wont be implementing any event based stuff until that is feature complete

xiaotudo1015 commented 10 months ago

Will my account be banned if I forcibly unlock achievements?

SwordPhenomenon commented 8 months ago

@ItsLogic Congratulations on the work, the program has been very good! I would like to know if at some point, when you manage to unlock achievements based events, do you think about putting an old date and time to unlock the achievements?

Thank you very much and congratulations once again!

RevivedAmbition commented 7 months ago

Hi I've tried you're unlocker on dummy account and never thought this would be possible but thanks for the work on this. Although I'm hoping that the support for the event based titles will come soon because I recently has the achievement "the extra mile" glitch on me in "The Crew" and with no replies from Ubisoft support and their ambition being nothing more than lacking I'm hoping that maybe I could use this to get that one since the servers are shutting down on March 31st 2024 and would like to hopefully get it before than but thank you and keep up the great work.

ItsLogic commented 4 months ago

closed with the release of 2.4 :)