Spam of Head.FreeFalling.CharacterSoundEvent?

No, it wouldn’t. Remotes can be fired in quick succession without issue. Connecting a blank function would mute the error while starting quite literally a blank thread (meaning no code is really running, except for the beginning and ending of a new thread).

I’ve had this issue before with remotes that aren’t just the CharacterSoundEvent remote of the Sound script. Hooking a blank muted it; so did ensuring my remotes were listened properly without calls being done out of line (Server calling OnClient or vice versa, or whatever).

Standard remotes already are able to handle firing quickly. You can see this with, say, guns with automatic firing cycles that fire remotes every time they’re shot. You don’t get this error.

You can see this for yourself by setting up an experiment.

Removed the experiment - it’s not an accurate one.

Got a working experiment down that reproduced the issue in the OP. It’s a similar setup to the one I deleted, but seeing those results doesn’t matter. It just shows that you can fire remotes in rapid succession without any problem - I put a fire in a while true do wait() end loop and got over 3000 prints without error.

How to set up the experiment:

  • RemoteEvent > ReplicatedStorage
  • Script > ServerScriptService
  • LocalScript > StarterPlayer.StarterPlayerScripts

Contents of the Script:

local replicatedStorage = game:GetService("ReplicatedStorage")
local remoteEvent = replicatedStorage.RemoteEvent

remoteEvent.OnClientEvent:Connect(function () end)

Contents of the LocalScript:

local replicatedStorage = game:GetService("ReplicatedStorage")
local remoteEvent = replicatedStorage.RemoteEvent

while true do
   remoteEvent:FireServer()
   print("fired")
   wait()
end

Results:

Means that the issue is being fired or listened from the wrong environment. It has nothing to do with the speed of a remote being fired. A remote can be fired in quick succession faster than you think.

Simply change “OnClientEvent” in any server script to “OnServerEvent” and do it vice versa for the client. Same goes with FireEnvironment; server for client, client(player)/allclients for the server.

Hooking a blank function will also solve this.

1 Like

However, my main perception of this problem was correct.

To my knowledge the limit is 50kb/sec, correct me if I’m not mistaken.

I just can’t understand why a Roblox has such an implementation on a RemoteEvent. I know that multiple scripts can access the RemoteEvent, so could it be possible if a LocalScript has an OnClientEvent event to the RemoteEvent, while a Script has an OnServerEvent event on the same RemoteEvent?

Not entirely. The repeated spam only comes from how many times its being fired and because the event is being wrongly listened/fired. What I’m addressing is the root problem, which is why the error is appearing in the first place.

The limit is 60KB/s and this limit is only applicable to how much data can be sent. Firing a remote without data doesn’t negate this limit or take away from it. This makes my point remain unchanged. The code sample I provided listens OnEnvironmentEvent and starts a blank scope. If at minimum one event is there, the event won’t show due to improper connection. I’ve also provided other ways to mute or fix the issue being presented.

RemoteEvents are fine to be connected multiple times, because OnEnvironmentEvent is an RBXScriptSignal. It’s the same as doing something like Players.PlayerAdded:Connect multiple times or using some other RBXScriptSignal from both the client and the server.

The events of those remotes are completely separate and just signals to run whatever is connected. There is absolutely nothing wrong with using a single remote and doing both OnClientEvent and OnServerEvent on them, multiple times or once, in several scripts or just one. It’s done pretty frequently.

Another solution is to remove the RemoteEvent, so it only produces one error, as it will stop the firing and will error only because the variable or statement referencing the Remote in the assumed LocalScript is nil.

I haven’t had time to read all the replies, but it’s not possible to crash a server by firing that remote event. Using exploits and while in a controlled environment, I tested it my self. I was able to make the ping for my client around 40,000ms, but the server still held strong for the other people in the server.

If I had to guess, it’s a problem with a RemoteEvent or RemoteFunction that you guys created yourself. If you don’t check if a player is spamming an event, they can completely crash the server with ease. The best way to handle this is to add rate limiting to your Remotes. A simple ratelimit:

local SampleEvent = game.ReplicatedStorage:WaitForChild("SampleEvent")
local RateLimit = {}

SampleEvent.OnServerEvent:Connect(function(Player)
    if RateLimit[Player] == nil or tick() - RateLimit[Player] > 1 then -- The number is how many seconds between firing the player can do
         RateLimit[Player] = tick()
         -- Do stuff here
   end
end)

When testing with exploits, I never got that error message to pop up, so maybe I’m doing something incorrectly. I got another error message that said that I was spamming the event, but it wasn’t the one that you guys got.

2 Likes

I’m getting this too. Anyone know what the source is or how to fix it?

1 Like

From my personal experience, ive seen people “Shutdown” servers by spamming remotes connected to character sounds. Most of them get patched fairly quickly (~ a month) but I guess anything is possible.

Is this causing your server to crash, or is it just showing the message?

This is on the client. Every client is being spammed by this message.

3 Likes

Odd…Berezaa’s issue is occurring to me too, are there any fixes for it?

Lots of games are having these issues. If you check the developer consoles in a few games, you’ll see these errors.

I would assume that Roblox is having some issues right now, but that’s just a thought.

2 Likes

This is still an ongoing issue, I’ve seen these error messages in several games. While I haven’t experienced crashes due to this, I believe ROBLOX should fix this as soon as possible.

Since about a month ago, the console almost always shows an error originated from ROBLOX’s scripts. When one got fixed, another popped up.

Before the aforementioned issue, a warning was also being spammed at random:

And a few other issues:

Bumping this again because it is still happening currently

Just so that I am sure, does that remote play the freefalling sound effect for that player? Or am I wrong?

It would help me if I knew what that remote does before I attempt to answer.

I came across this issue last night.

What happened was - I accidentally duplicated one of my scripts. Ctrl-D must have gotten away(oof).
I only happened to notice that, because I had some logging that was being repeated - in addition to this error.

I traced it down to having CharacterAutoLoads = false, and calling player:LoadCharacter() twice at the same time.(from separate player connect functions) - but seems to be inconsistent.

HeadFreeFalling.rbxl (16.6 KB) Repro
(not always consistent, takes about 30 seconds for it to start throwing error, seems more consistent if you test multiple players) If it doesn’t error after a minute, I usually restart it. Your patience may vary.

Not sure if it could be exploited, but in this case it was just a mistake on my end. It’s a very misleading error message though, I’ll give it that.

6 Likes

Had the same issue and it was resolved by removing my player:LoadCharacter() in my join script.

There’s been 3 bug reports on this already:

This is not a bug report, it’s a thread from 4 months ago that is hardly prevalent anymore which asked about the error itself. It was just upped back for a potential fix, for whatever reason, even though such solutions are already available.

I believe the mute fix was applied internally, which makes this a non-issue as it stands.

2 Likes