:Kick() Alternative

Is there a way to hook all remote events and block them from being responded to before the remote responds back, because this anticheat will be a module for anyone to use

I have checked this out before, and I believe someone bypass’d the gui.

You can’t use \n in kick messages now? That sucks… I using it a lot.

I don’t think you can block raw events from players using other scripts. Your best choice will be to filter them.
Make a custom OOP module that creates an event and works as a wrapper between .OnServerEvent and the function server wants to connect.
When a kicked player fires that event the wrapper detects that player is in kicked state and doesn’t pass the arguments into the function server gave.

The problem relies in this being a module/script that anyone is open to use, I wan’t to be able for the module to be drag-and-dropped into the server-script-service and to be used.

Well, you gotta make it right. You can try to modify Quenty’s Signal module and make it use RemoteEvents and check the state of the player.

This seems a bit complicated, I think I will stick with the original idea of displaying a UI than after around 30 seconds the player is kicked.

I mean, if you want to use it everywhere, it will be complicated.
The easiest solution to this will be to create some function that checks the state of the player, for example.

local playersState = {
	"Player1" = "Kicked",
}

-- :: Create checking function

local function IsKicked(player)
	if playersState[player.Name] == "Kicked" then
		return true
	else
		return false
	end
end

-- :: Use this function in the connected function

game.ReplicatedStorage.RemoteEvent.OnServerEvent:Connect(function(player, arguments)
	if IsKicked(player) == true then
		return
	end
	
	-- :: The player is not kicked and we can run our stuff
	
end)

custom kick.lua (7.0 KB)
quick recreation of the kick ui, supports newlines

This is a good UI! But as I previously said while true do will cause problems with the application stuck in task manager and not closing properly. It is strongly not recommended to use on regular players.

1 Like

Ah is this why \n was not working for me. I tested it a week ago or something and was wondering why \n was not working. Was this announced anywhere?

iirc it was removed to patch a robux stealing vulnerability

Wait what. How does removing \n fix a Robux stealing vulnerability…

Does \n just effect the text?

you can clone a lot of guis or smth and make the client’s pc overheat and explode

1 Like

they were using it to hide gamepass prompts i think

1 Like

Sadly think this may cause your player count to go down. :laughing: Anyways why would you need lots of GUI’s, would one not just work?

Maybe try this;

It’s a new, safer method we used. If you’re looking to replace the kicking screen.

For anyone who wants to know the reason why it was removed…

It was removed because there was a bug where you could hide the Leave button on mobile devices whose screens are smaller (by making the kick message massive and using \n a lot). I don’t have time to find the exact post where a Roblox Staff member says this, but that’s the reason.

1 Like

Someone already published your module but I need this to work for all games or any game who wants to use my module, this makes it harder for people to setup my module

1 Like

Yeah but instead of fixing the problem they made a lazy fix

1 Like

You should try Blueberry Plus, the updated version of Blueberry 1.11. Instead of just inserting a GUI into the game which is easily bypassable, it teleports the player to another place inside of the game and puts the gui there.

Of course, this method prevents you from making a GUI that looks like the actual kick message because the background would just be a baseplate or whatever you set the place to be, but it’s still pretty cool. I’m sure you can figure something out and somehow make this work; Maybe you could pass a copy of the workspace converted to a table (where everything inside is anchored so there’s no movement or anything though) from the main game to the secondary place somehow, and from the second place convert it back into an instance (you can convert the workspace clone into a table and viceversa using this) and basically replace the workspace with the one you sent over, and then put the gui and it looks basically like a kick message

Edit: just saw your reply to InfiniteBlackPIX who told you to use this aswell, it’s honestly not that complicated to setup if you have an okay PC that can handle 2 studio places open at once (Unlike the bad laptop I’m currently using lol), plus even if it does require a few more steps, it makes the game more secure while also giving you the chance to customize it all to look the way you want it to so I feel like it’s pretty worth it to use. Then again if you just don’t want to setup the second place every time, you can just make a new game that upon entered will display the screen, then you can just keep teleporting people to that game instead of making new places per game. (Of course this would mean people would just be able to enter by themselves if they feel like it but you can just make it so if they weren’t teleported from another game then they get instantly kicked before it loads)