Player ID based Ban System research

Recently I had an idea of making a ban system that doesnt check the username (since its easily changeable) using the player ID, there is one small issue with that…
which is that right now we have no known way to differiate players based on ID (at least from what I know).
So I decided to make this topic that way we could put time into researching a way how to (if there even is one).

so far the only things we know about the player ID are,
it contains a timestamp.
It is in hexadecimal.

Now I’d recommend checking out these 2 topics before posting in this one, just so you know what we already know about the player ID so far. because the character limit is not enough for me to go fully in-depth on how the player ID works.

6 Likes

yes, the player ID Block in GKC…
why would I post this in the GKCF if it wasn’t?

3 Likes

sorry @Fleet I didnt know

1 Like

As far as I can tell, having a timer ban (banned on a certain date) is probably easy, seeing as you can just check the first part of the Player ID, but have a bypass name (for host).

Idk, we would have to discover more about the player ID.

Check when players jo1n by comparing self id to host id..

I’m kind of confused by this statement. What do you mean “differiate” (not a word by the way).

I think fleet means ‘differentiate’

And what they mean by that is that there’s no way to tell a specific player globally with the player id, because it is volatile

2 Likes

Oh ok yeah that makes sense.
Hmmmm lemme think.

And… I don’t think that’s gonna work cause

wdym by this… It sounds tedious to make for all I know

The player ID won’t help with this I think. While you can make a property storing the name and ID together (just have the property block value be made of text from Triggering Player Name and Triggered Player ID) it won’t really help with identifying the name. Since you’ll still have to put something like “system, make sure a kid doesn’t have [insert profanity here] as a name.” a guy could put “[INsErT prOfANiTY hErE]” and get away with it. Instead, a better option perhaps is to grab the name and have it set to a lowercase string then compare it to the set word. A way to do this perhaps is to maybe reiterate through each index in the string and identify if the letter is uppercase then if it is uppercase make it lowercsae.

Ban word: eatturtle
Name: eAtTURtlE
eAtTURtlE → eatturtle
eatturtle ↔ eatturtle

Match!

5 Likes

How much memory do you think that’ll cost?

If we can do this within a trigger then maybe 540.

3 Likes

Player ids are mongo ObjectIDs, theyre designed to be as unique as possible. This makes me think there isnt a way to consistently identify players based on id.

3 Likes

It would just check for if the player’s name is [some name] before checking the ID

3 Likes

Maybe…

We’ve already come to the conclusion that the last (I think six) characters are completely unique.

3 Likes

The last 3 are counters, which I believe as far as I think, just increase if you open up through the same portal?

The machine and process ID are the 6 that are random and don’t really provide and use other than making it unique.

3 Likes

The only way to do this is to have a player id for each player that never changes. The player id that gimkit uses can change and always changes, with a few exceptions. This means, that it’s impossible to use the current player id to make a ban system.

2 Likes

Yeah, I thought so. ESPECIALLY since the last few characters were kinda confirmed to be completely random.

istg if someone links “its not impossible”