From fee1556da3e484b24b52d49af7f5446512b774e8 Mon Sep 17 00:00:00 2001 From: MiTHRAL Date: Mon, 24 Aug 2026 13:38:56 -0400 Subject: [PATCH] =?UTF-8?q?v2.1.1:=20PlayerHasItem=20->=20true=20=E2=80=94?= =?UTF-8?q?=20emote=20validator=20gate=20(StoreEmotesOwnedOnSteam=20path)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/patches.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/patches.cpp b/src/patches.cpp index abf3863..8cfce88 100644 --- a/src/patches.cpp +++ b/src/patches.cpp @@ -95,7 +95,9 @@ static bool __fastcall hUserHasItem(void* thiz, unsigned long long itemDef, void } // Multiplayer validator: every player counts as owning every item (lobby validation path) static bool __fastcall hPlayerHasItem(void* thiz, int connectionId, unsigned long long itemDef, void* method) { - if (oPlayerHasItem) return oPlayerHasItem(thiz, connectionId, itemDef, method); + // Validator gate used by StoreEmotesOwnedOnSteam + WaitForPurchased*Validation coroutines. + // Does NOT block purchases (that was UserHasItem) — safe to force true. + char b[160]; snprintf(b,sizeof(b),"[trace] PlayerHasItem(conn=%d def=%llu) -> true", connectionId, itemDef); logPatch(b); return true; } // Inventory-retrieved flag: pass through — forcing true with an empty userItems made some