Blueberry v1.11 — A new way to display punishments

Is there a feature planned where instead of having to type in the player’s username you can just go to a drop down list and click on their name? This would be useful for players who have obstructive usernames like IIIIIIIIIIIIII or mmnnnmnnmnmn or something like that.

1 Like

Hi! That feature is already added for the kicking system. Sadly, the permBan or tempBan systems do not have that. Why? Because Blueberry is designed for you to be able to ban users even if they are no in the game (offline-banning).

When kicking a user, it’s enough for you to insert the first letters of the suspect’s username and the rest will be handled automatically.

On previous systems I’ve used I found it very convenient to use a drop down list to punish in-game players faster, and if they aren’t in game I would use the text box to punish them instead. Would it be possible for Blueberry to support two types of input? One being the text box for manual input and the other being the drop down list I mentioned?

Here’s a quick example of what it might look like:
example

1 Like

Seems like a good idea! Thank you for suggesting, and we will consider adding it in the next versions!

1 Like

Another question, if a moderator tries to punish a rule-breaker who is in a different server, does the rule-breaker still get punished or does Blueberry not have cross-server communication via MessagingService?

We are adding MessagingService soon, If an moderator bans somebody whos cross server the target will get listed in the datastore for when the target joins the game again.

So once MessagingService get added, if someone who’s currently in game gets punished by a moderator from a different server will they get punished in live time or only when they rejoin?

1 Like

They will get punished in live time after messagingservice gets added.

1 Like

Once MessagingService gets added, the moderator will be able to punish the user in real time. Currently, it only works if the suspect rejoins the game.

2 Likes

To see the updates please go to Blueberry v1.11 — A new way to display punishments - #37 by InfiniteBlackPIX this is the update log post.

Please report to us any errors, feedback you might have for blueberry!

– Just Saying this since some people might not know

Nice concept. But I do have one question about this. Does this have a measure that prevents the game owner being banned from their own game?

Well, I gotta admit that it does not. However, the owner can unban themselves anytime by running a line of code in the game developer console. They can use Blueberry’s API to remove bans from DataStores.

But thanks, I’ll consider adding a check.

Thanks for the response. What exactly is the API command to unban yourself from the game?

Blueberry:removeBan("username")

Blueberry should be the required API module of Blueberry (usually found in ServerScriptService > Blueberry > Data > API).

username should be your username (or any username you wish to unban).

Alright, thank you very much! Looking forward to maybe use this in one of my games in the future.

1 Like

It seems this system can be easily bypassed by just disabling the main client script…

Again, you can also just disable the script and remove the warning and then just continue walking around, no repurcussions.

Another issue: You can just respawn and your warning will go away…

You are using an outdated version of Blueberry. It is true that you can bypass the UI itself, but you cannot interact with the server at all (character unspawned and chat disabled).

Respawning will only delay the warning UI to be displayed next time you join the game.

I like the improvements to the security with this system however, there is something that I feel should be improved.

Can’t you just use AncestryChanged event? As far as I know, this event isn’t exploitable. Additionally, you can check for every part of a character to see if they got re-added while being banned.

The pseudo-code would be something like: also sorry, writing code in the devforum is a pain

for Index, Child in ipairs(Character:GetChildren()) do 
      if Child:IsA("BasePart") then 
      Child.AncestryChanged:Connect(function(Part, NewParent)
       if Part == Child then
          -- blah blah
       end
      
       end)
      end
end

EDIT 1: Since my suggestion is being added, I don’t want inefficient coding ideas to be implemented (not to say this was my intention nor I realized there was a simpler way of achieving your goal when I was orignially writing the post). The suggestion I said was fine, and would work just fine however, following the KISS principle (Keep it simple, stupid) which is basically saying you should avoid unnecessary complexity, there are much better ways to achieve what you want while keeping the overall system design quite simple (or necessarily complex). One of them is to listen the CharacterAdded event for the player, which I am pretty sure it isn’t exploitable (because, from a logical perspective, if the characteradded didn’t fire, then the client no matter if they are exploiters or not, didn’t even connect to the server in the first place or are not willing to replicate their characters lol). There can be more ways that I can’t think of at the moment but listening to the CharacterAdded event is the pretty much the simplest out all of them . @InfiniteBlackPIX (incase devforum doesn’t notify you when there is an edit in a post)

Thanks for suggesting it! I will consider adding this as an additional security measure. Seems useful.

1 Like