Disclaimer
This guide was produced by Toothless Inc Corp. This is not recommended with anybody with brain age less than 13. Symptoms from this guide may include crashing out, rage-quitting and a weird feeling of saying brainrot. If you are experiencing any of these conditions call 111-111-1111 for Brain rot help and 111 to patch you in with the nearest mental asylum. We are not responsible for any of these symptoms. Report bugs if found.
Now, I need you to bear with me before flagging this guide, I have a very good reason for publishing this post to the community. Apparently there was a dupe guide on how to ban certain player names, a user gave other guides to prove how the post was a dupe. I was naturally intrigued and went through the given links.
The Reason
After hours (4 minutes) of meticulously researching the systems, I’ve come to a conclusion that they are in need of an update. My reason, they can be easily bypassed.
Now, normal systems like those of chatting are still not fully able to keep out inappropriate words or player names. However, I believe they can still do more such as identifying randomly capitalized words.
For example, as per the Gimkit systems we have currently, if a ban word was “eatturtles”. A player could name themselves “eAtTuRtlES” and get away with it. My system (hopefully), will get rid of this problem and limit how easily people can bypass such banned words.
Breakdown
Breakdown
Alright, so how are we going to do this?
- UPPERCASE and lowercase letters:
Since we want to convert any uppercase letters to lowercase, we’d want to make two different properties. One that holds all the lowercase letters and another that holds all the uppercase. - If statement to identify letters:
Since we both our properties are basically identical in index (as both contain the entire alphabet), this will mean A and a will have the same index. Which means when we iterate through each letter, we can compare if we have an Upper case letter, and if we do, we can grab it’s index and use that to find it’s lower case counterpart since they both have the same index. - Reconstruction:
We need to recreate the name over each iteration to develop an entirely lowercase version of it (this would mean that our banned work would need to be lowercase so they can be compared). - Identification:
Pretty easy part, just slap on the two words and see if they match
Properties
Properties
Here’s the properties I used
Name | Type | Default Value | Usage |
---|---|---|---|
iteration | Number | 1 | This is for iterating through the player’s name and to try and find any upper case letters to change to lower case. |
Banned Word | Text | [insert your banned word] | This is for final comparison between the recreated name and the banned word, this is the final check to see if the name matches. |
lowerLetters | Text | abcdefghijklmnopqrstuvwxyz | For recreation of name |
upperLetters | Text | ABCDEFGHIJKLMNOPQRSTUVWXYZ | For recreation of name |
recreationOfName | Text | This is where the letters will be placed to create a lowercase version of the name |
System
System
Ok, this is actually one of my shorter guides considering the fact this is all done on one trigger.
Anyways, so grab a trigger, and have it broadcast on nextIteration
. You’ll also need a separate device to activate the trigger, maybe a life-cycle on game start or something else.
Add this code.
And preformatted code.
set 'iteration' to - Get Property- "iteration"
if 'iteration' ≠([length of-Get Property-"Banned Word"]+1)
do: set 'nameIteration' to- in text [Triggering Players Name] get letter # 'iteration'
if [in text (Get Property-"lowerLetters") find first occurrence of text ('iteration')] ≠0
do: Set Property-"recreationOfName"
Value: create text with
|Get Property-"recreationOfName"
|'nameIteration'*
else: Set Property- "recreationOfName"
Value: create text with - Get Property "recreationOfName"
in text - Get Property "lowerLetters"- get letter # [in text-Get Property: "upperLetters"] find first occurence of text 'nameIteration'
Set Property - "iteration"
Value - 'iteration' + 1
Broadcast Message On Channel - "nextIteration"
else: if Get Property-"recreationOfName" = Get Property- "BannedWord"
do: Broadcast Message On Channel- "nameNotAllowed"
* Hopefully you saw the asterisk. Anyways, I’m writing this because you might have noticed part of the pre-formatted code isn’t identical to the screenshot. Well I realized I wasted some blocks and replaced it with the nameIteration
variable which had the original use of REPLACING that code. So don’t worry about ti.
Explanation
Explanation
My least favorite part of the guide!
Ok, so basically we use our iteration
property and check if it’s equal to the length of the Banned word. This is under the assumption if you do give yourself a bad word, it would match up with the length of the name [1]
Now after this, we grab the index value of the player name and save it in the nameIteration
variable. For example, if in eAtTurTle, it would grab “e”, since the iteration
property is 1. Now using this letter, we check if it exists in the lowercase letter property, if it exists, it would return its index.
Using that index number, we do into the recreationOfName
property and add the previous version of it (which is nothing since this is the first iteration) and the letter. This would make it “e”.
After this it increases the iteration
property by 1 and restarts the process. Moving onto the next letter “A”. You can already see that it won’t exist in the lower case letter property, so we go to the else and again recreate the letter, except this time we find the index number A has in the upper case letter property and use that index to find “a” in the lower case. This works since “A” would have an index 1 in the upper case property. Now, using one, we find that letter in the lowercase, and “a” sits there. That’s because the alphabet is matched up with its other counterpart (B with b, Z with z, you get the point)
Now we keep doing this until we reach the same length as our BannedWord property. This goes under the assumption that if the player did use an inappropriate word as their name, it would match the same length. Again, spaces would disrupt this. Now, in the case the player didn’t use spaces, with the decoded name to be all lowercase, we would compare this to the banned word and see if we get a match. After that it’s up to you what you want to happen to the player.
Useful?
There’s still a bit more to add, like spaces in the name and special characters to act as substitutes for letters (@ for a, ! or 1 for i). But honestly, your best bet is to just kick the player as a host and ask them to change their name.
Anyways, hope this was helpful. Hmm, yes, try avoiding saying 'Good Guide!" without saying something actually helpful, like maybe suggestions to make this a better guide.
Spaces in the name will harm this part of the system, since e a turtle isn’t the same the same length as eatturtle. ↩︎