I’m looking to fight hacking by not having scripts on the client-side at all.Waiting until the game has started, then moving a few scripts into place. Yes, it is just a guess on how hacking software is implemented.
Is this way off?
task.wait(2.0)
local rs = game:GetService("ReplicatedStorage")
local from = rs:WaitForChild("Presets")
local clone = from:Clone()
clone.Name = "Presets"
clone.Parent = workspace
task.wait(1.0)
script:Destroy()
I figured as much. Wish I knew more about how this is done. Not willing to get a ban learning however. So really there is no choice but to use all sever-side scripts and remote events?
you want clientside scripts bro, it doesn’t matter if hackers have access to them or not, all they would be able to see is obsfuscated source code as decompilers don’t have access to variable names
That basically means exploit decompilers turn code from this
local Plr = game.Players.LocalPlayer
local Character = Plr.Character
Character.Humanoid.Health = 0
into this
local VARIABLE_1 = game.Players.LocalPlayer
local VARIABLE_2 = VARIABLE_1.Character
VARIABLE_2.Humanoid.Health = 0
You should keep some scripts clientside because (like you said) they work better there. Sure the serverside scripts might work well in studio, but like I quickly learned a few years ago, for real games they suck, and the game gets more unplayable the higher ping you have.
Would I trade having hackers see weird versions of my code for playability and smoothness of my game? Hell no.
The best way you can fight hackers as of now is to sanity check your remotes. What do I mean by that? I mean checking your remotes server side to ensure that they are actually valid!
there are many great resources on how to make your game have less cheaters
example one gives the best version of what i’m trying to say here