I’m just thinking about how to fix the attack, and I don’t want to kick anyone out. It’s silly. It’s easier to block the problem.
yeah, i was just making sure
(post deleted by author)
If I disable collisions, I’ll lose these funny moments in the game because of the hackers. This is unacceptable. Hackers should not ruin my game.
well you’re really not as you aren’t helping out properly. @zombi_vadim Your script should work. For the record, nobody here was defending hackers, we want them gone as bad as you. Your posts were likely taken down for a reason. Im sorry to say that the script will not work in the current situation, as the OP stated. I agree with @Chark_Proto that pointing out how this is done is not condoning hackers, its not bad, its necessary. You cant fux a problem unless you know how it happens. Have a nice day.
They take down almost any post when it gets a bit off topic and people report it. I do not take it personally. Roblox is trying to keep the peace. I am never rude to people, and I really have nothing to prove here. I have decades of experience and sell games commercially. I have had my share of hacker nightmares, believe me.
I was confused what you meant by comically?? That means in a joke like way…
I feel like you were a little condescending about telling how hackers achieved this.
Network ownership is quite literally one of the most basic concepts the Roblox engine has to offer. Roblox saves on computational cost by allowing clients to calculate the physics of nearby assemblies instead of the server. This is why parts sometimes stutter as they get close to and get far away from a client.
A natural consequence of how network ownership works is being able to manipulate the physics of network-owned assemblies. This is not forbidden knowledge and anyone with a working brain can arrive at this conclusion. The fix is equally simple: just set the ownership of the affected assembly to the server using SetNetworkOwner(nil).
sorry, i was just clarifying. Thats interesting the way you can program ![]()
Unfortunately, this doesn’t work. I have SetNetworkOwner(nil) on all my physical builds, but it doesn’t help me break it apart.
Apparently, there’s a strong client-side impact that’s being replicated to the server, as is the default behavior in Roblox.
SetNetworkOwner() needs to be called every frame for the intended effect (preventing a player from becoming the network owner). The other possible alternative is to have each client instantiate their own swing.
My best advice for you would be to sanity-check velocities. The server should constantly verify that a player’s speed is within realistic limits, and correct it if it isn’t.
If the server doesn’t sanity-check values, it accepts the result.
I would recommend checking the players speed every frame. If it’s too high, clamp it.
You could also check for sudden position changes:
local MAX_DISTANCE_PER_FRAME = 20
If they move farther than that in one frame → reset position.
Basically, sanity-checking is just “does this movement or value make sense according to my game rules?”
Cheaters can calculate their own character physics and trick the server into believing they are true. For example a cheater can apply an upward force to their character to make it fly, or change their character speed. The cheat you describe (flinging/throwing players off the map) works by rapidly rotating the cheater character in order to create unpredictable collision physics with other non-anchored objects (such as another player character). The cheater actively overrides their physics to resist their own massive generated collision forces (else they would be flinged too) but the normal player can’t do that, meaning they end up receiving the energy of the entire generated force, and getting thrown off the map.
One way to mitigate against this is through the use of collision groups, basically on the server-side you can make it so players don’t collide with each other (but keep colliding with other unrelated objects). That way when the cheater tries to fling the normal unsuspecting player, their character will simply pass through them, instead of colliding and generating the flinging force.
Alternatively if your game relies on character collision physics (most games, and likely yours, don’t) you can implement anti-cheat systems that look out for huge forces, fast rotating characters, etc. On top of this you can also set up an anti-fling system for normal players, so if a huge force is applied to them the server (but also the client with local scripts) will actively resist it.
Fun fact: This type of cheat is very popular in natural disaster survival
Well, that’s 838 solutions between the two of us saying the same things, and 16 solutions between the two saying this means nothing. Maybe give it a shot. Or we both don’t know anything and are just gatekeeping, not trying to help or give feedback with scripting options for support ..
Maybe I should have used more emojis. ![]()
![]()
![]()
![]()
![]()
I had an interesting idea. How do cheaters do all this manipulation? If they inject their own script into the game, I can simply track and check all the player’s scripts to see if they were created by me or came from an unknown source.
I want to ask you too.
How do cheaters do all this manipulation? If they inject their own script into the game, I can simply track and check all the player’s scripts to see if they were created by me or came from an unknown source.
Can a simple search for “Script” in the workspace yield any results?
I would just mark my scripts and be able to distinguish a stranger.
Why would I read the contents of a script? If it’s not my script, I just delete it from my workspace.
They don’t usually inject their own actual scripts, often they use external executors (impossible to check) or make memory holes (hard to check)
Thank you. You explained everything clearly.
