How would I make an Anti-Dex or make it so that it stops exploiters from downloading my map?

How would I make an Anti-Dex or make it so that it stops exploiters from downloading my map?
What would I have to do to receive this result?

2 Likes

To my knowledge, this is impossible as there’s no way of detecting Dex when exploiters have the ability to rename and change features to prevent your scripts from finding them.

1 Like

There’s no way to stop someone from saving something the server is replicating to them.

I wouldn’t have a quick answer for the DEX issue, sadly.
However downloading your map?
You can’t, you literally cannot stop people from doing this, the most you can do is file a copyright strike against the user(s) if you find your work being stolen.

2 Likes

Actually, this is wrong. There is a way of doing this but it is very complicated. For example, the game SCP: Roleplay has a system which automatically kicks an exploiter with Dex Explorer.

@Remorsxe You should just try to keep checking to see if any UI’s were added that you didn’t make and if that ends up being the case, you do something with Ban or just keep Kicking the player.

There’s a way to prevent dex explorer inside of a game, found this through devforum.

local BlacklistedGuis = {
	Dex = {
		'SaveInstance';
		'CallRemote';
		'ScriptEditor';
	};
}

local BlacklistedFound = {} --Blacklisted items found

wait() --Wait for game to load. Exploits cannot inject this fast so there's no worries.

game.DescendantAdded:connect(function(a)
	--//We will use a pcall to get its name, you can only string an object for its name if it's in CoreGui.
	local suc, err = pcall(function()
		local n = a.Name
		if n then end
	end)
	
	if err then --Must be in CoreGui because it errored out due to the security level
		if tostring(a) then --If we can find the name of the inserted object.
			local Name = tostring(a)
			
			for ExploitName, Values in pairs (BlacklistedGuis) do --Go through blacklisted guis to see if this matches one of their children.
				if not BlacklistedFound[ExploitName] then
					BlacklistedFound[ExploitName]  = 0
				end
				
				for Index, GuiName in pairs (Values) do 
					if GuiName == Name then
						BlacklistedFound[ExploitName] = BlacklistedFound[ExploitName] + 1 --We found a possible child of the exploit, we will search for some more though.
					end
				end
				
				if BlacklistedFound[ExploitName] >= #(Values) then --If we found all of these inside of CoreGui, they must have dex.
					BlacklistedFound[ExploitName] = 0
					
					print("Thanks for using "..ExploitName.."!") --We have found our blacklisted GUI! In this case, DEX!
				end
			end

		end
	elseif a.Parent == game.Players.LocalPlayer.PlayerGui then --Some people like it inside of PlayerGui.
		if tostring(a) then
			local Name = tostring(a) --This is its name, just being consistent.
			
			for ExploitName, Values in pairs (BlacklistedGuis) do
				if not BlacklistedFound[ExploitName] then
					BlacklistedFound[ExploitName]  = 0
				end
				
				for Index, GuiName in pairs (Values) do
					if GuiName == Name then
						BlacklistedFound[ExploitName] = BlacklistedFound[ExploitName] + 1 --We found a possible child once again. 
					end
				end
				
				if BlacklistedFound[ExploitName] >= #(Values) then --Oh hey look we found dex.
					BlacklistedFound[ExploitName] = 0
					
					print("Thanks for using "..ExploitName.." inside of PlayerGui!")
				end
			end

		end
	end
end)

I’m sorry, this code won’t work.

A. Exploits can inject extremely fast (even before any of the actual LocalScripts load)
B. Roblox patched the tostring detection method (the post you found is from 2018)
C. Even if this script did work, they could just change the name of the frames or do so many other things
D. There’s a lot of other issues with it that I don’t feel like getting into right now

And as for the post question, it’s not possible. If you really wanted to make sure they didn’t get your map just don’t add it. I know that’s probably not the result you wanted but it’s the truth.

6 Likes

UIs can be added thru CoreGUI if they have a cracked client making them undetectable

1 Like

Exploiters can bypass UI additions through CoreGUIs. The example you gave was horrible because SCP:Roleplay’s map was stolen a long time ago already. The harsh reality is that there’s no possible way to stop this from happening.

1 Like

Use a PackageLink and it is nearly impossible for them to publish the game, but you have to insert it in nearly every game part or important parts.

Unfortunately that is not an option

Cant stop people from copying your game but u can try encrypt most of your client side

@Mystery_Devx You should use task.wait(1)

local hacking = false
while wait(1) do
if dex then hacking = true
end
end

The mods took down my post, but true.

you cant.

i’m putting it as blunt as possible.
you literally cant.

dex loads with a randomly generated set of numbers / letters every time it is added

example

ajfgudatdaa8583ajsfw8a57asf - first time adding dex
yefhaeg8ea8gsad8gadjht4s609 - second time adding dex

they’re just random keyboard spam but it works the same way

its name is randomized when it’s added so you can’t pinpoint a set of names to block, also it’s parented to coregui which you can’t access via a script

to put it short
you cant.

3 Likes

You cannot. There is no way to stop someone from getting data that is already on their computer. Any security measures you want to add to a game must be enforced on the server, you can’t control your user’s computers.

2 Likes

This is correct, the code posted doesn’t work and cannot be made to work.

1 Like

Sorry for bumping. But I assume this is a TextBox Detection also relying on CoreGui Detections are gonna be useless now since exploits are becoming external which don’t mess with Client Memory Usage either.

Sorry, no chance. Our last hope is for roblox to add the new anticheat that will get bypassed anyway by popular exploits

I have found a way to detect certain exploits/exploit code.

However, I will never leak it.

1 Like

There are several ways you can protect your Roblox map from being downloaded or exploited by others. Here are a few options you can consider:

  1. Use Roblox’s built-in anti-exploit measures: Roblox has a number of built-in measures to prevent exploitation, including the Roblox Security System (RSS), which is designed to protect against common exploits and vulnerabilities. This feature is being worked on, of what I’ve heard

  2. Use Roblox’s place security settings: You can use Roblox’s place security settings to control who can access your place and what they can do in it. For example, you can set your place to “Private” to prevent it from being accessed by anyone other than you, or you can set it to “Friends Only” to allow only your friends to access it.

  3. Use third-party anti-exploit tools: There are a number of third-party tools that can help you protect your place from being exploited or downloaded. These tools typically work by detecting and blocking common exploit techniques, such as packet sniffing or memory manipulation.

  4. Use Roblox’s developer console: The Roblox developer console can be a powerful tool for preventing exploitation. You can use it to disable certain functions or variables that might be vulnerable to exploitation, or you can use it to monitor your place for unusual activity.

Keep in mind that no single solution can completely protect your place from being exploited or downloaded by others. However, by using a combination of these measures, you can significantly reduce the risk of exploitation and help ensure the security of your place.