In multi-place games, web API only shows number of people playing in root place, not all places

Using various apis found at games.roblox.com/docs, different player results are shown. If you read through this, I can explain how using a game’s universe id returns the data for the root place instead of the whole game. If I was requesting with place id, that would make sense. However, the universe id is tied to the whole place, so this is a bug.

Steps to replicate the bug

Click to expand steps to replicate the bug
  1. Pick any multi-place game or game that does not keep players in the start place the entire time
  2. Take that games link. For the repro I will use Dungeon Quest. The numbers in this link is the place id. (2414851778)
  3. Take the place id and use it with the GET /v1/games/multiget-place-details API. (Url = https://games.roblox.com/v1/games/multiget-place-details?placeIds=2414851778)
    This will return the following json:
[
  {
    "placeId": 2414851778,
    "name": "[Wave Defence!] Dungeon Quest ",
    "description": "Battle through dungeons with friends to slay the boss that awaits!\r\nAcquire tons of loot and upgrade the gear you get to become powerful and face stronger enemies!\r\n\r\n5/26/19 - UPDATE NEWS\r\n- NEW Wave Defence mode. Battle against endless waves that progressively get more challenging! (Gives loot & titles)\r\n- NEW LOBBY for level  60+!\r\n- TITLES, earn titles to show above your name!\r\n- Friends list with the ability to join their lobbies\r\n- 40% off sale on ALL GAMEPASSES\r\n- NEW Cosmetic shop items!\r\n\r\n---LAST UPDATE---\r\n- New map called \"The Underworld\"\r\n- 3 new bosses\r\n- 20 new weapons\r\n- 9 new sets of armor\r\n- 6 new abilities\r\n- Option to 10x upgrade in the blacksmith\r\n- New cosmetic appearance shop, where you can buy appearance overrides to look different no matter what gear you have equipped.\r\n\r\nSHUTDOWN = UPDATE\r\n\r\nFollow the disc down below to see any updates!",
    "url": "https://www.roblox.com/games/2414851778/Wave-Defence-Dungeon-Quest",
    "builder": "vCaffy",
    "builderId": 306209,
    "isPlayable": true,
    "reasonProhibited": "None",
    "universeId": 848145103,
    "universeRootPlaceId": 2414851778,
    "price": 0,
    "imageToken": "T_2414851778_ae22"
  }
]
  1. We now know the universe Id of game, 848145103. Using this with roblox’s GET /v1/games game API, we use the following link: https://games.roblox.com/v1/games?universeIds=848145103 which returns:
{
  "data": [
    {
      "id": 848145103,
      "rootPlaceId": 2414851778,
      "name": "[Wave Defence!] Dungeon Quest ",
      "description": "Battle through dungeons with friends to slay the boss that awaits!\r\nAcquire tons of loot and upgrade the gear you get to become powerful and face stronger enemies!\r\n\r\n5/26/19 - UPDATE NEWS\r\n- NEW Wave Defence mode. Battle against endless waves that progressively get more challenging! (Gives loot & titles)\r\n- NEW LOBBY for level  60+!\r\n- TITLES, earn titles to show above your name!\r\n- Friends list with the ability to join their lobbies\r\n- 40% off sale on ALL GAMEPASSES\r\n- NEW Cosmetic shop items!\r\n\r\n---LAST UPDATE---\r\n- New map called \"The Underworld\"\r\n- 3 new bosses\r\n- 20 new weapons\r\n- 9 new sets of armor\r\n- 6 new abilities\r\n- Option to 10x upgrade in the blacksmith\r\n- New cosmetic appearance shop, where you can buy appearance overrides to look different no matter what gear you have equipped.\r\n\r\nSHUTDOWN = UPDATE\r\n\r\nFollow the disc down below to see any updates!",
      "creator": {
        "id": 306209,
        "name": "vCaffy",
        "type": "User"
      },
      "price": null,
      "isExperimental": true,
      "allowedGearGenres": [
        "All"
      ],
      "allowedGearCategories": [],
      "playing": 5183,
      "visits": 368928683,
      "maxPlayers": 40,
      "created": "2018-09-25T16:18:57.963Z",
      "updated": "2019-06-01T22:04:23.1342921Z",
      "studioAccessToApisAllowed": true,
      "universeAvatarType": "MorphToR15",
      "genre": "All"
    }
  ]
}
  1. Observe the “playing” value, 5183.
  2. Now, go back to the game’s page (Dungeon Quest), and observe it’s Players count:
    image
    image
  3. See the sheer difference between the values, and realize this is a API bug, not intended behavior.

The data

Take Treasure Quest, a multi-place game, for example.

https://games.roblox.com/v1/games/list returns the whole-place results for Treasure Quest:

{
  "games": [
    {
      "creatorId": 3461453,
      "creatorName": "Nosniy Games™",
      "creatorType": "Group",
      "totalUpVotes": 6794,
      "totalDownVotes": 1653,
      "universeId": 1069201198,
      "name": "[NEW] Treasure Quest",
      "placeId": 2960777560,
      "playerCount": 39385,
      "imageToken": "T_2960777560_d92f",
      "users": [],
      "isSponsored": false,
      "nativeAdData": null,
      "price": null,
      "analyticsIdentifier": null
    },

The playerCount here is 39k. Which is accurate, according to the games page and the place’s page.
image
image

However, when getting the game’s data with the universeId returned above: https://games.roblox.com/v1/games?universeIds=1069201198, The root place player count is returned:

{
  "data": [
    {
      "id": 1069201198,
      "rootPlaceId": 2960777560,
      "name": "[NEW] Treasure Quest",
      "description": "⚔️ Welcome to Treasure Quest! Steal treasure, battle monsters, and complete unique quests as you and your friends become the ultimate treasure hunters! Fight as a Wizard or a Warrior, the choice is yours!\r\n\r\n🎉 Use CODE \"officialrelease\" for 500 GOLD!\r\n\r\nJoin the group for a FREE Royalty sword in the game! 🎁\r\nhttps://www.roblox.com/groups/3461453/CLICK-HERE",
      "creator": {
        "id": 3461453,
        "name": "Nosniy Games™",
        "type": "Group"
      },
      "price": null,
      "isExperimental": false,
      "allowedGearGenres": [
        "All"
      ],
      "allowedGearCategories": [],
      "playing": 15469,
      "visits": 3134466,
      "maxPlayers": 50,
      "created": "2019-03-15T04:27:24.327Z",
      "updated": "2019-06-01T14:56:31.2130287Z",
      "studioAccessToApisAllowed": true,
      "universeAvatarType": "MorphToR15",
      "genre": "All"
    }
  ]
}

Here, it says there are 15k players.

This seems to happen only with multiplace games.

For my game, single-place game, Roblox Uno, the correct results are returned: https://games.roblox.com/v1/games?universeIds=640204840:

{"data":
[
{"id":640204840,
"rootPlaceId":1689414409,
"name":"Roblox Uno",
"description":"Sit down around a table and play a game of Roblox Uno, the #1 Uno game on Roblox! Either play with NPCs, Friends, or Foes. Featuring card animations, professionally made cards, and over 4,000 lines of code, this game is made to be easy to learn & fun to play. Play & climb the leaderboards to the become best Roblox Uno player of all time. Welcome to Roblox Uno, the best Uno game on Roblox. PC and Mobile Compatible & Optimized.\r\n\r\nIt is HIGHLY recommended you read the help section, even if you know how to play Uno.\r\n\r\nJoin The Official T-Studios: https://www.roblox.com/groups/4194146\r\n\r\nLike Roblox Uno? A Thumbs Up 👍 and Favorite ⭐are very much appreciated.\r\n\r\nJoin our \"community\" server! Code: X4KhSPq or the Link Below!\r\nFollow us on twitter! @REALTimothy0812 or the Link Below!\r\n\r\n-Created by T-Studios (REALTimothy0812)\r\n        -Thumbnail Background Made By Nakisakebu\r\nNote: Roblox Uno has custom art made by REALTimothy0812, not matel.",
"creator":{"id":103475205,"name":"REALTimothy0812","type":"User"},
"price":null,
"isExperimental":false,
"allowedGearGenres":["All"],
"allowedGearCategories":[],
"playing":883,
"visits":20427820,
"maxPlayers":30,
"created":"2018-04-27T14:01:31.797Z",
"updated":"2019-05-26T18:06:57.617Z",
"studioAccessToApisAllowed":true,
"universeAvatarType":"PlayerChoice",
"genre":"All"
}
]
}

Playing here is 883, and the games page shows:
image

image

Platform does not impact this, and furthermore, it does not impact single-place games.

Further investigation shows that it appears to be a bug based on the startPlace of the game. Take Verestia for example. It’s a multi-place adventure style game, so players are rarely in the startPlace.

To get the universe id, we use the place id https://games.roblox.com/v1/games/multiget-place-details?placeIds=2376885433:

[
  {
    "placeId": 2376885433,
    "name": "Vesteria Beta",
    "description": "Fight menacing monsters, discover breathtaking environments, find hidden secrets, obtain rare items, form parties with friends, complete quest-lines, clear dungeons, catch fish and so, so much more in the vast open world of Vesteria, the ultimate fantasy experience on Roblox. There's nothing like it.\r\n\r\n🏆 2019 6th Annual Bloxy Award for Technical Achievements.\r\n\r\n©2019 Vesteria Inc, the Vesteria game logo and game name are among our trademarks.",
    "url": "https://www.roblox.com/games/2376885433/Vesteria-Beta",
    "builder": "The Vesteria Team",
    "builderId": 4238824,
    "isPlayable": true,
    "reasonProhibited": "None",
    "universeId": 833209132,
    "universeRootPlaceId": 2376885433,
    "price": 80,
    "imageToken": "T_2376885433_1415"
  }
]

The universe id is 833209132, which we test with https://games.roblox.com/v1/games?universeIds=833209132:

{
  "data": [
    {
      "id": 833209132,
      "rootPlaceId": 2376885433,
      "name": "Vesteria Beta",
      "description": "Fight menacing monsters, discover breathtaking environments, find hidden secrets, obtain rare items, form parties with friends, complete quest-lines, clear dungeons, catch fish and so, so much more in the vast open world of Vesteria, the ultimate fantasy experience on Roblox. There's nothing like it.\r\n\r\n🏆 2019 6th Annual Bloxy Award for Technical Achievements.\r\n\r\n©2019 Vesteria Inc, the Vesteria game logo and game name are among our trademarks.",
      "creator": {
        "id": 4238824,
        "name": "The Vesteria Team",
        "type": "Group"
      },
      "price": 80,
      "isExperimental": false,
      "allowedGearGenres": [
        "Adventure"
      ],
      "allowedGearCategories": [],
      "playing": 62,
      "visits": 1068640,
      "maxPlayers": 20,
      "created": "2018-09-18T21:37:44.973Z",
      "updated": "2019-06-02T02:15:38.4618207Z",
      "studioAccessToApisAllowed": true,
      "universeAvatarType": "MorphToR15",
      "genre": "Adventure"
    }
  ]
}

Compared to the whole game count, it’s clear this is the problem:
image

image

Extra Data to prove point even more

Multiplace games

Royale High. Universe id is 321778215, gotten through https://games.roblox.com/v1/games/multiget-place-details?placeIds=735030788.

Using https://games.roblox.com/v1/games?universeIds=321778215, the following is returned:

{
  "data": [
    {
      "id": 321778215,
      "rootPlaceId": 735030788,
      "name": "Royale🏰High",
      "description": "💙THE WHEEL IS BACK!💙 SPIN-TO-WINNNNNNN💙\r\n💙New Skirt: Sparkly Sarong!🏖️\r\n💙3 New Mermaid Accessories + Lots of New Swimsuits!\r\n💙New Animations Keybinding Feature!~ Assign animations to your keyboard keys!\r\n💙Hold your tab key to quickly view your keybinds, see the Server Player List & Levels!\r\n💙75 New Fabric Designs!\r\n💙New Beautiful Outfits and Makeup!💙\r\n💙Action Booties Reworked!\r\n💙Thumbnail by @chellllyd :3\r\n\r\nThank you for voting the Royale High Campus as \"Favorite Map!\"\r\n🌊Bloxy Photo by OceanOrbs! \r\nFour Leaf Clover Boy Photo by Ninetyles!🌈\r\n🐣Easter Photo by Ushiesu!🐣 ",
      "creator": {
        "id": 29622,
        "name": "callmehbob",
        "type": "User"
      },
      "price": null,
      "isExperimental": false,
      "allowedGearGenres": [
        "Adventure"
      ],
      "allowedGearCategories": [],
      "playing": 14200,
      "visits": 1605275749,
      "maxPlayers": 17,
      "created": "2017-04-10T13:16:49.493Z",
      "updated": "2019-06-03T21:32:04.3072421Z",
      "studioAccessToApisAllowed": true,
      "universeAvatarType": "MorphToR15",
      "genre": "Adventure"
    }
  ]
}

Here, the API returns the player count is 14k. However, a single look at both the top games page and the game’s page itself disprove that.

image
image

Single Place games

Phantom Forces only includes one place. To get the universe id, we go to https://games.roblox.com/v1/games/multiget-place-details?placeIds=292439477, which returns the universe id of 113491250.

Using this universe id the following link is generated: https://games.roblox.com/v1/games?universeIds=113491250

{
  "data": [
    {
      "id": 113491250,
      "rootPlaceId": 292439477,
      "name": "[New AA-12!] Phantom Forces",
      "description": "Sorry for the long delay in this update! \r\nWe have been testing a major revampled minimap radar system for a while and now we have finally released it!\r\n\r\n[Update 4.4.0]\r\n- New AA-12 Automatic shotgun (Rank 112)!\r\n- New Five Seven handgun (Rank 57)!\r\n- New HK416 assault rifle (Rank 64)!\r\n- Major minimap radar system revamp!\r\n- Fixed day/night cycle\r\n- Many other minor fixes and adjustments listed in PF change log wiki\r\n\r\nFor those who still wish to play Call of Robloxia 5, here is a link to the testing place: https://www.roblox.com/games/2983450431/Call-of-Robloxia-5-Somewhat-Functional-Mess\r\n\r\nThank you for helping us reach 1M likes on PF! \r\nFor support, update archive, spawn issues, reporting and more, please read the topic below: https://devforum.roblox.com/t/phantom-forces-information/83072",
      "creator": {
        "id": 1103278,
        "name": "StyLiS Studios",
        "type": "Group"
      },
      "price": null,
      "isExperimental": false,
      "allowedGearGenres": [
        "FPS"
      ],
      "allowedGearCategories": [],
      "playing": 7047,
      "visits": 706317845,
      "maxPlayers": 32,
      "created": "2015-08-31T06:00:14.907Z",
      "updated": "2019-06-03T15:50:40.6050499Z",
      "studioAccessToApisAllowed": true,
      "universeAvatarType": "MorphToR6",
      "genre": "FPS"
    }
  ]
}

And, to verify this is not a issue on single-place games, observe that the playing counts are identical.
image
image

Conclusion

And here it is, the problem: Requesting the data of a game through it’s universe id returns the data for the ROOT PLACE, and not the whole game.

This is a API bug. Take any multiplace game, and the results appear. Single place games are not affected. When requesting with a game-specific id (universe id), I expect to get the data for the whole game, not just the root place.

15 Likes

Rōblox does make a distinction between places and universes, but in your case, they often get confused internally. If you go to a non-root game in a universe where many players are playing, it’s gonna tell you the number of people in that universe.

I din’t believe you understand; It doesn’t tell me the universe count. It only tells me the count of the start place, when requesting either the game or universe id.

Simply:
Universe Id> Root place count only

Please read the full post before making assumptions, thank you.

2 Likes

I have read the full post. What I meant to say is that the fact that you’re getting player counts for the root place is not in accordance to their distinction between a place and a universe. My reply must’ve been confusing. Thank you.

Oh, so you were agreeing with me. Sorry, your wording confused me a bit.

1 Like

Having the same issue here, my group game shows only the player amount in the start place and not the entire game. Hope this gets fixed soon!

image

image

Hmm, it appears the group games page uses the API mentioned instead of the same API as the games page. Wow, this stuff is inconsistent.

2 Likes

I’m not sure when this happened exactly, but as of today at least this issue no longer exists.

When tested with Vesteria and several other games, results appear to count all places within a universe, not just the root one.

I’m glad this got fixed internally or by someone who noticed it, this makes the API much more consistent and friendly to use.

As such, I’m marking this bug as solved.

5 Likes

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.