Stop local character manipulation

Hello DevFourm,

so I while back I ran some ads for my hotel and not a long time after the ads were running the game was full of exploiters that changed their characters into inappropriate shapes and those were replicating so players left.
Since I am going to run ads pretty soon again I’d like to know what excatly I should make my client check to prevent this? I am aware exploiters can bypass this if they really wanted but my goal is to make it harder for them to change their character since they can, at the moment, just use a standard script and change their character with no trouble.

Thank you for reading & taking your time!

You could try adding something like this:

 for _,v in pairs(Character:GetDescendants()) do
     v:GetPropertyChangedSignal():Connect(function()
         --code here
     end)
  end

I’m not sure if it will work, but it’s worth a try

1 Like

Can you please give more details. Character shapes in default Roblox characters do not replicate except by animations.

Specifically, how are your game characters scripted?

And do not use client checks! Exploiters can always disable them, so have the server do all the anti-exploit stuff.

4 Likes

Hey, I’m not sure either how the characters got replicated, I checked for backdoors.

In my game I do not touch the characters at all except for a nametag. Characters are in R6.

How exactly do characters change ? Do they change their clothes or their shape ?

1 Like

The exploiters change the shape (I assume CFrames) of the individual character parts, I am not sure either how it was exactly made, I just found a similar script when I tried searching for it.

You may want to list the specific game here so other developers can look at it.

I’d recommend reading my post for information on reducing exploiting: How you should secure your game - A beginner guide for secure networking and developing anticheats

You should thoroughly make sure you don’t have any backdoors in your game from malicious or stolen plugins.

I also wrote this: GameTree - Malicious script/backdoor scanning tool

CFrames are specific to rotation/position of parts. Character’s can only manipulate their root part’s CFrame not their limb CFrames. Animations can also control this and that would be my best guess if you are 100% sure you have no backdoors.

1 Like

This script will check on the server a property of the player character.

I’m not sure which property of the character changes when the character changes its shape, but you can figure it out, and add it where the “–shape” is.

game.Players.PlayerAdded:Connect(function(Plr)
	Plr.CharacterAdded:Connect(function(Char)
		for _,v in pairs(Char:GetChildren()) do
			v:GetPropertyChangedSignal("--shape"):Connect(function()
				--code
			end)
		end
	end)
end)

Add it in a script inside ServerScriptService

Aditionally, you can add some checks in the script if you change characters in your game.

Don’t provide this sort of feedback. This is a hacky solution to a vague problem which could be rooted in an entirely different issue.

What OP seems to be having is an issue with replication or some sort of backdoor or faulty checks; I’d go with what @ Hexcede said.

2 Likes

Trust me, that’s not a backdoor, it’s pure character manipulation. Today it’s used to use custom walking animations for exploiters in games, to make you shaped like a swastika or just become yourself in VR and you can do anything you ‘want’. It’s a roblox problem. I hope they don’t fix it natively, since it would break some creations like animation handling. Anyways. To the point. Just check for manipulations. It’s a very easy fix, really. If their humanoid dies (required for the exploit to work), just force a respawn. That way they cannot do anything.

2 Likes