Exploiter proof safe zone?

Best way I can think of is using a .Touched event then.

1 Like

not really. The individual client is looping once per second on their own machine. This should be perfectly fine.

Why would I use a Touched event? Region3 is more reliable. Touched is also very unreliable in many way for such things. Not sure what you mean by this being better.

Low-end machines will crash quickly, or won’t loop properly and exploiters could take advantage of it.

.Touched is probably your best bet like @Hydration217 said.

any client, even a old phone should be able to handle MANY 1 second loops. There are constant checks of all sorts happening. The client machine is much more capable of handling these things than the server.

Consider using Zone+ to make the checks server-sided only.

5 Likes

thanks but Zone+ is not open-source. Forcing us to require an ID and not allowing us to see the code. I will not run any code like that in my game.

Additionally, its not any more efficient than my system.

It is heavily optimized and likely more efficient than your system.

Also, please actually look at the module before making assumptions about it. It is indeed open sourced: Zone+ - Roblox

4 Likes

When people say “.Touched is bad” it doesn’t mean for every context. Region3 is unreliable as well (given it’s based on a 4 stud voxels) and looping a region3 for multiple zones will be much more demanding than .Touched.

But I would recommend Zone+ since you’re refusing to use it. It’s an open source module unless you can show me a certified patent showing me you can’t access the API

5 Likes

I may be wrong about Zone+ being open source, the install instruction show it doing a require on an ID and I didn’t check that.

However it does rely on HD admin and HD maid and HD signal which I dont want.

from the source code:

local HDAdmin = replicatedStorage:WaitForChild("HDAdmin")
local Signal = require(HDAdmin:WaitForChild("Signal"))
local Maid = require(HDAdmin:WaitForChild("Maid"))

I don’t see how Zone+ could be more otimized than my system, it include features that I do not need for my game at all. My zones are simple region3 checks without any raycasts (I don’t need rotated zones or weird shapes).

Why are you asking for help if you are so convinced your method is the best method?

6 Likes

You don’t need to have HD Admin in your game to use Zone+.

Also, the raycasting method Zone+ uses is as optimized as can be. You don’t have to use any other features that it has if you don’t want to.

this was never an attack on Zone+. I don’t need raycasts added to my Region3 checks, regardless of how optimized they are. I am not checking irregular shapes.

im askign for help on my own issue, not asking for suggestions on third-party modules. I thought that was clear in my OP, do I need to edit the OP to be more clear?

You said:

We are giving you other ways but you are refusing them. I’m not sure what else we can do.

3 Likes

There’s not much you can do, your system is flawed in that it’s relying on the client for information.

You either have to go back to the drawing board or use Zone+ if you want to be exploiter proof.

So how do you prevent exploitation if you don’t want to do a check server side? They can tell the remote they are in the safe zone and do whatever they want.

You are going to need to do something unprompted by the client if you want security.

I’m thoroughly confused as to your design choice.

Just looking for other ways in addition to what you suggested. You suggested using Touched. I appreciate that but I used Region3 because thats what it is for and should not be thrown out simply because you suggested it.

Thanks!

that’s just really not true. I do wish such absolute statements were not so common on here.

For example, I could simply do server check on a player ONLY after they are confirmed by the server to be in a zone, so I can remove them. This would have the server only running 1 check per loop period and only on players who are already confirmed to be in a zone. This is MUCH MORE efficient than simply running a check on all zones on the server at all times. Once a player has been confirmed to not be in any zones at all, no check would be run. If no players at all are in any zones, there would be no loops running on the server at all. How is any sort or constant looping more efficient than my design?

Zone+ is probably the best way as @twinqle said. It uses raycasting and region3, really can’t get more refined. It is completely open-source and the functions and events are readily made for you.

.Touched is unreliable and exploiters can fire it or delete the TouchInterest/part entirely and .Touched won’t register.

Don’t use remotes as they can be removed on the client, thus making them not send-able.

Your options are pretty scarce here.

1 Like