Run it
Copy the script and paste it into your executor.
Players = :()
RunService = :()
TweenService = :()
TeamsService = :()
UserInputService = :()
LocalPlayer = Players.LocalPlayer
Workspace =
DEFAULT_CFRAME_WALK_SPEED =
DEFAULT_BV_SPEED =
DEFAULT_PRED =
DEFAULT_LOOK_PRED =
DEFAULT_LOOKV2_PRED =
DEFAULT_ABOVE_TWEEN =
STUCK_TIME_THRESHOLD =
STUCK_MOVE_EPS =
COLLIDE_MIN_DIST =
selectedPlayer =
cframeWalkActive =
universalForwardActive =
universalWalkToPlayersActive =
flyActive =
universalAutoFly =
aboveActive =
universalAboveActive =
lookActive =
lookV2Active =
universalLook =
universalLookV2 =
uniCFrameMode =
uniFlyMode =
uniOffset =
uniMixWalkMode =
uniMixFlyMode =
bv, bg, ctrlRootPart = , ,
playerState = {}
lastMyPos, lastMovedAt = , ()
teamCheckEnabled =
teamSelected =
teamOnlyTarget =
lookAtNPCsBeta =
lookKey =
lookV2Key =
uniLookKey =
uniLookV2Key =
cwalkKey =
uniForwardKey =
uniToPlayersKey =
uniAutoFlyKey =
flyKey =
aboveKey =
uniAboveKey =
typingInTextBox =
(plr) (plr plr.Character) plr.Character
(plr)
ch = (plr)
ch
ch:() ch:()
ch:() ch:()
(plr)
ch = (plr)
ch
hum = ch:()
hum hum.Health hum.Health >
(plr, now)
part = (plr)
playerState[plr] playerState[plr] = {pos = , vel = .(,,), t = now}
st = playerState[plr]
part
st.pos = ; st.vel = .(,,); st.t = now
cur = part.Position
st.pos st.t
dt = .(, now - st.t)
st.vel = (cur - st.pos) / dt
st.vel = .(,,)
st.pos = cur
st.t = now
(plr, predSecs)
(plr) == plr:() plr:()
hrp = plr:() plr:() plr:()
hrp
st = playerState[plr]
st st.pos st.vel predSecs predSecs >
hrp.Position + st.vel * predSecs
hrp.Position
part = (plr)
part
st = playerState[plr]
st st.pos st.vel predSecs predSecs >
part.Position + st.vel * predSecs
part.Position
(pos)
pos
_,p (Players:())
p ~= LocalPlayer
pr = (p)
pr pr.Position (pos - pr.Position).Magnitude < COLLIDE_MIN_DIST
()
myChar = LocalPlayer.Character
myRoot = myChar (myChar:() myChar:() myChar:())
myRoot
best, bestDist = , .huge
_,p (Players:())
p ~= LocalPlayer (p)
teamOnlyTarget
teamSelected p.Team ~= teamSelected
pr = (p)
pr
d = (pr.Position - myRoot.Position).Magnitude
d < bestDist bestDist = d; best = p
teamCheckEnabled LocalPlayer.Team p.Team LocalPlayer.Team == p.Team
pr = (p)
pr
d = (pr.Position - myRoot.Position).Magnitude
d < bestDist bestDist = d; best = p
best
()
myChar = LocalPlayer.Character
myRoot = myChar (myChar:() myChar:() myChar:())
myRoot
best, bestDist = , .huge
_,obj (Workspace:())
obj:() obj:()
isPlayerChar =
_,pl (Players:())
pl.Character == obj isPlayerChar = ;
isPlayerChar
hrp = obj:() obj:() obj:()
hrp
d = (hrp.Position - myRoot.Position).Magnitude
d < bestDist bestDist = d; best = obj
best
()
char = LocalPlayer.Character
char
root = char:() char:() char:()
root
ctrlRootPart = root
bg bg.Parent
bg = .(); bg.Name = ; bg.P = ; bg.D =
bg.MaxTorque = .(,,); bg.CFrame = root.CFrame; bg.Parent = root
bv bv.Parent
bv = .(); bv.Name =
bv.MaxForce = .(,,); bv.Velocity = .(,,); bv.Parent = root
()
bv (() bv:() )
bg (() bg:() )
bv, bg, ctrlRootPart = , ,
(plr, mode, offset, forFly, predSecs)
plr
tgtPart =
(plr) == plr:() plr:()
tgtPart = plr:() plr:() plr:() plr:()
tgtPart = (plr)
tgtPart
predSecs = predSecs ((walkPredBox walkPredBox.Text (DEFAULT_PRED)) DEFAULT_PRED)
basePos = (plr, predSecs) (tgtPart.Position)
ok, tgtCFrame = (() (tgtPart.CFrame) )
look = ok tgtCFrame.LookVector .(,,)
offset = (offset )
mode == offset <=
forFly
basePos
hrp = LocalPlayer.Character (LocalPlayer.Character:() LocalPlayer.Character:() LocalPlayer.Character:())
hrp .(basePos.X, hrp.Position.Y, basePos.Z)
basePos
dir = .(look.X, (forFly look.Y ), look.Z)
dir.Magnitude < dir = .(,,)
desired
mode == desired = basePos - dir.Unit * offset
desired = basePos + dir.Unit * offset
toDesiredXZ = .(desired.X - basePos.X, , desired.Z - basePos.Z)
distXZ = toDesiredXZ.Magnitude
distXZ < offset -
fromMe = LocalPlayer.Character (LocalPlayer.Character:() LocalPlayer.Character:() LocalPlayer.Character:())
angleVec
fromMe
angleVec = .(fromMe.Position.X - basePos.X, , fromMe.Position.Z - basePos.Z)
angleVec.Magnitude < angleVec = .(,,)
angleVec = .(desired.X - basePos.X, , desired.Z - basePos.Z)
angleVec.Magnitude < angleVec = .(,,)
perimeterXZ = basePos + angleVec.Unit * offset
forFly
desired = .(perimeterXZ.X, desired.Y, perimeterXZ.Z)
hrp = LocalPlayer.Character (LocalPlayer.Character:() LocalPlayer.Character:() LocalPlayer.Character:())
y = hrp hrp.Position.Y basePos.Y
desired = .(perimeterXZ.X, y, perimeterXZ.Z)
(desired)
desired = desired + .(, , )
desired
(hrp, targetPos, stepDist)
(hrp hrp:()) targetPos
from = hrp.Position
dir = targetPos - from
dist = dir.Magnitude
dist <=
step = (stepDist) DEFAULT_CFRAME_WALK_SPEED
step <=
t = .(, step / dist)
newPos = from:(targetPos, t)
(targetPos - newPos).Magnitude <
offset = from - targetPos
offset.Magnitude < offset = .(,,)
offset = offset.Unit
newPos = targetPos + offset *
(newPos)
nearest, nd = , .huge
_,p (Players:())
p ~= LocalPlayer
pr = (p)
pr
d = (newPos - pr.Position).Magnitude
d < nd nd = d; nearest = pr
nearest
away = newPos - nearest.Position
away.Magnitude < away = .(,,)
newPos = nearest.Position + away.Unit * (COLLIDE_MIN_DIST + )
look = hrp.CFrame.LookVector
newCf = .(newPos, newPos + look)
(() hrp.CFrame = newCf )
(hrp, stepDist)
(hrp hrp:())
from = hrp.Position
horiz = .(hrp.CFrame.LookVector.X, , hrp.CFrame.LookVector.Z)
horiz.Magnitude <
step = (stepDist) DEFAULT_CFRAME_WALK_SPEED
step <=
newPos = from + horiz.Unit * step
(newPos) newPos = newPos + .(,,)
newCf = .(newPos, newPos + horiz.Unit)
(() hrp.CFrame = newCf )
(destPos, speed)
destPos
()
ctrlRootPart bg bv
myPos = ctrlRootPart.Position
to = destPos - myPos
dist = to.Magnitude
dist < bv.Velocity = .(,,)
dir = to.Unit
v = dir * ((speed) DEFAULT_BV_SPEED)
bv.Velocity = v
bg.CFrame = .(ctrlRootPart.Position, destPos)
(pos)
pos
ch = LocalPlayer.Character
hrp = ch (ch:() ch:() ch:())
hrp
myPos = hrp.Position
targetPos = .(pos.X, myPos.Y, pos.Z)
(() hrp.CFrame = .(myPos, targetPos) )
(pos, rollDeg)
pos
ch = LocalPlayer.Character
hrp = ch (ch:() ch:() ch:())
hrp
base = .(hrp.Position, pos)
roll = .(,,.((rollDeg) ))
(() hrp.CFrame = base * roll )
screenGui = .()
screenGui.Name =
screenGui.ResetOnSpawn =
screenGui.Parent = LocalPlayer:()
main = .(, screenGui)
main.Name =
main.Size = .(,,,)
main.Position = .(,,,)
main.BackgroundColor3 = .(,,)
main.BorderSizePixel =
main.Active =
header = .(, main)
header.Size = .(,,,)
header.BackgroundColor3 = .(,,)
title = .(, header)
title.Position = .(,,,)
title.Size = .(,-,,-)
title.BackgroundTransparency =
title.Text =
title.TextColor3 = .(,,)
title.Font = .Font.GothamBold
title.TextSize =
title.TextXAlignment = .TextXAlignment.Left
closeBtn = .(, header)
closeBtn.Size = .(,,,)
closeBtn.Position = .(,-,,-)
closeBtn.Text =
closeBtn.Font = .Font.Gotham
closeBtn.TextColor3 = .(,,)
closeBtn.BackgroundColor3 = .(,,)
closeBtn.BorderSizePixel =
tabBar = .(, main)
tabBar.Size = .(,-,,)
tabBar.Position = .(,,,)
tabBar.BackgroundTransparency =
t1 = .(, tabBar)
t1.Size = .(,-,,); t1.Position = .(,,,); t1.Text = ; t1.Font = .Font.Gotham; t1.TextSize = ; t1.BackgroundColor3 = .(,,)
t2 = .(, tabBar)
t2.Size = .(,-,,); t2.Position = .(,,,); t2.Text = ; t2.Font = .Font.Gotham; t2.TextSize = ; t2.BackgroundColor3 = .(,,)
t3 = .(, tabBar)
t3.Size = .(,-,,); t3.Position = .(,,,); t3.Text = ; t3.Font = .Font.Gotham; t3.TextSize = ; t3.BackgroundColor3 = .(,,)
pageMain = .(, main)
pageMain.Size = .(,-,,-); pageMain.Position = .(,,,); pageMain.BackgroundTransparency =
pageUni = .(, main)
pageUni.Size = pageMain.Size; pageUni.Position = pageMain.Position; pageUni.BackgroundTransparency = ; pageUni.Visible =
pageTeam = .(, main)
pageTeam.Size = pageMain.Size; pageTeam.Position = pageMain.Position; pageTeam.BackgroundTransparency = ; pageTeam.Visible =
listFrame = .(, pageMain)
listFrame.Size = .(,,,); listFrame.BackgroundColor3 = .(,,)
listTitle = .(, listFrame); listTitle.Size = .(,,,); listTitle.BackgroundTransparency = ; listTitle.Font = .Font.GothamBold; listTitle.TextSize = ; listTitle.TextColor3 = .(,,); listTitle.Text =
playerScroll = .(, listFrame)
playerScroll.Position = .(,,,); playerScroll.Size = .(,-,,-); playerScroll.BackgroundTransparency = ; playerScroll.ScrollBarThickness =
listLayout = .(, playerScroll); listLayout.Padding = .(,); listLayout.SortOrder = .SortOrder.LayoutOrder
ctrl = .(, pageMain)
ctrl.Size = .(,,,); ctrl.Position = .(,,,); ctrl.BackgroundTransparency =
selLabel = .(, ctrl)
selLabel.Position = .(,,,); selLabel.Size = .(,-,,); selLabel.BackgroundTransparency = ; selLabel.Font = .Font.Gotham; selLabel.TextSize = ; selLabel.TextColor3 = .(,,); selLabel.Text =
walkSpeedLbl = .(, ctrl)
walkSpeedLbl.Position = .(,,,); walkSpeedLbl.Size = .(,,,); walkSpeedLbl.BackgroundTransparency = ; walkSpeedLbl.Font = .Font.Gotham; walkSpeedLbl.Text =
walkSpeedBox = .(, ctrl); walkSpeedBox.Position = .(,,,); walkSpeedBox.Size = .(,,,); walkSpeedBox.Text = (DEFAULT_CFRAME_WALK_SPEED); walkSpeedBox.ClearTextOnFocus = ; walkSpeedBox.Font = .Font.Gotham
predLbl = .(, ctrl)
predLbl.Position = .(,,,); predLbl.Size = .(,,,); predLbl.BackgroundTransparency = ; predLbl.Font = .Font.Gotham; predLbl.Text =
walkPredBox = .(, ctrl); walkPredBox.Position = .(,,,); walkPredBox.Size = .(,,,); walkPredBox.Text = (DEFAULT_PRED); walkPredBox.ClearTextOnFocus = ; walkPredBox.Font = .Font.Gotham
lookPredLbl = .(, ctrl)
lookPredLbl.Position = .(,,,); lookPredLbl.Size = .(,,,); lookPredLbl.BackgroundTransparency = ; lookPredLbl.Font = .Font.Gotham; lookPredLbl.Text =
lookPredBox = .(, ctrl); lookPredBox.Position = .(,,,); lookPredBox.Size = .(,,,); lookPredBox.Text = (DEFAULT_LOOK_PRED); lookPredBox.ClearTextOnFocus = ; lookPredBox.Font = .Font.Gotham
lookV2PredLbl = .(, ctrl)
lookV2PredLbl.Position = .(,,,); lookV2PredLbl.Size = .(,,,); lookV2PredLbl.BackgroundTransparency = ; lookV2PredLbl.Font = .Font.Gotham; lookV2PredLbl.Text =
lookV2PredBox = .(, ctrl); lookV2PredBox.Position = .(,,,); lookV2PredBox.Size = .(,,,); lookV2PredBox.Text = (DEFAULT_LOOKV2_PRED); lookV2PredBox.ClearTextOnFocus = ; lookV2PredBox.Font = .Font.Gotham
cwalkBtn = .(, ctrl); cwalkBtn.Position = .(,,,); cwalkBtn.Size = .(,,,); cwalkBtn.Text = ; cwalkBtn.Font = .Font.Gotham; cwalkBtn.BackgroundColor3 = .(,,)
cwalkKeyBox = .(, ctrl)
cwalkKeyBox.Position = .(,,,)
cwalkKeyBox.Size = .(,,,)
cwalkKeyBox.Text =
cwalkKeyBox.PlaceholderText =
cwalkKeyBox.ClearTextOnFocus =
cwalkKeyBox.Font = .Font.Gotham
cwalkKeyBox.BackgroundTransparency =
flySpeedLbl = .(, ctrl); flySpeedLbl.Position = .(,,,); flySpeedLbl.Size = .(,,,); flySpeedLbl.BackgroundTransparency = ; flySpeedLbl.Font = .Font.Gotham; flySpeedLbl.Text =
flySpeedBox = .(, ctrl); flySpeedBox.Position = .(,,,); flySpeedBox.Size = .(,,,); flySpeedBox.Text = (DEFAULT_BV_SPEED); flySpeedBox.ClearTextOnFocus = ; flySpeedBox.Font = .Font.Gotham
flyPredLbl = .(, ctrl); flyPredLbl.Position = .(,,,); flyPredLbl.Size = .(,,,); flyPredLbl.BackgroundTransparency = ; flyPredLbl.Font = .Font.Gotham; flyPredLbl.Text =
flyPredBox = .(, ctrl); flyPredBox.Position = .(,,,); flyPredBox.Size = .(,,,); flyPredBox.Text = (DEFAULT_PRED); flyPredBox.ClearTextOnFocus = ; flyPredBox.Font = .Font.Gotham
flyBtn = .(, ctrl); flyBtn.Position = .(,,,); flyBtn.Size = .(,,,); flyBtn.Text = ; flyBtn.Font = .Font.Gotham; flyBtn.BackgroundColor3 = .(,,)
flyKeyBox = .(, ctrl)
flyKeyBox.Position = .(,,,)
flyKeyBox.Size = .(,,,)
flyKeyBox.Text =
flyKeyBox.PlaceholderText =
flyKeyBox.ClearTextOnFocus =
flyKeyBox.Font = .Font.Gotham
flyKeyBox.BackgroundTransparency =
aboveLbl = .(, ctrl); aboveLbl.Position = .(,,,); aboveLbl.Size = .(,,,); aboveLbl.BackgroundTransparency = ; aboveLbl.Font = .Font.Gotham; aboveLbl.Text =
aboveBox = .(, ctrl); aboveBox.Position = .(,,,); aboveBox.Size = .(,,,); aboveBox.Text = ; aboveBox.ClearTextOnFocus = ; aboveBox.Font = .Font.Gotham
aboveTweenLbl = .(, ctrl); aboveTweenLbl.Position = .(,,,); aboveTweenLbl.Size = .(,,,); aboveTweenLbl.BackgroundTransparency = ; aboveTweenLbl.Font = .Font.Gotham; aboveTweenLbl.Text =
aboveTweenBox = .(, ctrl); aboveTweenBox.Position = .(,,,); aboveTweenBox.Size = .(,,,); aboveTweenBox.Text = (DEFAULT_ABOVE_TWEEN); aboveTweenBox.ClearTextOnFocus = ; aboveTweenBox.Font = .Font.Gotham
aboveBtn = .(, ctrl); aboveBtn.Position = .(,,,); aboveBtn.Size = .(,,,); aboveBtn.Text = ; aboveBtn.Font = .Font.Gotham; aboveBtn.BackgroundColor3 = .(,,)
aboveKeyBox = .(, ctrl)
aboveKeyBox.Position = .(,,,)
aboveKeyBox.Size = .(,,,)
aboveKeyBox.Text =
aboveKeyBox.PlaceholderText =
aboveKeyBox.ClearTextOnFocus =
aboveKeyBox.Font = .Font.Gotham
aboveKeyBox.BackgroundTransparency =
lookBtn = .(, ctrl); lookBtn.Position = .(,,,); lookBtn.Size = .(,,,); lookBtn.Text = ; lookBtn.Font = .Font.Gotham
lookKeyBox = .(, ctrl); lookKeyBox.Position = .(,,,); lookKeyBox.Size = .(,,,); lookKeyBox.Text = ; lookKeyBox.PlaceholderText = ; lookKeyBox.ClearTextOnFocus = ; lookKeyBox.Font = .Font.Gotham; lookKeyBox.BackgroundTransparency =
lookV2Btn = .(, ctrl); lookV2Btn.Position = .(,,,); lookV2Btn.Size = .(,,,); lookV2Btn.Text = ; lookV2Btn.Font = .Font.Gotham
lookV2KeyBox = .(, ctrl); lookV2KeyBox.Position = .(,,,); lookV2KeyBox.Size = .(,,,); lookV2KeyBox.Text = ; lookV2KeyBox.PlaceholderText = ; lookV2KeyBox.ClearTextOnFocus = ; lookV2KeyBox.Font = .Font.Gotham; lookV2KeyBox.BackgroundTransparency =
uniTitle = .(, pageUni); uniTitle.Position = .(,,,); uniTitle.Size = .(,-,,); uniTitle.BackgroundTransparency = ; uniTitle.Font = .Font.GothamBold; uniTitle.Text =
uniForwardBtn = .(, pageUni); uniForwardBtn.Position = .(,,,); uniForwardBtn.Size = .(,,,); uniForwardBtn.Text = ; uniForwardBtn.Font = .Font.Gotham; uniForwardBtn.BackgroundColor3 = .(,,)
uniForwardKeyBox = .(, pageUni)
uniForwardKeyBox.Position = .(,,,)
uniForwardKeyBox.Size = .(,,,)
uniForwardKeyBox.Text =
uniForwardKeyBox.PlaceholderText =
uniForwardKeyBox.ClearTextOnFocus =
uniForwardKeyBox.Font = .Font.Gotham
uniForwardKeyBox.BackgroundTransparency =
uniToPlayersBtn = .(, pageUni); uniToPlayersBtn.Position = .(,,,); uniToPlayersBtn.Size = .(,,,); uniToPlayersBtn.Text = ; uniToPlayersBtn.Font = .Font.Gotham; uniToPlayersBtn.BackgroundColor3 = .(,,)
uniToPlayersKeyBox = .(, pageUni)
uniToPlayersKeyBox.Position = .(,,,)
uniToPlayersKeyBox.Size = .(,,,)
uniToPlayersKeyBox.Text =
uniToPlayersKeyBox.PlaceholderText =
uniToPlayersKeyBox.ClearTextOnFocus =
uniToPlayersKeyBox.Font = .Font.Gotham
uniToPlayersKeyBox.BackgroundTransparency =
uniAutoFlyBtn = .(, pageUni); uniAutoFlyBtn.Position = .(,,,); uniAutoFlyBtn.Size = .(,,,); uniAutoFlyBtn.Text = ; uniAutoFlyBtn.Font = .Font.Gotham; uniAutoFlyBtn.BackgroundColor3 = .(,,)
uniAutoFlyKeyBox = .(, pageUni)
uniAutoFlyKeyBox.Position = .(,,,)
uniAutoFlyKeyBox.Size = .(,,,)
uniAutoFlyKeyBox.Text =
uniAutoFlyKeyBox.PlaceholderText =
uniAutoFlyKeyBox.ClearTextOnFocus =
uniAutoFlyKeyBox.Font = .Font.Gotham
uniAutoFlyKeyBox.BackgroundTransparency =
uniAboveBtn = .(, pageUni)
uniAboveBtn.Position = .(,,,)
uniAboveBtn.Size = .(,,,)
uniAboveBtn.Text =
uniAboveBtn.Font = .Font.Gotham
uniAboveBtn.BackgroundColor3 = .(,,)
uniAboveKeyBox = .(, pageUni)
uniAboveKeyBox.Position = .(,,,)
uniAboveKeyBox.Size = .(,,,)
uniAboveKeyBox.Text =
uniAboveKeyBox.PlaceholderText =
uniAboveKeyBox.ClearTextOnFocus =
uniAboveKeyBox.Font = .Font.Gotham
uniAboveKeyBox.BackgroundTransparency =
cframeModeLabel = .(, pageUni); cframeModeLabel.Position = .(,,,); cframeModeLabel.Size = .(,,,); cframeModeLabel.BackgroundTransparency = ; cframeModeLabel.Font = .Font.GothamBold; cframeModeLabel.Text =
cNormalBtn = .(, pageUni); cNormalBtn.Position = .(,,,); cNormalBtn.Size = .(,,,); cNormalBtn.Text =
cBehindBtn = .(, pageUni); cBehindBtn.Position = .(,,,); cBehindBtn.Size = .(,,,); cBehindBtn.Text =
cFrontBtn = .(, pageUni); cFrontBtn.Position = .(,,,); cFrontBtn.Size = .(,,,); cFrontBtn.Text =
flyModeLabel = .(, pageUni); flyModeLabel.Position = .(,,,); flyModeLabel.Size = .(,,,); flyModeLabel.BackgroundTransparency = ; flyModeLabel.Font = .Font.GothamBold; flyModeLabel.Text =
fNormalBtn = .(, pageUni); fNormalBtn.Position = .(,,,); fNormalBtn.Size = .(,,,); fNormalBtn.Text =
fBehindBtn = .(, pageUni); fBehindBtn.Position = .(,,,); fBehindBtn.Size = .(,,,); fBehindBtn.Text =
fFrontBtn = .(, pageUni); fFrontBtn.Position = .(,,,); fFrontBtn.Size = .(,,,); fFrontBtn.Text =
mixWalkLabel = .(, pageUni); mixWalkLabel.Position = .(,,,); mixWalkLabel.Size = .(,,,); mixWalkLabel.BackgroundTransparency = ; mixWalkLabel.Font = .Font.GothamBold; mixWalkLabel.Text =
mWalkNormal = .(, pageUni); mWalkNormal.Position = .(,,,); mWalkNormal.Size = .(,,,); mWalkNormal.Text =
mWalkBehind = .(, pageUni); mWalkBehind.Position = .(,,,); mWalkBehind.Size = .(,,,); mWalkBehind.Text =
mWalkFront = .(, pageUni); mWalkFront.Position = .(,,,); mWalkFront.Size = .(,,,); mWalkFront.Text =
mixFlyLabel = .(, pageUni); mixFlyLabel.Position = .(,,,); mixFlyLabel.Size = .(,,,); mixFlyLabel.BackgroundTransparency = ; mixFlyLabel.Font = .Font.GothamBold; mixFlyLabel.Text =
mFlyNormal = .(, pageUni); mFlyNormal.Position = .(,,,); mFlyNormal.Size = .(,,,); mFlyNormal.Text =
mFlyBehind = .(, pageUni); mFlyBehind.Position = .(,,,); mFlyBehind.Size = .(,,,); mFlyBehind.Text =
mFlyFront = .(, pageUni); mFlyFront.Position = .(,,,); mFlyFront.Size = .(,,,); mFlyFront.Text =
offsetLbl = .(, pageUni); offsetLbl.Position = .(,,,); offsetLbl.Size = .(,,,); offsetLbl.BackgroundTransparency = ; offsetLbl.Font = .Font.Gotham; offsetLbl.Text =
offsetBox = .(, pageUni); offsetBox.Position = .(,,,); offsetBox.Size = .(,,,); offsetBox.Text = (uniOffset); offsetBox.ClearTextOnFocus = ; offsetBox.Font = .Font.Gotham
uniLookBtn = .(, pageUni); uniLookBtn.Position = .(,,,); uniLookBtn.Size = .(,,,); uniLookBtn.Text = ; uniLookBtn.Font = .Font.Gotham; uniLookBtn.BackgroundColor3 = .(,,)
uniLookV2Btn = .(, pageUni); uniLookV2Btn.Position = .(,,,); uniLookV2Btn.Size = .(,,,); uniLookV2Btn.Text = ; uniLookV2Btn.Font = .Font.Gotham; uniLookV2Btn.BackgroundColor3 = .(,,)
uniLookKeyBox = .(, pageUni); uniLookKeyBox.Position = .(,,,); uniLookKeyBox.Size = .(,,,); uniLookKeyBox.Text = ; uniLookKeyBox.PlaceholderText = ; uniLookKeyBox.ClearTextOnFocus = ; uniLookKeyBox.Font = .Font.Gotham; uniLookKeyBox.BackgroundTransparency =
uniLookV2KeyBox = .(, pageUni); uniLookV2KeyBox.Position = .(,,,); uniLookV2KeyBox.Size = .(,,,); uniLookV2KeyBox.Text = ; uniLookV2KeyBox.PlaceholderText = ; uniLookV2KeyBox.ClearTextOnFocus = ; uniLookV2KeyBox.Font = .Font.Gotham; uniLookV2KeyBox.BackgroundTransparency =
teamTitle = .(, pageTeam); teamTitle.Position = .(,,,); teamTitle.Size = .(,-,,); teamTitle.BackgroundTransparency = ; teamTitle.Font = .Font.GothamBold; teamTitle.Text =
teamCheckBtn = .(, pageTeam); teamCheckBtn.Position = .(,,,); teamCheckBtn.Size = .(,,,); teamCheckBtn.Text = ; teamCheckBtn.Font = .Font.Gotham; teamCheckBtn.BackgroundColor3 = .(,,)
teamFinderLbl = .(, pageTeam); teamFinderLbl.Position = .(,,,); teamFinderLbl.Size = .(,,,); teamFinderLbl.BackgroundTransparency = ; teamFinderLbl.Font = .Font.Gotham; teamFinderLbl.Text =
teamFinderBtn = .(, pageTeam); teamFinderBtn.Position = .(,,,); teamFinderBtn.Size = .(,,,); teamFinderBtn.Text = ; teamFinderBtn.Font = .Font.Gotham
teamTargetBtn = .(, pageTeam); teamTargetBtn.Position = .(,,,); teamTargetBtn.Size = .(,,,); teamTargetBtn.Text = ; teamTargetBtn.Font = .Font.Gotham; teamTargetBtn.BackgroundColor3 = .(,,)
npcBetaBtn = .(, pageTeam); npcBetaBtn.Position = .(,,,); npcBetaBtn.Size = .(,,,); npcBetaBtn.Text = ; npcBetaBtn.Font = .Font.Gotham; npcBetaBtn.BackgroundColor3 = .(,,)
removeAllBtn = .(, pageTeam)
removeAllBtn.Position = .(,,,)
removeAllBtn.Size = .(,,,)
removeAllBtn.Text =
removeAllBtn.Font = .Font.Gotham
removeAllBtn.BackgroundColor3 = .(,,)
keybindsPanelBtn = .(, pageTeam)
keybindsPanelBtn.Position = .(,,,)
keybindsPanelBtn.Size = .(,,,)
keybindsPanelBtn.Text =
keybindsPanelBtn.Font = .Font.Gotham
keybindsPanelBtn.BackgroundColor3 = .(,,)
playerRows = {}
(plr)
f = .()
f.Size = .(, -, , )
f.BackgroundColor3 = .(,,)
f.BorderSizePixel =
name = .(, f)
name.Size = .(, , , )
name.Position = .(,,,)
name.BackgroundTransparency =
name.Font = .Font.Gotham
name.TextSize =
name.Text = plr.Name
name.TextColor3 = .(,,)
name.TextXAlignment = .TextXAlignment.Left
btn = .(, f)
btn.Size = .(,,,)
btn.Position = .(, -, , -)
btn.Text =
btn.Font = .Font.Gotham
btn.BackgroundColor3 = .(,,)
btn.TextColor3 = .(,,)
{frame = f, name = name, btn = btn}
()
_,c (playerScroll:()) c:() c:()
playerRows = {}
_,p (Players:())
p ~= LocalPlayer
r = (p)
r.frame.Parent = playerScroll
r.btn.MouseButton1Click:(()
selectedPlayer = p
selLabel.Text = ..p.Name
_,v (playerRows) v.frame.BackgroundColor3 = .(,,)
r.frame.BackgroundColor3 = .(,,)
)
playerRows[p] = r
count =
_,c (playerScroll:()) c:() count = count +
playerScroll.CanvasSize = .(,,, count * + )
()
Players.PlayerAdded:(refreshPlayers)
Players.PlayerRemoving:(refreshPlayers)
(s)
t = (s ):(, ):()
t
UserInputService.InputBegan:((input, gameProcessed)
gameProcessed
typingInTextBox
input.UserInputType == .UserInputType.Keyboard
keyName = input.KeyCode.Name:()
lookKey ~= keyName == lookKey
lookActive = lookActive
lookBtn.Text = lookActive
lookActive
universalLook = ; uniLookBtn.Text =
lookV2Active = ; lookV2Btn.Text =
lookV2Key ~= keyName == lookV2Key
lookV2Active = lookV2Active
lookV2Btn.Text = lookV2Active
lookV2Active
universalLookV2 = ; uniLookV2Btn.Text =
lookActive = ; lookBtn.Text =
uniLookKey ~= keyName == uniLookKey
universalLook = universalLook
uniLookBtn.Text = universalLook
universalLook lookActive = ; lookBtn.Text = ; universalLookV2 = ; uniLookV2Btn.Text =
uniLookV2Key ~= keyName == uniLookV2Key
universalLookV2 = universalLookV2
uniLookV2Btn.Text = universalLookV2
universalLookV2 lookV2Active = ; lookV2Btn.Text = ; universalLook = ; uniLookBtn.Text =
cwalkKey ~= keyName == cwalkKey
cframeWalkActive = cframeWalkActive
cwalkBtn.Text = cframeWalkActive
cwalkBtn.BackgroundColor3 = cframeWalkActive .(,,) .(,,)
cframeWalkActive
universalForwardActive = ; uniForwardBtn.Text = ; uniForwardBtn.BackgroundColor3 = .(,,)
universalWalkToPlayersActive = ; uniToPlayersBtn.Text = ; uniToPlayersBtn.BackgroundColor3 = .(,,)
universalAutoFly = ; uniAutoFlyBtn.Text = ; uniAutoFlyBtn.BackgroundColor3 = .(,,)
flyActive = ; flyBtn.Text = ; flyBtn.BackgroundColor3 = .(,,)
()
uniForwardKey ~= keyName == uniForwardKey
universalForwardActive = universalForwardActive
uniForwardBtn.Text = universalForwardActive
uniForwardBtn.BackgroundColor3 = universalForwardActive .(,,) .(,,)
universalForwardActive
cframeWalkActive = ; cwalkBtn.Text = ; cwalkBtn.BackgroundColor3 = .(,,)
universalAutoFly flyActive ()
uniToPlayersKey ~= keyName == uniToPlayersKey
universalWalkToPlayersActive = universalWalkToPlayersActive
uniToPlayersBtn.Text = universalWalkToPlayersActive
uniToPlayersBtn.BackgroundColor3 = universalWalkToPlayersActive .(,,) .(,,)
universalWalkToPlayersActive
cframeWalkActive = ; cwalkBtn.Text = ; cwalkBtn.BackgroundColor3 = .(,,)
universalForwardActive = ; uniForwardBtn.Text = ; uniForwardBtn.BackgroundColor3 = .(,,)
universalAutoFly flyActive ()
uniAutoFlyKey ~= keyName == uniAutoFlyKey
universalAutoFly = universalAutoFly
uniAutoFlyBtn.Text = universalAutoFly
uniAutoFlyBtn.BackgroundColor3 = universalAutoFly .(,,) .(,,)
universalAutoFly
()
universalForwardActive = ; uniForwardBtn.Text = ; uniForwardBtn.BackgroundColor3 = .(,,)
universalWalkToPlayersActive = ; uniToPlayersBtn.Text = ; uniToPlayersBtn.BackgroundColor3 = .(,,)
flyActive aboveActive universalAboveActive ()
flyKey ~= keyName == flyKey
flyActive = flyActive
flyBtn.Text = flyActive
flyBtn.BackgroundColor3 = flyActive .(,,) .(,,)
flyActive
()
cframeWalkActive = ; cwalkBtn.Text = ; cwalkBtn.BackgroundColor3 = .(,,)
universalForwardActive = ; uniForwardBtn.Text = ; uniForwardBtn.BackgroundColor3 = .(,,)
universalWalkToPlayersActive = ; uniToPlayersBtn.Text = ; uniToPlayersBtn.BackgroundColor3 = .(,,)
universalAutoFly aboveActive universalAboveActive ()
aboveKey ~= keyName == aboveKey
aboveActive = aboveActive
aboveBtn.Text = aboveActive
aboveBtn.BackgroundColor3 = aboveActive .(,,) .(,,)
aboveActive
cframeWalkActive = ; cwalkBtn.Text = ; cwalkBtn.BackgroundColor3 = .(,,)
universalForwardActive = ; uniForwardBtn.Text = ; uniForwardBtn.BackgroundColor3 = .(,,)
universalWalkToPlayersActive = ; uniToPlayersBtn.Text = ; uniToPlayersBtn.BackgroundColor3 = .(,,)
flyActive = ; flyBtn.Text = ; flyBtn.BackgroundColor3 = .(,,)
universalAutoFly = ; uniAutoFlyBtn.Text = ; uniAutoFlyBtn.BackgroundColor3 = .(,,)
uniAboveKey ~= keyName == uniAboveKey
universalAboveActive = universalAboveActive
uniAboveBtn.Text = universalAboveActive
uniAboveBtn.BackgroundColor3 = universalAboveActive .(,,) .(,,)
universalAboveActive
cframeWalkActive = ; cwalkBtn.Text = ; cwalkBtn.BackgroundColor3 = .(,,)
universalForwardActive = ; uniForwardBtn.Text = ; uniForwardBtn.BackgroundColor3 = .(,,)
universalWalkToPlayersActive = ; uniToPlayersBtn.Text = ; uniToPlayersBtn.BackgroundColor3 = .(,,)
flyActive = ; flyBtn.Text = ; flyBtn.BackgroundColor3 = .(,,)
universalAutoFly = ; uniAutoFlyBtn.Text = ; uniAutoFlyBtn.BackgroundColor3 = .(,,)
aboveActive = ; aboveBtn.Text = ; aboveBtn.BackgroundColor3 = .(,,)
)
(tb)
tb tb:()
tb.Focused:(() typingInTextBox = )
tb.FocusLost:(() typingInTextBox = )
allTextBoxes = {
walkSpeedBox, walkPredBox, lookPredBox, lookV2PredBox,
flySpeedBox, flyPredBox, aboveBox, aboveTweenBox, offsetBox,
lookKeyBox, lookV2KeyBox, uniLookKeyBox, uniLookV2KeyBox,
cwalkKeyBox, uniForwardKeyBox, uniToPlayersKeyBox, uniAutoFlyKeyBox,
flyKeyBox, aboveKeyBox, uniAboveKeyBox
}
_,tb (allTextBoxes)
(tb)
lookKeyBox.FocusLost:(()
k = (lookKeyBox.Text)
lookKey = k
lookKeyBox.Text = k
)
lookV2KeyBox.FocusLost:(()
k = (lookV2KeyBox.Text)
lookV2Key = k
lookV2KeyBox.Text = k
)
uniLookKeyBox.FocusLost:(()
k = (uniLookKeyBox.Text)
uniLookKey = k
uniLookKeyBox.Text = k
)
uniLookV2KeyBox.FocusLost:(()
k = (uniLookV2KeyBox.Text)
uniLookV2Key = k
uniLookV2KeyBox.Text = k
)
cwalkKeyBox.FocusLost:(()
k = (cwalkKeyBox.Text)
cwalkKey = k
cwalkKeyBox.Text = k
)
uniForwardKeyBox.FocusLost:(()
k = (uniForwardKeyBox.Text)
uniForwardKey = k
uniForwardKeyBox.Text = k
)
uniToPlayersKeyBox.FocusLost:(()
k = (uniToPlayersKeyBox.Text)
uniToPlayersKey = k
uniToPlayersKeyBox.Text = k
)
uniAutoFlyKeyBox.FocusLost:(()
k = (uniAutoFlyKeyBox.Text)
uniAutoFlyKey = k
uniAutoFlyKeyBox.Text = k
)
flyKeyBox.FocusLost:(()
k = (flyKeyBox.Text)
flyKey = k
flyKeyBox.Text = k
)
aboveKeyBox.FocusLost:(()
k = (aboveKeyBox.Text)
aboveKey = k
aboveKeyBox.Text = k
)
uniAboveKeyBox.FocusLost:(()
k = (uniAboveKeyBox.Text)
uniAboveKey = k
uniAboveKeyBox.Text = k
)
teamsList = TeamsService:()
teamIndex =
()
teamSelected teamFinderBtn.Text = (teamSelected.Name ) teamFinderBtn.Text =
teamFinderBtn.MouseButton1Click:(()
#teamsList == teamsList = TeamsService:()
#teamsList == teamSelected = ; ();
teamIndex = ((teamIndex) % #teamsList) +
teamSelected = teamsList[teamIndex]
()
)
teamCheckBtn.MouseButton1Click:(()
teamCheckEnabled = teamCheckEnabled
teamCheckBtn.Text = .. (teamCheckEnabled )
teamCheckBtn.BackgroundColor3 = teamCheckEnabled .(,,) .(,,)
)
teamTargetBtn.MouseButton1Click:(()
teamOnlyTarget = teamOnlyTarget
teamTargetBtn.Text = .. (teamOnlyTarget )
teamTargetBtn.BackgroundColor3 = teamOnlyTarget .(,,) .(,,)
)
npcBetaBtn.MouseButton1Click:(()
lookAtNPCsBeta = lookAtNPCsBeta
npcBetaBtn.Text = .. (lookAtNPCsBeta )
npcBetaBtn.BackgroundColor3 = lookAtNPCsBeta .(,,) .(,,)
)
walkSpeedBox.FocusLost:(() v = (walkSpeedBox.Text) DEFAULT_CFRAME_WALK_SPEED; walkSpeedBox.Text = (.(, v)) )
walkPredBox.FocusLost:(() v = (walkPredBox.Text) DEFAULT_PRED; walkPredBox.Text = (.(, v)) )
lookPredBox.FocusLost:(() v = (lookPredBox.Text) DEFAULT_LOOK_PRED; lookPredBox.Text = (.(, v)) )
lookV2PredBox.FocusLost:(() v = (lookV2PredBox.Text) DEFAULT_LOOKV2_PRED; lookV2PredBox.Text = (.(, v)) )
flySpeedBox.FocusLost:(() v = (flySpeedBox.Text) DEFAULT_BV_SPEED; flySpeedBox.Text = (.(, v)) )
flyPredBox.FocusLost:(() v = (flyPredBox.Text) DEFAULT_PRED; flyPredBox.Text = (.(, v)) )
aboveBox.FocusLost:(() aboveBox.Text = (.(, (aboveBox.Text) )) )
aboveTweenBox.FocusLost:(() aboveTweenBox.Text = (.(, (aboveTweenBox.Text) DEFAULT_ABOVE_TWEEN)) )
offsetBox.FocusLost:(() uniOffset = .(, (offsetBox.Text) uniOffset); offsetBox.Text = (uniOffset) )
cwalkBtn.MouseButton1Click:(()
cframeWalkActive = cframeWalkActive
cwalkBtn.Text = cframeWalkActive
cwalkBtn.BackgroundColor3 = cframeWalkActive .(,,) .(,,)
cframeWalkActive
universalForwardActive = ; uniForwardBtn.Text = ; uniForwardBtn.BackgroundColor3 = .(,,)
universalAutoFly flyActive ()
)
uniForwardBtn.MouseButton1Click:(()
universalForwardActive = universalForwardActive
uniForwardBtn.Text = universalForwardActive
uniForwardBtn.BackgroundColor3 = universalForwardActive .(,,) .(,,)
universalForwardActive
cframeWalkActive = ; cwalkBtn.Text = ; cwalkBtn.BackgroundColor3 = .(,,)
universalAutoFly flyActive ()
)
uniToPlayersBtn.MouseButton1Click:(()
universalWalkToPlayersActive = universalWalkToPlayersActive
uniToPlayersBtn.Text = universalWalkToPlayersActive
uniToPlayersBtn.BackgroundColor3 = universalWalkToPlayersActive .(,,) .(,,)
universalWalkToPlayersActive
cframeWalkActive = ; cwalkBtn.Text = ; cwalkBtn.BackgroundColor3 = .(,,)
universalForwardActive = ; uniForwardBtn.Text = ; uniForwardBtn.BackgroundColor3 = .(,,)
universalAutoFly flyActive ()
)
uniAutoFlyBtn.MouseButton1Click:(()
universalAutoFly = universalAutoFly
uniAutoFlyBtn.Text = universalAutoFly
uniAutoFlyBtn.BackgroundColor3 = universalAutoFly .(,,) .(,,)
universalAutoFly
()
universalForwardActive = ; uniForwardBtn.Text = ; uniForwardBtn.BackgroundColor3 = .(,,)
universalWalkToPlayersActive = ; uniToPlayersBtn.Text = ; uniToPlayersBtn.BackgroundColor3 = .(,,)
flyActive aboveActive universalAboveActive ()
)
flyBtn.MouseButton1Click:(()
flyActive = flyActive
flyBtn.Text = flyActive
flyBtn.BackgroundColor3 = flyActive .(,,) .(,,)
flyActive
()
cframeWalkActive = ; cwalkBtn.Text = ; cwalkBtn.BackgroundColor3 = .(,,)
universalForwardActive = ; uniForwardBtn.Text = ; uniForwardBtn.BackgroundColor3 = .(,,)
universalWalkToPlayersActive = ; uniToPlayersBtn.Text = ; uniToPlayersBtn.BackgroundColor3 = .(,,)
universalAutoFly aboveActive universalAboveActive ()
)
aboveThread =
aboveBtn.MouseButton1Click:(()
aboveActive = aboveActive
aboveBtn.Text = aboveActive
aboveBtn.BackgroundColor3 = aboveActive .(,,) .(,,)
aboveActive
cframeWalkActive = ; cwalkBtn.Text = ; cwalkBtn.BackgroundColor3 = .(,,)
universalForwardActive = ; uniForwardBtn.Text = ; uniForwardBtn.BackgroundColor3 = .(,,)
universalWalkToPlayersActive = ; uniToPlayersBtn.Text = ; uniToPlayersBtn.BackgroundColor3 = .(,,)
flyActive = ; flyBtn.Text = ; flyBtn.BackgroundColor3 = .(,,)
universalAutoFly = ; uniAutoFlyBtn.Text = ; uniAutoFlyBtn.BackgroundColor3 = .(,,)
aboveThread aboveThread =
aboveThread = .(()
aboveActive screenGui.Parent
selectedPlayer (selectedPlayer)
teamOnlyTarget teamSelected selectedPlayer.Team ~= teamSelected
.()
teamCheckEnabled LocalPlayer.Team selectedPlayer.Team LocalPlayer.Team == selectedPlayer.Team
.()
tgt = (selectedPlayer)
tgt
height = (aboveBox.Text)
tweenTime = (aboveTweenBox.Text) DEFAULT_ABOVE_TWEEN
tweenTime = .(, tweenTime)
abovePos = .(tgt.Position.X, tgt.Position.Y + height, tgt.Position.Z)
desiredCFrame = .(abovePos, tgt.Position)
char = LocalPlayer.Character
hrp = char (char:() char:() char:())
hrp
ok, tw = (()
TweenService:(hrp, TweenInfo.(tweenTime, .EasingStyle.Linear, .EasingDirection.Out), { = desiredCFrame})
)
ok tw
tw:()
waited =
waited < tweenTime tw.PlaybackState == .PlaybackState.Playing aboveActive
.(.(, tweenTime))
waited = waited +
(() hrp.CFrame = desiredCFrame end)
else
pcall(function() hrp.CFrame = desiredCFrame end)
task.wait(0.05)
end
end
else
task.wait(0.12)
end
else
task.wait(0.15)
end
end
end)
else
aboveThread = nil
end
end)
-- Universal Above (nearest) logic (tween) using getNearestAlivePlayerToMe (team-aware)
local uniAboveThread = nil
uniAboveBtn.MouseButton1Click:Connect(function()
universalAboveActive = not universalAboveActive
uniAboveBtn.Text = universalAboveActive and "Universal Above (nearest): ON" or "Universal Above (nearest): OFF"
uniAboveBtn.BackgroundColor3 = universalAboveActive and Color3.fromRGB(160,60,60) or Color3.fromRGB(90,90,90)
if universalAboveActive then
-- disable conflicting toggles
cframeWalkActive = false; cwalkBtn.Text = "CFrame Walk (to selected): OFF"; cwalkBtn.BackgroundColor3 = Color3.fromRGB(90,90,90)
universalForwardActive = false; uniForwardBtn.Text = "Universal Forward CFrame-Walk (HRP facing): OFF"; uniForwardBtn.BackgroundColor3 = Color3.fromRGB(90,90,90)
universalWalkToPlayersActive = false; uniToPlayersBtn.Text = "Universal Walk-To-Nearest Player: OFF"; uniToPlayersBtn.BackgroundColor3 = Color3.fromRGB(90,90,90)
flyActive = false; flyBtn.Text = "Fly (BV to selected): OFF"; flyBtn.BackgroundColor3 = Color3.fromRGB(90,90,90)
universalAutoFly = false; uniAutoFlyBtn.Text = "Universal AutoFly (BV to nearest): OFF"; uniAutoFlyBtn.BackgroundColor3 = Color3.fromRGB(90,90,90)
aboveActive = false; aboveBtn.Text = "Above: OFF"; aboveBtn.BackgroundColor3 = Color3.fromRGB(90,90,90)
if uniAboveThread then uniAboveThread = nil end
uniAboveThread = task.spawn(function()
while universalAboveActive and screenGui.Parent do
local targetCandidate = nil
if lookAtNPCsBeta then
targetCandidate = getNearestNPCToMe()
else
targetCandidate = getNearestAlivePlayerToMe() -- already respects team settings
end
if targetCandidate then
local tgtPart = nil
if typeof(targetCandidate) == "Instance" and targetCandidate:IsA("Model") and targetCandidate:FindFirstChildOfClass("Humanoid") then
tgtPart = targetCandidate:FindFirstChild("HumanoidRootPart") or targetCandidate:FindFirstChild("UpperTorso") or targetCandidate:FindFirstChild("Torso")
else
tgtPart = bestPart(targetCandidate)
end
if tgtPart then
local height = tonumber(aboveBox.Text) or 8
local tweenTime = tonumber(aboveTweenBox.Text) or DEFAULT_ABOVE_TWEEN
tweenTime = math.max(1e-4, tweenTime)
local abovePos = Vector3.new(tgtPart.Position.X, tgtPart.Position.Y + height, tgtPart.Position.Z)
local desiredCFrame = CFrame.new(abovePos, tgtPart.Position)
local char = LocalPlayer.Character
local hrp = char and (char:FindFirstChild("HumanoidRootPart") or char:FindFirstChild("UpperTorso") or char:FindFirstChild("Torso"))
if hrp then
local ok, tw = pcall(function()
return TweenService:Create(hrp, TweenInfo.new(tweenTime, Enum.EasingStyle.Linear, Enum.EasingDirection.Out), {CFrame = desiredCFrame})
end)
if ok and tw then
tw:Play()
local waited = 0
while waited < tweenTime and tw.PlaybackState == Enum.PlaybackState.Playing and universalAboveActive do
task.wait(math.min(0.03, tweenTime))
waited = waited + 0.03
end
pcall(function() hrp.CFrame = desiredCFrame end)
else
pcall(function() hrp.CFrame = desiredCFrame end)
task.wait(0.05)
end
end
else
task.wait(0.12)
end
else
task.wait(0.15)
end
end
end)
else
uniAboveThread = nil
end
end)
-- Look toggles (main)
lookBtn.MouseButton1Click:Connect(function()
lookActive = not lookActive
lookBtn.Text = lookActive and "LookAt (XY): ON" or "LookAt (XY): OFF"
lookBtn.BackgroundColor3 = lookActive and Color3.fromRGB(160,60,60) or Color3.fromRGB(90,90,90)
if lookActive then
universalLook = false; uniLookBtn.Text = "Universal LookAt (nearest) : OFF"
lookV2Active = false; lookV2Btn.Text = "LookAtV2 (XYZ+Roll): OFF"
end
end)
lookV2Btn.MouseButton1Click:Connect(function()
lookV2Active = not lookV2Active
lookV2Btn.Text = lookV2Active and "LookAtV2 (XYZ+Roll): ON" or "LookAtV2 (XYZ+Roll): OFF"
lookV2Btn.BackgroundColor3 = lookV2Active and Color3.fromRGB(160,60,60) or Color3.fromRGB(90,90,90)
if lookV2Active then
universalLookV2 = false; uniLookV2Btn.Text = "Universal LookAtV2 (nearest): OFF"
lookActive = false; lookBtn.Text = "LookAt (XY): OFF"
end
end)
-- Universal look toggles
uniLookBtn.MouseButton1Click:Connect(function()
universalLook = not universalLook
uniLookBtn.Text = universalLook and "Universal LookAt (nearest) : ON" or "Universal LookAt (nearest) : OFF"
uniLookBtn.BackgroundColor3 = universalLook and Color3.fromRGB(160,60,60) or Color3.fromRGB(90,90,90)
if universalLook then
lookActive = false; lookBtn.Text = "LookAt (XY): OFF"
universalLookV2 = false; uniLookV2Btn.Text = "Universal LookAtV2 (nearest): OFF"
end
end)
uniLookV2Btn.MouseButton1Click:Connect(function()
universalLookV2 = not universalLookV2
uniLookV2Btn.Text = universalLookV2 and "Universal LookAtV2 (nearest): ON" or "Universal LookAtV2 (nearest): OFF"
uniLookV2Btn.BackgroundColor3 = universalLookV2 and Color3.fromRGB(160,60,60) or Color3.fromRGB(90,90,90)
if universalLookV2 then
lookV2Active = false; lookV2Btn.Text = "LookAtV2 (XYZ+Roll): OFF"
universalLook = false; uniLookBtn.Text = "Universal LookAt (nearest) : OFF"
end
end)
-- Combat and mix UI handlers (same as v13)
local function updateCFrameModeUI() cNormalBtn.BackgroundColor3 = (uniCFrameMode == "Normal") and Color3.fromRGB(160,160,160) or Color3.fromRGB(70,70,70); cBehindBtn.BackgroundColor3 = (uniCFrameMode == "Behind") and Color3.fromRGB(160,160,160) or Color3.fromRGB(70,70,70); cFrontBtn.BackgroundColor3 = (uniCFrameMode == "Front") and Color3.fromRGB(160,160,160) or Color3.fromRGB(70,70,70) end
cNormalBtn.MouseButton1Click:Connect(function() uniCFrameMode = "Normal"; updateCFrameModeUI() end)
cBehindBtn.MouseButton1Click:Connect(function() uniCFrameMode = "Behind"; updateCFrameModeUI() end)
cFrontBtn.MouseButton1Click:Connect(function() uniCFrameMode = "Front"; updateCFrameModeUI() end)
updateCFrameModeUI()
local function updateFlyModeUI() fNormalBtn.BackgroundColor3 = (uniFlyMode == "Normal") and Color3.fromRGB(160,160,160) or Color3.fromRGB(70,70,70); fBehindBtn.BackgroundColor3 = (uniFlyMode == "Behind") and Color3.fromRGB(160,160,160) or Color3.fromRGB(70,70,70); fFrontBtn.BackgroundColor3 = (uniFlyMode == "Front") and Color3.fromRGB(160,160,160) or Color3.fromRGB(70,70,70) end
fNormalBtn.MouseButton1Click:Connect(function() uniFlyMode = "Normal"; updateFlyModeUI() end)
fBehindBtn.MouseButton1Click:Connect(function() uniFlyMode = "Behind"; updateFlyModeUI() end)
fFrontBtn.MouseButton1Click:Connect(function() uniFlyMode = "Front"; updateFlyModeUI() end)
updateFlyModeUI()
local function updateMixWalkUI() mWalkNormal.BackgroundColor3 = (uniMixWalkMode == "Normal") and Color3.fromRGB(160,160,160) or Color3.fromRGB(70,70,70); mWalkBehind.BackgroundColor3 = (uniMixWalkMode == "Behind") and Color3.fromRGB(160,160,160) or Color3.fromRGB(70,70,70); mWalkFront.BackgroundColor3 = (uniMixWalkMode == "Front") and Color3.fromRGB(160,160,160) or Color3.fromRGB(70,70,70) end
mWalkNormal.MouseButton1Click:Connect(function() uniMixWalkMode = "Normal"; updateMixWalkUI() end)
mWalkBehind.MouseButton1Click:Connect(function() uniMixWalkMode = "Behind"; updateMixWalkUI() end)
mWalkFront.MouseButton1Click:Connect(function() uniMixWalkMode = "Front"; updateMixWalkUI() end)
updateMixWalkUI()
local function updateMixFlyUI() mFlyNormal.BackgroundColor3 = (uniMixFlyMode == "Normal") and Color3.fromRGB(160,160,160) or Color3.fromRGB(70,70,70); mFlyBehind.BackgroundColor3 = (uniMixFlyMode == "Behind") and Color3.fromRGB(160,160,160) or Color3.fromRGB(70,70,70); mFlyFront.BackgroundColor3 = (uniMixFlyMode == "Front") and Color3.fromRGB(160,160,160) or Color3.fromRGB(70,70,70) end
mFlyNormal.MouseButton1Click:Connect(function() uniMixFlyMode = "Normal"; updateMixFlyUI() end)
mFlyBehind.MouseButton1Click:Connect(function() uniMixFlyMode = "Behind"; updateMixFlyUI() end)
mFlyFront.MouseButton1Click:Connect(function() uniMixFlyMode = "Front"; updateMixFlyUI() end)
updateMixFlyUI()
-- Tabs switching
t1.MouseButton1Click:Connect(function() pageMain.Visible = true; pageUni.Visible = false; pageTeam.Visible = false; t1.BackgroundColor3 = Color3.fromRGB(60,60,60); t2.BackgroundColor3 = Color3.fromRGB(36,36,40); t3.BackgroundColor3 = Color3.fromRGB(36,36,40) end)
t2.MouseButton1Click:Connect(function() pageMain.Visible = false; pageUni.Visible = true; pageTeam.Visible = false; t2.BackgroundColor3 = Color3.fromRGB(60,60,60); t1.BackgroundColor3 = Color3.fromRGB(36,36,40); t3.BackgroundColor3 = Color3.fromRGB(36,36,40) end)
t3.MouseButton1Click:Connect(function() pageMain.Visible = false; pageUni.Visible = false; pageTeam.Visible = true; t3.BackgroundColor3 = Color3.fromRGB(60,60,60); t1.BackgroundColor3 = Color3.fromRGB(36,36,40); t2.BackgroundColor3 = Color3.fromRGB(36,36,40) end)
-- Close and drag
closeBtn.MouseButton1Click:Connect(function()
cframeWalkActive = false; universalForwardActive = false; universalWalkToPlayersActive = false; universalAutoFly = false; flyActive = false; aboveActive = false; universalAboveActive = false; universalLook = false; universalLookV2 = false
removeControllers()
screenGui:Destroy()
end)
do
local dragging, dragStart, startPos = false, nil, nil
header.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
dragging = true; dragStart = input.Position; startPos = main.Position
input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false end end)
end
end)
header.InputChanged:Connect(function(input)
if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then
local delta = input.Position - dragStart
main.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
end
end)
end
-- ===== Keybinds Panel (draggable, shows current binds and Clear All) =====
local keyPanel = Instance.new("Frame", screenGui)
keyPanel.Name = "KeybindsPanel"
keyPanel.Size = UDim2.new(0,300,0,260)
keyPanel.Position = UDim2.new(0.7, 0, 0.08, 0)
keyPanel.BackgroundColor3 = Color3.fromRGB(26,26,28)
keyPanel.Visible = false
keyPanel.BorderSizePixel = 0
local kpHeader = Instance.new("Frame", keyPanel)
kpHeader.Size = UDim2.new(1,0,0,28); kpHeader.Position = UDim2.new(0,0,0,0); kpHeader.BackgroundColor3 = Color3.fromRGB(34,34,36)
local kpTitle = Instance.new("TextLabel", kpHeader); kpTitle.Size = UDim2.new(1,-8,1,0); kpTitle.Position = UDim2.new(0,4,0,0); kpTitle.BackgroundTransparency = 1; kpTitle.Font = Enum.Font.GothamBold; kpTitle.TextSize = 14; kpTitle.Text = "Keybinds Panel"; kpTitle.TextColor3 = Color3.fromRGB(230,230,230); kpTitle.TextXAlignment = Enum.TextXAlignment.Left
local kpClose = Instance.new("TextButton", kpHeader); kpClose.Size = UDim2.new(0,24,0,20); kpClose.Position = UDim2.new(1,-28,0,4); kpClose.Text = "X"; kpClose.Font = Enum.Font.Gotham; kpClose.BackgroundColor3 = Color3.fromRGB(160,46,46)
kpClose.MouseButton1Click:Connect(function() keyPanel.Visible = false end)
-- labels inside panel
local function makeKPLabel(y, text)
local lbl = Instance.new("TextLabel", keyPanel)
lbl.Position = UDim2.new(0,8,0,y)
lbl.Size = UDim2.new(1,-16,0,22)
lbl.BackgroundTransparency = 1
lbl.Font = Enum.Font.Gotham
lbl.TextSize = 14
lbl.TextColor3 = Color3.fromRGB(220,220,220)
lbl.Text = text
return lbl
end
local kpLook = makeKPLabel(0.12, "LookAt (main): ")
local kpLookV2 = makeKPLabel(0.20, "LookAtV2 (main): ")
local kpUniLook = makeKPLabel(0.28, "Universal Look: ")
local kpUniLookV2 = makeKPLabel(0.36, "Universal Look V2: ")
local kpCWalk = makeKPLabel(0.44, "CFrame Walk (main): ")
local kpUniForward = makeKPLabel(0.52, "Universal Forward: ")
local kpUniToPlayers = makeKPLabel(0.60, "Universal Walk-To-Nearest: ")
local kpUniAutoFly = makeKPLabel(0.68, "Universal AutoFly: ")
local kpFly = makeKPLabel(0.76, "Fly (selected): ")
local kpAbove = makeKPLabel(0.84, "Above (selected): ")
local kpUniAbove = makeKPLabel(0.92, "Universal Above: ")
local kpClear = Instance.new("TextButton", keyPanel)
kpClear.Position = UDim2.new(0.1,0,0.9,0)
kpClear.Size = UDim2.new(0.8,0,0,28)
kpClear.Text = "Clear All Keybinds"
kpClear.Font = Enum.Font.Gotham
kpClear.BackgroundColor3 = Color3.fromRGB(140,60,60)
-- panel dragging
do
local dragging, dragStart, startPos = false, nil, nil
kpHeader.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
dragging = true; dragStart = input.Position; startPos = keyPanel.Position
input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false end end)
end
end)
kpHeader.InputChanged:Connect(function(input)
if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then
local delta = input.Position - dragStart
keyPanel.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
end
end)
end
-- function to refresh panel labels
local function refreshKeyPanel()
kpLook.Text = "LookAt (main): " .. (lookKey ~= "" and lookKey or "<none>")
kpLookV2.Text = "LookAtV2 (main): " .. (lookV2Key ~= "" and lookV2Key or "<none>")
kpUniLook.Text = "Universal Look: " .. (uniLookKey ~= "" and uniLookKey or "<none>")
kpUniLookV2.Text = "Universal Look V2: " .. (uniLookV2Key ~= "" and uniLookV2Key or "<none>")
kpCWalk.Text = "CFrame Walk (main): " .. (cwalkKey ~= "" and cwalkKey or "<none>")
kpUniForward.Text = "Universal Forward: " .. (uniForwardKey ~= "" and uniForwardKey or "<none>")
kpUniToPlayers.Text = "Universal Walk-To-Nearest: " .. (uniToPlayersKey ~= "" and uniToPlayersKey or "<none>")
kpUniAutoFly.Text = "Universal AutoFly: " .. (uniAutoFlyKey ~= "" and uniAutoFlyKey or "<none>")
kpFly.Text = "Fly (selected): " .. (flyKey ~= "" and flyKey or "<none>")
kpAbove.Text = "Above (selected): " .. (aboveKey ~= "" and aboveKey or "<none>")
kpUniAbove.Text = "Universal Above: " .. (uniAboveKey ~= "" and uniAboveKey or "<none>")
end
-- Clear all keybinds function
local function clearAllKeybinds()
lookKey = ""; lookV2Key = ""; uniLookKey = ""; uniLookV2Key = ""; cwalkKey = ""; uniForwardKey = ""; uniToPlayersKey = ""; uniAutoFlyKey = ""; flyKey = ""; aboveKey = ""; uniAboveKey = ""
-- clear UI boxes too
lookKeyBox.Text = ""; lookV2KeyBox.Text = ""; uniLookKeyBox.Text = ""; uniLookV2KeyBox.Text = ""
cwalkKeyBox.Text = ""; uniForwardKeyBox.Text = ""; uniToPlayersKeyBox.Text = ""; uniAutoFlyKeyBox.Text = ""
flyKeyBox.Text = ""; aboveKeyBox.Text = ""; uniAboveKeyBox.Text = ""
refreshKeyPanel()
end
kpClear.MouseButton1Click:Connect(clearAllKeybinds)
removeAllBtn.MouseButton1Click:Connect(clearAllKeybinds)
-- Toggle keybinds panel
keybindsPanelBtn.MouseButton1Click:Connect(function()
keyPanel.Visible = not keyPanel.Visible
if keyPanel.Visible then refreshKeyPanel() end
end)
-- RenderStepped loop: main behaviors
RunService.RenderStepped:Connect(function(dt)
local now = tick()
for _,p in ipairs(Players:GetPlayers()) do updatePlayerState(p, now) end
-- CFrame Walk to selected (respecting modes & preds)
if cframeWalkActive and selectedPlayer and isAlive(selectedPlayer) then
if teamOnlyTarget and teamSelected and selectedPlayer.Team ~= teamSelected then
-- skip
else
if teamCheckEnabled and LocalPlayer.Team and selectedPlayer.Team and LocalPlayer.Team == selectedPlayer.Team then
-- skip
else
local hrp = LocalPlayer.Character and (LocalPlayer.Character:FindFirstChild("HumanoidRootPart") or LocalPlayer.Character:FindFirstChild("UpperTorso") or LocalPlayer.Character:FindFirstChild("Torso"))
if hrp then
local stepDist = tonumber(walkSpeedBox.Text) or DEFAULT_CFRAME_WALK_SPEED
local desired = computeOffsetTarget(selectedPlayer, uniCFrameMode, uniOffset, false, tonumber(walkPredBox.Text) or DEFAULT_PRED)
if desired then cframeStepTowardsExact(hrp, desired, stepDist) end
end
end
end
end
-- Universal forward (HRP facing)
if universalForwardActive then
local hrp = LocalPlayer.Character and (LocalPlayer.Character:FindFirstChild("HumanoidRootPart") or LocalPlayer.Character:FindFirstChild("UpperTorso") or LocalPlayer.Character:FindFirstChild("Torso"))
if hrp then
local stepDist = tonumber(walkSpeedBox.Text) or DEFAULT_CFRAME_WALK_SPEED
cframeMoveForwardHorizontalExact_ByHRP(hrp, stepDist)
end
end
-- Universal Walk-To-Nearest Player
if universalWalkToPlayersActive then
local nearest = getNearestAlivePlayerToMe()
local hrp = LocalPlayer.Character and (LocalPlayer.Character:FindFirstChild("HumanoidRootPart") or LocalPlayer.Character:FindFirstChild("UpperTorso") or LocalPlayer.Character:FindFirstChild("Torso"))
if hrp and nearest and isAlive(nearest) then
local desired = computeOffsetTarget(nearest, uniCFrameMode, uniOffset, false, tonumber(walkPredBox.Text) or DEFAULT_PRED)
if desired then cframeStepTowardsExact(hrp, desired, tonumber(walkSpeedBox.Text) or DEFAULT_CFRAME_WALK_SPEED) end
end
end
-- Fly (BV) to selected (respects teamOnlyTarget/teamCheck)
if flyActive and selectedPlayer and isAlive(selectedPlayer) then
if teamOnlyTarget and teamSelected and selectedPlayer.Team ~= teamSelected then
-- skip
else
if teamCheckEnabled and LocalPlayer.Team and selectedPlayer.Team and LocalPlayer.Team == selectedPlayer.Team then
-- skip
else
local desired = computeOffsetTarget(selectedPlayer, uniFlyMode, uniOffset, true, tonumber(flyPredBox.Text) or DEFAULT_PRED)
if desired then flyTowardPositionBV(desired, tonumber(flySpeedBox.Text) or DEFAULT_BV_SPEED) end
end
end
end
-- Universal AutoFly (respects team rules)
if universalAutoFly then
local nearest
if teamOnlyTarget and teamSelected then
local myRoot = LocalPlayer.Character and (LocalPlayer.Character:FindFirstChild("HumanoidRootPart") or LocalPlayer.Character:FindFirstChild("UpperTorso") or LocalPlayer.Character:FindFirstChild("Torso"))
local best, bestD = nil, math.huge
if myRoot then
for _,p in ipairs(Players:GetPlayers()) do
if p ~= LocalPlayer and isAlive(p) and p.Team == teamSelected then
local pr = bestPart(p)
if pr then
local d = (pr.Position - myRoot.Position).Magnitude
if d < bestD then bestD = d; best = p end
end
end
end
end
nearest = best
else
nearest = getNearestAlivePlayerToMe()
end
if nearest and isAlive(nearest) then
local desired = computeOffsetTarget(nearest, uniFlyMode, uniOffset, true, tonumber(flyPredBox.Text) or DEFAULT_PRED)
if desired then ensureControllers(); flyTowardPositionBV(desired, tonumber(flySpeedBox.Text) or DEFAULT_BV_SPEED) end
end
end
-- Look behaviors (use separate Look preds)
local lookPred = tonumber(lookPredBox.Text) or DEFAULT_LOOK_PRED
local lookV2Pred = tonumber(lookV2PredBox.Text) or DEFAULT_LOOKV2_PRED
-- Per-target look
if lookActive and selectedPlayer and isAlive(selectedPlayer) then
if teamOnlyTarget and teamSelected and selectedPlayer.Team ~= teamSelected then
-- skip
else
if teamCheckEnabled and LocalPlayer.Team and selectedPlayer.Team and LocalPlayer.Team == selectedPlayer.Team then
-- skip
else
if cframeWalkActive then
local desired = computeOffsetTarget(selectedPlayer, uniMixWalkMode, uniOffset, false, lookPred)
if desired then pcall(function() doLookAtPositionXY(desired) end) end
else
local tgt = predictedPosition(selectedPlayer, lookPred)
if tgt then pcall(function() doLookAtPositionXY(tgt) end) end
end
end
end
end
if lookV2Active and selectedPlayer and isAlive(selectedPlayer) then
if teamOnlyTarget and teamSelected and selectedPlayer.Team ~= teamSelected then
-- skip
else
if teamCheckEnabled and LocalPlayer.Team and selectedPlayer.Team and LocalPlayer.Team == selectedPlayer.Team then
-- skip
else
if cframeWalkActive then
local desired = computeOffsetTarget(selectedPlayer, uniMixWalkMode, uniOffset, false, lookV2Pred)
if desired then pcall(function() doLookAtPositionV2(desired, 0) end) end
else
local tgt = predictedPosition(selectedPlayer, lookV2Pred)
if tgt then pcall(function() doLookAtPositionV2(tgt, 0) end) end
end
end
end
end
-- Universal Look: can target players respecting team rules or NPCs if beta enabled
if universalLook then
if lookAtNPCsBeta then
local npc = getNearestNPCToMe()
if npc then
local tgtPart = npc:FindFirstChild("HumanoidRootPart") or npc:FindFirstChild("UpperTorso") or npc:FindFirstChild("Torso")
if tgtPart then
if universalWalkToPlayersActive then
local desired = computeOffsetTarget(npc, uniMixWalkMode, uniOffset, false, lookPred)
if desired then pcall(function() doLookAtPositionXY(desired) end) end
else
local pred = predictedPosition(npc, lookPred)
if pred then pcall(function() doLookAtPositionXY(pred) end) end
end
end
end
else
local nearest = getNearestAlivePlayerToMe()
if nearest and isAlive(nearest) then
if universalWalkToPlayersActive then
local desired = computeOffsetTarget(nearest, uniMixWalkMode, uniOffset, false, lookPred)
if desired then pcall(function() doLookAtPositionXY(desired) end) end
else
local tgt = predictedPosition(nearest, lookPred)
if tgt then pcall(function() doLookAtPositionXY(tgt) end) end
end
end
end
end
if universalLookV2 then
if lookAtNPCsBeta then
local npc = getNearestNPCToMe()
if npc then
if universalAutoFly then
local desired = computeOffsetTarget(npc, uniMixFlyMode, uniOffset, true, lookV2Pred)
if desired then pcall(function() doLookAtPositionV2(desired, 0) end) end
elseif universalWalkToPlayersActive then
local desired = computeOffsetTarget(npc, uniMixWalkMode, uniOffset, false, lookV2Pred)
if desired then pcall(function() doLookAtPositionV2(desired, 0) end) end
else
local tgt = predictedPosition(npc, lookV2Pred)
if tgt then pcall(function() doLookAtPositionV2(tgt, 0) end) end
end
end
else
local nearest = getNearestAlivePlayerToMe()
if nearest and isAlive(nearest) then
if universalAutoFly then
local desired = computeOffsetTarget(nearest, uniMixFlyMode, uniOffset, true, lookV2Pred)
if desired then pcall(function() doLookAtPositionV2(desired, 0) end) end
elseif universalWalkToPlayersActive then
local desired = computeOffsetTarget(nearest, uniMixWalkMode, uniOffset, false, lookV2Pred)
if desired then pcall(function() doLookAtPositionV2(desired, 0) end) end
else
local tgt = predictedPosition(nearest, lookV2Pred)
if tgt then pcall(function() doLookAtPositionV2(tgt, 0) end) end
end
end
end
end
-- Anti-stuck nudge
local myHRP = LocalPlayer.Character and (LocalPlayer.Character:FindFirstChild("HumanoidRootPart") or LocalPlayer.Character:FindFirstChild("UpperTorso") or LocalPlayer.Character:FindFirstChild("Torso"))
if myHRP then
if not lastMyPos then lastMyPos = myHRP.Position; lastMovedAt = now end
if (myHRP.Position - lastMyPos).Magnitude > STUCK_MOVE_EPS then
lastMovedAt = now; lastMyPos = myHRP.Position
else
local activeCframeModes = cframeWalkActive or universalForwardActive or universalWalkToPlayersActive
if activeCframeModes and (now - lastMovedAt) > STUCK_TIME_THRESHOLD then
pcall(function() myHRP.CFrame = myHRP.CFrame + Vector3.new(0,1.6,0) end)
lastMovedAt = now; lastMyPos = myHRP.Position
end
end
end
-- cleanup BV controllers when not used
if not (flyActive or universalAutoFly) then
if bv and bv.Velocity.Magnitude == 0 then removeControllers() end
end
-- refresh key panel labels if visible
if keyPanel.Visible then refreshKeyPanel() end
end)
-- Wire up keybox focus flags for typing (ensure all are wired)
for _,tb in ipairs(allTextBoxes) do if tb and tb:IsA("TextBox") then wireFocus(tb) end end
-- Make sure panel labels show initial values
refreshKeyPanel()
warn("PlayerMover v13 loaded — Universal Above and keybinds active.")
this script was made by chatgpt open source and i hadn't really updated the sclript in a while when it was doing so good. Features: cframe forward, cframe walk, fly towards, above target, 3 pages Main,Universal,team and a playet targeter and keybinds i added after v12. note: above keybind kinda bugging out and won't work

Universal