Going to be honest here… Not sure why this exists; can’t think of a single thing I’d even consider using this for.
UserIDs already exist - and no, I have no desire to remember them… For anything.
All moderation tools already accept UserID, username, and display name (in some cases), making this kind of a hassle to work around with preexisting assets.
However, this might be useful sometime when server sizes get huge. It might be easier to return a player with the genID rather than their Roblox UserID.
UserId is always unique to every player, so there is no need to create a unique id for said player when roblox already does it for you to properly identify them.
To be honest, if the system just shortened the number by convertting it from Base10 to something like Base36 or even Base64, I feel this could be useful in some way, for example, lets use my userId (3625422122) and convert it from Base10 to Base36:
Base10: 0 1 2 3 4 5 6 7 8 9 Base36: 0 1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l m n o p q r s t u v w x y z
The bigger the base, the more compact the numbers become.
The numbers when converted between different bases will make the number more compact and take up less space than the original Decimal number, but instead, what you’re resorting to is a normal index to a table needing to be looped through that can otherwise be optimized to pick the index with the users unique id.
local CurrentPlayers = {}
CurrentPlayers[Player.UserId] = Player; -- assign index using UserId
-- grab the player:
return CurrentPlayers[Player.UserId] -- Get player by their UserId
-- remove from list:
CurrentPlayers[Player.UserId] = nil;
-- Pretty simple, doesnt need a module about it.
You can even use their name for this task, as thats always unique to the player as well.