Jump to content
McKay Development

Recommended Posts

https://github.com/DoctorMcKay/node-steam-user#getownedapps

 

First of all, it might be worth mentioning in the documentation that this is a synchronous function and doens't have a callback like most other functions have.

Aside from that, it came to my attention that GetOwnedApps returned more apps than I own myself. Now, I have a suspicion that these extra unowned apps are in fact apps that are family shared to me.

Is this true? 

Share this post


Link to post
Share on other sites

I don't think family sharing applies since it's per-machine. Are you sure that they aren't just free apps?

No, some of them are even wishlisted games. And it's pretty hard to determine if they are from Family Sharing myself. One of my sharers is not my friendlist, so I can't simply check for every game if one of my friends (sharers) owns them.

Anyway, I'll regenerate the list on a PC without family sharing. See what it gives.

Share this post


Link to post
Share on other sites

Okay, I did some tests and it appears that indeed family sharing was a factor here. If family sharing was enabled on the PC getOwnedApps returned around 14K appids, and if family sharing was disabled, it returned around 10K appids. This seems about right, since with no family sharing I have 5K games in my library and with family sharing, I have 7K. 

But it appears getOwnedGames still returns some games I don't own, regardless if family sharing is enabled or not. These games include Train: Simulator, Call of Duty: Infinite Warfare, Shank 2, Mordheim: City of the Damned, etc... I can't exactly tell how many "faulty" appids were returned, since they include tools, dedicated servers, "steam for linux" and that kind of stuff, that the steam store's dynamic userdata don't include. But if I included those, there were around 26 of 2000 appids I checked faulty. My guess is that they are/were maybe part of free weekend packages and somehow still detected as owned. Or maybe those free-on-demand packages I am adding to my account are messing things up. For example, https://steamdb.info/app/276810/subs/ is detected as Free in SteamDB. Probably because of its free on demand package. However, in reality, you can't own it unless you paid for it.

Hopefully, I was able to provide some useful information in order to improve GetOwnedApps to return more accurate results.

Edited by Royalgamer06

Share this post


Link to post
Share on other sites

Actually, this is the full list of apps with type = game, that are not included in the appid list provided by store.steampowered.com/dynamicstore/userdata:

 

  1. Train Simulator (24010)
  2. Shank 2 (102840)
  3. Red Orchestra 2 - Dedicated Server (212542)
  4. Eets Munchies (214550)
  5. Killing Floor Dedicated Server - Win32 (215350)
  6. Killing Floor Dedicated Server - Linux (215360)
  7. Serious Sam 3 - Linux DedServer (216280)
  8. Steam for Linux (221410)
  9. Rising Storm Beta Dedicated Server (238690)
  10. Cities: Skylines (255710)
  11. Just Cause 2: Multiplayer Mod (259080)
  12. Estranged: Act I (261820)
  13. Half-Life: Before (261980)
  14. Secret Ponchos (265750)
  15. Line of Defense (266620)
  16. Panzer Corps (268400)
  17. Mordheim: City of the Damned (276810)
  18. F1 2015 (286570)
  19. Conflicks - Revolutionary Space Battles (288260)
  20. Call of Duty: Infinite Warfare (292730)
  21. Nobunaga's Ambition: Souzou (292990)
  22. Sunless Sea (304650)
  23. Duck Game (312530)
  24. Euro Fishing (314520)
  25. Sword Coast Legends (325600)
  26. RIDE: Game (345660)
  27. Cobalt (357340)
  28. Tom Clancy's The Division (365590)
  29. Dead Star (366400)
  30. NOBUNAGA'S AMBITION: Sphere of Influence (392470)
  31. Backgammon Blitz (395900)
  32. SMASH+GRAB (412720)
  33. Moonshot (426930)
So, 33 apps are incorrect from a list of 5298 apps with type "game" returned by GetOwnedGames (family sharing disabled).
However, some of these I do actually own (from sub 0), like Killing Floor Dedicated Server and Just Cause 2: Multiplayer Mod, but they are in this list because steam dynamic store api don't include these appids.
But for most of them, I don't own them. They are not listed in my steam client library with family sharing disabled.
My guess is they were/are part of some of the free on demand packages I own, but no longer available for me. So, either free weekends, demos or betas. 
So, what do you think? Can you clarify these results? Would it be possible to update GetOwnedApps to return more accurate results?
Edited by Royalgamer06

Share this post


Link to post
Share on other sites

You really, really shouldn't be getting family shared games. I'll have to look into this when I get a chance.

Well, I am not using any sentry file to my knowledge, but I am sharing the node.js program with SteamCMD.

Anyway, I've seen this behavior before, it happens to devices sharing the same network and steam account as the PC with all the shared games. 

Actually, it even happens across networks. All the shared games are available.

Share this post


Link to post
Share on other sites

I want to get back to Steam Family Sharing behavior. Let me explain how it works. Let there be a steam user, called the host, on a device (PC) with shared libraries, called the host device. As long as the host is logged in to that host device, Steam will make all the shared games available to any device on any network where the host is logged in. Don't ask me why Steam is doing this, but some speculate it has something to do with Steam streaming.

Anyway, this can cause GetOwnedApps to also include shared games. Now, I came up with a method that can exclude shared games. You could query store.steampowered.com/dynamicstore/userdata/?v=VERSION to get the owned games (and packages) that guaranteed aren't shared and use the 'v' parameter to get the most up-to-date list. However, this may belong more to node-steamcommunity, as it uses web API, but I leave that choice to you. If you decide to include into steam-user, you could add an options-object or a boolean for getOwnedGames, to exclude Family Shared Games, through this method.

Do you rather want me to open an issue about this on GitHub?

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...