Hey dear Devs, just a basic question:
When exploiters use a flying hack they usually do?
BodyMovers?
MoverConstraints?
Just Anchor HRP and set position?
What other kinds of methods could they use?
Hey dear Devs, just a basic question:
When exploiters use a flying hack they usually do?
BodyMovers?
MoverConstraints?
Just Anchor HRP and set position?
What other kinds of methods could they use?
Alot of Admin Scripts are open source so you can just look at the source
Examples:
BodyGyro Fly:
function sFLY(vfly)
repeat wait() until Players.LocalPlayer and Players.LocalPlayer.Character and getRoot(Players.LocalPlayer.Character) and Players.LocalPlayer.Character:FindFirstChildOfClass("Humanoid")
repeat wait() until IYMouse
if flyKeyDown or flyKeyUp then flyKeyDown:Disconnect() flyKeyUp:Disconnect() end
local T = getRoot(Players.LocalPlayer.Character)
local CONTROL = {F = 0, B = 0, L = 0, R = 0, Q = 0, E = 0}
local lCONTROL = {F = 0, B = 0, L = 0, R = 0, Q = 0, E = 0}
local SPEED = 0
local function FLY()
FLYING = true
local BG = Instance.new('BodyGyro')
local BV = Instance.new('BodyVelocity')
BG.P = 9e4
BG.Parent = T
BV.Parent = T
BG.maxTorque = Vector3.new(9e9, 9e9, 9e9)
BG.cframe = T.CFrame
BV.velocity = Vector3.new(0, 0, 0)
BV.maxForce = Vector3.new(9e9, 9e9, 9e9)
task.spawn(function()
repeat wait()
if not vfly and Players.LocalPlayer.Character:FindFirstChildOfClass('Humanoid') then
Players.LocalPlayer.Character:FindFirstChildOfClass('Humanoid').PlatformStand = true
end
if CONTROL.L + CONTROL.R ~= 0 or CONTROL.F + CONTROL.B ~= 0 or CONTROL.Q + CONTROL.E ~= 0 then
SPEED = 50
elseif not (CONTROL.L + CONTROL.R ~= 0 or CONTROL.F + CONTROL.B ~= 0 or CONTROL.Q + CONTROL.E ~= 0) and SPEED ~= 0 then
SPEED = 0
end
if (CONTROL.L + CONTROL.R) ~= 0 or (CONTROL.F + CONTROL.B) ~= 0 or (CONTROL.Q + CONTROL.E) ~= 0 then
BV.velocity = ((workspace.CurrentCamera.CoordinateFrame.lookVector * (CONTROL.F + CONTROL.B)) + ((workspace.CurrentCamera.CoordinateFrame * CFrame.new(CONTROL.L + CONTROL.R, (CONTROL.F + CONTROL.B + CONTROL.Q + CONTROL.E) * 0.2, 0).p) - workspace.CurrentCamera.CoordinateFrame.p)) * SPEED
lCONTROL = {F = CONTROL.F, B = CONTROL.B, L = CONTROL.L, R = CONTROL.R}
elseif (CONTROL.L + CONTROL.R) == 0 and (CONTROL.F + CONTROL.B) == 0 and (CONTROL.Q + CONTROL.E) == 0 and SPEED ~= 0 then
BV.velocity = ((workspace.CurrentCamera.CoordinateFrame.lookVector * (lCONTROL.F + lCONTROL.B)) + ((workspace.CurrentCamera.CoordinateFrame * CFrame.new(lCONTROL.L + lCONTROL.R, (lCONTROL.F + lCONTROL.B + CONTROL.Q + CONTROL.E) * 0.2, 0).p) - workspace.CurrentCamera.CoordinateFrame.p)) * SPEED
else
BV.velocity = Vector3.new(0, 0, 0)
end
BG.cframe = workspace.CurrentCamera.CoordinateFrame
until not FLYING
CONTROL = {F = 0, B = 0, L = 0, R = 0, Q = 0, E = 0}
lCONTROL = {F = 0, B = 0, L = 0, R = 0, Q = 0, E = 0}
SPEED = 0
BG:Destroy()
BV:Destroy()
if Players.LocalPlayer.Character:FindFirstChildOfClass('Humanoid') then
Players.LocalPlayer.Character:FindFirstChildOfClass('Humanoid').PlatformStand = false
end
end)
end
flyKeyDown = IYMouse.KeyDown:Connect(function(KEY)
if KEY:lower() == 'w' then
CONTROL.F = (vfly and vehicleflyspeed or iyflyspeed)
elseif KEY:lower() == 's' then
CONTROL.B = - (vfly and vehicleflyspeed or iyflyspeed)
elseif KEY:lower() == 'a' then
CONTROL.L = - (vfly and vehicleflyspeed or iyflyspeed)
elseif KEY:lower() == 'd' then
CONTROL.R = (vfly and vehicleflyspeed or iyflyspeed)
elseif QEfly and KEY:lower() == 'e' then
CONTROL.Q = (vfly and vehicleflyspeed or iyflyspeed)*2
elseif QEfly and KEY:lower() == 'q' then
CONTROL.E = -(vfly and vehicleflyspeed or iyflyspeed)*2
end
pcall(function() workspace.CurrentCamera.CameraType = Enum.CameraType.Track end)
end)
flyKeyUp = IYMouse.KeyUp:Connect(function(KEY)
if KEY:lower() == 'w' then
CONTROL.F = 0
elseif KEY:lower() == 's' then
CONTROL.B = 0
elseif KEY:lower() == 'a' then
CONTROL.L = 0
elseif KEY:lower() == 'd' then
CONTROL.R = 0
elseif KEY:lower() == 'e' then
CONTROL.Q = 0
elseif KEY:lower() == 'q' then
CONTROL.E = 0
end
end)
FLY()
end
CFrame Fly:
addcmd('cframefly', {'cfly'}, function(args, speaker)
speaker.Character:FindFirstChildOfClass('Humanoid').PlatformStand = true
local Head = speaker.Character:WaitForChild("Head")
Head.Anchored = true
if CFloop then CFloop:Disconnect() end
CFloop = RunService.Heartbeat:Connect(function(deltaTime)
local moveDirection = speaker.Character:FindFirstChildOfClass('Humanoid').MoveDirection * (CFspeed * deltaTime)
local headCFrame = Head.CFrame
local cameraCFrame = workspace.CurrentCamera.CFrame
local cameraOffset = headCFrame:ToObjectSpace(cameraCFrame).Position
cameraCFrame = cameraCFrame * CFrame.new(-cameraOffset.X, -cameraOffset.Y, -cameraOffset.Z + 1)
local cameraPosition = cameraCFrame.Position
local headPosition = headCFrame.Position
local objectSpaceVelocity = CFrame.new(cameraPosition, Vector3.new(headPosition.X, cameraPosition.Y, headPosition.Z)):VectorToObjectSpace(moveDirection)
Head.CFrame = CFrame.new(headPosition) * (cameraCFrame - cameraPosition) * CFrame.new(objectSpaceVelocity)
end)
end)
they usually enable PlatformStand
They just set the CFrame of the humanoid root part each frame. They dont use BodyMovers or somthing like this. They also enable PlatformStand.