Recently I discovered that you can check the float value of an item from the steam market by entering the inspect link on sites like csgo.exchange and csgozone.net.
After some research I figured out the syntax of an inspect link.
steam://rungame/730/76561202255233023/+csgo_econ_action_preview%20S76561197973845818A3130594988D7956282211490500705
A normal inspect link consists of the steamid of the owner and the assetid of the item
steam://rungame/730/76561202255233023/+csgo_econ_action_preview%20S
<STEAM_ID>
A
<ASSET_ID>
D7956282211490500705
Steam market item inspect link:
steam://rungame/730/76561202255233023/+csgo_econ_action_preview%20M322366017503471651A4084214062D7521609830474722133
With this information you can get the float value of the item. But there is a difference between inspect links from items in player inventories and inspect links from items on the steam market. An inspect link from the market contains the market listingid instead of the steamid of the owner.
How can I get the float value of the item with the information from the market inspect link?
To complete a bit the answer, rather than only pointing to my npm module, the whole process of converting an inspect link to a float value is decomposed like this:
SteamClient
connected, for this, provide your login info. Note that you might have a delay of a few days before this (Steam security).SteamGameCoordinator
will respond with a 4004 message type, basically retrieved by bitwising the header.msg
with ~0x80000000
.CMsgGCCStrike15_v2_Client2GCEconPreviewDataBlockRequest
to the GC
with 4 parameters: param_s
, param_a
, param_d
, param_m
that can be retrieved by decomposing the inspect link, in your case S: 76561197973845818
, A: 3130594988
and D: 7956282211490500705
, and pass 0
for M.9157
message that you can decode with CMsgGCCStrike15_v2_Client2GCEconPreviewDataBlockResponse
by creating a new Buffer
of 4 bytes and writeUInt32LE the response.iteminfo.paintwear
.You now have the float, congratz!
csgo-float is abstracting everything and allow you to only have to provide your login infos, and sending your steam inspect link that will return a promise, making it easy:
client.requestFloat('S76561197973845818A3130594988D7956282211490500705')
.then(floatValue => console.log(floatValue))
.catch(err => console.log(err))