UserIDs Are Going Over 32-bit on December 7th

Hello developers,

Every time a user signs up at Roblox, they get a UserID, an ever increasing integer. As some of you may have noticed, Roblox UserIDs are getting pretty big. At the time of this writing, the most recently created user ID is 2055477752. The highest value a signed 32 bit integer can hold is 2147483647 (2^31). By our estimate, User IDs would naturally surpass this maximum sometime early in January, but could be as early as late December.

Rather than risk having issues either on Roblox’s side or in your games over the holidays, we will not wait for UserID to naturally roll over the 32-bit integer maximum. We will be artificially increasing UserID above 2^31 on 1:00pm PST on December 7th . For internal testing, we will be disabling sign-ups for approximately 10-20 minutes around 4:00pm PST today, December 3rd.

While most Lua code should be unaffected (Lua stores “numbers” as integers up to 2^53) any external applications or web services you are reaching out to that are expecting a signed 32-bit integer may overflow, resulting in either errors or negative numbers.

Please post any concerns here, as well as any issues you may find on or after December 7th that you think might be related to this change.

367 Likes

This topic was automatically opened after 13 minutes.

Exactly how high will you be raising the bit value to? You’ve told us that you’re going to surpass 2^31 bits but not to what degree. It’s a critical yet unspecified aspect of this announcement. Will it raised to, say, 64-bit integers? We haven’t been told.

On another note, that’s a lot of registered users. Roblox sure is growing!

45 Likes

Will this in any way affect player data we have stored in our games?

20 Likes

What actions will Roblox take to prevent issues from user IDs going over 2^31 specifically? increase to 64-bits?

6 Likes

Wasn’t there a 64-bit migration for AssetIds back in 2018?
Were UserIds not part of this migration?

EDIT: I think I understand now. This is just a warning for people who have previously assumed UserIds are signed 32-bit integers in their external software.

33 Likes

How will DataStore:SetAsync behave if you try to use DataStore:SetAsync(“SomeRandomKey”,{RandomData = Player.UserId})

The key is converted to a string but as far as I know, the data sent can be anything so will that cause an issue?

basically, what I’m asking is will it save like normal or will it cause an integer overflow?

6 Likes

This should not affect DataStores or anything in our games Lua-wise.

Numbers in Lua are doubles, so they can store integer values up to 2^53. The concern here is more related with external software that might be using Roblox’s APIs.

This announcement caught me by surprise because I could've sworn they had migrated UserIds to be 64-bit as well. Changes to Roblox's API would suggest it as well.
21 Likes

If you use DataStores, you’re fine.

If you have external data stores, ensure that they support integers larger than 32 bits.

21 Likes

A great change to see.

One thing I would like to know, is how long should the new change last? A couple years? A decade? A generation?

6 Likes

Yes, it shouldn’t affect anything Lua-wise but DataStore’s save to an external thing hence why studio access to API services must be enabled in order to use them. My question was will it affect the Code that handles the datastores.

1 Like

There’s no way of properly knowing without proper statistics, the way Roblox is going right now, could be a year+, Roblox grows constantly every day, every second so essentially we won’t know until they get faced with the challenge again.

4 Likes

As far as I can tell, they’ve already mitigated this on their end and nothing should break. This warning is just for people who might be using signed 32-bit integers to represent UserIds in external software or web plugins.

9 Likes

That’s simply not going to happen. For user IDs to go above the Lua limit, there needs to be another 6,755,399,441,055,744 created (which is enough for every human on earth to have 965,057,063 Roblox accounts). There are roughly 2,055,477,752 right now.

Technically, yes it could happen. Practically, no.

19 Likes

This shouldn’t effect anything with google sheets right? I hope it doesn’t. That would be a headache and a half.

4 Likes

Ah, good to know. I was about to ask about MessagingService as well but that answer basically sums it up for me.

1 Like

There are millions of deleted accounts, their ids should be available for new users to occupy, same applies for the usernames and the changed usernames,the thing is that they are still taking space in roblox’s servers

7 Likes

that would not work well with datastores, people would have other peoples data then

18 Likes

That may impersonate some users old Id(s) or usernames

8 Likes

Then if a 2007 roblox account get’s deleted, the next user will get a very small id making small id’s not very special

3 Likes