-
What do you want to achieve? Fix problem named: Player “X_FSX” appears to be spamming remote events
-
What is the issue?
-
What solutions have you tried so far? changing remote events to bytenet thingy and disabling all remote events
i think u should log the time remote events are called for each player. if a player is triggering them too frequently, consider kicking them or handing them some sort of punishment. this can be done by implementing a timer for each player to check their call frequency before executing any server-side logic.
i already tried it but this is not helped
if you’re trying to implement a remote event kick. Dont.
Fisch tried this a few days ago and it went down badly, if you’re trying to identify remote traffic, look for FireServer calls and what might be signalling it.
You should also check your implementation wrt the logger itself.
i had no idea that kicking people who spam remote events was a bad practice
The issue is that Roblox sometimes queues up multiple event signals and sends them all at once, as an optimisation (esp if the client has ping issues). This can wildly throw off any reporting for spam detection.
that’s very interesting. i never knew roblox did that.
u learn something new every day i suppose
so is there any way to disable this? because very strange when i on 60fps im not spamming remotes but when i turn on 240fps i start to spam remotes
Do you have any remotes firing on RenderStepped in your game?
Luau on the server runs at 60hz. If you’re sending an event faster than that from a client (for example, every frame when you’ve set the client to 240fps), its going to batch them together for obvious reasons.
For a less technical explanation, if you send a single event every frame at 240fps, the server will queue them up and you’ll handle 4 every tick (240/60 = 4)
As a general rule of thumb, the best way to handle bad events is to just drop them. Dont show the client that you have successfully interpreted the bad request by kicking as this allows them to come back, and try again another way until they eventually find a way around ur protection. Just drop the requests and leave the client completely in the dark, wondering why nothings happening.
Meant to put this on the main thread not as a reply oops
no i dont have any remotes in renderStepped
Okay, do you have some way to showcase the game/scripts that fire remotes/upload the game file/etc.? I can’t really tell what the issue is because there can be a number of reasons as @metatablecatmaid has stated previously
i dont really know from here its happening so i cant give any scripts sorry
so i disabled all remotes and nothing changed i still spam remotes
It doesn’t have to be in RenderStepped, heartbeat will also run 240 times a second when the fps is set to 240. The rendering and normal heartbeat are connected, and RenderStepped just runs before the rendering happens, while Heartbeat runs after it
I’m pretty sure all of these, other than Replication Send Jobs (and maybe replication receive jobs?) happen every frame
But I know for sure RunService events (RenderStepped, BindToRenderStepped, Heartbeat, Stepped, task.wait(0), task.delay(0, …), …) happen every frame, you can easily test it yoursepf :P