-
released this
2026-08-24 01:16:18 -04:00 | 7 commits to main since this releaseRoot cause of 'robes unlocked but nothing else': UpdateLocked* no-op prevented lock
marking but lobby UI defaults to locked until UpdateLocked* runs its grant logic.
Robes worked because IsRobeUnlocked (hooked) gates selection directly.Fix from global-metadata.dat analysis (148772 methods scanned):
- SteamInventoryManager.UserHasItem(steamItemDefID) -> always true: every Steam catalog
item (pets/flashlights/emotes/outfits/promos) counts as owned - Horror.Menu.GetCurrentTokens() -> 9999999: perk token cost always affordable
- UpdateLocked*/WaitForPurchasedPetValidation now CALL ORIGINAL via trampoline so the
game's own grant logic runs with overridden ownership (clean UI state) - hookUpdateLocked stores orig fn pointer; retry thread also retries UserHasItem/Tokens
and HasPerk/HasOutfit; logPatch on every hook success/failure for diagnosis
Verified launch: 13 hooks installed (IsRobe/IsChar/HasPerk/HasOutfit/UserHasItem/
GetCurrentTokens/7xUpdateLocked+WaitPet), game stable, no crashesDownloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
1 download
- SteamInventoryManager.UserHasItem(steamItemDefID) -> always true: every Steam catalog