Hello! While playing Infectious Smile I saw one exploiter who I believe was abusing attachments in AlignPosition… I recreated something similar to the grab/hug system from the original game and tried to do it the way the cheater did. And indeed it works exactly like that!
Apparently he changed the CFrame of Attachment, thereby manipulating the holding distance of the infected player. Please watch the demo.
How can I prevent this? Yes, you can create an anti-cheat that will check CFrame in Attachment and disguise it as some other working script, but I think such a system will be ineffective…
If necessary, this is how I made the system: Example.rbxl
Don’t give player network ownership of another player
Simple as that;You could be using some outdated methods related to character in workspace perhabs?
Yes, this is also one of the ways to solve this problem, but this is not what I want. Look at the file how the capture system is made. I can explain in short, so that it is more clear what I am trying to achieve. AlignPosition has its Mode property set to TwoAttachments, where Attachment0 is the RootAttachment of the player being held, and Attachment1 is the HoldAttachment that the exploiter is abusing. Changes to the CFrame property of Attachment1 are replicated to the server, as you claim, because the players are in the same network ownership.
There are a few ways to solve this: using deprecated BodyMovers as BodyPosition or changing the Mode property to OneAttachment and linking it exclusively to the player being held, changing the Position property on both continuously. But again I think it will be ineffective, as there will be a delay and extra load on the game…
Is there any way to solve this problem exactly as it is presented in my file, which I described?
HoldAttachment should not move anywhere, its CFrame is always constant, it is the place where the player being held will be located. The thing is that the CFrame changes on the exploiter’s client are somehow replicated to the server, but on the server the CFrame of this Attachment remains as it was originally. As was said earlier, this may be due to the fact that the player owns the network of the player he is holding. How can this be solved without dividing their network ownerships, as I originally asked, if that is possible of course?
Your example is calling a remote to a server script. The server script is then doing the attaching / holding. How could an exploiter have all that? From what I understand, they can only affect the client.
Yes, the exploiter affects his client by changing the CFrame of his HoldAttachment, but as you can see, other players see it too! The normal distance is -3 in Z axis, and then it changes to -10 and -15. I need to make sure that CFrame changes on the client are not replicated to the server.