I'm working on a CS2 music kit changer and been stuck on the same issue for a while, hoping someone here can point me in the right direction. So what I'm doing ispretty much create a fake CEconItem via CreateSharedObjectSubclassEconItem, setting the def index to 1314, setting the "music id" dynamic attribute to whatever kit we want, then injecting it into the player's SOC using AddObject (vtable[2] on the cache) followed by SOCreated. After that I write it to the loadout slot 54 using pInternalEquip (sub_1807C8FF0). The item shows up in the inventory UI fine.
The problem is the GC rejects the equip because our fake item ID goes out in the k_EMsgGCAdjustEquipSlotsManual message (type 2531 in CS2) and the GC doesn't recognize it. I can go into further delay about how I tried to get around this problem.
TL;DR: The kit still doesn't play in-game though. I can see the item in inventory, but I can't equip it due to a "not able to equip the item while in a compeitive game mode" error even through I am in the menu! I'm not 100% sure if the game is reading the active music kit from somewhere other than the loadout map that pInternalEquip writes to. I used IDA to verify all the ofsets as of build 14140.Anyone done this successfully in CS2 and knows what I could possibly be missing?
The problem is the GC rejects the equip because our fake item ID goes out in the k_EMsgGCAdjustEquipSlotsManual message (type 2531 in CS2) and the GC doesn't recognize it. I can go into further delay about how I tried to get around this problem.
TL;DR: The kit still doesn't play in-game though. I can see the item in inventory, but I can't equip it due to a "not able to equip the item while in a compeitive game mode" error even through I am in the menu! I'm not 100% sure if the game is reading the active music kit from somewhere other than the loadout map that pInternalEquip writes to. I used IDA to verify all the ofsets as of build 14140.Anyone done this successfully in CS2 and knows what I could possibly be missing?