Wanted the Other Ending, Then Found Out the Save Couldn't Go Back

Wanted the Other Ending, Then Found Out the Save Couldn't Go Back

The night I finished Stellar Blade, I chose not to take Adam's hand.

Nothing dramatic — I'd heard there were two endings and just wanted to see both. First playthrough, one branch. Second time around, the other. Pretty normal, right?

Opened the save menu and found one autosave slot, already overwritten the moment I rolled credits. No way to rewind to the final choice. A full replay is roughly thirty hours, and I wasn't in the mood for that.

So: edit the save. It's a file; files can be poked. I sent it to Claude Code with one line:

Help me roll the save back to before the final ending choice.

A few rounds of try, load, report

After that it was mostly: Claude patches, I load the game, check whether the choice screen shows up.

Stellar Blade uses Unreal Engine 4's GVAS save format — about 17MB, basically a serialized property tree. Claude wrote a parser from scratch. UE4's BoolProperty has a classic gotcha: the value lives in the header, not the value section. First pass misaligned the whole tree; once that was fixed, we could actually walk the file.

Easy thing to miss: on completion the game copies your progress into NewGamePlusBaseData for New Game+. Lots of story flags exist twice. Patch one copy and skip the other, and nothing changes in-game.

On my end it felt like loading saves on repeat. Cleared achievement flags — nope. Tweaked quest state — still dropped straight into the boss. Deleted a batch of cutscene records — still phase two. Each time I'd tell Claude "still not working" and it would dig another layer. Roughly a dozen patch versions later, we grabbed a pre-choice reference save from Nexus Mods, ran a full structural diff, and things slowly lined up.

One detail I liked: for some achievement records, the game doesn't care whether the value is 0 or 1 — it checks whether the record exists at all. We'd been zeroing flags, which still screams "this happened." We had to delete the entries from the arrays.

In the end

One load later, walked into the Nest, cutscene played, Adam held out his hand, and the choice screen finally appeared.

This time I took his hand. The save still had the true-ending prerequisites, so it should be the hidden branch where Lily survives.

My job was simple: state the goal, boot the game, report "not yet" or "it worked." Parser, binary patches, diff tooling — all Claude. I pick the ending; it wrestles hex. Fair split.

Harvey

Full Stack Developer

A full-stack developer passionate about solving real-world business challenges, with expertise in data science and artificial intelligence.

Contact Me