Having some issues with cheaters using PathfindingService to cheat certain parts of my game. What are some good ways to make :ComputeAsync() fail to make waypoints without interfering with other player’s gameplay?
You can use PathFindingModifiers and set the PassThrough value to false for all parts. If you do, write a simple macro to add it to everything, otherwise you’ll be there for ages.
I think there is a glitch to make pathfinding service break completely by just adding a humanoid to the workspace. Not sure if it’s fixed though.
You can also probably add Humanoid.MoveToFinished() in a script and kick the player if its fired since ir only fires when :MoveTo() us called
I think this would only stop pathfinding if you put the PahtfindingModifier’s label name into the “Costs” table of the :CreatePath() function, which exploiters wouldn’t be doing
How exactly are exploiters making use of pathfindingservice in order to cheat your game? Is there a maze or something?
We have a widespread exploiting problem where players are using PathfindingService to basically pathfind to all of the enemies and automatically kill them. They also are able to pathfind to item drops throughout the map and collect them automatically before normal players can find them.
It’s not very obvious in this clip, but this player was using it:
Sorry to break it to you but something like this doesn’t even need PathfindingService. The gameplay is simple enough that just doing Humanoid:MoveTo() will suffice in moving the player to the different enemies.
Your exploiter problem is largely coming from the simplicity of this game. These types of simulator games have simple gameplay mechanics making exploits for them very easy to produce.
Adding onto what’s been already said, there are some things you can do to lower the impact of misbehaving clients, such as making enemies and dropped items only replicate to clients when within a certain range.
Of course, this isn’t something easy to pull off especially with Roblox’s limited API surrounding replication, so good luck.
Remember, automation is a luxury problem (In theory). It means your game is well built and thus requires the cheater to meticulously replicate the actions of a real player to achieve anything.
Reminds me of Runescape botting.
Reason is as @xZylter explained.
A solution I guess would be to collect data from humanoid move directions, position, mouse movements, and camera movement and do some machine learning classification in order to classify bots from humans from data.
There should be a pattern to bots vs a humans randomness. However you also need to filter through the data to differentiate which data belongs to a bot and which data belongs to a normal player which is a pain.
However this seems complex and unnecessary and perhaps there should be a focus on exploiter vs normal player interactions as @MagmaBurnsV suggested to make it not observable to normal players.
For things like global leaderboards with a few number of top players you could always do a manual modding method.
Hope this helps.
A game like this can be automated in probably under 50 lines of code. These games are usually used as tutorials on how to make your own exploit because of how easy they are to get around.
I would agree with this statement more depending on the game’s complexity.
Yes, this honestly is going to be the only way. You will only be able to pickup on exploiters due to their movement and control inputs. I played the game for 10 minutes and there would be no need for exploiters to tamper with RemoteEvents. Technically exploiters could still spoof this data, but it will greatly increase the knowledge needed to preform this.