From e92f8638113b71bedcbe8f5af14c07cbad681818 Mon Sep 17 00:00:00 2001 From: GODrums Date: Mon, 16 Mar 2026 20:16:31 +0100 Subject: [PATCH 1/2] fix: incorrect asset properties for duplicate skins --- .../components/inventory/inventory_item_holder_metadata.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib/components/inventory/inventory_item_holder_metadata.ts b/src/lib/components/inventory/inventory_item_holder_metadata.ts index 4ea7d7d6..9be84afd 100644 --- a/src/lib/components/inventory/inventory_item_holder_metadata.ts +++ b/src/lib/components/inventory/inventory_item_holder_metadata.ts @@ -19,14 +19,14 @@ export class InventoryItemHolderMetadata extends ItemHolderMetadata { const contextId = this.isTradeProtected ? ContextId.PROTECTED : ContextId.PRIMARY; const invAsset = g_ActiveInventory.m_rgChildInventories[contextId]?.m_rgAssets[this.assetId]; - if (invAsset && !invAsset.description.asset_properties) { + if (invAsset?.asset_properties) { // due to inconsistencies in Steam's data structure, we sometimes need to manually populate this field here invAsset.description.asset_properties = invAsset.asset_properties; } return invAsset?.description; } else { const invAsset = g_ActiveInventory.m_rgAssets[this.assetId]; - if (invAsset && !invAsset.description.asset_properties) { + if (invAsset && g_ActiveInventory.m_rgAssetProperties[this.assetId]) { // due to inconsistencies in Steam's data structure, we sometimes need to manually populate this field here invAsset.description.asset_properties = g_ActiveInventory.m_rgAssetProperties[this.assetId]; } From a7450528a493724d50b8712887a0b4c91911e183 Mon Sep 17 00:00:00 2001 From: GODrums Date: Mon, 16 Mar 2026 20:31:24 +0100 Subject: [PATCH 2/2] avoid unsafe assignment --- .../inventory/inventory_item_holder_metadata.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/lib/components/inventory/inventory_item_holder_metadata.ts b/src/lib/components/inventory/inventory_item_holder_metadata.ts index 9be84afd..a9d672a4 100644 --- a/src/lib/components/inventory/inventory_item_holder_metadata.ts +++ b/src/lib/components/inventory/inventory_item_holder_metadata.ts @@ -19,18 +19,18 @@ export class InventoryItemHolderMetadata extends ItemHolderMetadata { const contextId = this.isTradeProtected ? ContextId.PROTECTED : ContextId.PRIMARY; const invAsset = g_ActiveInventory.m_rgChildInventories[contextId]?.m_rgAssets[this.assetId]; - if (invAsset?.asset_properties) { + if (invAsset && !invAsset.description.asset_properties) { // due to inconsistencies in Steam's data structure, we sometimes need to manually populate this field here - invAsset.description.asset_properties = invAsset.asset_properties; + return {...invAsset.description, asset_properties: invAsset.asset_properties}; } return invAsset?.description; } else { const invAsset = g_ActiveInventory.m_rgAssets[this.assetId]; - if (invAsset && g_ActiveInventory.m_rgAssetProperties[this.assetId]) { + if (invAsset && !invAsset.description.asset_properties) { // due to inconsistencies in Steam's data structure, we sometimes need to manually populate this field here - invAsset.description.asset_properties = g_ActiveInventory.m_rgAssetProperties[this.assetId]; + return {...invAsset.description, asset_properties: g_ActiveInventory.m_rgAssetProperties[this.assetId]}; } - return g_ActiveInventory.m_rgAssets[this.assetId]?.description; + return invAsset?.description; } }