UserIDs Are Going Over 32-bit on December 7th

How about the free to play players that are under the age of 13 who cannot have an email address and thus cannot verify their account?

then you have bots spamming chats!

what i’ve always wondered was, since there are more than enough bots; wouldnt it also help to “free” those id’s when a user gets deleted? or does it already do that?

How about adding some in-game captcha? A simple task like click color? Activating when someone will type something like

“OMG I HAVE FUND SOME NEW BRAND WEBSIT THAT IS GIVINF ME ROBUXXXXX!!! GO TO freerobuxnoscamlegit.com TO RECIVE SOME ROBUXXX”.

It would be a better idea than checking if someone bought Robux. As @Krunnie said, half of the players never bought Robux.

4 Likes

Will my game handle 64-bit numbers?

If your hardware was made in the last 12 years, then yes. Somewhere around 2008 (according to Google) is when x64 became standard over x86. Lua uses double-precision floating points to store numbers, which are 64-bit. No problems here. Same with Python, and JavaScript, heck, even bogstandard C’s int is 64-bit by default.

If you wrote your programs in Java, I feel sorry for the computer, not you. This is a joke :smiley:

What about deleting unused user IDs?

The problem with deleting user IDs is the fact that DataStores aren’t player-oriented; keys are just numbers, and don’t actually tie into the existence of one’s account. When you free an existing ID from the Roblox database, you’re making that player’s data open to the next person who signs up and plays your game.

Remember when guests existed? You could play someone else’s save file just by editing your guest’s user ID. It was a little crazy to say the least!

Overall, should I be worried about this change?

No.

Unless you programmed in Java. Then be worried about your computer’s well being.

Okay for real, I’m worried. What should I do?

Roblox DataStoreService is safe. Lua is safe.

External database users, if you used a statically typed language, ensure your numbers are unsigned. This prevents them from being negative, but doubles your positive capacity. If you used Java, use unsigned long as a replacement for int, as they’re 64-bit.

Keep a backup of your database to stay safe. Overall it shouldn’t take a lot of work to transfer your types to the newer version. And of course, make sure you temporarily disable user input before working with large amounts of data.

7 Likes

Hope this helps to prevent Roblox servers to be broken, phew

1 Like

You’re wrong.

For C/C++ you can use this:

typedef long long int64;

int64 myVariable = 9223372036854775807;

For Java you can just use the long type:

long myVariable = 9223372036854775807;
4 Likes

I thought Roblox Staff would delete the UserId because I have been seen numbers very very big, but at least roblox can actually improve it and not cause errors and bugs.

What about just having the first 3 digits of your username and ten a random 10 digit number as your UserID? Or just removing it all-together? The thing about removing it all together is that some games rely on userid as names are changable… maybe make names that were changed identifiable by any of their previous usernames or their current?

1 Like

I was thinking about int type, not long.

1 Like

Okay, thanks for letting me know :smile:

Quick question to any staff out there, was this updated at all related to the downtime yesterday? It seems to be related, can anyone confirm this, and did it change anything?

1 Like

Just as a note, you cannot print numbers as high as 2^50 in the current Output Window, but I do expect that to change with the new one.
image

Will this affect a banned players list? that rely on Username:ID

This change shouldn’t affect it because no user ID will be changed.

Your ban list should rely on the ID unless you want to specifically ban a username.

If the ban list is dependent on the ID, the player will still be banned even if they change their username.

It seems like there is some confusion as to what this will and will not do, so here is an example of exactly what is happening.

Instead of a maximum number of this:

01111111 11111111 11111111 11111111 = 2^31 (The first bit is reserved)

This equals numbers up to: 2,147,483,648

We have this instead:

011111 11111111 11111111 11111111 11111111 11111111 11111111 = 2^53(The first bit is reserved)

This equals numbers up to:
9,007,199,254,740,990

This means it shouldn’t affect anything you do with UserIDs because the number is exactly the same. Here’s an example:

		                 01111111 11111111 11111111 11111111 = 2,147,483,648
000000 00000000 00000000 01111111 11111111 11111111 11111111 = 2,147,483,648
000000 00000000 00000000 10000000 00000000 00000000 00000000 = 2,147,483,649 <--will happen soon

The only problem comes from converting a higher bit number to a lower bit number which can only happen, typically, if you’re making webcalls and the receiving end is expecting a 32bit number. For those that are running UserIDs through an algorithm, you shouldn’t need to worry since, like shown, it is the same number.

TL;DR
You don’t need to do anything unless you’re expecting a 32bit number as a UserID in a webcall. If you are, then you need to start accepting numbers up to 54bits (I wouldn’t wait on this, since Roblox is expecting the numbers to surpass the current threshold between late December and January).

Kudos to them for giving enough time before the holidays to deal with this for the developers this affects!

7 Likes

Update:

New users will now have UserIDs over 2.2 billion. Please let us know if you see any issues around this.

24 Likes

Is there going to be any taking down of the millions of spam accounts? And if you did, could you use those userIDS, and make the UserID amount less? Sorry if this sounds weird.

1 Like

There’s virtually no reason to clear off old UserIds and assign new users them. This is based off of a nonexistent problem and has been recounted several times in this thread why it’s simply not necessary to do or desirable either. UserIds are fine to continue going up incrementally from here.

As for this, this isn’t related to what the thread is discussing. Report those accounts through the appropriate venues.

7 Likes

Great to hear roblox is growing. I think this is probs for the best, though it may lag certain games that use datastore. But I can’t think of any obvious drawbacks or ideas to get around. A question is, would this affect shirt ids/ decal ids, game ids and model ids etc?

It would be cool to have a live Player ID count that constantly documents the highest ID, just for fun.

1 Like