Run it
Copy the script and paste it into your executor.
Players = :()
RunService = :()
UserInputService = :()
TweenService = :()
HttpService = :()
Workspace = :()
CoreGui = :()
LocalPlayer = Players.LocalPlayer
Camera = Workspace.CurrentCamera
(()
().__1337HubUnload
().()
)
Connections = {}
(signal, fn)
c = signal:(fn)
.(Connections, c)
c
Settings = {
Aimbot = {
Enabled = ,
Key = .UserInputType.MouseButton2,
FOV = ,
ShowFOV = ,
Smoothness = ,
TargetPart = ,
TeamCheck = ,
WallCheck = ,
TargetDot = ,
DotSize = ,
},
ESP = {
Enabled = ,
MaxDistance = ,
TeamCheck = ,
TeamColors = ,
Box = ,
BoxStyle = ,
BoxColor = .(, , ),
BoxRainbow = ,
BoxThickness = ,
BoxOutline = ,
BoxFill = ,
BoxFillColor = .(, , ),
BoxFillAlpha = ,
HealthBar = ,
HealthStyle = ,
HealthSide = ,
HealthWidth = ,
HealthText = ,
HealthHigh = .(, , ),
HealthLow = .(, , ),
Names = ,
NameColor = .(, , ),
Distance = ,
DistanceColor = .(, , ),
Weapon = ,
WeaponColor = .(, , ),
TextSize = ,
Snaplines = ,
SnapOrigin = ,
SnapColor = .(, , ),
SnapThickness = ,
Chams = ,
ChamsFill = .(, , ),
ChamsOutline = .(, , ),
ChamsHidden = .(, , ),
ChamsRainbow = ,
ChamsFillTrans = ,
ChamsOutlineTrans = ,
ChamsThroughWalls = ,
ChamsVisCheck = ,
ChamsPulse = ,
},
Radar = {
Enabled = ,
Range = ,
Size = ,
DotSize = ,
EnemyColor = .(, , ),
TeamColor = .(, , ),
},
Tracer = {
Enabled = ,
Color1 = .(, , ),
Color2 = .(, , ),
Rainbow = ,
Thickness = ,
Glow = ,
Core = ,
Lifetime = ,
Interval = ,
Origin = ,
Impact = ,
ImpactLight = ,
OnlyTool = ,
Range = ,
},
Crosshair = {
Enabled = ,
Color = .(, , ),
Rainbow = ,
Size = ,
Gap = ,
Thickness = ,
Dot = ,
Outline = ,
Spin = ,
SpinSpeed = ,
FollowMouse = ,
},
FOVStyle = {
UseTheme = ,
AimColor = .(, , ),
AimHold = .(, , ),
SilentColor = .(, , ),
Thickness = ,
Fill = ,
FillTrans = ,
},
Silent = {
Enabled = ,
Part = ,
HitChance = ,
FOV = ,
ShowFOV = ,
ShowDot = ,
TeamCheck = ,
WallCheck = ,
MRaycast = ,
MFindPart = ,
MScreenRay = ,
MMouse = ,
},
Player = {
Bhop = ,
BhopKey = .KeyCode.Space,
BhopToggleKey = .KeyCode.Unknown,
BhopMode = ,
BhopBoost = ,
Speed = ,
SpeedValue = ,
Jump = ,
JumpValue = ,
InfJump = ,
Noclip = ,
NoclipKey = .KeyCode.Unknown,
Fly = ,
FlyKey = .KeyCode.Unknown,
FlySpeed = ,
Fullbright = ,
NoFog = ,
FOVEnabled = ,
FOVValue = ,
AntiAFK = ,
},
Third = {
Enabled = ,
Key = .KeyCode.V,
Distance = ,
ShoulderX = ,
Height = ,
Collision = ,
ShowBody = ,
Smooth = ,
ForceMode = ,
},
UI = {
Style = ,
Language = ,
Watermark = ,
},
}
CONFIG_FILE =
CanFS = ((writefile) == ) ((readfile) == ) ((isfile) == )
ConfigLoaded =
(v)
t = (v)
t ==
{ __c = v:() }
t ==
{ __e = v.Name, __t = (.((v), ) ) }
v
(saved, default)
dt = (default)
dt ==
(saved) == (saved.__c) ==
ok, c = (.fromHex, saved.__c)
ok c
default
dt ==
(saved) == (saved.__e) ==
enumType = (saved.__t == ) .KeyCode .UserInputType
ok, e = (() enumType[saved.__e] )
ok e e
default
(saved) == dt saved
default
()
CanFS
data = {}
group, tbl (Settings)
data[group] = {}
k, v (tbl) data[group][k] = (v)
ok = (()
(CONFIG_FILE, HttpService:(data))
)
ok
()
CanFS
(()
(CONFIG_FILE)
data = HttpService:((CONFIG_FILE))
group, tbl (Settings)
saved = data[group]
(saved) ==
k, default (tbl)
saved[k] ~= tbl[k] = (saved[k], default)
)
saveQueued =
()
ConfigLoaded saveQueued
saveQueued =
.(, ()
saveQueued =
()
)
()
Alive =
SilentCache =
LastShot =
LastShotPos, LastShotId = ,
HookStatusLabel =
RANDOM_KEYS = { , , }
HooksSupported = (() == )
((getnamecallmethod) == )
((checkcaller) == )
(() == )
Theme = {
Background = .(, , ),
Sidebar = .(, , ),
Element = .(, , ),
ElementHi = .(, , ),
Accent = .(, , ),
Accent2 = .(, , ),
Text = .(, , ),
SubText = .(, , ),
Stroke = .(, , ),
HeaderEnd = .(, , ),
}
THEME_ROLES = { , , , , , , , , , }
(name, fallback)
ok, f = (() .Font[name] )
ok f f
fallback
Themes = {
[] = {
Display = ,
Background = .(, , ), Sidebar = .(, , ),
Element = .(, , ), ElementHi = .(, , ),
Accent = .(, , ), Accent2 = .(, , ),
Text = .(, , ), SubText = .(, , ),
Stroke = .(, , ), HeaderEnd = .(, , ),
Fonts = { Regular = .Font.Gotham, Medium = .Font.GothamMedium, Bold = .Font.GothamBold },
Radius = ,
Title = ,
Hint = ,
Icons = { Aim = , Silent = , Visuals = , Chams = , Extras = , Player = , Misc = },
},
[] = {
Display = ,
Background = .(, , ), Sidebar = .(, , ),
Element = .(, , ), ElementHi = .(, , ),
Accent = .(, , ), Accent2 = .(, , ),
Text = .(, , ), SubText = .(, , ),
Stroke = .(, , ), HeaderEnd = .(, , ),
Fonts = { Regular = .Font.Gotham, Medium = .Font.GothamMedium, Bold = .Font.GothamBold },
Radius = ,
Title = ,
Hint = ,
Icons = { Aim = , Silent = , Visuals = , Chams = , Extras = , Player = , Misc = },
},
[] = {
Display = ,
Background = .(, , ), Sidebar = .(, , ),
Element = .(, , ), ElementHi = .(, , ),
Accent = .(, , ), Accent2 = .(, , ),
Text = .(, , ), SubText = .(, , ),
Stroke = .(, , ), HeaderEnd = .(, , ),
Fonts = { Regular = (, .Font.Gotham), Medium = (, .Font.GothamMedium), Bold = (, .Font.GothamBold) },
Radius = ,
Title = ,
Hint = ,
Icons = { Aim = , Silent = , Visuals = , Chams = , Extras = , Player = , Misc = },
},
[] = {
Display = ,
Background = .(, , ), Sidebar = .(, , ),
Element = .(, , ), ElementHi = .(, , ),
Accent = .(, , ), Accent2 = .(, , ),
Text = .(, , ), SubText = .(, , ),
Stroke = .(, , ), HeaderEnd = .(, , ),
Fonts = { Regular = (, .Font.Gotham), Medium = (, .Font.GothamMedium), Bold = (, .Font.GothamBold) },
Radius = ,
Title = ,
Hint = ,
Icons = { Aim = , Silent = , Visuals = , Chams = , Extras = , Player = , Misc = },
},
[] = {
Display = ,
Background = .(, , ), Sidebar = .(, , ),
Element = .(, , ), ElementHi = .(, , ),
Accent = .(, , ), Accent2 = .(, , ),
Text = .(, , ), SubText = .(, , ),
Stroke = .(, , ), HeaderEnd = .(, , ),
Fonts = { Regular = (, .Font.GothamMedium), Medium = (, .Font.GothamMedium), Bold = (, .Font.GothamBold) },
Radius = ,
Title = ,
Hint = ,
Icons = { Aim = , Silent = , Visuals = , Chams = , Extras = , Player = , Misc = },
},
}
ThemeOrder = { , , , , }
ApplyTheme
RefreshThemeCards = ()
EN = {
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
}
TabNames = {
RU = { Aim = , Silent = , Visuals = , Chams = , Extras = , Player = , Misc = },
EN = { Aim = , Silent = , Visuals = , Chams = , Extras = , Player = , Misc = },
}
(str)
Settings.UI.Language == EN[str] str
str
(name)
(TabNames[Settings.UI.Language] TabNames.RU)[name] name
Localized, LocRefresh = {}, {}
(inst, prop, ru, upper)
Localized[inst] = { Prop = prop, Ru = ru, Upper = upper }
t = (ru)
upper t = .(t)
inst[prop] = t
RefreshTabs = ()
(code)
Settings.UI.Language = code
inst, d (Localized)
(()
t = (d.Ru)
d.Upper t = .(t)
inst[d.Prop] = t
)
_, f (LocRefresh) (f)
()
()
(obj, t, props, style, dir)
tw = TweenService:(obj, TweenInfo.(t, style .EasingStyle.Quad, dir .EasingDirection.Out), props)
tw:()
tw
(parent, r)
c = .()
c.CornerRadius = .(, r)
c.Parent = parent
c
(parent, color, thickness, transparency)
s = .()
s.Color = color
s.Thickness = thickness
s.Transparency = transparency
s.ApplyStrokeMode = .ApplyStrokeMode.Border
s.Parent = parent
s
(class, props, parent)
o = .(class)
lk, lu = props.LocKey, props.LocUpper
k, v (props)
k ~= k ~= o[k] = v
lk ~= (o, , lk, lu)
o.Parent = parent
o
ScreenGui = .()
ScreenGui.Name =
ScreenGui.ResetOnSpawn =
ScreenGui.IgnoreGuiInset =
ScreenGui.ZIndexBehavior = .ZIndexBehavior.Sibling
ScreenGui.DisplayOrder =
ok = (()
gethui ScreenGui.Parent = () ScreenGui.Parent = CoreGui
)
ok ScreenGui.Parent
ScreenGui.Parent = LocalPlayer:()
()
LC = {
Bg = .(, , ), Card = .(, , ),
Ac = .(, , ), Ac2 = .(, , ),
Text = .(, , ), Sub = .(, , ),
Stroke = .(, , ), Btn = .(, , ), Bad = .(, , ),
}
LT = {
RU = {
pick = ,
sub = ,
s1 = , s2 = ,
s3 = , s4 = , s5 = ,
foot = ,
},
EN = {
pick = ,
sub = ,
s1 = , s2 = ,
s3 = , s4 = , s5 = ,
foot = ,
},
}
root = (, {
Name = , Size = .(, ), BackgroundColor3 = LC.Bg,
BorderSizePixel = , ZIndex = , Active = ,
}, ScreenGui)
(, { Color = ColorSequence.(.(, , ), .(, , )), Rotation = }, root)
parts = {}
i = ,
sz = .(, )
f = (, {
Size = .(sz, sz),
Position = .(.(), .()),
BackgroundColor3 = (i % == ) LC.Ac LC.Ac2,
BackgroundTransparency = + .() * ,
BorderSizePixel = , ZIndex = ,
}, root)
(f, )
parts[i] = { F = f, X = .(), Y = .(), S = + .() * , W = .() * }
card = (, {
AnchorPoint = .(, ), Position = .(, ),
Size = .(, ), BackgroundColor3 = LC.Card, BorderSizePixel = , ZIndex = ,
}, root)
(card, )
cardStroke = (card, .(, , ), , )
cardGrad = (, {
Color = ColorSequence.({
ColorSequenceKeypoint.(, LC.Ac), ColorSequenceKeypoint.(, LC.Ac2), ColorSequenceKeypoint.(, LC.Ac),
}),
}, cardStroke)
cardScale = (, { Scale = }, card)
(cardScale, , { Scale = }, .EasingStyle.Back)
logo = (, {
BackgroundTransparency = , Position = .(, ), Size = .(, , , ),
Font = .Font.GothamBlack, Text = , TextSize = , TextColor3 = .(, , ), ZIndex = ,
}, card)
logoGrad = (, { Color = ColorSequence.(LC.Ac, LC.Ac2) }, logo)
(, {
BackgroundTransparency = , Position = .(, ), Size = .(, , , ),
Font = .Font.GothamBold, Text = , TextSize = , TextColor3 = LC.Sub, ZIndex = ,
}, card)
status = (, {
BackgroundTransparency = , Position = .(, ), Size = .(, , , ),
Font = .Font.GothamMedium, Text = LT.RU.pick, TextSize = , TextColor3 = LC.Text, ZIndex = ,
}, card)
pulse = (RunService.Heartbeat, (dt)
cardGrad.Rotation = (.() * ) %
logoGrad.Rotation = (.() * ) %
_, p (parts)
p.Y = p.Y - p.S * dt *
p.Y < - p.Y = p.X = .()
p.F.Position = .(p.X + .(.() + p.W) * , p.Y)
)
picked =
langButtons = {}
(code, name, x)
b = (, {
Position = .(x, ), Size = .(, ),
BackgroundColor3 = LC.Btn, AutoButtonColor = , Text = , ZIndex = ,
}, card)
(b, )
st = (b, (Settings.UI.Language == code) LC.Ac LC.Stroke, , )
(, {
BackgroundTransparency = , Position = .(, ), Size = .(, , , ),
Font = .Font.GothamBlack, Text = code, TextSize = , TextColor3 = LC.Ac, ZIndex = ,
}, b)
(, {
BackgroundTransparency = , Position = .(, ), Size = .(, , , ),
Font = .Font.GothamMedium, Text = name, TextSize = , TextColor3 = LC.Text, ZIndex = ,
}, b)
b.MouseEnter:(()
(b, , { BackgroundColor3 = .(, , ) })
(st, , { Color = LC.Ac2 })
)
b.MouseLeave:(()
(b, , { BackgroundColor3 = LC.Btn })
(st, , { Color = (Settings.UI.Language == code) LC.Ac LC.Stroke })
)
b.MouseButton1Click:(() picked = code )
.(langButtons, b)
(, , )
(, , )
.() picked Alive
Settings.UI.Language = picked Settings.UI.Language
T = LT[Settings.UI.Language] LT.RU
_, b (langButtons)
(b, , { BackgroundTransparency = })
_, d (b:())
d:() (d, , { TextTransparency = })
d:() (d, , { Transparency = })
.()
_, b (langButtons) b:()
status.Text = T.sub
track = (, {
Position = .(, ), Size = .(, -, , ),
BackgroundColor3 = LC.Btn, BorderSizePixel = , ZIndex = ,
}, card)
(track, )
fill = (, {
Size = .(, , , ), BackgroundColor3 = .(, , ), BorderSizePixel = , ZIndex = ,
}, track)
(fill, )
(, { Color = ColorSequence.(LC.Ac, LC.Ac2) }, fill)
stepLabel = (, {
BackgroundTransparency = , Position = .(, ), Size = .(, -, , ),
Font = .Font.GothamMedium, Text = , TextSize = , TextColor3 = LC.Sub,
TextXAlignment = .TextXAlignment.Left, ZIndex = ,
}, card)
pct = (, {
BackgroundTransparency = , Position = .(, -, , ), Size = .(, ),
Font = .Font.GothamBold, Text = , TextSize = , TextColor3 = LC.Ac,
TextXAlignment = .TextXAlignment.Right, ZIndex = ,
}, card)
chipsHolder = (, {
BackgroundTransparency = , Position = .(, ), Size = .(, -, , ), ZIndex = ,
}, card)
(, { FillDirection = .FillDirection.Horizontal, Padding = .(, ) }, chipsHolder)
(text, good)
c = (, {
Size = .(, ), BackgroundColor3 = LC.Btn, Font = .Font.GothamBold,
Text = text .. (good ), TextSize = , TextColor3 = good LC.Ac LC.Bad,
TextTransparency = , BackgroundTransparency = , ZIndex = ,
}, chipsHolder)
(c, )
(c, good LC.Ac LC.Bad, , )
(c, , { TextTransparency = , BackgroundTransparency = })
(, {
BackgroundTransparency = , Position = .(, , , -), Size = .(, , , ),
Font = .Font.Gotham, Text = T.foot .. , TextSize = , TextColor3 = LC.Sub, ZIndex = ,
}, card)
steps = {
{ T.s1, , },
{ T.s2, , ()
(, HooksSupported)
(, CanFS)
(, )
},
{ T.s3, , },
{ T.s4, , },
{ T.s5, , },
}
shown =
_, st (steps)
stepLabel.Text = st[] ..
st[] st[]()
(fill, , { Size = .(st[], , , ) })
target = .(st[] * )
shown < target
shown = .(target, shown + )
pct.Text = shown ..
.()
.()
stepLabel.Text = T.s5
.()
_, d (root:())
props = {}
d:() props.BackgroundTransparency =
d:() d:() props.TextTransparency =
d:() props.Transparency =
(props) (d, , props)
(root, , { BackgroundTransparency = })
(cardScale, , { Scale = })
.()
(() pulse:() )
root:()
()
ESPLayer = (, {
Name = ,
Size = .(, ),
BackgroundTransparency = ,
ZIndex = -,
}, ScreenGui)
FOVCircle = (, {
Name = ,
AnchorPoint = .(, ),
BackgroundTransparency = ,
Size = .(, ),
Visible = ,
}, ScreenGui)
(FOVCircle, )
FOVStroke = (FOVCircle, Theme.Accent, , )
TargetDot = (, {
Name = ,
AnchorPoint = .(, ),
BackgroundColor3 = .(, , ),
Size = .(, ),
Visible = ,
ZIndex = ,
}, ScreenGui)
(TargetDot, )
TargetDotStroke = (TargetDot, Theme.Accent, , )
SilentFOV = (, {
Name = ,
AnchorPoint = .(, ),
BackgroundTransparency = ,
Size = .(, ),
Visible = ,
}, ScreenGui)
(SilentFOV, )
SilentFOVStroke = (SilentFOV, Theme.Accent2, , )
SilentDot = (, {
Name = ,
AnchorPoint = .(, ),
BackgroundColor3 = Theme.Accent2,
Size = .(, ),
Visible = ,
ZIndex = ,
}, ScreenGui)
(SilentDot, )
SilentDotStroke = (SilentDot, .(, , ), , )
SilentDot:(, )
SilentDotStroke:(, )
SilentLabel = (, {
Name = ,
AnchorPoint = .(, ),
BackgroundColor3 = Theme.Background,
BackgroundTransparency = ,
Size = .(, ),
Font = .Font.GothamMedium,
TextColor3 = Theme.Text,
TextSize = ,
Text = ,
Visible = ,
ZIndex = ,
}, ScreenGui)
(SilentLabel, )
Main = (, {
Name = ,
Size = .(, ),
Position = .(, -, , -),
BackgroundColor3 = Theme.Background,
BorderSizePixel = ,
ClipsDescendants = ,
}, ScreenGui)
(Main, )
MainStroke = (Main, .(, , ), , )
MainStrokeGrad = (, {
Color = ColorSequence.({
ColorSequenceKeypoint.(, Theme.Accent), ColorSequenceKeypoint.(, Theme.Accent2), ColorSequenceKeypoint.(, Theme.Accent),
}),
}, MainStroke)
MainScale = (, { Scale = }, Main)
Header = (, {
Size = .(, , , ),
BackgroundColor3 = Theme.Sidebar,
BorderSizePixel = ,
}, Main)
HeaderGrad = (, {
Color = ColorSequence.(Theme.Sidebar, Theme.HeaderEnd),
Rotation = ,
}, Header)
AccentLine = (, {
Size = .(, , , ),
Position = .(, , , -),
BorderSizePixel = ,
BackgroundColor3 = .(, , ),
}, Header)
(, { Color = ColorSequence.(Theme.Accent, Theme.Accent2) }, AccentLine)
TitleLabel = (, {
BackgroundTransparency = ,
Position = .(, ),
Size = .(, , , ),
Font = .Font.GothamBold,
Text = ,
TextColor3 = .(, , ),
TextSize = ,
TextXAlignment = .TextXAlignment.Left,
}, Header)
(, { Color = ColorSequence.(Theme.Accent, Theme.Accent2) }, TitleLabel)
HintLabel = (, {
BackgroundTransparency = ,
Position = .(, -, , ),
Size = .(, , , ),
Font = .Font.Gotham,
LocKey = ,
TextColor3 = Theme.SubText,
TextSize = ,
TextXAlignment = .TextXAlignment.Right,
}, Header)
dragging, dragStart, startPos
(Header.InputBegan, (input)
input.UserInputType == .UserInputType.MouseButton1 input.UserInputType == .UserInputType.Touch
dragging =
dragStart = input.Position
startPos = Main.Position
)
(UserInputService.InputChanged, (input)
dragging (input.UserInputType == .UserInputType.MouseMovement input.UserInputType == .UserInputType.Touch)
d = input.Position - dragStart
Main.Position = .(startPos.X.Scale, startPos.X.Offset + d.X, startPos.Y.Scale, startPos.Y.Offset + d.Y)
)
(UserInputService.InputEnded, (input)
input.UserInputType == .UserInputType.MouseButton1 input.UserInputType == .UserInputType.Touch
dragging =
)
Sidebar = (, {
Position = .(, ),
Size = .(, , , -),
BackgroundColor3 = Theme.Sidebar,
BorderSizePixel = ,
}, Main)
(, { Padding = .(, ), SortOrder = .SortOrder.LayoutOrder }, Sidebar)
(, { PaddingTop = .(, ), PaddingLeft = .(, ), PaddingRight = .(, ) }, Sidebar)
PagesHolder = (, {
Position = .(, ),
Size = .(, -, , -),
BackgroundTransparency = ,
}, Main)
Tabs = {}
RefreshTabs = ()
icons = (Themes[Settings.UI.Style] Themes[]).Icons
name, t (Tabs)
t.Button.Text = (icons[name] ) .. .. (name)
(name)
n, t (Tabs)
active = (n == name)
t.Page.Visible = active
(t.Button, , {
BackgroundColor3 = active Theme.Accent Theme.Sidebar,
TextColor3 = active .(, , ) Theme.SubText,
})
(name, icon, order)
btn = (, {
Size = .(, , , ),
BackgroundColor3 = Theme.Sidebar,
AutoButtonColor = ,
Font = .Font.GothamMedium,
Text = icon .. .. (name),
TextColor3 = Theme.SubText,
TextSize = ,
LayoutOrder = order,
}, Sidebar)
(btn, )
page = (, {
Size = .(, , , ),
BackgroundTransparency = ,
BorderSizePixel = ,
ScrollBarThickness = ,
ScrollBarImageColor3 = Theme.Accent,
CanvasSize = .(),
AutomaticCanvasSize = .AutomaticSize.Y,
Visible = ,
}, PagesHolder)
(, { Padding = .(, ), SortOrder = .SortOrder.LayoutOrder }, page)
(, {
PaddingTop = .(, ), PaddingBottom = .(, ),
PaddingLeft = .(, ), PaddingRight = .(, ),
}, page)
Tabs[name] = { Button = btn, Page = page }
(btn.MouseButton1Click, () (name) )
(btn.MouseEnter, ()
page.Visible (btn, , { BackgroundColor3 = Theme.Element })
)
(btn.MouseLeave, ()
page.Visible (btn, , { BackgroundColor3 = Theme.Sidebar })
)
page
(page, text)
(, {
Size = .(, , , ),
BackgroundTransparency = ,
Font = .Font.GothamBold,
LocKey = text,
LocUpper = ,
TextColor3 = Theme.Accent,
TextSize = ,
TextXAlignment = .TextXAlignment.Left,
}, page)
(page, text, default, callback)
state = default
row = (, {
Size = .(, , , ),
BackgroundColor3 = Theme.Element,
AutoButtonColor = ,
Text = ,
}, page)
(row, )
(, {
BackgroundTransparency = ,
Position = .(, ),
Size = .(, -, , ),
Font = .Font.GothamMedium,
LocKey = text,
TextColor3 = Theme.Text,
TextSize = ,
TextXAlignment = .TextXAlignment.Left,
}, row)
sw = (, {
AnchorPoint = .(, ),
Position = .(, -, , ),
Size = .(, ),
BackgroundColor3 = state Theme.Accent Theme.Stroke,
}, row)
(sw, )
knob = (, {
AnchorPoint = .(, ),
Position = state .(, -, , ) .(, , , ),
Size = .(, ),
BackgroundColor3 = .(, , ),
}, sw)
(knob, )
()
(sw, , { BackgroundColor3 = state Theme.Accent Theme.Stroke })
(knob, , { Position = state .(, -, , ) .(, , , ) })
(row.MouseButton1Click, ()
state = state
()
(state)
()
)
(row.MouseEnter, () (row, , { BackgroundColor3 = Theme.ElementHi }) )
(row.MouseLeave, () (row, , { BackgroundColor3 = Theme.Element }) )
(state)
(v)
state = v
()
(state)
()
(page, text, min, max, default, step, suffix, callback)
value = default
row = (, {
Size = .(, , , ),
BackgroundColor3 = Theme.Element,
}, page)
(row, )
(, {
BackgroundTransparency = ,
Position = .(, ),
Size = .(, , , ),
Font = .Font.GothamMedium,
LocKey = text,
TextColor3 = Theme.Text,
TextSize = ,
TextXAlignment = .TextXAlignment.Left,
}, row)
valueLabel = (, {
BackgroundTransparency = ,
Position = .(, , , ),
Size = .(, -, , ),
Font = .Font.GothamBold,
TextColor3 = Theme.Accent,
TextSize = ,
TextXAlignment = .TextXAlignment.Right,
}, row)
track = (, {
Position = .(, , , ),
Size = .(, -, , ),
BackgroundColor3 = Theme.Stroke,
}, row)
(track, )
fill = (, {
Size = .(, , , ),
BackgroundColor3 = .(, , ),
}, track)
(fill, )
(, { Color = ColorSequence.(Theme.Accent, Theme.Accent2) }, fill)
knob = (, {
AnchorPoint = .(, ),
Size = .(, ),
BackgroundColor3 = .(, , ),
ZIndex = ,
}, track)
(knob, )
(knob, Theme.Accent, )
(v, fire)
v = .(.(v / step + ) * step, min, max)
v = (.(, v)) v
value = v
a = (v - min) / (max - min)
fill.Size = .(a, , , )
knob.Position = .(a, , , )
valueLabel.Text = (v) .. (suffix )
fire (v) ()
dragging =
(x)
a = .((x - track.AbsolutePosition.X) / track.AbsoluteSize.X, , )
(min + (max - min) * a, )
(row.InputBegan, (input)
input.UserInputType == .UserInputType.MouseButton1 input.UserInputType == .UserInputType.Touch
dragging =
(input.Position.X)
)
(UserInputService.InputChanged, (input)
dragging (input.UserInputType == .UserInputType.MouseMovement input.UserInputType == .UserInputType.Touch)
(input.Position.X)
)
(UserInputService.InputEnded, (input)
input.UserInputType == .UserInputType.MouseButton1 input.UserInputType == .UserInputType.Touch
dragging =
)
.(LocRefresh, () (value, ) )
(default, )
(a, b)
(a) == (b) == a:() == b:()
a == b
(page, text, options, defaultIndex, callback, current)
row = (, {
Size = .(, , , ),
BackgroundColor3 = Theme.Element,
}, page)
(row, )
(, {
BackgroundTransparency = ,
Position = .(, ),
Size = .(, -, , ),
Font = .Font.GothamMedium,
LocKey = text,
TextColor3 = Theme.Text,
TextSize = ,
TextXAlignment = .TextXAlignment.Left,
}, row)
holder = (, {
Position = .(, , , ),
Size = .(, -, , ),
BackgroundTransparency = ,
}, row)
(, {
FillDirection = .FillDirection.Horizontal,
Padding = .(, ),
}, holder)
buttons = {}
(i)
idx, b (buttons)
active = idx == i
(b, , {
BackgroundColor3 = active Theme.Accent Theme.Stroke,
TextColor3 = active .(, , ) Theme.SubText,
})
(options[i].Value)
()
i, opt (options)
b = (, {
Size = .( / #options, - * (#options - ) / #options, , ),
BackgroundColor3 = Theme.Stroke,
AutoButtonColor = ,
Font = .Font.GothamMedium,
LocKey = opt.Label,
TextColor3 = Theme.SubText,
TextSize = ,
}, holder)
(b, )
buttons[i] = b
(b.MouseButton1Click, () (i) )
current ~=
i, opt (options)
(opt.Value, current) defaultIndex = i
(defaultIndex)
(...)
_, inst ({ ... }) inst:(, )
(page, text, tbl, key, rainbowKey)
row = (, {
Size = .(, , , ),
BackgroundColor3 = Theme.Element,
ClipsDescendants = ,
}, page)
(row, )
header = (, {
Size = .(, , , ),
BackgroundTransparency = ,
Text = ,
AutoButtonColor = ,
}, row)
(, {
BackgroundTransparency = ,
Position = .(, ),
Size = .(, -, , ),
Font = .Font.GothamMedium,
LocKey = text,
TextColor3 = Theme.Text,
TextSize = ,
TextXAlignment = .TextXAlignment.Left,
}, header)
swatch = (, {
AnchorPoint = .(, ),
Position = .(, -, , ),
Size = .(, ),
BackgroundColor3 = tbl[key],
}, header)
(swatch, )
swStroke = (swatch, .(, , ), , )
(swatch, swStroke)
rainbowKey
rgb = (, {
AnchorPoint = .(, ),
Position = .(, -, , ),
Size = .(, ),
BackgroundColor3 = tbl[rainbowKey] Theme.Accent Theme.Stroke,
AutoButtonColor = ,
Font = .Font.GothamBold,
Text = ,
TextColor3 = .(, , ),
TextSize = ,
}, header)
(rgb, )
(rgb.MouseButton1Click, ()
tbl[rainbowKey] = tbl[rainbowKey]
(rgb, , { BackgroundColor3 = tbl[rainbowKey] Theme.Accent Theme.Stroke })
()
)
h, sat, val = tbl[key]:()
svFrame = (, {
Position = .(, ),
Size = .(, -, , ),
BackgroundColor3 = .(h, , ),
BorderSizePixel = ,
}, row)
(svFrame, )
white = (, { Size = .(, ), BackgroundColor3 = .(, , ), BorderSizePixel = }, svFrame)
(white, )
wg = (, {
Transparency = NumberSequence.({ NumberSequenceKeypoint.(, ), NumberSequenceKeypoint.(, ) }),
}, white)
black = (, { Size = .(, ), BackgroundColor3 = .(, , ), BorderSizePixel = }, svFrame)
(black, )
bg = (, {
Rotation = ,
Transparency = NumberSequence.({ NumberSequenceKeypoint.(, ), NumberSequenceKeypoint.(, ) }),
}, black)
svCursor = (, {
AnchorPoint = .(, ),
Size = .(, ),
BackgroundTransparency = ,
ZIndex = ,
}, svFrame)
(svCursor, )
curStroke = (svCursor, .(, , ), , )
hueBar = (, {
Position = .(, -, , ),
Size = .(, ),
BackgroundColor3 = .(, , ),
BorderSizePixel = ,
}, row)
(hueBar, )
keys = {}
i = , .(keys, ColorSequenceKeypoint.(i / , .(i / , , )))
hg = (, { Rotation = , Color = ColorSequence.(keys) }, hueBar)
hueCursor = (, {
AnchorPoint = .(, ),
Size = .(, , , ),
BackgroundColor3 = .(, , ),
BorderSizePixel = ,
ZIndex = ,
}, hueBar)
(hueCursor, )
hcStroke = (hueCursor, .(, , ), , )
(svFrame, white, wg, black, bg, svCursor, curStroke, hueBar, hg, hueCursor, hcStroke)
(save)
c = .(h, sat, val)
tbl[key] = c
swatch.BackgroundColor3 = c
svFrame.BackgroundColor3 = .(h, , )
svCursor.Position = .(sat, - val)
hueCursor.Position = .(, , h, )
save ()
drag =
()
m = UserInputService:()
drag ==
sat = .((m.X - svFrame.AbsolutePosition.X) / svFrame.AbsoluteSize.X, , )
val = - .((m.Y - svFrame.AbsolutePosition.Y) / svFrame.AbsoluteSize.Y, , )
()
drag ==
h = .((m.Y - hueBar.AbsolutePosition.Y) / hueBar.AbsoluteSize.Y, , )
()
(input)
input.UserInputType == .UserInputType.MouseButton1 input.UserInputType == .UserInputType.Touch
(svFrame.InputBegan, (input) (input) drag = () )
(hueBar.InputBegan, (input) (input) drag = () )
(UserInputService.InputChanged, (input)
drag (input.UserInputType == .UserInputType.MouseMovement input.UserInputType == .UserInputType.Touch)
()
)
(UserInputService.InputEnded, (input) (input) drag = )
open =
(header.MouseButton1Click, ()
open = open
(row, , { Size = .(, , , open ) })
)
()
BindListening =
Handles = {}
(b)
b == b == .KeyCode.Unknown ()
b.Name
(page, text, tbl, key)
row = (, { Size = .(, , , ), BackgroundColor3 = Theme.Element }, page)
(row, )
(, {
BackgroundTransparency = , Position = .(, ), Size = .(, -, , ),
Font = .Font.GothamMedium, LocKey = text, TextColor3 = Theme.Text, TextSize = ,
TextXAlignment = .TextXAlignment.Left,
}, row)
btn = (, {
AnchorPoint = .(, ), Position = .(, -, , ), Size = .(, ),
BackgroundColor3 = Theme.Stroke, AutoButtonColor = , Font = .Font.GothamBold,
TextColor3 = Theme.Text, TextSize = , Text = ,
}, row)
(btn, )
listening =
()
btn.Text = listening () (tbl[key])
.(LocRefresh, render)
()
(btn.MouseButton1Click, ()
listening =
BindListening =
()
(btn, , { BackgroundColor3 = Theme.Accent })
)
(UserInputService.InputBegan, (input)
listening
v
input.UserInputType == .UserInputType.Keyboard
input.KeyCode == .KeyCode.Escape input.KeyCode == .KeyCode.Backspace
v = .KeyCode.Unknown
v = input.KeyCode
input.UserInputType == .UserInputType.MouseButton2 input.UserInputType == .UserInputType.MouseButton3
v = input.UserInputType
tbl[key] = v
listening =
.(, () BindListening = )
()
(btn, , { BackgroundColor3 = Theme.Stroke })
()
)
(page, text, color, callback)
b = (, {
Size = .(, , , ), BackgroundColor3 = color Theme.Accent,
Font = .Font.GothamBold, LocKey = text, TextColor3 = .(, , ), TextSize = ,
}, page)
(b, )
(b.MouseButton1Click, callback)
b
AimPage = (, , )
SilentPage = (, , )
VisualsPage = (, , )
ChamsPage = (, , )
ExtrasPage = (, , )
PlayerPage = (, , )
MiscPage = (, , )
(AimPage, )
(AimPage, , Settings.Aimbot.Enabled, (v) Settings.Aimbot.Enabled = v )
(AimPage, , {
{ Label = , Value = .UserInputType.MouseButton1 },
{ Label = , Value = .UserInputType.MouseButton2 },
}, , (v) Settings.Aimbot.Key = v , Settings.Aimbot.Key)
(AimPage, , {
{ Label = , Value = },
{ Label = , Value = },
{ Label = , Value = },
}, , (v) Settings.Aimbot.TargetPart = v , Settings.Aimbot.TargetPart)
(AimPage, )
(AimPage, , Settings.Aimbot.ShowFOV, (v) Settings.Aimbot.ShowFOV = v )
(AimPage, , , , Settings.Aimbot.FOV, , , (v) Settings.Aimbot.FOV = v )
(AimPage, , , , Settings.Aimbot.Smoothness, , , (v) Settings.Aimbot.Smoothness = v )
(AimPage, )
(AimPage, , Settings.Aimbot.TeamCheck, (v) Settings.Aimbot.TeamCheck = v )
(AimPage, , Settings.Aimbot.WallCheck, (v) Settings.Aimbot.WallCheck = v )
E = Settings.ESP
(VisualsPage, )
(VisualsPage, , E.Enabled, (v) E.Enabled = v )
(VisualsPage, , , , E.MaxDistance, , , (v) E.MaxDistance = v )
(VisualsPage, , E.TeamCheck, (v) E.TeamCheck = v )
(VisualsPage, , E.TeamColors, (v) E.TeamColors = v )
(VisualsPage, )
(VisualsPage, , E.Box, (v) E.Box = v )
(VisualsPage, , {
{ Label = , Value = },
{ Label = , Value = },
}, , (v) E.BoxStyle = v , E.BoxStyle)
(VisualsPage, , E, , )
(VisualsPage, , , , E.BoxThickness, , , (v) E.BoxThickness = v )
(VisualsPage, , E.BoxOutline, (v) E.BoxOutline = v )
(VisualsPage, , E.BoxFill, (v) E.BoxFill = v )
(VisualsPage, , E, )
(VisualsPage, , , , E.BoxFillAlpha, , , (v) E.BoxFillAlpha = v )
(VisualsPage, )
(VisualsPage, , E.HealthBar, (v) E.HealthBar = v )
(VisualsPage, , {
{ Label = , Value = },
{ Label = , Value = },
{ Label = , Value = },
}, , (v) E.HealthStyle = v , E.HealthStyle)
(VisualsPage, , {
{ Label = , Value = },
{ Label = , Value = },
}, , (v) E.HealthSide = v , E.HealthSide)
(VisualsPage, , E, )
(VisualsPage, , E, )
(VisualsPage, , , , E.HealthWidth, , , (v) E.HealthWidth = v )
(VisualsPage, , E.HealthText, (v) E.HealthText = v )
(VisualsPage, )
(VisualsPage, , E.Names, (v) E.Names = v )
(VisualsPage, , E, )
(VisualsPage, , E.Distance, (v) E.Distance = v )
(VisualsPage, , E, )
(VisualsPage, , E.Weapon, (v) E.Weapon = v )
(VisualsPage, , E, )
(VisualsPage, , , , E.TextSize, , , (v) E.TextSize = v )
(VisualsPage, )
(VisualsPage, , E.Snaplines, (v) E.Snaplines = v )
(VisualsPage, , {
{ Label = , Value = },
{ Label = , Value = },
{ Label = , Value = },
}, , (v) E.SnapOrigin = v , E.SnapOrigin)
(VisualsPage, , E, )
(VisualsPage, , , , E.SnapThickness, , , (v) E.SnapThickness = v )
(ChamsPage, )
(ChamsPage, , E.Chams, (v) E.Chams = v )
(ChamsPage, , E, , )
(ChamsPage, , E, )
(ChamsPage, , , , E.ChamsFillTrans, , , (v) E.ChamsFillTrans = v )
(ChamsPage, , , , E.ChamsOutlineTrans, , , (v) E.ChamsOutlineTrans = v )
(ChamsPage, )
(ChamsPage, , E.ChamsThroughWalls, (v) E.ChamsThroughWalls = v )
(ChamsPage, , E.ChamsVisCheck, (v) E.ChamsVisCheck = v )
(ChamsPage, , E, )
(ChamsPage, , E.ChamsPulse, (v) E.ChamsPulse = v )
T = Settings.Tracer
(ExtrasPage, )
(ExtrasPage, , T.Enabled, (v) T.Enabled = v )
(ExtrasPage, , T, , )
(ExtrasPage, , T, )
(ExtrasPage, , , , T.Thickness, , , (v) T.Thickness = v )
(ExtrasPage, , , , T.Glow, , , (v) T.Glow = v )
(ExtrasPage, , T.Core, (v) T.Core = v )
(ExtrasPage, , , , T.Lifetime, , , (v) T.Lifetime = v )
(ExtrasPage, , , , T.Interval, , , (v) T.Interval = v )
(ExtrasPage, , {
{ Label = , Value = },
{ Label = , Value = },
{ Label = , Value = },
}, , (v) T.Origin = v , T.Origin)
(ExtrasPage, , T.Impact, (v) T.Impact = v )
(ExtrasPage, , T.ImpactLight, (v) T.ImpactLight = v )
(ExtrasPage, , T.OnlyTool, (v) T.OnlyTool = v )
C = Settings.Crosshair
(ExtrasPage, )
(ExtrasPage, , C.Enabled, (v) C.Enabled = v )
(ExtrasPage, , C, , )
(ExtrasPage, , , , C.Size, , , (v) C.Size = v )
(ExtrasPage, , , , C.Gap, , , (v) C.Gap = v )
(ExtrasPage, , , , C.Thickness, , , (v) C.Thickness = v )
(ExtrasPage, , C.Dot, (v) C.Dot = v )
(ExtrasPage, , C.Outline, (v) C.Outline = v )
(ExtrasPage, , C.Spin, (v) C.Spin = v )
(ExtrasPage, , , , C.SpinSpeed, , , (v) C.SpinSpeed = v )
(ExtrasPage, , C.FollowMouse, (v) C.FollowMouse = v )
F = Settings.FOVStyle
(ExtrasPage, )
(ExtrasPage, , F.UseTheme, (v) F.UseTheme = v )
(ExtrasPage, , F, )
(ExtrasPage, , F, )
(ExtrasPage, , F, )
(ExtrasPage, , , , F.Thickness, , , (v) F.Thickness = v )
(ExtrasPage, , F.Fill, (v) F.Fill = v )
(ExtrasPage, , , , F.FillTrans, , , (v) F.FillTrans = v )
(ExtrasPage, , Settings.Aimbot.TargetDot, (v) Settings.Aimbot.TargetDot = v end)
Slider(ExtrasPage, "Размер точки", 4, 24, Settings.Aimbot.DotSize, 1, " px", function(v) Settings.Aimbot.DotSize = v end)
local R = Settings.Radar
Section(ExtrasPage, "Радар")
Toggle(ExtrasPage, "Мини-радар", R.Enabled, function(v) R.Enabled = v end)
Slider(ExtrasPage, "Дальность", 50, 500, R.Range, 10, " st", function(v) R.Range = v end)
Slider(ExtrasPage, "Размер", 100, 260, R.Size, 10, " px", function(v) R.Size = v end)
Slider(ExtrasPage, "Размер точек", 3, 10, R.DotSize, 1, " px", function(v) R.DotSize = v end)
ColorPicker(ExtrasPage, "Цвет врагов", R, "EnemyColor")
ColorPicker(ExtrasPage, "Цвет команды", R, "TeamColor")
-- SILENT AIM
Section(SilentPage, "Silent Aim")
Toggle(SilentPage, "Silent Aim включён", Settings.Silent.Enabled, function(v) Settings.Silent.Enabled = v end)
HookStatusLabel = New("TextLabel", {
Size = UDim2.new(1, 0, 0, 30),
BackgroundColor3 = Theme.Element,
Font = Enum.Font.GothamMedium,
LocKey = " Хуки: проверка…",
TextColor3 = Theme.SubText,
TextSize = 12,
TextXAlignment = Enum.TextXAlignment.Left,
}, SilentPage)
Corner(HookStatusLabel, 8)
Section(SilentPage, "Куда стрелять")
Selector(SilentPage, "Часть тела", {
{ Label = "Голова", Value = "Head" },
{ Label = "Торс", Value = "UpperTorso" },
{ Label = "Корпус", Value = "HumanoidRootPart" },
{ Label = "Random", Value = "Random" },
}, 1, function(v) Settings.Silent.Part = v end, Settings.Silent.Part)
Slider(SilentPage, "Шанс попадания", 1, 100, Settings.Silent.HitChance, 1, " %", function(v) Settings.Silent.HitChance = v end)
Section(SilentPage, "FOV и визуалы")
Slider(SilentPage, "Радиус FOV", 20, 800, Settings.Silent.FOV, 5, " px", function(v) Settings.Silent.FOV = v end)
Toggle(SilentPage, "Показывать круг FOV", Settings.Silent.ShowFOV, function(v) Settings.Silent.ShowFOV = v end)
Toggle(SilentPage, "Точка и имя цели", Settings.Silent.ShowDot, function(v) Settings.Silent.ShowDot = v end)
Section(SilentPage, "Проверки")
Toggle(SilentPage, "Не целиться в команду", Settings.Silent.TeamCheck, function(v) Settings.Silent.TeamCheck = v end)
Toggle(SilentPage, "Не стрелять через стены", Settings.Silent.WallCheck, function(v) Settings.Silent.WallCheck = v end)
Section(SilentPage, "Методы перехвата (зависит от игры)")
Toggle(SilentPage, "Workspace:Raycast", Settings.Silent.MRaycast, function(v) Settings.Silent.MRaycast = v end)
Toggle(SilentPage, "Workspace:FindPartOnRay*", Settings.Silent.MFindPart, function(v) Settings.Silent.MFindPart = v end)
Toggle(SilentPage, "Camera:Screen/ViewportPointToRay", Settings.Silent.MScreenRay, function(v) Settings.Silent.MScreenRay = v end)
Toggle(SilentPage, "Mouse.Hit / Mouse.Target", Settings.Silent.MMouse, function(v) Settings.Silent.MMouse = v end)
-- PLAYER (универсальные функции)
local PL = Settings.Player
local TP3 = Settings.Third
Section(PlayerPage, "Бхоп (Bhop)")
Handles.Bhop = Toggle(PlayerPage, "Bhop включён", PL.Bhop, function(v) PL.Bhop = v end)
Keybind(PlayerPage, "Клавиша бхопа (удержание)", PL, "BhopKey")
Keybind(PlayerPage, "Бинд вкл/выкл бхопа", PL, "BhopToggleKey")
Selector(PlayerPage, "Режим бхопа", {
{ Label = "Удержание", Value = "Hold" },
{ Label = "Всегда", Value = "Always" },
}, 1, function(v) PL.BhopMode = v end, PL.BhopMode)
Slider(PlayerPage, "Ускорение в воздухе", 0, 60, PL.BhopBoost, 5, " %", function(v) PL.BhopBoost = v end)
Section(PlayerPage, "Вид от 3-го лица")
Handles.Third = Toggle(PlayerPage, "3-е лицо включено", TP3.Enabled, function(v) TP3.Enabled = v end)
Keybind(PlayerPage, "Бинд переключения", TP3, "Key")
Slider(PlayerPage, "Дистанция камеры", 3, 40, TP3.Distance, 1, " st", function(v) TP3.Distance = v end)
Slider(PlayerPage, "Смещение вбок", -6, 6, TP3.ShoulderX, 0.5, "", function(v) TP3.ShoulderX = v end)
Slider(PlayerPage, "Высота камеры", -3, 6, TP3.Height, 0.5, "", function(v) TP3.Height = v end)
Toggle(PlayerPage, "Не проходить сквозь стены", TP3.Collision, function(v) TP3.Collision = v end)
Toggle(PlayerPage, "Показывать своё тело", TP3.ShowBody, function(v) TP3.ShowBody = v end)
Toggle(PlayerPage, "Плавное движение", TP3.Smooth, function(v) TP3.Smooth = v end)
Toggle(PlayerPage, "Форсировать (игры с 1-м лицом)", TP3.ForceMode, function(v) TP3.ForceMode = v end)
Section(PlayerPage, "Движение")
Toggle(PlayerPage, "Изменить скорость", PL.Speed, function(v) PL.Speed = v end)
Slider(PlayerPage, "Скорость ходьбы", 16, 200, PL.SpeedValue, 2, "", function(v) PL.SpeedValue = v end)
Toggle(PlayerPage, "Изменить прыжок", PL.Jump, function(v) PL.Jump = v end)
Slider(PlayerPage, "Сила прыжка", 50, 250, PL.JumpValue, 5, "", function(v) PL.JumpValue = v end)
Toggle(PlayerPage, "Бесконечный прыжок", PL.InfJump, function(v) PL.InfJump = v end)
Handles.Noclip = Toggle(PlayerPage, "Noclip (сквозь стены)", PL.Noclip, function(v) PL.Noclip = v end)
Keybind(PlayerPage, "Бинд Noclip", PL, "NoclipKey")
Handles.Fly = Toggle(PlayerPage, "Полёт (Fly)", PL.Fly, function(v) PL.Fly = v end)
Keybind(PlayerPage, "Бинд полёта", PL, "FlyKey")
Slider(PlayerPage, "Скорость полёта", 10, 250, PL.FlySpeed, 5, "", function(v) PL.FlySpeed = v end)
Section(PlayerPage, "Мир и камера")
Toggle(PlayerPage, "Fullbright (без темноты)", PL.Fullbright, function(v) PL.Fullbright = v end)
Toggle(PlayerPage, "Убрать туман", PL.NoFog, function(v) PL.NoFog = v end)
Toggle(PlayerPage, "Свой FOV камеры", PL.FOVEnabled, function(v) PL.FOVEnabled = v end)
Slider(PlayerPage, "FOV камеры", 40, 120, PL.FOVValue, 1, "", function(v) PL.FOVValue = v end)
Toggle(PlayerPage, "Анти-АФК", PL.AntiAFK, function(v) PL.AntiAFK = v end)
Button(PlayerPage, "Перезайти на сервер", Theme.Accent2, function()
pcall(function() game:GetService("TeleportService"):Teleport(game.PlaceId, LocalPlayer) end)
end)
-- MISC
Section(MiscPage, "Язык меню")
Selector(MiscPage, "Язык", {
{ Label = "Русский", Value = "RU" },
{ Label = "English", Value = "EN" },
}, 1, function(v) SetLanguage(v) end, Settings.UI.Language)
Toggle(MiscPage, "Водяной знак (FPS / пинг)", Settings.UI.Watermark, function(v) Settings.UI.Watermark = v end)
Section(MiscPage, "Стиль меню")
do
local grid = New("Frame", {
Size = UDim2.new(1, 0, 0, 136),
BackgroundTransparency = 1,
}, MiscPage)
New("UIGridLayout", {
CellSize = UDim2.new(0.5, -4, 0, 40),
CellPadding = UDim2.fromOffset(8, 8),
SortOrder = Enum.SortOrder.LayoutOrder,
}, grid)
local cards = {}
for i, name in ipairs(ThemeOrder) do
local t = Themes[name]
local btn = New("TextButton", {
BackgroundColor3 = Theme.Element,
AutoButtonColor = false,
Font = Enum.Font.GothamMedium,
Text = "",
LayoutOrder = i,
}, grid)
Corner(btn, 8)
local st = Stroke(btn, Theme.Stroke, 1)
New("TextLabel", {
BackgroundTransparency = 1,
Position = UDim2.fromOffset(12, 0),
Size = UDim2.new(1, -60, 1, 0),
Font = Enum.Font.GothamMedium,
Text = t.Display,
TextColor3 = Theme.Text,
TextSize = 12,
TextXAlignment = Enum.TextXAlignment.Left,
}, btn)
for k, col in ipairs({ t.Accent, t.Accent2 }) do
local sw = New("Frame", {
AnchorPoint = Vector2.new(1, 0.5),
Position = UDim2.new(1, -10 - (2 - k) * 18, 0.5, 0),
Size = UDim2.fromOffset(14, 14),
BackgroundColor3 = col,
}, btn)
Corner(sw, 7)
sw:SetAttribute("NoTheme", true)
end
cards[name] = { Button = btn, Stroke = st }
Connect(btn.MouseButton1Click, function() ApplyTheme(name) end)
end
RefreshThemeCards = function()
for name, c in pairs(cards) do
local sel = (Settings.UI.Style == name)
c.Stroke.Color = sel and Theme.Accent or Theme.Stroke
c.Stroke.Thickness = sel and 2 or 1
c.Button.BackgroundColor3 = sel and Theme.ElementHi or Theme.Element
end
end
end
Section(MiscPage, "Меню")
local infoLabel = New("TextLabel", {
Size = UDim2.new(1, 0, 0, 50),
BackgroundColor3 = Theme.Element,
Font = Enum.Font.Gotham,
LocKey = " Right Shift — открыть / закрыть меню\n Заголовок можно перетаскивать мышью",
TextColor3 = Theme.SubText,
TextSize = 12,
TextXAlignment = Enum.TextXAlignment.Left,
}, MiscPage)
Corner(infoLabel, 8)
Section(MiscPage, "Конфиг")
local cfgBtn = New("TextButton", {
Size = UDim2.new(1, 0, 0, 38),
BackgroundColor3 = Theme.Accent,
Font = Enum.Font.GothamBold,
LocKey = CanFS and "Сохранить конфиг" or "Конфиг недоступен (нет writefile)",
TextColor3 = Color3.new(1, 1, 1),
TextSize = 13,
}, MiscPage)
Corner(cfgBtn, 8)
Connect(cfgBtn.MouseButton1Click, function()
local ok = SaveConfigNow()
Reg(cfgBtn, "Text", ok and "✔ Сохранено" or "✖ Не удалось сохранить")
task.delay(1.5, function()
if cfgBtn.Parent then Reg(cfgBtn, "Text", CanFS and "Сохранить конфиг" or "Конфиг недоступен (нет writefile)") end
end)
end)
local unloadBtn = New("TextButton", {
Size = UDim2.new(1, 0, 0, 38),
BackgroundColor3 = Color3.fromRGB(190, 55, 75),
AutoButtonColor = true,
Font = Enum.Font.GothamBold,
LocKey = "Выгрузить скрипт",
TextColor3 = Color3.new(1, 1, 1),
TextSize = 13,
}, MiscPage)
Corner(unloadBtn, 8)
SelectTab("Aim")
local function ClassifyFont(f)
if f == Enum.Font.GothamBold then return "Bold" end
if f == Enum.Font.GothamMedium then return "Medium" end
return "Regular"
end
ApplyTheme = function(name)
local new = Themes[name]
if not new then return end
-- карта «старый цвет роли → новый цвет роли»
local map = {}
for _, role in ipairs(THEME_ROLES) do
local hex = Theme[role]:ToHex()
if map[hex] == nil then map[hex] = new[role] end
end
local function mc(c) return map[c:ToHex()] or c end
for _, d in ipairs(ScreenGui:GetDescendants()) do
if not d:GetAttribute("NoTheme") and not d:IsDescendantOf(ESPLayer) then
if d:IsA("GuiObject") then
d.BackgroundColor3 = mc(d.BackgroundColor3)
end
if d:IsA("TextLabel") or d:IsA("TextButton") then
d.TextColor3 = mc(d.TextColor3)
local w = d:GetAttribute("FW")
if not w then
w = ClassifyFont(d.Font)
d:SetAttribute("FW", w)
end
d.Font = new.Fonts[w]
end
if d:IsA("ScrollingFrame") then
d.ScrollBarImageColor3 = mc(d.ScrollBarImageColor3)
elseif d:IsA("UIStroke") then
d.Color = mc(d.Color)
elseif d:IsA("UIGradient") then
local keys = {}
for _, k in ipairs(d.Color.Keypoints) do
table.insert(keys, ColorSequenceKeypoint.new(k.Time, mc(k.Value)))
end
d.Color = ColorSequence.new(keys)
elseif d:IsA("UICorner") then
local base = d:GetAttribute("R0")
if not base then
base = d.CornerRadius.Offset
d:SetAttribute("R0", base)
end
if base > 0 and base < 100 then
d.CornerRadius = UDim.new(0, math.max(2, math.floor(base * new.Radius + 0.5)))
end
end
end
end
for _, role in ipairs(THEME_ROLES) do Theme[role] = new[role] end
Settings.UI.Style = name
TitleLabel.Text = new.Title
Reg(HintLabel, "Text", new.Hint)
for tabName, t in pairs(Tabs) do
t.Button.Text = (new.Icons[tabName] or "•") .. " " .. TabName(tabName)
end
RefreshThemeCards()
RequestSave()
end
ApplyTheme(Settings.UI.Style)
if not Themes[Settings.UI.Style] then
Settings.UI.Style = "Default"
ApplyTheme("Default")
end
ConfigLoaded = true
RequestSave()
-- ==================== ОТКРЫТИЕ / ЗАКРЫТИЕ (RIGHT SHIFT) ====================
local menuOpen = true
local function SetMenu(open)
menuOpen = open
if open then
Main.Visible = true
MainScale.Scale = 0.9
Tween(MainScale, 0.25, { Scale = 1 }, Enum.EasingStyle.Back)
else
Tween(MainScale, 0.18, { Scale = 0.9 })
task.delay(0.18, function()
if not menuOpen then Main.Visible = false end
end)
end
end
SetMenu(true)
Connect(UserInputService.InputBegan, function(input)
if input.KeyCode == Enum.KeyCode.RightShift and not BindListening and not UserInputService:GetFocusedTextBox() then
SetMenu(not menuOpen)
end
end)
-- ==================== РАДАР ====================
local RADAR_SIZE = 160
local Radar = New("Frame", {
Name = "Radar",
AnchorPoint = Vector2.new(0, 1),
Position = UDim2.new(0, 20, 1, -20),
Size = UDim2.fromOffset(RADAR_SIZE, RADAR_SIZE),
BackgroundColor3 = Theme.Background,
BackgroundTransparency = 0.25,
Visible = false,
}, ScreenGui)
Corner(Radar, 1000)
Stroke(Radar, Theme.Accent, 1.5, 0.2)
New("Frame", { -- перекрестие
AnchorPoint = Vector2.new(0.5, 0.5), Position = UDim2.fromScale(0.5, 0.5),
Size = UDim2.new(1, 0, 0, 1), BackgroundColor3 = Theme.Stroke, BorderSizePixel = 0,
}, Radar)
New("Frame", {
AnchorPoint = Vector2.new(0.5, 0.5), Position = UDim2.fromScale(0.5, 0.5),
Size = UDim2.new(0, 1, 1, 0), BackgroundColor3 = Theme.Stroke, BorderSizePixel = 0,
}, Radar)
local selfDot = New("Frame", {
AnchorPoint = Vector2.new(0.5, 0.5), Position = UDim2.fromScale(0.5, 0.5),
Size = UDim2.fromOffset(7, 7), BackgroundColor3 = Color3.new(1, 1, 1), ZIndex = 3,
}, Radar)
Corner(selfDot, 4)
local radarDots = {}
-- ==================== ОБЩИЕ ХЕЛПЕРЫ ВИЗУАЛОВ ====================
local IsVisible -- определяется в секции AIM
local function Rainbow(offset)
return Color3.fromHSV(((os.clock() * 0.25) + (offset or 0)) % 1, 0.85, 1)
end
local function ColorOf(tbl, key, rkey, offset)
if rkey and tbl[rkey] then return Rainbow(offset) end
return tbl[key]
end
local function IsTeammate(player)
return LocalPlayer.Team ~= nil and player.Team == LocalPlayer.Team
end
-- ==================== 2D ESP ====================
local ESPData = {}
local BLACK = Color3.new(0, 0, 0)
local WHITE = Color3.new(1, 1, 1)
local function MakeText(parent)
return New("TextLabel", {
BackgroundTransparency = 1,
Size = UDim2.fromOffset(220, 14),
Font = Enum.Font.GothamBold,
Text = "",
TextSize = 13,
TextColor3 = WHITE,
TextStrokeTransparency = 0,
TextStrokeColor3 = BLACK,
Visible = false,
ZIndex = 6,
}, parent)
end
local function MakeESP()
local o = {}
o.Root = New("Frame", { BackgroundTransparency = 1, BorderSizePixel = 0, Visible = false }, ESPLayer)
o.Fill = New("Frame", { Size = UDim2.fromScale(1, 1), BackgroundColor3 = WHITE, BorderSizePixel = 0, Visible = false }, o.Root)
o.Outline = New("Frame", { Size = UDim2.fromScale(1, 1), BackgroundTransparency = 1, BorderSizePixel = 0, Visible = false, ZIndex = 1 }, o.Root)
o.OutlineStroke = Stroke(o.Outline, BLACK, 3, 0)
o.Box = New("Frame", { Size = UDim2.fromScale(1, 1), BackgroundTransparency = 1, BorderSizePixel = 0, Visible = false, ZIndex = 2 }, o.Root)
o.BoxStroke = Stroke(o.Box, WHITE, 1.5, 0)
o.Corners = {}
for i = 1, 8 do
o.Corners[i] = New("Frame", { BorderSizePixel = 0, BackgroundColor3 = WHITE, Visible = false, ZIndex = 3 }, o.Root)
end
o.HPBack = New("Frame", { BackgroundColor3 = Color3.fromRGB(12, 12, 12), BorderSizePixel = 0, Visible = false, ZIndex = 2 }, o.Root)
Stroke(o.HPBack, BLACK, 1, 0)
o.HPFill = New("Frame", { AnchorPoint = Vector2.new(0, 1), BorderSizePixel = 0, BackgroundColor3 = WHITE, ZIndex = 3 }, o.HPBack)
o.HPGrad = New("UIGradient", { Rotation = 90 }, o.HPFill)
o.HPText = MakeText(o.Root)
o.HPText.Size = UDim2.fromOffset(30, 12)
o.Name = MakeText(o.Root)
o.Dist = MakeText(o.Root)
o.Weapon = MakeText(o.Root)
o.Snap = New("Frame", { AnchorPoint = Vector2.new(0.5, 0.5), BorderSizePixel = 0, BackgroundColor3 = WHITE, Visible = false }, ESPLayer)
return o
end
local function HideESP(o)
o.Root.Visible = false
o.Snap.Visible = false
if o.Highlight then
o.Highlight:Destroy()
o.Highlight = nil
end
end
local function RemoveESP(player)
local o = ESPData[player]
if o then
if o.Highlight then o.Highlight:Destroy() end
o.Root:Destroy()
o.Snap:Destroy()
ESPData[player] = nil
end
if radarDots[player] then
radarDots[player]:Destroy()
radarDots[player] = nil
end
end
local function DrawPlayer(player, o, char, hum, root, head, dist, now, viewport, mouse)
local E = Settings.ESP
local topP = Camera:WorldToViewportPoint(head.Position + Vector3.new(0, head.Size.Y / 2 + 0.2, 0))
local botP = Camera:WorldToViewportPoint(root.Position - Vector3.new(0, 3, 0))
if topP.Z <= 0 or botP.Z <= 0 then
o.Root.Visible = false
o.Snap.Visible = false
return
end
local hF = math.abs(botP.Y - topP.Y)
if hF < 4 then
o.Root.Visible = false
o.Snap.Visible = false
return
end
local h = math.floor(hF)
local w = math.floor(hF * 0.55)
local cx = (topP.X + botP.X) / 2
o.Root.Position = UDim2.fromOffset(math.floor(cx - w / 2), math.floor(math.min(topP.Y, botP.Y)))
o.Root.Size = UDim2.fromOffset(w, h)
o.Root.Visible = true
local tc = (E.TeamColors and player.Team) and player.TeamColor.Color or nil
-- Бокс
local boxCol = tc or ColorOf(E, "BoxColor", "BoxRainbow", 0)
local bt = E.BoxThickness
local full = E.Box and E.BoxStyle == "Full"
local corner = E.Box and E.BoxStyle == "Corner"
o.Fill.Visible = E.Box and E.BoxFill
if o.Fill.Visible then
o.Fill.BackgroundColor3 = E.BoxFillColor
o.Fill.BackgroundTransparency = E.BoxFillAlpha
end
o.Box.Visible = full
o.Outline.Visible = full and E.BoxOutline
if full then
o.BoxStroke.Color = boxCol
o.BoxStroke.Thickness = bt
o.OutlineStroke.Thickness = bt + 2
end
for i = 1, 8 do o.Corners[i].Visible = corner end
if corner then
local L = math.max(4, math.floor(math.min(w, h) * 0.28))
local t = math.max(1, math.floor(bt + 0.5))
local specs = {
{ 0, 0, L, t }, { 0, 0, t, L },
{ w - L, 0, L, t }, { w - t, 0, t, L },
{ 0, h - t, L, t }, { 0, h - L, t, L },
{ w - L, h - t, L, t }, { w - t, h - L, t, L },
}
for i, sp in ipairs(specs) do
local f = o.Corners[i]
f.Position = UDim2.fromOffset(sp[1], sp[2])
f.Size = UDim2.fromOffset(sp[3], sp[4])
f.BackgroundColor3 = boxCol
end
end
local pad = ((full and bt or 1) + 3)
-- Полоса здоровья (вертикальная)
if E.HealthBar then
local pct = math.clamp(hum.Health / math.max(hum.MaxHealth, 1), 0, 1)
local bw = E.HealthWidth
o.HPBack.Visible = true
o.HPBack.Size = UDim2.new(0, bw, 1, 0)
if E.HealthSide == "Left" then
o.HPBack.Position = UDim2.new(0, -(bw + pad), 0, 0)
else
o.HPBack.Position = UDim2.new(1, pad, 0, 0)
end
o.HPFill.Position = UDim2.new(0, 0, 1, 0)
o.HPFill.Size = UDim2.new(1, 0, pct, 0)
local hi, lo = E.HealthHigh, E.HealthLow
if E.HealthStyle == "Gradient" then
o.HPFill.BackgroundColor3 = WHITE
o.HPGrad.Enabled = true
o.HPGrad.Color = ColorSequence.new(lo:Lerp(hi, pct), lo)
elseif E.HealthStyle == "Health" then
o.HPGrad.Enabled = false
o.HPFill.BackgroundColor3 = lo:Lerp(hi, pct)
else
o.HPGrad.Enabled = false
o.HPFill.BackgroundColor3 = hi
end
if E.HealthText then
o.HPText.Visible = true
o.HPText.TextSize = 10
o.HPText.Text = tostring(math.floor(hum.Health))
if E.HealthSide == "Left" then
o.HPText.AnchorPoint = Vector2.new(1, 0.5)
o.HPText.Position = UDim2.new(0, -(bw + pad + 3), 1 - pct, 0)
o.HPText.TextXAlignment = Enum.TextXAlignment.Right
else
o.HPText.AnchorPoint = Vector2.new(0, 0.5)
o.HPText.Position = UDim2.new(1, bw + pad + 3, 1 - pct, 0)
o.HPText.TextXAlignment = Enum.TextXAlignment.Left
end
else
o.HPText.Visible = false
end
else
o.HPBack.Visible = false
o.HPText.Visible = false
end
-- Текст
local ts = E.TextSize
if E.Names then
o.Name.Visible = true
o.Name.TextSize = ts
o.Name.Size = UDim2.fromOffset(220, ts + 2)
o.Name.AnchorPoint = Vector2.new(0.5, 1)
o.Name.Position = UDim2.new(0.5, 0, 0, -pad)
o.Name.Text = player.DisplayName
o.Name.TextColor3 = E.NameColor
else
o.Name.Visible = false
end
local belowY = pad
if E.Distance then
o.Dist.Visible = true
o.Dist.TextSize = ts
o.Dist.Size = UDim2.fromOffset(220, ts + 2)
o.Dist.AnchorPoint = Vector2.new(0.5, 0)
o.Dist.Position = UDim2.new(0.5, 0, 1, belowY)
o.Dist.Text = string.format("%d st", dist)
o.Dist.TextColor3 = E.DistanceColor
belowY = belowY + ts + 1
else
o.Dist.Visible = false
end
if E.Weapon then
local tool = char:FindFirstChildOfClass("Tool")
o.Weapon.Visible = true
o.Weapon.TextSize = ts
o.Weapon.Size = UDim2.fromOffset(220, ts + 2)
o.Weapon.AnchorPoint = Vector2.new(0.5, 0)
o.Weapon.Position = UDim2.new(0.5, 0, 1, belowY)
o.Weapon.Text = tool and tool.Name or "Hands"
o.Weapon.TextColor3 = E.WeaponColor
else
o.Weapon.Visible = false
end
-- Линия к игроку
if E.Snaplines then
local origin
if E.SnapOrigin == "Bottom" then
origin = Vector2.new(viewport.X / 2, viewport.Y)
elseif E.SnapOrigin == "Center" then
origin = viewport / 2
else
origin = mouse
end
local target = Vector2.new(cx, math.max(topP.Y, botP.Y))
local delta = target - origin
local mid = (origin + target) / 2
o.Snap.Visible = true
o.Snap.Position = UDim2.fromOffset(mid.X, mid.Y)
o.Snap.Size = UDim2.fromOffset(delta.Magnitude, E.SnapThickness)
o.Snap.Rotation = math.deg(math.atan2(delta.Y, delta.X))
o.Snap.BackgroundColor3 = tc or E.SnapColor
else
o.Snap.Visible = false
end
-- Chams
if E.Chams then
if not o.Highlight or o.Highlight.Parent ~= char then
if o.Highlight then o.Highlight:Destroy() end
o.Highlight = New("Highlight", { Adornee = char }, char)
end
local hl = o.Highlight
local fillCol = E.ChamsFill
if E.ChamsVisCheck then
if now - (o.VisAt or 0) > 0.1 then
o.VisAt = now
o.Visible = IsVisible(head, char)
end
fillCol = o.Visible and E.ChamsFill or E.ChamsHidden
end
local outCol = E.ChamsOutline
if E.ChamsRainbow then
fillCol = Rainbow(0)
outCol = Rainbow(0.5)
end
if tc then fillCol = tc end
local pulse = E.ChamsPulse and (0.5 + 0.5 * math.sin(now * 3)) * 0.3 or 0
hl.FillColor = fillCol
hl.OutlineColor = outCol
hl.FillTransparency = math.clamp(E.ChamsFillTrans + pulse, 0, 1)
hl.OutlineTransparency = E.ChamsOutlineTrans
hl.DepthMode = E.ChamsThroughWalls and Enum.HighlightDepthMode.AlwaysOnTop or Enum.HighlightDepthMode.Occluded
hl.Enabled = true
elseif o.Highlight then
o.Highlight:Destroy()
o.Highlight = nil
end
end
local function UpdateESP()
local E = Settings.ESP
local now = os.clock()
local myChar = LocalPlayer.Character
local myRoot = myChar and myChar:FindFirstChild("HumanoidRootPart")
local viewport = Camera.ViewportSize
local mouse = UserInputService:GetMouseLocation()
local camPos = Camera.CFrame.Position
for _, player in ipairs(Players:GetPlayers()) do
if player ~= LocalPlayer then
local char = player.Character
local hum = char and char:FindFirstChildOfClass("Humanoid")
local root = char and char:FindFirstChild("HumanoidRootPart")
local head = char and char:FindFirstChild("Head")
local valid = false
local dist = 0
if E.Enabled and hum and root and head and hum.Health > 0 and not (E.TeamCheck and IsTeammate(player)) then
dist = ((myRoot and myRoot.Position or camPos) - root.Position).Magnitude
valid = dist <= E.MaxDistance
end
if valid then
local o = ESPData[player]
if not o then
o = MakeESP()
ESPData[player] = o
end
DrawPlayer(player, o, char, hum, root, head, dist, now, viewport, mouse)
elseif ESPData[player] then
HideESP(ESPData[player])
end
end
end
end
-- ==================== РАДАР ====================
local function UpdateRadar()
local R = Settings.Radar
Radar.Visible = R.Enabled
if not R.Enabled then return end
Radar.Size = UDim2.fromOffset(R.Size, R.Size)
local half = R.Size / 2
for _, player in ipairs(Players:GetPlayers()) do
if player ~= LocalPlayer then
local char = player.Character
local hum = char and char:FindFirstChildOfClass("Humanoid")
local root = char and char:FindFirstChild("HumanoidRootPart")
if hum and root and hum.Health > 0 then
local dot = radarDots[player]
if not dot then
dot = New("Frame", {
AnchorPoint = Vector2.new(0.5, 0.5),
BackgroundColor3 = R.EnemyColor,
ZIndex = 2,
}, Radar)
Corner(dot, 100)
dot:SetAttribute("NoTheme", true)
radarDots[player] = dot
end
dot.Size = UDim2.fromOffset(R.DotSize, R.DotSize)
local rel = Camera.CFrame:PointToObjectSpace(root.Position)
local v = Vector2.new(rel.X, rel.Z) / R.Range * (half - 6)
if v.Magnitude > half - 6 then
v = v.Unit * (half - 6)
end
dot.Position = UDim2.new(0.5, v.X, 0.5, v.Y)
dot.BackgroundColor3 = IsTeammate(player) and R.TeamColor or R.EnemyColor
elseif radarDots[player] then
radarDots[player]:Destroy()
radarDots[player] = nil
end
end
end
end
-- ==================== AIM ====================
local rayParams = RaycastParams.new()
rayParams.FilterType = Enum.RaycastFilterType.Exclude
IsVisible = function(part, char)
local ignore = { LocalPlayer.Character, Camera }
local origin = Camera.CFrame.Position
local dir = part.Position - origin
for _ = 1, 8 do
rayParams.FilterDescendantsInstances = ignore
local result = Workspace:Raycast(origin, dir, rayParams)
if not result then return true end
local hit = result.Instance
if hit:IsDescendantOf(char) then return true end
-- прозрачные и непроходимые для коллизий детали не считаем стеной
if hit.Transparency >= 0.9 or not hit.CanCollide then
table.insert(ignore, hit)
else
return false
end
end
return false
end
local function ResolvePart(char, name)
local part = char:FindFirstChild(name)
if not part and name == "UpperTorso" then part = char:FindFirstChild("Torso") end
return part or char:FindFirstChild("HumanoidRootPart")
end
-- Ищет ближайшего к курсору игрока в радиусе fov (пиксели). Возвращает part, player
local function FindTarget(fov, partName, teamCheck, wallCheck)
local mousePos = UserInputService:GetMouseLocation()
local best, bestPlayer, bestDist = nil, nil, fov
for _, player in ipairs(Players:GetPlayers()) do
if player ~= LocalPlayer and player.Character and not (teamCheck and IsTeammate(player)) then
local char = player.Character
local hum = char:FindFirstChildOfClass("Humanoid")
local part = ResolvePart(char, partName)
if hum and hum.Health > 0 and part then
local sp, onScreen = Camera:WorldToViewportPoint(part.Position)
if onScreen then
local dist = (Vector2.new(sp.X, sp.Y) - mousePos).Magnitude
if dist < bestDist and (not wallCheck or IsVisible(part, char)) then
bestDist = dist
best = part
bestPlayer = player
end
end
end
end
end
return best, bestPlayer
end
local function GetTarget()
local part = FindTarget(Settings.Aimbot.FOV, Settings.Aimbot.TargetPart, Settings.Aimbot.TeamCheck, Settings.Aimbot.WallCheck)
return part
end
local function UpdateAim()
local holding = Settings.Aimbot.Enabled and UserInputService:IsMouseButtonPressed(Settings.Aimbot.Key)
-- Круг FOV
local showCircle = Settings.Aimbot.Enabled and Settings.Aimbot.ShowFOV
FOVCircle.Visible = showCircle
if showCircle then
local m = UserInputService:GetMouseLocation()
FOVCircle.Position = UDim2.fromOffset(m.X, m.Y)
FOVCircle.Size = UDim2.fromOffset(Settings.Aimbot.FOV * 2, Settings.Aimbot.FOV * 2)
local FS = Settings.FOVStyle
local base = FS.UseTheme and Theme.Accent or FS.AimColor
local hold = FS.UseTheme and Theme.Accent2 or FS.AimHold
FOVStroke.Color = holding and hold or base
FOVStroke.Thickness = FS.Thickness
FOVCircle.BackgroundColor3 = FOVStroke.Color
FOVCircle.BackgroundTransparency = FS.Fill and FS.FillTrans or 1
end
-- Цель (учитывает FOV, команду и стены)
local target = Settings.Aimbot.Enabled and GetTarget() or nil
-- Точка на цели
if target and Settings.Aimbot.TargetDot then
local sp, onScreen = Camera:WorldToViewportPoint(target.Position)
if onScreen then
local s = Settings.Aimbot.DotSize
TargetDot.Size = UDim2.fromOffset(s, s)
TargetDot.Position = UDim2.fromOffset(sp.X, sp.Y)
TargetDot.BackgroundColor3 = holding and Theme.Accent2 or Color3.new(1, 1, 1)
TargetDotStroke.Color = Theme.Accent
TargetDot.Visible = true
else
TargetDot.Visible = false
end
else
TargetDot.Visible = false
end
-- Наведение
if holding and target then
local alpha = math.clamp(1 / Settings.Aimbot.Smoothness, 0, 1)
Camera.CFrame = Camera.CFrame:Lerp(CFrame.new(Camera.CFrame.Position, target.Position), alpha)
end
end
-- ==================== SILENT AIM ====================
local PART_LABELS = { Head = "Head", UpperTorso = "Torso", HumanoidRootPart = "Root", Random = "Random" }
local function UpdateSilent()
local S = Settings.Silent
if not S.Enabled then
SilentCache = nil
SilentFOV.Visible = false
SilentDot.Visible = false
SilentLabel.Visible = false
return
end
local m = UserInputService:GetMouseLocation()
SilentFOV.Visible = S.ShowFOV
if S.ShowFOV then
SilentFOV.Position = UDim2.fromOffset(m.X, m.Y)
SilentFOV.Size = UDim2.fromOffset(S.FOV * 2, S.FOV * 2)
local FS = Settings.FOVStyle
SilentFOVStroke.Color = FS.UseTheme and Theme.Accent2 or FS.SilentColor
SilentFOVStroke.Thickness = FS.Thickness
SilentFOV.BackgroundColor3 = SilentFOVStroke.Color
SilentFOV.BackgroundTransparency = FS.Fill and FS.FillTrans or 1
end
local lookup = (S.Part == "Random") and "HumanoidRootPart" or S.Part
local part, player = FindTarget(S.FOV, lookup, S.TeamCheck, S.WallCheck)
if part and player and player.Character then
local char = player.Character
local root = char:FindFirstChild("HumanoidRootPart") or part
local cache = { Positions = {}, Parts = {} }
for _, key in ipairs(RANDOM_KEYS) do
local p = ResolvePart(char, key) or root
cache.Positions[key] = p.Position
cache.Parts[key] = p
end
SilentCache = cache
local sp, onScreen = Camera:WorldToViewportPoint(part.Position)
if S.ShowDot and onScreen then
local flash = (os.clock() - LastShot) < 0.2
local size = flash and 18 or 10
SilentDot.Size = UDim2.fromOffset(size, size)
SilentDot.Position = UDim2.fromOffset(sp.X, sp.Y)
SilentDot.BackgroundColor3 = flash and Color3.new(1, 1, 1) or Theme.Accent2
SilentDot.Visible = true
SilentLabel.Position = UDim2.fromOffset(sp.X, sp.Y + 14)
SilentLabel.Text = string.format("%s · %s · %d%%", player.DisplayName, PART_LABELS[S.Part] or S.Part, S.HitChance)
SilentLabel.Visible = true
else
SilentDot.Visible = false
SilentLabel.Visible = false
end
else
SilentCache = nil
SilentDot.Visible = false
SilentLabel.Visible = false
end
end
-- Возвращает позицию и часть, куда перенаправить выстрел (или nil)
local function SilentRoll()
local c = SilentCache
local S = Settings.Silent
if not Alive or not c or not S.Enabled then return nil end
if math.random(1, 100) > S.HitChance then return nil end
local key = S.Part
if key == "Random" then key = RANDOM_KEYS[math.random(1, #RANDOM_KEYS)] end
LastShot = os.clock()
LastShotPos = c.Positions[key]
LastShotId = LastShotId + 1
return c.Positions[key], c.Parts[key]
end
-- Хуки (внутри хуков не обращаемся к свойствам Instance — иначе рекурсия)
local MouseRef = LocalPlayer:GetMouse()
if HooksSupported then
local installed, err = pcall(function()
local oldNamecall
oldNamecall = hookmetamethod(game, "__namecall", newcclosure(function(self, ...)
local method = getnamecallmethod()
if Alive and SilentCache and not checkcaller() then
local S = Settings.Silent
if self == Workspace then
if method == "Raycast" and S.MRaycast then
local pos = SilentRoll()
if pos then
local args = table.pack(...)
local origin, dir = args[1], args[2]
if typeof(origin) == "Vector3" and typeof(dir) == "Vector3" then
args[2] = (pos - origin).Unit * dir.Magnitude
return oldNamecall(self, table.unpack(args, 1, args.n))
end
end
elseif S.MFindPart and (method == "FindPartOnRay" or method == "FindPartOnRayWithIgnoreList" or method == "FindPartOnRayWithWhitelist") then
local pos = SilentRoll()
if pos then
local args = table.pack(...)
local ray = args[1]
if typeof(ray) == "Ray" then
args[1] = Ray.new(ray.Origin, (pos - ray.Origin).Unit * ray.Direction.Magnitude)
return oldNamecall(self, table.unpack(args, 1, args.n))
end
end
end
elseif S.MScreenRay and self == Camera and (method == "ScreenPointToRay" or method == "ViewportPointToRay") then
local pos = SilentRoll()
if pos then
local ray = oldNamecall(self, ...)
return Ray.new(ray.Origin, (pos - ray.Origin).Unit * ray.Direction.Magnitude)
end
end
end
return oldNamecall(self, ...)
end))
local oldIndex
oldIndex = hookmetamethod(game, "__index", newcclosure(function(self, key)
if Alive and SilentCache and self == MouseRef and Settings.Silent.MMouse and (key == "Hit" or key == "Target") and not checkcaller() then
local pos, part = SilentRoll()
if pos then
if key == "Hit" then return CFrame.new(pos) end
return part
end
end
return oldIndex(self, key)
end))
end)
if HookStatusLabel then
Reg(HookStatusLabel, "Text", installed and " Хуки: ✅ установлены" or " Хуки: ❌ ошибка установки")
end
elseif HookStatusLabel then
Reg(HookStatusLabel, "Text", " Хуки: ❌ экзекутор не поддерживает hookmetamethod")
end
-- ==================== ТРЕЙСЕРЫ ПУЛЬ ====================
local TracerFolder = New("Folder", { Name = "1337_Tracers" }, Workspace)
local ActiveTracers = {}
local lastTracerAt, lastSilentId = 0, 0
local function GetMuzzle()
local char = LocalPlayer.Character
local mode = Settings.Tracer.Origin
if char and mode == "Tool" then
local tool = char:FindFirstChildOfClass("Tool")
if tool then
for _, d in ipairs(tool:GetDescendants()) do
if d:IsA("Attachment") then
local n = string.lower(d.Name)
if string.find(n, "muzzle") or string.find(n, "fire") or string.find(n, "barrel") then
return d.WorldPosition
end
end
end
local handle = tool:FindFirstChild("Handle") or tool:FindFirstChildWhichIsA("BasePart")
if handle then return handle.Position end
end
mode = "Head"
end
if char and mode == "Head" then
local head = char:FindFirstChild("Head")
if head then return head.Position + Vector3.new(0, -0.3, 0) end
end
local cf = Camera.CFrame
return cf.Position + cf.LookVector * 1.5 - cf.UpVector * 0.8
end
local function SpawnTracer(origin, hitPos)
local T = Settings.Tracer
local c1 = ColorOf(T, "Color1", "Rainbow", 0)
local c2 = ColorOf(T, "Color2", "Rainbow", 0.3)
local function point(pos)
local part = Instance.new("Part")
part.Anchored = true
part.CanCollide = false
part.CanQuery = false
part.CanTouch = false
part.Transparency = 1
part.Size = Vector3.new(0.1, 0.1, 0.1)
part.CFrame = CFrame.new(pos)
part.Parent = TracerFolder
local att = Instance.new("Attachment")
att.Parent = part
return part, att
end
local p0, a0 = point(origin)
local p1, a1 = point(hitPos)
local function beam(width, colors, transparency)
local b = Instance.new("Beam")
b.Attachment0 = a0
b.Attachment1 = a1
b.Color = colors
b.Width0 = width
b.Width1 = width
b.LightEmission = 1
b.LightInfluence = 0
b.FaceCamera = true
b.Segments = 1
b.Transparency = NumberSequence.new(transparency)
b.Parent = p0
return b
end
local t = {
Born = os.clock(),
Life = T.Lifetime,
P0 = p0,
P1 = p1,
Halo = beam(T.Thickness * T.Glow, ColorSequence.new(c1, c2), 0.75),
Mid = beam(T.Thickness, ColorSequence.new(c1, c2), 0),
}
if T.Core then
t.Core = beam(T.Thickness * 0.35, ColorSequence.new(WHITE), 0.1)
end
if T.Impact then
local ball = Instance.new("Part")
ball.Shape = Enum.PartType.Ball
ball.Material = Enum.Material.Neon
ball.Color = c2
ball.Size = Vector3.new(0.4, 0.4, 0.4)
ball.Anchored = true
ball.CanCollide = false
ball.CanQuery = false
ball.CanTouch = false
ball.CFrame = CFrame.new(hitPos)
ball.Parent = TracerFolder
t.Impact = ball
if T.ImpactLight then
local light = Instance.new("PointLight")
light.Color = c2
light.Brightness = 3
light.Range = 10
light.Parent = ball
t.Light = light
end
end
table.insert(ActiveTracers, t)
if #ActiveTracers > 80 then
local old = table.remove(ActiveTracers, 1)
old.P0:Destroy()
old.P1:Destroy()
if old.Impact then old.Impact:Destroy() end
end
end
local function UpdateTracers()
local now = os.clock()
for i = #ActiveTracers, 1, -1 do
local t = ActiveTracers[i]
local a = (now - t.Born) / t.Life
if a >= 1 then
t.P0:Destroy()
t.P1:Destroy()
if t.Impact then t.Impact:Destroy() end
table.remove(ActiveTracers, i)
else
t.Halo.Transparency = NumberSequence.new(0.7 + 0.3 * a)
t.Mid.Transparency = NumberSequence.new(a * a)
if t.Core then t.Core.Transparency = NumberSequence.new(0.1 + 0.9 * a) end
if t.Impact then
local sz = 0.4 + a * 1.6
t.Impact.Size = Vector3.new(sz, sz, sz)
t.Impact.Transparency = a
if t.Light then t.Light.Brightness = 3 * (1 - a) end
end
end
end
local T = Settings.Tracer
if not T.Enabled or now - lastTracerAt < T.Interval then return end
-- выстрел, перенаправленный Silent Aim
if LastShotId ~= lastSilentId and LastShotPos then
lastSilentId = LastShotId
lastTracerAt = now
SpawnTracer(GetMuzzle(), LastShotPos)
return
end
-- обычный выстрел: ЛКМ зажата
if menuOpen or (Settings.Silent.Enabled and SilentCache) then return end
if UserInputService:IsMouseButtonPressed(Enum.UserInputType.MouseButton1) then
local char = LocalPlayer.Character
if T.OnlyTool and not (char and char:FindFirstChildOfClass("Tool")) then return end
local m = UserInputService:GetMouseLocation()
local ray = Camera:ViewportPointToRay(m.X, m.Y)
rayParams.FilterDescendantsInstances = { char, Camera, TracerFolder }
local res = Workspace:Raycast(ray.Origin, ray.Direction * T.Range, rayParams)
local hit = res and res.Position or (ray.Origin + ray.Direction * T.Range)
lastTracerAt = now
SpawnTracer(GetMuzzle(), hit)
end
end
-- ==================== СВОЙ ПРИЦЕЛ ====================
local Crosshair = New("Frame", {
Name = "Crosshair",
AnchorPoint = Vector2.new(0.5, 0.5),
Size = UDim2.fromOffset(2, 2),
BackgroundTransparency = 1,
Visible = false,
}, ESPLayer)
local chBars, chStrokes = {}, {}
for i = 1, 5 do
chBars[i] = New("Frame", { BorderSizePixel = 0, BackgroundColor3 = WHITE }, Crosshair)
chStrokes[i] = Stroke(chBars[i], BLACK, 1, 0)
end
Corner(chBars[5], 100)
local function UpdateCrosshair()
local C = Settings.Crosshair
Crosshair.Visible = C.Enabled
if not C.Enabled then return end
local pos = C.FollowMouse and UserInputService:GetMouseLocation() or (Camera.ViewportSize / 2)
Crosshair.Position = UDim2.fromOffset(pos.X, pos.Y)
Crosshair.Rotation = C.Spin and ((os.clock() * C.SpinSpeed) % 360) or 0
local col = ColorOf(C, "Color", "Rainbow", 0)
local s, g, t = C.Size, C.Gap, C.Thickness
chBars[1].AnchorPoint = Vector2.new(0.5, 1)
chBars[1].Position = UDim2.fromOffset(1, 1 - g)
chBars[1].Size = UDim2.fromOffset(t, s)
chBars[2].AnchorPoint = Vector2.new(0.5, 0)
chBars[2].Position = UDim2.fromOffset(1, 1 + g)
chBars[2].Size = UDim2.fromOffset(t, s)
chBars[3].AnchorPoint = Vector2.new(1, 0.5)
chBars[3].Position = UDim2.fromOffset(1 - g, 1)
chBars[3].Size = UDim2.fromOffset(s, t)
chBars[4].AnchorPoint = Vector2.new(0, 0.5)
chBars[4].Position = UDim2.fromOffset(1 + g, 1)
chBars[4].Size = UDim2.fromOffset(s, t)
chBars[5].AnchorPoint = Vector2.new(0.5, 0.5)
chBars[5].Position = UDim2.fromOffset(1, 1)
chBars[5].Size = UDim2.fromOffset(t + 1, t + 1)
chBars[5].Visible = C.Dot
for i = 1, 5 do
chBars[i].BackgroundColor3 = col
chStrokes[i].Enabled = C.Outline
end
end
-- ==================== PLAYER / УНИВЕРСАЛЬНЫЕ ФУНКЦИИ ====================
local Lighting = game:GetService("Lighting")
local VirtualUser = game:GetService("VirtualUser")
local PLR = Settings.Player
local TPS = Settings.Third
local function GetChar()
local c = LocalPlayer.Character
if not c then return nil end
local hum = c:FindFirstChildOfClass("Humanoid")
local hrp = c:FindFirstChild("HumanoidRootPart")
if hum and hrp and hum.Health > 0 then return c, hum, hrp end
return nil
end
local function BindDown(b)
if b == nil or b == Enum.KeyCode.Unknown then return false end
if b.EnumType == Enum.KeyCode then return UserInputService:IsKeyDown(b) end
return UserInputService:IsMouseButtonPressed(b)
end
local function BindMatch(input, b)
if b == nil or b == Enum.KeyCode.Unknown then return false end
if b.EnumType == Enum.KeyCode then return input.KeyCode == b end
return input.UserInputType == b
end
local lastHum, origSpeed, origJump, origJumpHeight = nil, nil, nil, nil
local flying = false
local noclipped = {}
-- Bhop / Speed / Jump / Fly (Heartbeat)
Connect(RunService.Heartbeat, function(dt)
if not Alive then return end
local c, hum, hrp = GetChar()
if not c then lastHum = nil flying = false return end
if hum ~= lastHum then
lastHum = hum
origSpeed, origJump, origJumpHeight = nil, nil, nil
flying = false
end
local typing = UserInputService:GetFocusedTextBox() ~= nil
-- скорость ходьбы
if PLR.Speed then
if not origSpeed then origSpeed = hum.WalkSpeed end
hum.WalkSpeed = PLR.SpeedValue
elseif origSpeed then
hum.WalkSpeed = origSpeed
origSpeed = nil
end
-- сила прыжка
if PLR.Jump then
if hum.UseJumpPower then
if not origJump then origJump = hum.JumpPower end
hum.JumpPower = PLR.JumpValue
else
if not origJumpHeight then origJumpHeight = hum.JumpHeight end
hum.JumpHeight = PLR.JumpValue * PLR.JumpValue / (2 * Workspace.Gravity)
end
else
if origJump then hum.JumpPower = origJump origJump = nil end
if origJumpHeight then hum.JumpHeight = origJumpHeight origJumpHeight = nil end
end
-- bhop
if PLR.Bhop and not PLR.Fly and not typing then
local moving = hum.MoveDirection.Magnitude > 0.1
local want = (PLR.BhopMode == "Always" and moving) or (PLR.BhopMode ~= "Always" and BindDown(PLR.BhopKey))
if want then
if hum.FloorMaterial ~= Enum.Material.Air then
hum:ChangeState(Enum.HumanoidStateType.Jumping)
elseif PLR.BhopBoost > 0 and moving then
local vel = hrp.AssemblyLinearVelocity
local cur = Vector3.new(vel.X, 0, vel.Z).Magnitude
local target = hum.WalkSpeed * (1 + PLR.BhopBoost / 100)
if cur < target then cur = math.min(target, cur + 45 * dt) end
local dir = hum.MoveDirection.Unit
hrp.AssemblyLinearVelocity = Vector3.new(dir.X * cur, vel.Y, dir.Z * cur)
end
end
end
-- полёт
if PLR.Fly then
flying = true
hum.PlatformStand = true
local cf = Camera.CFrame
local dir = Vector3.new(0, 0, 0)
if not typing then
if UserInputService:IsKeyDown(Enum.KeyCode.W) then dir = dir + cf.LookVector end
if UserInputService:IsKeyDown(Enum.KeyCode.S) then dir = dir - cf.LookVector end
if UserInputService:IsKeyDown(Enum.KeyCode.D) then dir = dir + cf.RightVector end
if UserInputService:IsKeyDown(Enum.KeyCode.A) then dir = dir - cf.RightVector end
if UserInputService:IsKeyDown(Enum.KeyCode.Space) then dir = dir + Vector3.new(0, 1, 0) end
if UserInputService:IsKeyDown(Enum.KeyCode.LeftControl) then dir = dir - Vector3.new(0, 1, 0) end
end
if dir.Magnitude > 0 then
hrp.AssemblyLinearVelocity = dir.Unit * PLR.FlySpeed
else
hrp.AssemblyLinearVelocity = Vector3.new(0, 0, 0)
end
elseif flying then
flying = false
hum.PlatformStand = false
hrp.AssemblyLinearVelocity = Vector3.new(0, 0, 0)
end
end)
-- Noclip
Connect(RunService.Stepped, function()
if not Alive then return end
local c = LocalPlayer.Character
if PLR.Noclip and c then
for _, d in ipairs(c:GetDescendants()) do
if d:IsA("BasePart") and d.CanCollide then
d.CanCollide = false
noclipped[d] = true
end
end
elseif next(noclipped) then
for part in pairs(noclipped) do
if part.Parent then part.CanCollide = true end
end
noclipped = {}
end
end)
-- Бесконечный прыжок
Connect(UserInputService.JumpRequest, function()
if not (Alive and PLR.InfJump) then return end
local _, hum = GetChar()
if hum then hum:ChangeState(Enum.HumanoidStateType.Jumping) end
end)
-- Anti-AFK
Connect(LocalPlayer.Idled, function()
if not PLR.AntiAFK then return end
pcall(function()
VirtualUser:CaptureController()
VirtualUser:ClickButton2(Vector2.new(0, 0))
end)
end)
-- Fullbright / без тумана
local lightOrig = {}
local fbWas, fogWas = false, false
local function RestoreFullbright()
if not fbWas then return end
fbWas = false
pcall(function()
Lighting.Brightness = lightOrig.Brightness
Lighting.ClockTime = lightOrig.ClockTime
Lighting.GlobalShadows = lightOrig.GlobalShadows
Lighting.Ambient = lightOrig.Ambient
Lighting.OutdoorAmbient = lightOrig.OutdoorAmbient
end)
end
local function RestoreFog()
if not fogWas then return end
fogWas = false
pcall(function()
Lighting.FogEnd = lightOrig.FogEnd
Lighting.FogStart = lightOrig.FogStart
local atm = Lighting:FindFirstChildOfClass("Atmosphere")
if atm and lightOrig.Density then atm.Density = lightOrig.Density end
end)
end
Connect(RunService.Heartbeat, function()
if not Alive then return end
if PLR.Fullbright then
if not fbWas then
fbWas = true
lightOrig.Brightness = Lighting.Brightness
lightOrig.ClockTime = Lighting.ClockTime
lightOrig.GlobalShadows = Lighting.GlobalShadows
lightOrig.Ambient = Lighting.Ambient
lightOrig.OutdoorAmbient = Lighting.OutdoorAmbient
end
Lighting.Brightness = 2
Lighting.ClockTime = 14
Lighting.GlobalShadows = false
Lighting.Ambient = Color3.fromRGB(190, 190, 190)
Lighting.OutdoorAmbient = Color3.fromRGB(190, 190, 190)
else
RestoreFullbright()
end
if PLR.NoFog then
local atm = Lighting:FindFirstChildOfClass("Atmosphere")
if not fogWas then
fogWas = true
lightOrig.FogEnd = Lighting.FogEnd
lightOrig.FogStart = Lighting.FogStart
lightOrig.Density = atm and atm.Density or nil
end
Lighting.FogEnd = 1e6
Lighting.FogStart = 1e6 - 1
if atm then atm.Density = 0 end
else
RestoreFog()
end
end)
-- Камера: 3-е лицо + свой FOV
local tpOn, tpDist, tpSaved = false, 12, nil
local tpRay = RaycastParams.new()
tpRay.FilterType = Enum.RaycastFilterType.Exclude
local function RestoreCameraMode()
if not tpSaved then return end
local saved = tpSaved
tpSaved = nil
pcall(function()
LocalPlayer.CameraMode = saved.Mode
LocalPlayer.CameraMinZoomDistance = saved.Min
LocalPlayer.CameraMaxZoomDistance = saved.Max
end)
end
local function CameraStep(dt)
if not Alive then return end
local cam = Workspace.CurrentCamera
if not cam then return end
if PLR.FOVEnabled then cam.FieldOfView = PLR.FOVValue end
if not TPS.Enabled then
if tpOn then
tpOn = false
RestoreCameraMode()
end
return
end
local c, hum, hrp = GetChar()
if not c then return end
local head = c:FindFirstChild("Head") or hrp
if not tpOn then
tpOn = true
tpDist = math.max(0.5, (cam.CFrame.Position - head.Position).Magnitude)
if TPS.ForceMode then
pcall(function()
tpSaved = {
Mode = LocalPlayer.CameraMode,
Min = LocalPlayer.CameraMinZoomDistance,
Max = LocalPlayer.CameraMaxZoomDistance,
}
LocalPlayer.CameraMode = Enum.CameraMode.Classic
LocalPlayer.CameraMinZoomDistance = 0.5
LocalPlayer.CameraMaxZoomDistance = math.max(128, TPS.Distance + 10)
end)
end
end
local goal = TPS.Distance
if TPS.Smooth then
tpDist = tpDist + (goal - tpDist) * math.clamp(dt * 12, 0, 1)
else
tpDist = goal
end
local origin = head.Position + Vector3.new(0, TPS.Height, 0)
local rot = cam.CFrame - cam.CFrame.Position
local desired = (CFrame.new(origin) * rot):PointToWorldSpace(Vector3.new(TPS.ShoulderX, 0, tpDist))
if TPS.Collision then
tpRay.FilterDescendantsInstances = { c, cam }
local delta = desired - origin
if delta.Magnitude > 0.01 then
local hit = Workspace:Raycast(origin, delta, tpRay)
if hit then
desired = origin + delta.Unit * math.max(0.5, (hit.Position - origin).Magnitude - 0.4)
end
end
end
cam.CFrame = CFrame.new(desired) * rot
if TPS.ShowBody then
for _, d in ipairs(c:GetDescendants()) do
if d:IsA("BasePart") then d.LocalTransparencyModifier = 0 end
end
end
end
RunService:BindToRenderStep("1337_Camera", Enum.RenderPriority.Camera.Value + 1, CameraStep)
-- Бинды (вкл/выкл функций с клавиатуры)
Connect(UserInputService.InputBegan, function(input)
if not Alive or BindListening or UserInputService:GetFocusedTextBox() then return end
if BindMatch(input, TPS.Key) then Handles.Third(not TPS.Enabled) end
if BindMatch(input, PLR.BhopToggleKey) then Handles.Bhop(not PLR.Bhop) end
if BindMatch(input, PLR.NoclipKey) then Handles.Noclip(not PLR.Noclip) end
if BindMatch(input, PLR.FlyKey) then Handles.Fly(not PLR.Fly) end
end)
local function RestoreAll()
pcall(function() RunService:UnbindFromRenderStep("1337_Camera") end)
RestoreCameraMode()
RestoreFullbright()
RestoreFog()
local _, hum = GetChar()
if hum then
if origSpeed then hum.WalkSpeed = origSpeed end
if origJump then hum.JumpPower = origJump end
if origJumpHeight then hum.JumpHeight = origJumpHeight end
if flying then hum.PlatformStand = false end
end
for part in pairs(noclipped) do
if part.Parent then part.CanCollide = true end
end
noclipped = {}
end
-- Водяной знак + анимация рамки меню
local WM = New("TextLabel", {
Name = "Watermark",
Position = UDim2.fromOffset(14, 14),
Size = UDim2.fromOffset(0, 26),
AutomaticSize = Enum.AutomaticSize.X,
BackgroundColor3 = Theme.Background,
BackgroundTransparency = 0.12,
Font = Enum.Font.GothamBold,
TextSize = 12,
TextColor3 = Theme.Text,
Text = "1337 HUB",
ZIndex = 20,
}, ScreenGui)
Corner(WM, 8)
New("UIPadding", { PaddingLeft = UDim.new(0, 12), PaddingRight = UDim.new(0, 12) }, WM)
Stroke(WM, Theme.Accent, 1.2, 0.35)
local fpsTime, fpsFrames = 0, 0
local function UpdateUIExtras(dt)
MainStrokeGrad.Rotation = (os.clock() * 45) % 360
WM.Visible = Settings.UI.Watermark
if not WM.Visible then return end
fpsTime = fpsTime + dt
fpsFrames = fpsFrames + 1
if fpsTime >= 0.5 then
local fps = math.floor(fpsFrames / fpsTime + 0.5)
fpsTime, fpsFrames = 0, 0
local ping = 0
pcall(function() ping = math.floor(LocalPlayer:GetNetworkPing() * 1000 + 0.5) end)
WM.Text = string.format("1337 HUB | %d FPS | %d ms", fps, ping)
end
end
-- ==================== ГЛАВНЫЙ ЦИКЛ ====================
Connect(RunService.RenderStepped, function(dt)
Camera = Workspace.CurrentCamera
pcall(UpdateESP)
pcall(UpdateRadar)
pcall(UpdateAim)
pcall(UpdateSilent)
pcall(UpdateTracers)
pcall(UpdateCrosshair)
pcall(UpdateUIExtras, dt)
end)
Connect(Players.PlayerRemoving, RemoveESP)
-- ==================== ВЫГРУЗКА ====================
local function Unload()
Alive = false
SilentCache = nil
pcall(function() TracerFolder:Destroy() end)
SaveConfigNow()
pcall(RestoreAll)
for _, c in ipairs(Connections) do pcall(function() c:Disconnect() end) end
for player in pairs(ESPData) do RemoveESP(player) end
for player in pairs(radarDots) do RemoveESP(player) end
ScreenGui:Destroy()
end
Connect(unloadBtn.MouseButton1Click, Unload)
pcall(function()
if getgenv then getgenv().__1337HubUnload = Unload end
end)
Universal