Page 1 of 1

Roblox Scoped User IDs Explained (October 2026): What Changes, What Breaks, and Why the Rollout Was Delayed

Posted: Tue Oct 20, 2026 6:32 pm
by ice
Quick Summary
  • Roblox is replacing the single Global User ID with per-game "domain-scoped" user IDs. A player now has a different ID in every experience they visit.
  • The change only hits new players of a game. Anyone whose first visit happened before the rollout keeps their Global User ID in that game, so existing DataStore keys and inventories survive.
  • The broad rollout was set for October 2026, then delayed. On September 1, Roblox staff said it is taking more time to fix moderation concerns and would share the updated plan in October.
  • Studios that share ban lists across their own games, and third-party tools that key on a global ID, are the systems most affected. Roblox is looking at Ban API support and an account linking API to replace what a shared ID used to do.
  • Players can do nothing about it. No setting to toggle, nothing to redeem, and no way to see a scoped ID for yourself outside a game.
What a scoped user ID actually is

Since Roblox opened, one number has followed an account everywhere: in every experience, in every API call, on the website. That number is the Global User ID, and you can find it in your profile URL. Roblox's stated reason for changing it is that one stable number lets anyone who collects it follow a player from game to game, and gives users less control over how their activity is read.

The replacement is a domain-scoped user ID. "Domain" here means one specific game or app, and Roblox's documentation lists two domain types: EXPERIENCE, scoped to a single universe, and OAUTH, scoped to an external app. A player's scoped ID in your game is meaningless in any other game. Roblox makes the same point three ways in its docs: the IDs are ordinary integers, a scoped ID does not collide with any existing global ID, and the same number can appear in two different domains for two completely different people. The unique key is the combination of domain type, domain ID and scoped user ID, not the number alone.

Only new players get a scoped ID. Roblox's documentation is blunt about it: if a player already joined your game before the rollout, they keep their original global user ID in that game, and that is deliberate so existing data store keys, leaderboards and inventories keep working untouched.

The timeline, and the delay nobody announced with a date

The original roadmap was tidy. July 2026 was opt-in testing. August 2026 brought Open Cloud support plus a User Account Linking API. October 2026 was the broad rollout to all games.

That October date has not held. The September 1 update from Roblox staff said the update is coming later than promised, that the company had done more outreach to creators through September, and that full details on the revised solution and timeline would come in October. The reason given was moderation: creators pushed hard on the effect of scoped IDs on banning, appeals and cross-game tools, and Roblox said it was taking the time to address those concerns properly. As of this post there is still no new date published. If you are planning around a launch window, plan around "no confirmed date" and check the announcement thread before you assume October means this month.

A separate wrinkle is the naming. Roblox's own developer documentation page has moved from calling these "Scoped User IDs" to "domain-scoped user IDs" and to the shorter "scoped IDs", and community reporting has used the newer "Scoped User Identifiers". They are all the same change. Expect the older phrase to linger in search results and YouTube titles for a while.

What breaks, ranked by how badly it hurts

Not everything that reads a user ID stops working. Engine APIs that accept a user ID parameter now also accept the new User value directly, and when you pass a plain number to one of those APIs it gets wrapped into a User internally. So MarketplaceService:UserOwnsGamePassAsync and BadgeService:UserHasBadgeAsync still work for both kinds of player.

The trouble starts when a numeric ID is written down somewhere and read back later.
SystemWhat happensHow bad
DataStore keys built from Player.UserIdReturning players keep their global ID, so their existing data loads. New players get a scoped ID, so their first save writes under a new key. No re-keying of old data needed.Low, if you treat the ID as opaque
Leaderboards and thumbnails that look a user up by raw IDGetUserThumbnailAsync and GetNameFromUserIdAsync fail for a scoped ID when that player is not in the server, which is how several creators reported their global leaderboards broke.High, and it fails silently
Shared ban lists across gamesA global ID list is useless once the same player has a different ID in every game. The Ban API is the intended replacement.High for community-run ban lists
Third-party admin and analytics toolsAn external service receives a scoped ID that only means something inside that one game.Medium to high
Account linking and support lookupsThe linking API is consent-based, so the players who most need to be found are the ones least likely to approve the prompt.High for moderation teams
The leaderboard failure is the one that surprises people, because it is not in the "will this break" FAQ. A developer reported in the announcement thread that both GetUserThumbnailAsync and GetNameFromUserIdAsync return nothing for a scoped ID when the player is not currently in the server. Roblox has not published a fixed list of which APIs are unaffected, and creators have asked for exactly that.

What to change in your code

The pattern Roblox recommends is to stop treating the ID as a bare number and start passing the User value around.
  1. Read player.User instead of player.UserId in new code, and pass that value to engine APIs that accept it.
  2. For DataStore keys inside one game, player.User.Id is fine. Keying on the number alone still works within that domain.
  3. For anything that crosses a system boundary, serialize the whole User with ToString() and restore it with User.fromString(). The string is stable and URL-safe, and it carries the domain type and domain ID with it.
  4. Never use a numeric ID from one domain to identify a player in another domain. That is the whole point of the change, and it will silently match the wrong person.
  5. Use Player for in-server actions and User for identity that outlives the session: data stores, Open Cloud calls, cross-game references.
If you are migrating an existing save system, keep the old global-ID keys untouched. New players simply start under their scoped ID, and the two populations never overlap inside one game because returning players never switch.

The moderation fight, in the words of the people losing it

This is where the thread turned. The most-upvoted reply came from a developer who argued the change is "extremely destructive for moderation tooling to the point where we can't moderate our communities anymore", and who asked how an automated ban system is supposed to know who it just banned. Another put it in plainer terms: they run a studio that bans a cheater in one game through Open Cloud and expects that ban to apply to every game the studio owns, which only works while one ID travels with the player.

Shared third-party ban lists are the loudest case. Several commenters said the same community-maintained list of offenders, used across many large games, would become unusable. Roblox's answer in the original announcement was to point at the Ban API and to say enhancements would ship before the full release, but the September 1 update confirmed that work was still unfinished and still being pressure-tested. That is why the date slipped.

There is a fair counterargument in the thread, from a developer who said the real target is not personal data at all but analytics: a studio with a wide portfolio can build a profile of someone's playing habits, interests and purchases across all of them, and that is the kind of cross-app tracking that privacy law in several countries restricts. Roblox's own framing matches that. The FAQ states flatly that tracking players across games without consent, by fingerprinting or device signals or any other method, violates the Terms of Use, and that the way to recognise a returning player is the scoped ID.

Both readings can be true at once. Roblox is closing a tracking hole, and the people who used that hole to catch cheaters are the ones paying for it. The Ban API and the consent-based linking API are supposed to be the replacement tools, and until they ship, the honest summary is that cross-game moderation has no good answer.

What players should know

Nothing changes on your side. Scoped IDs are a backend and scripting change. Your account, your avatar, your Robux balance, your friends list and your chat are untouched, and Roblox says the website and core platform features keep using global IDs internally. There is no toggle to flip and no item to redeem.

The part that does reach you is what happens to a game's saved progress. A game that keys its data to a player ID and was written before this change will still find your old save, because you are a returning player and your ID in that game never changed. A game that stored your ID in an external tool and looked you up by it may struggle to find you, and you may get a support reply asking for more information than it used to. That is the migration cost landing on support teams rather than on players.

FAQ
  • Will Roblox delete my User ID or change my profile?
  • No. Your global account stays as it is. What changes is the ID a game sees when you join it for the first time after the rollout.[/*]
  • Will I lose my game progress when this rolls out?
  • No, and that is the specific case the returning-player rule protects. Anyone who already visited a game keeps their original ID there, so their saves and inventories still resolve.[/*]
  • Is there a setting to opt out of scoped IDs?
  • No. Roblox has not offered an account-level opt-out, and the documentation treats it as a platform change rather than a preference.[/*]
  • When does this actually happen?
  • Not on a published date. The October 2026 rollout was delayed, Roblox said it would share the updated timeline in October, and no new date has been confirmed. Check the announcement thread before planning around any window.[/*]
  • Can I see my own scoped user ID?
  • Not directly. It is visible to your game's scripts, not to you in the app or on the website. That is why support teams say a scoped ID in a ticket is useless to them without the global account behind it.[/*]
  • Do scoped IDs make the platform less safe?
  • Roblox says the opposite, and its ToS argument is that cross-game tracking was the problem. Moderation teams and community-run ban lists say they lost a tool that caught repeat offenders. Both are describing the same change from different sides, and the Ban API is the promised fix.[/*]
Sources