Run it
Copy the script and paste it into your executor.
isfolder ().isfolder = ()
makefolder ().makefolder = ()
Library = (:())()
UIS = :()
RunService = :()
Players = :()
Lighting = :()
TeleportService = :()
HttpService = :()
Camera = .CurrentCamera
Player = Players.LocalPlayer
QueueSave
IsLoading =
SettingsData = {
Enabled = , FOV = , HitPart = , ShotDelay = ,
WallCheck = , TeamCheck = , Smoothing = , SmoothFactor = ,
Prediction = , PredictionAmount = , SilentAim = ,
SilentExtraLead = ,
SilentForceShot = ,
UseNamecallHook = ,
AutoFire = , TriggerBot = , TriggerDelay = ,
HitboxSink = , HitboxSinkDepth = , HitboxDesync = , HitboxDesyncOffset = ,
TargetESP = , TargetTracer = , TargetPanel = , TargetColor = .(, , ),
ShowFOV = , FOVColor = .(, , ),
RaycastVisuals = , RaycastMaxLines = , RaycastShowCount = , RaycastColor = .(, , ),
ChamsEnabled = , GlowEnabled = , RainbowGlow = ,
ChamPulse = , ChamDistanceFade = , ChamHealthTint = ,
ChamTargetAccent = , ChamTeamColor = , ChamMaxDistance = ,
ChamColor = .(, , ), GlowColor = .(, , ),
ChamTransparency = , ChamOutlineTransparency = ,
ChamType = , ChamWireStyle = , ChamWireGlow = ,
ChamWireThickness = , ChamWireLines = ,
Boxes = , BoxColor = .(, , ),
CornerBoxes = , CornerLength = ,
BoxFill = , BoxFillColor = .(, , ), BoxFillTransparency = ,
Names = , NameColor = .(, , ),
Distance = , DistanceColor = .(, , ),
Tracers = , TracerColor = .(, , ),
HealthBar = , ESPPreview = ,
CrosshairEnabled = , CrosshairColor = .(, , ),
CrosshairSize = , CrosshairThickness = , CrosshairGap = ,
DotEnabled = ,
Fullbright = , NoFog = , CustomTime = , TimeValue = ,
AmbientColor = .(, , ),
BloomEnabled = , BloomIntensity = , BloomSize = , BloomThreshold = ,
ColorCorrectionEnabled = , ColorCorrectionContrast = , ColorCorrectionSaturation = ,
ColorCorrectionTint = .(, , ),
RainbowParticles = ,
TrailEnabled = , TrailColor = .(, , ), TrailLifetime = ,
AuraEnabled = , AuraColor = .(, , ),
SpeedEnabled = , SpeedValue = ,
FlyEnabled = , FlySpeed = ,
NoclipEnabled = , InfJumpEnabled = ,
JumpPower = , JumpValue = ,
HUDEnabled = , HUDWatermark = ,
HUDHealth = , HUDSpeed = , HUDCoords = ,
HUDTarget = , HUDPlayers = , HUDFPS = ,
HUDArraylist = , HUDKeybinds = ,
HUDStyle = , HUDCompact = ,
UITheme = ,
HUDColor = .(, , ),
HUDRainbowBars = ,
HUDPulseAccent = ,
AntiAFK = , ClickTP = , Notifications = ,
}
Settings = ({}, {
__index = SettingsData,
__newindex = (_, key, value)
SettingsData[key] = value
IsLoading QueueSave
()
})
OriginalLighting = {
Brightness = Lighting.Brightness,
ClockTime = Lighting.ClockTime,
FogEnd = Lighting.FogEnd,
FogStart = Lighting.FogStart,
GlobalShadows = Lighting.GlobalShadows,
Ambient = Lighting.Ambient,
OutdoorAmbient = Lighting.OutdoorAmbient,
}
(src)
dst = {}
k, v (src)
dst[k] = v
dst
DefaultSettings = (SettingsData)
Config = {
Profile = ,
AutoSave = ,
AutoLoad = ,
}
CONFIG_DIR =
CONFIG_VERSION =
pendingSave =
ConfigLoaded =
(name)
name = (name )
name = name:(, )
name = name:(, )
name
()
profile = (Config.Profile)
profile ==
profile =
CONFIG_DIR .. .. profile ..
(v)
(v) ==
{ __type = , r = v.R, g = v.G, b = v.B }
v
(v)
(v) == v.__type ==
.(v.r , v.g , v.b )
v
(list, value)
_, v (list)
v == value
()
writefile ,
makefolder (CONFIG_DIR)
(CONFIG_DIR)
data = { __version = CONFIG_VERSION }
k, v (SettingsData)
data[k] = (v)
ok, json = (()
HttpService:(data)
)
ok ,
ok2, err = (()
((), json)
)
ok2 , err
()
readfile isfile ,
path = ()
(path) ,
ok, data = (()
HttpService:((path))
)
ok (data) ~= ,
IsLoading =
k, v (data)
k ~= k ~= SettingsData[k] ~=
SettingsData[k] = (v)
SettingsData.UseNamecallHook =
({, , , }, SettingsData.HitPart)
SettingsData.HitPart =
({, , , , , , }, SettingsData.ChamType)
SettingsData.ChamType =
({, , }, SettingsData.ChamWireStyle)
SettingsData.ChamWireStyle =
({, , }, SettingsData.UITheme)
SettingsData.UITheme =
({, , }, SettingsData.HUDStyle)
SettingsData.HUDStyle =
SettingsData.ChamWireLines = .((SettingsData.ChamWireLines) , , )
SettingsData.ChamWireThickness = .((SettingsData.ChamWireThickness) , , )
SettingsData.ChamTransparency = .((SettingsData.ChamTransparency) , , )
SettingsData.ChamOutlineTransparency = .((SettingsData.ChamOutlineTransparency) , , )
SettingsData.ChamMaxDistance = .((SettingsData.ChamMaxDistance) , , )
IsLoading =
ConfigLoaded =
ThemePresets = {
Blue = {
accent = .(, , ),
bg = .(, , ),
card = .(, , ),
text = .(, , ),
subtext = .(, , ),
},
White = {
accent = .(, , ),
bg = .(, , ),
card = .(, , ),
text = .(, , ),
subtext = .(, , ),
},
Green = {
accent = .(, , ),
bg = .(, , ),
card = .(, , ),
text = .(, , ),
subtext = .(, , ),
}
}
()
ThemePresets[SettingsData.UITheme] ThemePresets.Blue
(themeName)
ThemePresets[themeName]
Settings.UITheme = themeName
Settings.HUDColor = ThemePresets[themeName].accent
()
IsLoading =
k, v (DefaultSettings)
SettingsData[k] = v
IsLoading =
QueueSave = ()
IsLoading Config.AutoSave
pendingSave
pendingSave =
.(, ()
pendingSave =
IsLoading Config.AutoSave
()
)
UIControls = {}
(key, control)
key control
UIControls[key] = control
control
(control, value)
control
ok = (() control:(value) )
ok
ok = (() control:(value) )
ok
(() control:(value) )
()
IsLoading =
key, control (UIControls)
SettingsData[key] ~=
(control, SettingsData[key])
IsLoading =
Config.AutoLoad
(()
()
)
BloomEffect = Lighting:()
ColorCorrectionEffect = Lighting:()
Window = Library:({
Name = ,
SubName = ,
Logo =
})
CombatPage = Window:({Name = })
AimSec = CombatPage:({Name = })
(, AimSec:({Name = , Default = Settings.Enabled, Callback = (v) Settings.Enabled = v }))
(, AimSec:({Name = , Default = Settings.SilentAim, Callback = (v) Settings.SilentAim = v }))
AimSec:()
(, AimSec:({Name = , Default = Settings.WallCheck, Callback = (v) Settings.WallCheck = v }))
(, AimSec:({Name = , Default = Settings.TeamCheck, Callback = (v) Settings.TeamCheck = v }))
(, AimSec:({Name = , Min = , Max = , Default = Settings.FOV, Callback = (v) Settings.FOV = v }))
(, AimSec:({Name = , Default = Settings.HitPart, Items = {, , , }, Callback = (v) Settings.HitPart = v }))
(, AimSec:({Name = , Min = , Max = , Default = Settings.ShotDelay, Decimals = , Callback = (v) Settings.ShotDelay = v }))
(, AimSec:({Name = , Min = , Max = , Default = Settings.SilentExtraLead, Decimals = , Callback = (v) Settings.SilentExtraLead = v }))
(, AimSec:({Name = , Default = Settings.SilentForceShot, Callback = (v) Settings.SilentForceShot = v }))
HitboxSec = CombatPage:({Name = })
(, HitboxSec:({Name = , Default = Settings.HitboxSink, Callback = (v) Settings.HitboxSink = v
v
(()
char = Player.Character
char
_, part (char:())
part:() part.Name ~=
part.LocalTransparencyModifier =
)
}))
(, HitboxSec:({Name = , Min = , Max = , Default = Settings.HitboxSinkDepth, Callback = (v) Settings.HitboxSinkDepth = v }))
(, HitboxSec:({Name = , Default = Settings.HitboxDesync, Callback = (v) Settings.HitboxDesync = v }))
(, HitboxSec:({Name = , Min = , Max = , Default = Settings.HitboxDesyncOffset, Callback = (v) Settings.HitboxDesyncOffset = v }))
SmoothSec = CombatPage:({Name = })
(, SmoothSec:({Name = , Default = Settings.Smoothing, Callback = (v) Settings.Smoothing = v }))
(, SmoothSec:({Name = , Min = , Max = , Default = Settings.SmoothFactor, Callback = (v) Settings.SmoothFactor = v }))
(, SmoothSec:({Name = , Default = Settings.Prediction, Callback = (v) Settings.Prediction = v }))
(, SmoothSec:({Name = , Min = , Max = , Default = Settings.PredictionAmount, Decimals = , Callback = (v) Settings.PredictionAmount = v }))
TriggerSec = CombatPage:({Name = })
(, TriggerSec:({Name = , Default = Settings.AutoFire, Callback = (v) Settings.AutoFire = v }))
(, TriggerSec:({Name = , Default = Settings.TriggerBot, Callback = (v) Settings.TriggerBot = v }))
(, TriggerSec:({Name = , Min = , Max = , Default = Settings.TriggerDelay, Decimals = , Callback = (v) Settings.TriggerDelay = v }))
TargetVisSec = CombatPage:({Name = })
(, TargetVisSec:({Name = , Default = Settings.ShowFOV, Callback = (v) Settings.ShowFOV = v }))
(, TargetVisSec:():({Default = Settings.FOVColor, Callback = (v) Settings.FOVColor = v }))
(, TargetVisSec:({Name = , Default = Settings.TargetESP, Callback = (v) Settings.TargetESP = v }))
(, TargetVisSec:({Name = , Default = Settings.TargetTracer, Callback = (v) Settings.TargetTracer = v }))
(, TargetVisSec:({Name = , Default = Settings.TargetPanel, Callback = (v) Settings.TargetPanel = v }))
(, TargetVisSec:():({Default = Settings.TargetColor, Callback = (v) Settings.TargetColor = v }))
(, TargetVisSec:({Name = , Default = Settings.RaycastVisuals, Callback = (v) Settings.RaycastVisuals = v }))
(, TargetVisSec:({Name = , Min = , Max = , Default = Settings.RaycastMaxLines, Callback = (v) Settings.RaycastMaxLines = v }))
(, TargetVisSec:({Name = , Default = Settings.RaycastShowCount, Callback = (v) Settings.RaycastShowCount = v }))
(, TargetVisSec:():({Default = Settings.RaycastColor, Callback = (v) Settings.RaycastColor = v }))
VisualPage = Window:({Name = })
PlayerSec = VisualPage:({Name = })
(, PlayerSec:({Name = , Default = Settings.ChamsEnabled, Callback = (v) Settings.ChamsEnabled = v }))
(, PlayerSec:({Name = , Default = Settings.ChamType, Items = {, , , , , , }, Callback = (v) Settings.ChamType = v }))
(, PlayerSec:({Name = , Min = , Max = , Default = Settings.ChamTransparency, Decimals = , Callback = (v) Settings.ChamTransparency = v }))
(, PlayerSec:({Name = , Min = , Max = , Default = Settings.ChamOutlineTransparency, Decimals = , Callback = (v) Settings.ChamOutlineTransparency = v }))
(, PlayerSec:({Name = , Default = Settings.ChamWireStyle, Items = {, , }, Callback = (v) Settings.ChamWireStyle = v }))
(, PlayerSec:({Name = , Min = , Max = , Default = Settings.ChamWireThickness, Decimals = , Callback = (v) Settings.ChamWireThickness = v }))
(, PlayerSec:({Name = , Min = , Max = , Default = Settings.ChamWireLines, Decimals = , Callback = (v) Settings.ChamWireLines = v }))
(, PlayerSec:({Name = , Default = Settings.ChamWireGlow, Callback = (v) Settings.ChamWireGlow = v }))
(, PlayerSec:({Name = , Default = Settings.ChamPulse, Callback = (v) Settings.ChamPulse = v }))
(, PlayerSec:({Name = , Default = Settings.ChamDistanceFade, Callback = (v) Settings.ChamDistanceFade = v }))
(, PlayerSec:({Name = , Default = Settings.ChamHealthTint, Callback = (v) Settings.ChamHealthTint = v }))
(, PlayerSec:({Name = , Default = Settings.ChamTargetAccent, Callback = (v) Settings.ChamTargetAccent = v }))
(, PlayerSec:({Name = , Default = Settings.ChamTeamColor, Callback = (v) Settings.ChamTeamColor = v }))
(, PlayerSec:({Name = , Min = , Max = , Default = Settings.ChamMaxDistance, Callback = (v) Settings.ChamMaxDistance = v }))
(, PlayerSec:():({Default = Settings.ChamColor, Callback = (v) Settings.ChamColor = v }))
(, PlayerSec:({Name = , Default = Settings.GlowEnabled, Callback = (v) Settings.GlowEnabled = v }))
(, PlayerSec:({Name = , Default = Settings.RainbowGlow, Callback = (v) Settings.RainbowGlow = v }))
(, PlayerSec:():({Default = Settings.GlowColor, Callback = (v) Settings.GlowColor = v }))
PlayerSec:({Name = , Callback = ()
Settings.ChamsEnabled =
Settings.ChamType =
Settings.ChamWireStyle =
Settings.ChamWireGlow =
Settings.ChamWireLines =
Settings.ChamWireThickness =
Settings.ChamTransparency =
Settings.ChamOutlineTransparency =
Settings.ChamHealthTint =
Settings.ChamTargetAccent =
Settings.ChamTeamColor =
Settings.ChamColor = .(, , )
Settings.GlowEnabled =
Settings.RainbowGlow =
Settings.GlowColor = .(, , )
()
})
ESPSec = VisualPage:({Name = })
(, ESPSec:({Name = , Default = Settings.Boxes, Callback = (v) Settings.Boxes = v }))
(, ESPSec:({Name = , Default = Settings.CornerBoxes, Callback = (v) Settings.CornerBoxes = v }))
(, ESPSec:({Name = , Min = , Max = , Default = Settings.CornerLength, Callback = (v) Settings.CornerLength = v }))
(, ESPSec:():({Default = Settings.BoxColor, Callback = (v) Settings.BoxColor = v }))
(, ESPSec:({Name = , Default = Settings.BoxFill, Callback = (v) Settings.BoxFill = v }))
(, ESPSec:({Name = , Min = , Max = , Default = Settings.BoxFillTransparency, Decimals = , Callback = (v) Settings.BoxFillTransparency = v }))
(, ESPSec:():({Default = Settings.BoxFillColor, Callback = (v) Settings.BoxFillColor = v }))
(, ESPSec:({Name = , Default = Settings.Names, Callback = (v) Settings.Names = v }))
(, ESPSec:():({Default = Settings.NameColor, Callback = (v) Settings.NameColor = v }))
(, ESPSec:({Name = , Default = Settings.Distance, Callback = (v) Settings.Distance = v }))
(, ESPSec:():({Default = Settings.DistanceColor, Callback = (v) Settings.DistanceColor = v }))
(, ESPSec:({Name = , Default = Settings.Tracers, Callback = (v) Settings.Tracers = v }))
(, ESPSec:():({Default = Settings.TracerColor, Callback = (v) Settings.TracerColor = v }))
(, ESPSec:({Name = , Default = Settings.HealthBar, Callback = (v) Settings.HealthBar = v }))
(, ESPSec:({Name = , Default = Settings.ESPPreview, Callback = (v) Settings.ESPPreview = v }))
CrossSec = VisualPage:({Name = })
(, CrossSec:({Name = , Default = Settings.CrosshairEnabled, Callback = (v) Settings.CrosshairEnabled = v }))
(, CrossSec:({Name = , Default = Settings.DotEnabled, Callback = (v) Settings.DotEnabled = v }))
(, CrossSec:():({Default = Settings.CrosshairColor, Callback = (v) Settings.CrosshairColor = v }))
(, CrossSec:({Name = , Min = , Max = , Default = Settings.CrosshairSize, Callback = (v) Settings.CrosshairSize = v }))
(, CrossSec:({Name = , Min = , Max = , Default = Settings.CrosshairGap, Callback = (v) Settings.CrosshairGap = v }))
(, CrossSec:({Name = , Min = , Max = , Default = Settings.CrosshairThickness, Callback = (v) Settings.CrosshairThickness = v }))
WorldPage = Window:({Name = })
LightSec = WorldPage:({Name = })
(, LightSec:({Name = , Default = Settings.Fullbright, Callback = (v)
Settings.Fullbright = v
v
Lighting.Brightness = OriginalLighting.Brightness
Lighting.ClockTime = OriginalLighting.ClockTime
Lighting.GlobalShadows = OriginalLighting.GlobalShadows
Lighting.Ambient = OriginalLighting.Ambient
}))
(, LightSec:({Name = , Default = Settings.NoFog, Callback = (v)
Settings.NoFog = v
v
Lighting.FogEnd = OriginalLighting.FogEnd
Lighting.FogStart = OriginalLighting.FogStart
}))
(, LightSec:({Name = , Default = Settings.CustomTime, Callback = (v) Settings.CustomTime = v v Lighting.ClockTime = OriginalLighting.ClockTime }))
(, LightSec:({Name = , Min = , Max = , Default = Settings.TimeValue, Decimals = , Callback = (v) Settings.TimeValue = v }))
(, LightSec:():({Default = Settings.AmbientColor, Callback = (v) Settings.AmbientColor = v }))
FXSec = WorldPage:({Name = })
(, FXSec:({Name = , Default = Settings.BloomEnabled, Callback = (v) Settings.BloomEnabled = v }))
(, FXSec:({Name = , Min = , Max = , Default = Settings.BloomIntensity, Decimals = , Callback = (v) Settings.BloomIntensity = v }))
(, FXSec:({Name = , Min = , Max = , Default = Settings.BloomSize, Callback = (v) Settings.BloomSize = v }))
(, FXSec:({Name = , Min = , Max = , Default = Settings.BloomThreshold, Decimals = , Callback = (v) Settings.BloomThreshold = v }))
(, FXSec:({Name = , Default = Settings.ColorCorrectionEnabled, Callback = (v) Settings.ColorCorrectionEnabled = v }))
(, FXSec:({Name = , Min = -, Max = , Default = Settings.ColorCorrectionContrast, Decimals = , Callback = (v) Settings.ColorCorrectionContrast = v }))
(, FXSec:({Name = , Min = -, Max = , Default = Settings.ColorCorrectionSaturation, Decimals = , Callback = (v) Settings.ColorCorrectionSaturation = v }))
(, FXSec:():({Default = Settings.ColorCorrectionTint, Callback = (v) Settings.ColorCorrectionTint = v }))
FXCharSec = WorldPage:({Name = })
(, FXCharSec:({Name = , Default = Settings.RainbowParticles, Callback = (v) Settings.RainbowParticles = v }))
(, FXCharSec:({Name = , Default = Settings.TrailEnabled, Callback = (v) Settings.TrailEnabled = v
v (() _,obj (Player.Character:()) obj.Name == obj.Name == obj.Name == obj:() )
}))
(, FXCharSec:({Name = , Min = , Max = , Default = Settings.TrailLifetime, Decimals = , Callback = (v) Settings.TrailLifetime = v }))
(, FXCharSec:():({Default = Settings.TrailColor, Callback = (v) Settings.TrailColor = v }))
(, FXCharSec:({Name = , Default = Settings.AuraEnabled, Callback = (v) Settings.AuraEnabled = v
v (() _,obj (Player.Character:()) obj.Name == obj:() )
}))
(, FXCharSec:():({Default = Settings.AuraColor, Callback = (v) Settings.AuraColor = v }))
MovePage = Window:({Name = })
SpeedSec = MovePage:({Name = })
(, SpeedSec:({Name = , Default = Settings.SpeedEnabled, Callback = (v) Settings.SpeedEnabled = v
v (() h = Player.Character Player.Character:() h h.WalkSpeed = )
}))
(, SpeedSec:({Name = , Min = , Max = , Default = Settings.SpeedValue, Callback = (v) Settings.SpeedValue = v }))
JumpSec = MovePage:({Name = })
(, JumpSec:({Name = , Default = Settings.JumpPower, Callback = (v) Settings.JumpPower = v
v (() h = Player.Character Player.Character:() h h.JumpPower = )
}))
(, JumpSec:({Name = , Min = , Max = , Default = Settings.JumpValue, Callback = (v) Settings.JumpValue = v }))
(, JumpSec:({Name = , Default = Settings.InfJumpEnabled, Callback = (v) Settings.InfJumpEnabled = v }))
FlySec = MovePage:({Name = })
(, FlySec:({Name = , Default = Settings.FlyEnabled, Callback = (v) Settings.FlyEnabled = v
v (() hrp = Player.Character:()
_, obj (hrp:()) obj.Name == obj.Name == obj:()
)
}))
(, FlySec:({Name = , Min = , Max = , Default = Settings.FlySpeed, Callback = (v) Settings.FlySpeed = v }))
(, FlySec:({Name = , Default = Settings.NoclipEnabled, Callback = (v)
Settings.NoclipEnabled = v
v
(()
char = Player.Character
char
_, p (char:())
p:() p.CanCollide =
)
}))
MiscPage = Window:({Name = })
UtilSec = MiscPage:({Name = })
(, UtilSec:({Name = , Default = Settings.AntiAFK, Callback = (v) Settings.AntiAFK = v }))
(, UtilSec:({Name = , Default = Settings.ClickTP, Callback = (v) Settings.ClickTP = v }))
UtilSec:({Name = , Callback = () (() TeleportService:(.PlaceId, Player) ) })
UtilSec:({Name = , Callback = ()
(()
HttpService = :()
data = HttpService:(:(..game.PlaceId..))
_, s (data.data)
s.id ~= .JobId TeleportService:(.PlaceId, s.id, Player)
)
})
UtilSec:({Name = , Callback = () (() ((.PlaceId)) ) })
UtilSec:({Name = , Callback = () (() Player.Character:().Health = ) })
HUDSec = MiscPage:({Name = })
(, HUDSec:({Name = , Default = Settings.HUDEnabled, Callback = (v) Settings.HUDEnabled = v }))
(, HUDSec:({Name = , Default = Settings.HUDWatermark, Callback = (v) Settings.HUDWatermark = v }))
(, HUDSec:({Name = , Default = Settings.HUDFPS, Callback = (v) Settings.HUDFPS = v }))
(, HUDSec:({Name = , Default = Settings.HUDHealth, Callback = (v) Settings.HUDHealth = v }))
(, HUDSec:({Name = , Default = Settings.HUDSpeed, Callback = (v) Settings.HUDSpeed = v }))
(, HUDSec:({Name = , Default = Settings.HUDCoords, Callback = (v) Settings.HUDCoords = v }))
(, HUDSec:({Name = , Default = Settings.HUDTarget, Callback = (v) Settings.HUDTarget = v }))
(, HUDSec:({Name = , Default = Settings.HUDPlayers, Callback = (v) Settings.HUDPlayers = v }))
(, HUDSec:({Name = , Default = Settings.HUDArraylist, Callback = (v) Settings.HUDArraylist = v }))
(, HUDSec:({Name = , Default = Settings.HUDKeybinds, Callback = (v) Settings.HUDKeybinds = v }))
(, HUDSec:({Name = , Default = Settings.HUDStyle, Items = {, , }, Callback = (v) Settings.HUDStyle = v }))
(, HUDSec:({Name = , Default = Settings.HUDCompact, Callback = (v) Settings.HUDCompact = v }))
(, HUDSec:({Name = , Default = Settings.UITheme, Items = {, , }, Callback = (v) (v) }))
(, HUDSec:():({Default = Settings.HUDColor, Callback = (v) Settings.HUDColor = v }))
(, HUDSec:({Name = , Default = Settings.HUDRainbowBars, Callback = (v) Settings.HUDRainbowBars = v }))
(, HUDSec:({Name = , Default = Settings.HUDPulseAccent, Callback = (v) Settings.HUDPulseAccent = v }))
InfoSec = MiscPage:({Name = })
InfoSec:( .. Player.DisplayName .. .. Player.Name .. )
InfoSec:( .. Player.UserId)
InfoSec:( .. .PlaceId)
InfoSec:()
InfoSec:()
ConfigPage = Window:({Name = })
ConfigSec = ConfigPage:({Name = })
ConfigSec:({Name = , Default = Config.Profile, Placeholder = , Finished = , Callback = (v)
Config.Profile = (v)
})
ConfigSec:({Name = , Default = Config.AutoLoad, Callback = (v) Config.AutoLoad = v })
ConfigSec:({Name = , Default = Config.AutoSave, Callback = (v) Config.AutoSave = v })
ConfigSec:({Name = , Callback = ()
()
()
})
ConfigSec:({Name = , Callback = () () })
ConfigSec:({Name = , Callback = ()
()
()
})
ConfigSec:( .. CONFIG_DIR)
FOVCircle = .()
FOVCircle.Thickness = ; FOVCircle.Filled = ; FOVCircle.NumSides =
TargetLine = .()
TargetLine.Thickness =
TargetCircle = .()
TargetCircle.Thickness = ; TargetCircle.Filled = ; TargetCircle.Radius =
TargetPanelBG = .(); TargetPanelBG.Filled = ; TargetPanelBG.Color = .(, , ); TargetPanelBG.Transparency =
TargetPanelAccent = .(); TargetPanelAccent.Filled = ; TargetPanelAccent.Transparency =
TargetPanelHealthBG = .(); TargetPanelHealthBG.Filled = ; TargetPanelHealthBG.Color = .(, , ); TargetPanelHealthBG.Transparency =
TargetPanelHealth = .(); TargetPanelHealth.Filled = ; TargetPanelHealth.Transparency =
TargetPanelName = .(); TargetPanelName.Size = ; TargetPanelName.Font = .Fonts.Plex; TargetPanelName.Outline =
TargetPanelInfo1 = .(); TargetPanelInfo1.Size = ; TargetPanelInfo1.Font = .Fonts.Plex; TargetPanelInfo1.Outline =
TargetPanelInfo2 = .(); TargetPanelInfo2.Size = ; TargetPanelInfo2.Font = .Fonts.Plex; TargetPanelInfo2.Outline =
RaycastCountText = .(); RaycastCountText.Size = ; RaycastCountText.Font = .Fonts.Plex; RaycastCountText.Outline = ; RaycastCountText.Center =
RaycastLines = {}
i = ,
RaycastLines[i] = .()
RaycastLines[i].Thickness =
RaycastLines[i].Transparency =
RaycastLines[i].Visible =
CrossLines = {}
i = ,
CrossLines[i] = .()
CrossLines[i].Thickness = ; CrossLines[i].Visible =
CrossDot = .()
CrossDot.Filled = ; CrossDot.Radius = ; CrossDot.Visible =
ESPCache = {}
CurrentTarget =
Connections = {}
LastTriggerShot =
SilentHookReady =
SilentHookAttempted =
RaycastsThisFrame =
LastRaycastCount =
()
CurrentTarget
targetPos = CurrentTarget.Position
lead = Settings.SilentExtraLead
Settings.Prediction
lead = lead + (Settings.PredictionAmount )
lead >
vel = CurrentTarget.AssemblyLinearVelocity CurrentTarget.Velocity .()
targetPos = targetPos + vel * lead
targetPos
()
SilentHookAttempted =
SilentHookReady =
()
(plr)
ESPCache[plr]
e = {
Box = .(),
BoxOutline = .(),
BoxFill = .(),
Name = .(),
Distance = .(),
Tracer = .(),
HealthBarBG = .(),
HealthBar = .(),
Corners = {},
WireMesh = {},
WireGlow = {},
WireTriangles = {},
WireParts = {},
WirePartsChar = ,
WirePartsRefresh = ,
}
e.Box.Thickness = ; e.Box.Filled =
e.BoxOutline.Thickness = ; e.BoxOutline.Filled = ; e.BoxOutline.Color = .(, , )
e.BoxFill.Filled = ; e.BoxFill.Transparency =
e.Name.Center = ; e.Name.Size = ; e.Name.Outline =
e.Distance.Center = ; e.Distance.Size = ; e.Distance.Outline =
e.Tracer.Thickness =
e.HealthBarBG.Filled = ; e.HealthBarBG.Color = .(, , )
e.HealthBar.Filled =
i = , e.Corners[i] = .(); e.Corners[i].Thickness =
i = ,
glow = .()
glow.Thickness =
glow.Transparency =
glow.Visible =
e.WireGlow[i] = glow
ln = .()
ln.Thickness =
ln.Transparency =
ln.Visible =
e.WireMesh[i] = ln
i = ,
ok, tri = (()
.()
)
ok tri
tri.Visible =
tri.Filled =
tri.Thickness =
tri.Transparency =
e.WireTriangles[i] = tri
ESPCache[plr] = e
ESPCache[plr]
Players.PlayerRemoving:((plr)
ESPCache[plr]
key, v (ESPCache[plr])
key == key == key ==
(v) ==
_, line (v) (() line:() )
(() v:() )
ESPCache[plr] =
)
(targetPart)
Settings.WallCheck
RaycastsThisFrame = RaycastsThisFrame +
params = RaycastParams.()
params.FilterDescendantsInstances = {Camera, Player.Character}
params.FilterType = .RaycastFilterType.Exclude
params.IgnoreWater =
cast = :(Camera.CFrame.Position, targetPart.Position - Camera.CFrame.Position, params)
cast cast.Instance cast.Instance:(targetPart.Parent)
(plr)
Settings.TeamCheck
plr.Team ~= Player.Team ~=
plr.Team ~= Player.Team
plr.TeamColor ~= Player.TeamColor ~=
plr.TeamColor ~= Player.TeamColor
()
fired =
(()
mouse1click
()
fired =
)
fired
(()
mouse1press mouse1release
()
.()
()
fired =
)
fired
(()
vim = :()
m = UIS:()
vim:(m.X, m.Y, , , , )
vim:(m.X, m.Y, , , , )
fired =
)
fired
(()
vu = :()
vu:(.(, ), Camera.CFrame)
.()
vu:(.(, ), Camera.CFrame)
fired =
)
(()
char = Player.Character
char
hum = char:()
tool = char:()
tool
backpack = Player:()
backpack
tool = backpack:()
tool hum
hum:(tool)
tool
tool:()
)
(char)
char
preferred = char:(Settings.HitPart)
preferred preferred:()
preferred
fallbacks = {, , , , }
_, name (fallbacks)
part = char:(name)
part part:()
part
char:()
WIRE_PART_PRIORITY = {
Head = , UpperTorso = , LowerTorso = , Torso = , HumanoidRootPart = ,
LeftUpperArm = , RightUpperArm = , LeftLowerArm = , RightLowerArm = ,
LeftHand = , RightHand = , LeftUpperLeg = , RightUpperLeg = ,
LeftLowerLeg = , RightLowerLeg = , LeftFoot = , RightFoot = ,
}
(esp)
esp
esp.WireMesh
i = , #esp.WireMesh
esp.WireMesh[i].Visible =
esp.WireGlow
i = , #esp.WireGlow
esp.WireGlow[i].Visible =
esp.WireTriangles
i = , #esp.WireTriangles
esp.WireTriangles[i].Visible =
(char)
char
char:()
tag = .()
tag.Name =
tag.Parent = char
_, part (char:())
part:()
wire = part:()
wire
wire.Visible =
(a, b, t)
t = .(t , , )
.(
a.R + (b.R - a.R) * t,
a.G + (b.G - a.G) * t,
a.B + (b.B - a.B) * t
)
(char)
myChar = Player.Character
myRoot = myChar myChar:()
root = char char:()
myRoot root
(myRoot.Position - root.Position).Magnitude
(hum)
hp = hum hum.MaxHealth > .(hum.Health / hum.MaxHealth, , )
red = .(, , )
yellow = .(, , )
green = .(, , )
hp >=
(yellow, green, (hp - ) * )
(red, yellow, hp * )
(plr, char, hum, isTarget, rainbowColor, distance)
base = Settings.ChamColor .(, , )
distance = distance (char)
Settings.ChamTeamColor plr plr.TeamColor
base = plr.TeamColor.Color
Settings.ChamHealthTint
base = (base, (hum), )
Settings.ChamTargetAccent isTarget
base = (base, Settings.TargetColor .(, , ), )
glow = Settings.RainbowGlow rainbowColor (Settings.GlowColor .(, , ))
fade = Settings.ChamDistanceFade .((distance - ) / , , )
pulseSpeed = isTarget
pulse = Settings.ChamPulse ((.(() * pulseSpeed) + ) * )
pulseLift = Settings.ChamPulse ((isTarget ) * pulse)
color = (base, .(, , ), Settings.ChamPulse ( + pulse * (isTarget )) )
targetBoost = isTarget
fillTransparency = .((Settings.ChamTransparency ) + fade - pulseLift - targetBoost, , )
outlineTransparency = .((Settings.ChamOutlineTransparency ) + fade * - targetBoost, , )
color, glow, fillTransparency, outlineTransparency
(esp, char)
now = ()
esp.WirePartsChar == char esp.WireParts now < (esp.WirePartsRefresh )
esp.WireParts
parts = {}
_, part (char:())
part:() part.Transparency < part.Size.Magnitude >
.(parts, part)
.(parts, (a, b)
pa = WIRE_PART_PRIORITY[a.Name]
pb = WIRE_PART_PRIORITY[b.Name]
pa == pb
a.Size.Magnitude > b.Size.Magnitude
pa < pb
)
esp.WireParts = parts
esp.WirePartsChar = char
esp.WirePartsRefresh = now +
parts
WIRE_FACE_BUILDERS = {
(sx, sy, sz, u, v) .( sx, -sy + * sy * u, -sz + * sz * v) ,
(sx, sy, sz, u, v) .(-sx, -sy + * sy * u, -sz + * sz * v) ,
(sx, sy, sz, u, v) .(-sx + * sx * u, sy, -sz + * sz * v) ,
(sx, sy, sz, u, v) .(-sx + * sx * u, -sy, -sz + * sz * v) ,
(sx, sy, sz, u, v) .(-sx + * sx * u, -sy + * sy * v, sz) ,
(sx, sy, sz, u, v) .(-sx + * sx * u, -sy + * sy * v, -sz) ,
}
(esp, char, color, thickness, linesBudget, drawEdges, drawFaces, lineTransparency, faceTransparency)
esp char
hasLines = drawEdges esp.WireMesh #esp.WireMesh >
hasTris = drawFaces esp.WireTriangles #esp.WireTriangles >
hasLines hasTris
maxBudget = .(.((linesBudget) ), , )
maxLines = hasLines .(maxBudget, #esp.WireMesh)
maxTris = hasTris .(maxBudget, #esp.WireTriangles)
wireThickness = .((thickness) , , )
wireTransparency = .(lineTransparency , , )
triTransparency = .(faceTransparency (Settings.ChamTransparency ), , )
wireStyle = Settings.ChamWireStyle
useGlow = Settings.ChamWireGlow esp.WireGlow #esp.WireGlow >
lineCursor =
triCursor =
parts = (esp, char)
partCount = .(, #parts)
budgetPerPart = .(, .(maxBudget / partCount))
subdivisions =
d = ,
perFace =
hasLines
perFace = perFace + ( * d * d + * d)
hasTris
perFace = perFace + ( * d * d)
estimate = * perFace
estimate <= budgetPerPart
subdivisions = d
(a, b)
hasLines lineCursor > maxLines a b
ln = esp.WireMesh[lineCursor]
ln.Visible =
ln.From = a
ln.To = b
ln.Color = color
ln.Transparency = wireTransparency
ln.Thickness = wireThickness
useGlow
glow = esp.WireGlow[lineCursor]
glow
glow.Visible =
glow.From = a
glow.To = b
glow.Color = (color, .(, , ), )
glow.Transparency = .(wireTransparency + , , )
glow.Thickness = wireThickness +
lineCursor = lineCursor +
(a, b, c)
hasTris triCursor > maxTris a b c
tri = esp.WireTriangles[triCursor]
tri.Visible =
tri.PointA = a
tri.PointB = b
tri.PointC = c
tri.Color = color
tri.Transparency = triTransparency
triCursor = triCursor +
_, part (parts)
( hasLines lineCursor > maxLines) ( hasTris triCursor > maxTris)
cf = part.CFrame
sx, sy, sz = part.Size.X * , part.Size.Y * , part.Size.Z *
_, BuildFacePoint (WIRE_FACE_BUILDERS)
( hasLines lineCursor > maxLines) ( hasTris triCursor > maxTris)
grid = {}
i = , subdivisions +
grid[i] = {}
u = (i - ) / subdivisions
j = , subdivisions +
v = (j - ) / subdivisions
localPoint = (sx, sy, sz, u, v)
worldPoint = cf:(localPoint)
screenPoint, vis = Camera:(worldPoint)
vis screenPoint.Z >
grid[i][j] = .(screenPoint.X, screenPoint.Y)
hasLines wireStyle ==
i = , subdivisions +
j = , subdivisions
(grid[i][j], grid[i][j + ])
lineCursor > maxLines
lineCursor > maxLines
lineCursor > maxLines
j = , subdivisions +
i = , subdivisions
(grid[i][j], grid[i + ][j])
lineCursor > maxLines
lineCursor > maxLines
lineCursor > maxLines
hasLines wireStyle ==
last = subdivisions +
(grid[][], grid[last][])
(grid[last][], grid[last][last])
(grid[last][last], grid[][last])
(grid[][last], grid[][])
wireStyle ~= hasTris
i = , subdivisions
j = , subdivisions
p00 = grid[i][j]
p01 = grid[i][j + ]
p10 = grid[i + ][j]
p11 = grid[i + ][j + ]
hasLines wireStyle ==
(p00, p10)
(p00, p01)
i == subdivisions (p10, p11)
j == subdivisions (p01, p11)
(i + j) % ==
hasLines (p00, p11)
hasTris
(p00, p10, p11)
(p00, p11, p01)
hasLines (p10, p01)
hasTris
(p00, p10, p01)
(p10, p11, p01)
( hasLines lineCursor > maxLines) ( hasTris triCursor > maxTris)
( hasLines lineCursor > maxLines) ( hasTris triCursor > maxTris)
esp.WireMesh
i = lineCursor, #esp.WireMesh
esp.WireMesh[i].Visible =
esp.WireGlow
i = lineCursor, #esp.WireGlow
esp.WireGlow[i].Visible =
esp.WireTriangles
i = triCursor, #esp.WireTriangles
esp.WireTriangles[i].Visible =
()
target, dist = , .(Settings.FOV, )
mouse = UIS:()
_, p (Players:())
p ~= Player p.Character (p)
part = (p.Character)
hum = p.Character:()
part hum hum.Health > 0 then
local pos, vis = Camera:WorldToViewportPoint(part.Position)
if vis then
local mDist = (Vector2.new(pos.X, pos.Y) - mouse).Magnitude
if mDist < dist and IsVisible(part) then
dist = mDist; target = part
end
end
end
end
end
return target
end
-- в•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђ
-- AIMBOT INPUT
-- в•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђ
UIS.InputBegan:Connect(function(input, proc)
if not Settings.Enabled then return end
if proc and input.UserInputType ~= Enum.UserInputType.MouseButton1 then return end
-- Silent aim on click
if input.UserInputType == Enum.UserInputType.MouseButton1 and Settings.SilentAim then
local clickTarget = CurrentTarget or UpdateTarget()
if clickTarget then
CurrentTarget = clickTarget
end
-- If hook is unavailable in executor, fallback to camera flick.
if CurrentTarget and not SilentHookReady then
local targetPos = GetSilentTargetPosition()
if targetPos then
local oldCF = Camera.CFrame
Camera.CFrame = CFrame.new(Camera.CFrame.Position, targetPos)
if Settings.SilentForceShot then
FireMouseClick()
end
task.wait(math.max(Settings.ShotDelay or 0, 0))
Camera.CFrame = oldCF
end
end
end
-- Click TP
if Settings.ClickTP and input.UserInputType == Enum.UserInputType.MouseButton1 and UIS:IsKeyDown(Enum.KeyCode.LeftControl) then
pcall(function()
local mouse = Player:GetMouse()
if mouse.Target then
Player.Character.HumanoidRootPart.CFrame = CFrame.new(mouse.Hit.Position + Vector3.new(0, 3, 0))
end
end)
end
end)
-- Infinite jump
UIS.JumpRequest:Connect(function()
if Settings.InfJumpEnabled then
pcall(function() Player.Character:FindFirstChildOfClass("Humanoid"):ChangeState(Enum.HumanoidStateType.Jumping) end)
end
end)
-- Anti-AFK
Player.Idled:Connect(function()
if Settings.AntiAFK then
pcall(function()
local VU = game:GetService("VirtualUser")
VU:Button2Down(Vector2.new(), workspace.CurrentCamera.CFrame)
task.wait(1)
VU:Button2Up(Vector2.new(), workspace.CurrentCamera.CFrame)
end)
end
end)
-- в•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђ
-- MAIN RENDER LOOP
-- в•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђ
RunService.RenderStepped:Connect(function()
Camera = workspace.CurrentCamera
RaycastsThisFrame = 0
CurrentTarget = UpdateTarget()
LastRaycastCount = RaycastsThisFrame
local RGB = Color3.fromHSV(tick() % 5 / 5, 1, 1)
local VP = Camera.ViewportSize
local center = Vector2.new(VP.X / 2, VP.Y / 2)
local mousePos = UIS:GetMouseLocation()
-- FOV Circle
FOVCircle.Visible = Settings.Enabled and Settings.ShowFOV
FOVCircle.Radius = Settings.FOV
FOVCircle.Position = mousePos
FOVCircle.Color = Settings.FOVColor
-- Raycast visuals (screen lines to nearest targets)
for i = 1, #RaycastLines do
RaycastLines[i].Visible = false
end
if Settings.Enabled and Settings.RaycastVisuals then
local pool = {}
for _, p in pairs(Players:GetPlayers()) do
if p ~= Player and p.Character and IsEnemy(p) then
local part = p.Character:FindFirstChild(Settings.HitPart)
local hum = p.Character:FindFirstChildOfClass("Humanoid")
if part and hum and hum.Health > 0 then
local pos, vis = Camera:WorldToViewportPoint(part.Position)
if vis then
local scr = Vector2.new(pos.X, pos.Y)
local d = (scr - mousePos).Magnitude
if d <= Settings.FOV then
table.insert(pool, {ScreenPos = scr, Dist = d})
end
end
end
end
end
table.sort(pool, function(a, b) return a.Dist < b.Dist end)
local maxLines = math.min(Settings.RaycastMaxLines, #RaycastLines, #pool)
for i = 1, maxLines do
local line = RaycastLines[i]
line.From = mousePos
line.To = pool[i].ScreenPos
line.Color = Settings.RaycastColor
line.Visible = true
end
end
RaycastCountText.Visible = Settings.Enabled and Settings.RaycastShowCount
if RaycastCountText.Visible then
RaycastCountText.Text = "Raycasts: " .. tostring(LastRaycastCount)
RaycastCountText.Position = Vector2.new(mousePos.X + 16, mousePos.Y + 16)
RaycastCountText.Color = Settings.RaycastColor
end
-- Target visuals
if CurrentTarget and Settings.Enabled then
local pos, vis = Camera:WorldToViewportPoint(CurrentTarget.Position)
if vis then
local tPos = Vector2.new(pos.X, pos.Y)
TargetLine.Visible = Settings.TargetTracer
TargetLine.From = center
TargetLine.To = tPos
TargetLine.Color = Settings.TargetColor
TargetCircle.Visible = Settings.TargetESP
TargetCircle.Position = tPos
TargetCircle.Color = Settings.TargetColor
TargetCircle.Radius = 13 + math.sin(tick() * 6) * 2
local showPanel = Settings.TargetPanel
if showPanel then
local targetChar = CurrentTarget.Parent
local targetHum = targetChar and targetChar:FindFirstChildOfClass("Humanoid")
local nameText = targetChar and targetChar.Name or "Target"
local hpText = targetHum and (math.floor(targetHum.Health) .. " / " .. math.floor(targetHum.MaxHealth) .. " HP") or "HP: ?"
local hpPct = targetHum and targetHum.MaxHealth > 0 and math.clamp(targetHum.Health / targetHum.MaxHealth, 0, 1) or 0
local distText = "DST: ?"
if Player.Character and Player.Character:FindFirstChild("HumanoidRootPart") then
local d = (Player.Character.HumanoidRootPart.Position - CurrentTarget.Position).Magnitude
distText = "DST: " .. math.floor(d)
end
local panelW, panelH = 158, 60
local px, py = tPos.X + 18, tPos.Y + 10
if px + panelW > VP.X - 6 then px = tPos.X - panelW - 18 end
if py + panelH > VP.Y - 6 then py = tPos.Y - panelH - 10 end
TargetPanelBG.Visible = true
TargetPanelBG.Position = Vector2.new(px, py)
TargetPanelBG.Size = Vector2.new(panelW, panelH)
TargetPanelAccent.Visible = true
TargetPanelAccent.Position = Vector2.new(px, py)
TargetPanelAccent.Size = Vector2.new(panelW, 2)
TargetPanelAccent.Color = Settings.TargetColor
local tTheme = GetTheme()
TargetPanelBG.Color = tTheme.card
TargetPanelName.Visible = true
TargetPanelName.Position = Vector2.new(px + 6, py + 4)
TargetPanelName.Text = nameText
TargetPanelName.Color = tTheme.text
TargetPanelInfo1.Visible = true
TargetPanelInfo1.Position = Vector2.new(px + 6, py + 22)
TargetPanelInfo1.Text = hpText
TargetPanelInfo1.Color = tTheme.subtext
local hpBarPos = Vector2.new(px + 6, py + 38)
TargetPanelHealthBG.Visible = true
TargetPanelHealthBG.Position = hpBarPos
TargetPanelHealthBG.Size = Vector2.new(panelW - 12, 4)
TargetPanelHealth.Visible = true
TargetPanelHealth.Position = hpBarPos
TargetPanelHealth.Size = Vector2.new((panelW - 12) * hpPct, 4)
TargetPanelHealth.Color = GetHealthColor(targetHum)
TargetPanelInfo2.Visible = true
TargetPanelInfo2.Position = Vector2.new(px + 6, py + 45)
TargetPanelInfo2.Text = distText
TargetPanelInfo2.Color = tTheme.subtext
else
TargetPanelBG.Visible = false; TargetPanelAccent.Visible = false; TargetPanelHealthBG.Visible = false; TargetPanelHealth.Visible = false
TargetPanelName.Visible = false; TargetPanelInfo1.Visible = false; TargetPanelInfo2.Visible = false
end
else
TargetLine.Visible = false; TargetCircle.Visible = false
TargetPanelBG.Visible = false; TargetPanelAccent.Visible = false; TargetPanelHealthBG.Visible = false; TargetPanelHealth.Visible = false
TargetPanelName.Visible = false; TargetPanelInfo1.Visible = false; TargetPanelInfo2.Visible = false
end
else
TargetLine.Visible = false; TargetCircle.Visible = false
TargetPanelBG.Visible = false; TargetPanelAccent.Visible = false; TargetPanelHealthBG.Visible = false; TargetPanelHealth.Visible = false
TargetPanelName.Visible = false; TargetPanelInfo1.Visible = false; TargetPanelInfo2.Visible = false
end
-- Continuous aimbot lock (SilentAim off = visible lock)
if Settings.Enabled and CurrentTarget and not Settings.SilentAim then
local targetPos = CurrentTarget.Position
if Settings.Prediction then
local vel = CurrentTarget.AssemblyLinearVelocity or CurrentTarget.Velocity or Vector3.new()
targetPos = targetPos + vel * Settings.PredictionAmount
end
local targetCF = CFrame.new(Camera.CFrame.Position, targetPos)
if Settings.Smoothing then
Camera.CFrame = Camera.CFrame:Lerp(targetCF, 1 / math.max(Settings.SmoothFactor, 1))
else
Camera.CFrame = targetCF
end
end
-- Auto fire / Triggerbot (uses aimbot FOV, not crosshair)
if (Settings.AutoFire or Settings.TriggerBot) and Settings.Enabled and CurrentTarget then
pcall(function()
local pos, vis = Camera:WorldToViewportPoint(CurrentTarget.Position)
if vis then
local dist = (Vector2.new(pos.X, pos.Y) - mousePos).Magnitude
if dist <= Settings.FOV and (tick() - LastTriggerShot) >= Settings.TriggerDelay then
LastTriggerShot = tick()
FireMouseClick()
end
end
end)
end
-- в•ђв•ђ HITBOX SINK в•ђв•ђ
-- HipHeight метод: физика держит персонажа на земле, но HRP уходит ниже
pcall(function()
local char = Player.Character
if not char then return end
local hrp = char:FindFirstChild("HumanoidRootPart")
local hum = char:FindFirstChildOfClass("Humanoid")
if not hrp or not hum then return end
if Settings.HitboxSink then
local depth = Settings.HitboxSinkDepth
-- Сохраняем оригинальные значения при первом включении
if not hrp:FindFirstChild("FlickSinkAnchor") then
local marker = Instance.new("NumberValue")
marker.Name = "FlickSinkAnchor"
marker.Value = hum.HipHeight -- запоминаем оригинальный HipHeight
marker.Parent = hrp
-- Запоминаем оригинальные Motor6D offsets
for _, motor in pairs(char:GetDescendants()) do
if motor:IsA("Motor6D") and motor.Part0 == hrp then
motor:SetAttribute("OrigC0Y", motor.C0.Position.Y)
end
end
end
-- HipHeight = отрицательный → HRP опускается под землю
-- Физика НЕ ломается, персонаж ходит по земле нормально
hum.HipHeight = -depth
-- Motor6D компенсация: визуально поднимаем тело обратно наверх
for _, motor in pairs(char:GetDescendants()) do
if motor:IsA("Motor6D") and motor.Part0 == hrp then
local origY = motor:GetAttribute("OrigC0Y") or 0
local pos3 = motor.C0.Position
motor.C0 = CFrame.new(pos3.X, origY + depth, pos3.Z) * (motor.C0 - motor.C0.Position)
end
end
elseif hrp:FindFirstChild("FlickSinkAnchor") then
-- Восстанавливаем всё при выключении
local origHH = hrp:FindFirstChild("FlickSinkAnchor").Value
hum.HipHeight = origHH
for _, motor in pairs(char:GetDescendants()) do
if motor:IsA("Motor6D") and motor.Part0 == hrp then
local origY = motor:GetAttribute("OrigC0Y")
if origY then
local pos3 = motor.C0.Position
motor.C0 = CFrame.new(pos3.X, origY, pos3.Z) * (motor.C0 - motor.C0.Position)
end
end
end
hrp:FindFirstChild("FlickSinkAnchor"):Destroy()
end
-- Hitbox Desync (Jitter) — использует HipHeight для дёрганья
if Settings.HitboxDesync and not Settings.HitboxSink then
local offset = Settings.HitboxDesyncOffset
local jitter = math.abs(math.sin(tick() * 15)) * offset
hum.HipHeight = -jitter
elseif not Settings.HitboxSink and not Settings.HitboxDesync then
-- Восстанавливаем HipHeight если оба выключены
if hrp:GetAttribute("OrigHipHeight") then
hum.HipHeight = hrp:GetAttribute("OrigHipHeight")
end
end
end)
-- Crosshair
if Settings.CrosshairEnabled then
local sz, gap, clr, thk = Settings.CrosshairSize, Settings.CrosshairGap, Settings.CrosshairColor, Settings.CrosshairThickness
-- Top
CrossLines[1].Visible = true; CrossLines[1].From = center - Vector2.new(0, gap); CrossLines[1].To = center - Vector2.new(0, gap + sz); CrossLines[1].Color = clr; CrossLines[1].Thickness = thk
-- Bottom
CrossLines[2].Visible = true; CrossLines[2].From = center + Vector2.new(0, gap); CrossLines[2].To = center + Vector2.new(0, gap + sz); CrossLines[2].Color = clr; CrossLines[2].Thickness = thk
-- Left
CrossLines[3].Visible = true; CrossLines[3].From = center - Vector2.new(gap, 0); CrossLines[3].To = center - Vector2.new(gap + sz, 0); CrossLines[3].Color = clr; CrossLines[3].Thickness = thk
-- Right
CrossLines[4].Visible = true; CrossLines[4].From = center + Vector2.new(gap, 0); CrossLines[4].To = center + Vector2.new(gap + sz, 0); CrossLines[4].Color = clr; CrossLines[4].Thickness = thk
CrossDot.Visible = Settings.DotEnabled; CrossDot.Position = center; CrossDot.Color = clr
else
for i = 1, 4 do CrossLines[i].Visible = false end; CrossDot.Visible = false
end
-- Lighting
if Settings.Fullbright then Lighting.Brightness = 2; Lighting.ClockTime = 14; Lighting.GlobalShadows = false; Lighting.Ambient = Settings.AmbientColor end
if Settings.NoFog then Lighting.FogEnd = 999999; Lighting.FogStart = 999999 end
if Settings.CustomTime then Lighting.ClockTime = Settings.TimeValue end
-- Post processing
if Settings.BloomEnabled then
if not BloomEffect then
BloomEffect = Instance.new("BloomEffect")
BloomEffect.Name = "FlickBloom"
BloomEffect.Parent = Lighting
end
BloomEffect.Enabled = true
BloomEffect.Intensity = Settings.BloomIntensity
BloomEffect.Size = Settings.BloomSize
BloomEffect.Threshold = Settings.BloomThreshold
elseif BloomEffect then
BloomEffect.Enabled = false
end
if Settings.ColorCorrectionEnabled then
if not ColorCorrectionEffect then
ColorCorrectionEffect = Instance.new("ColorCorrectionEffect")
ColorCorrectionEffect.Name = "FlickColorCorrection"
ColorCorrectionEffect.Parent = Lighting
end
ColorCorrectionEffect.Enabled = true
ColorCorrectionEffect.Contrast = Settings.ColorCorrectionContrast
ColorCorrectionEffect.Saturation = Settings.ColorCorrectionSaturation
ColorCorrectionEffect.TintColor = Settings.ColorCorrectionTint
elseif ColorCorrectionEffect then
ColorCorrectionEffect.Enabled = false
end
-- Movement
pcall(function()
local char = Player.Character
local hum = char and char:FindFirstChildOfClass("Humanoid")
local hrp = char and char:FindFirstChild("HumanoidRootPart")
if hum then
if Settings.SpeedEnabled then hum.WalkSpeed = Settings.SpeedValue end
if Settings.JumpPower then hum.JumpPower = Settings.JumpValue end
end
-- Noclip
if Settings.NoclipEnabled and char then
for _, p in pairs(char:GetDescendants()) do
if p:IsA("BasePart") then p.CanCollide = false end
end
end
-- Fly
if Settings.FlyEnabled and hrp then
local bp = hrp:FindFirstChild("FlickBP")
local bg = hrp:FindFirstChild("FlickBG")
if not bp then bp = Instance.new("BodyPosition") bp.Name = "FlickBP" bp.MaxForce = Vector3.new() bp.Parent = hrp end
if not bg then bg = Instance.new("BodyGyro") bg.Name = "FlickBG" bg.MaxTorque = Vector3.new() bg.Parent = hrp end
if UIS:IsKeyDown(Enum.KeyCode.Space) then
bp.MaxForce = Vector3.new(9e4, 9e4, 9e4)
bg.MaxTorque = Vector3.new(9e4, 9e4, 9e4)
bg.CFrame = Camera.CFrame
local md = Vector3.new()
if UIS:IsKeyDown(Enum.KeyCode.W) then md = md + Camera.CFrame.LookVector end
if UIS:IsKeyDown(Enum.KeyCode.S) then md = md - Camera.CFrame.LookVector end
if UIS:IsKeyDown(Enum.KeyCode.A) then md = md - Camera.CFrame.RightVector end
if UIS:IsKeyDown(Enum.KeyCode.D) then md = md + Camera.CFrame.RightVector end
bp.Position = md.Magnitude > 0 and hrp.Position + md.Unit * (Settings.FlySpeed / 25) or hrp.Position + Vector3.new(0, 0.2, 0)
else bp.MaxForce = Vector3.new(); bg.MaxTorque = Vector3.new() end
end
end)
-- Render players ESP + Chams
for _, p in pairs(Players:GetPlayers()) do
if p ~= Player then
local esp = GetESP(p)
local char = p.Character
if char and char:FindFirstChild("HumanoidRootPart") and char:FindFirstChild("Head") then
local hum = char:FindFirstChildOfClass("Humanoid")
if hum and hum.Health > 0 then
-- Highlight (Chams/Glow)
local hl = char:FindFirstChild("FlickHL")
if not hl then hl = Instance.new("Highlight") hl.Name = "FlickHL" hl.Parent = char end
local chamType = Settings.ChamType or "Fill"
local distance = GetCharacterDistance(char)
local maxChamDistance = tonumber(Settings.ChamMaxDistance) or 900
local inChamRange = maxChamDistance <= 0 or distance <= maxChamDistance
local isCurrentTarget = CurrentTarget and CurrentTarget:IsDescendantOf(char)
local chamsEnabled = Settings.ChamsEnabled and inChamRange
local showWire = chamsEnabled and (chamType == "Wireframe" or chamType == "Fill+Wireframe" or chamType == "TriMesh")
local showTriFill = chamsEnabled and (chamType == "TriFill" or chamType == "TriMesh")
local showFill = chamsEnabled and (chamType == "Fill" or chamType == "Flat" or chamType == "Fill+Wireframe")
local showChamOutline = chamsEnabled and (chamType == "Outline" or chamType == "Fill+Wireframe")
local showWireWallOutline = showWire or showTriFill
local showOutline = (Settings.GlowEnabled and inChamRange) or showChamOutline or showWireWallOutline
local chamColor, outlineColor, fillTransparency, outlineTransparency = GetChamStyle(p, char, hum, isCurrentTarget, RGB, distance)
hl.Adornee = char
hl.Enabled = showFill or showOutline
hl.FillColor = chamColor
hl.OutlineColor = showWireWallOutline and chamColor or outlineColor
hl.FillTransparency = showFill and fillTransparency or 1
hl.OutlineTransparency = showOutline and outlineTransparency or 1
hl.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
UpdateWireframe(char)
if showWire or showTriFill then
RenderWireMeshForCharacter(esp, char, chamColor, Settings.ChamWireThickness, Settings.ChamWireLines, showWire, showTriFill, outlineTransparency, fillTransparency)
else
HideWireMesh(esp)
end
local hrp = char.HumanoidRootPart
local head = char.Head
local pos, vis = Camera:WorldToViewportPoint(hrp.Position)
local headPos = Camera:WorldToViewportPoint(head.Position + Vector3.new(0, 0.5, 0))
local legPos = Camera:WorldToViewportPoint(hrp.Position - Vector3.new(0, 3, 0))
if vis then
local height = math.abs(headPos.Y - legPos.Y)
local width = height / 2
local topLeft = Vector2.new(pos.X - width / 2, headPos.Y)
-- Box visuals
local showCorners = Settings.CornerBoxes
local showBox = Settings.Boxes and not showCorners
local showFill = Settings.BoxFill and (showBox or showCorners)
esp.BoxOutline.Visible = showBox
esp.Box.Visible = showBox
if showBox then
esp.BoxOutline.Size = Vector2.new(width, height)
esp.BoxOutline.Position = topLeft
esp.Box.Size = Vector2.new(width, height)
esp.Box.Position = topLeft
esp.Box.Color = Settings.BoxColor
end
esp.BoxFill.Visible = showFill
if showFill then
esp.BoxFill.Size = Vector2.new(width, height)
esp.BoxFill.Position = topLeft
esp.BoxFill.Color = Settings.BoxFillColor
esp.BoxFill.Transparency = Settings.BoxFillTransparency
end
for i = 1, 8 do esp.Corners[i].Visible = false end
if showCorners then
local cornerMax = math.max(3, math.floor(math.min(width, height) / 2))
local cornerLen = math.clamp(Settings.CornerLength, 3, cornerMax)
local x, y = topLeft.X, topLeft.Y
local w, h = width, height
local c = Settings.BoxColor
local corners = esp.Corners
corners[1].Visible = true; corners[1].From = Vector2.new(x, y); corners[1].To = Vector2.new(x + cornerLen, y); corners[1].Color = c
corners[2].Visible = true; corners[2].From = Vector2.new(x, y); corners[2].To = Vector2.new(x, y + cornerLen); corners[2].Color = c
corners[3].Visible = true; corners[3].From = Vector2.new(x + w - cornerLen, y); corners[3].To = Vector2.new(x + w, y); corners[3].Color = c
corners[4].Visible = true; corners[4].From = Vector2.new(x + w, y); corners[4].To = Vector2.new(x + w, y + cornerLen); corners[4].Color = c
corners[5].Visible = true; corners[5].From = Vector2.new(x, y + h - cornerLen); corners[5].To = Vector2.new(x, y + h); corners[5].Color = c
corners[6].Visible = true; corners[6].From = Vector2.new(x, y + h); corners[6].To = Vector2.new(x + cornerLen, y + h); corners[6].Color = c
corners[7].Visible = true; corners[7].From = Vector2.new(x + w - cornerLen, y + h); corners[7].To = Vector2.new(x + w, y + h); corners[7].Color = c
corners[8].Visible = true; corners[8].From = Vector2.new(x + w, y + h - cornerLen); corners[8].To = Vector2.new(x + w, y + h); corners[8].Color = c
end
-- Name
esp.Name.Visible = Settings.Names
esp.Name.Text = p.DisplayName
esp.Name.Position = Vector2.new(pos.X, headPos.Y - 18)
esp.Name.Color = Settings.NameColor
-- Distance
esp.Distance.Visible = Settings.Distance
if Player.Character and Player.Character:FindFirstChild("HumanoidRootPart") then
esp.Distance.Text = math.floor((Player.Character.HumanoidRootPart.Position - hrp.Position).Magnitude) .. "m"
end
esp.Distance.Position = Vector2.new(pos.X, legPos.Y + 4)
esp.Distance.Color = Settings.DistanceColor
-- Tracer
esp.Tracer.Visible = Settings.Tracers
esp.Tracer.From = Vector2.new(VP.X / 2, VP.Y)
esp.Tracer.To = Vector2.new(pos.X, legPos.Y)
esp.Tracer.Color = Settings.TracerColor
-- Health Bar
if Settings.HealthBar then
local barW = 3
local barH = height
local barX = topLeft.X - barW - 3
local barY = headPos.Y
local healthPct = math.clamp(hum.Health / hum.MaxHealth, 0, 1)
esp.HealthBarBG.Visible = true
esp.HealthBarBG.Position = Vector2.new(barX, barY)
esp.HealthBarBG.Size = Vector2.new(barW, barH)
esp.HealthBar.Visible = true
esp.HealthBar.Position = Vector2.new(barX, barY + barH * (1 - healthPct))
esp.HealthBar.Size = Vector2.new(barW, barH * healthPct)
esp.HealthBar.Color = Color3.fromRGB(255 * (1 - healthPct), 255 * healthPct, 0)
else esp.HealthBarBG.Visible = false; esp.HealthBar.Visible = false end
else
esp.Box.Visible = false; esp.BoxOutline.Visible = false; esp.Name.Visible = false
esp.BoxFill.Visible = false
for i = 1, 8 do esp.Corners[i].Visible = false end
esp.Distance.Visible = false; esp.Tracer.Visible = false
esp.HealthBar.Visible = false; esp.HealthBarBG.Visible = false
HideWireMesh(esp)
end
else
-- Dead player - clean visuals
esp.Box.Visible = false; esp.BoxOutline.Visible = false; esp.Name.Visible = false
esp.BoxFill.Visible = false
for i = 1, 8 do esp.Corners[i].Visible = false end
esp.Distance.Visible = false; esp.Tracer.Visible = false
esp.HealthBar.Visible = false; esp.HealthBarBG.Visible = false
if char:FindFirstChild("FlickHL") then char.FlickHL.Enabled = false end
UpdateWireframe(char)
HideWireMesh(esp)
end
else
esp.Box.Visible = false; esp.BoxOutline.Visible = false; esp.Name.Visible = false
esp.BoxFill.Visible = false
for i = 1, 8 do esp.Corners[i].Visible = false end
esp.Distance.Visible = false; esp.Tracer.Visible = false
esp.HealthBar.Visible = false; esp.HealthBarBG.Visible = false
HideWireMesh(esp)
if char then
if char:FindFirstChild("FlickHL") then char.FlickHL.Enabled = false end
UpdateWireframe(char)
end
end
end
end
-- в•ђв•ђ PARTICLES в•ђв•ђ
pcall(function()
local char = Player.Character
if not char then return end
local hrp = char:FindFirstChild("HumanoidRootPart")
if not hrp then return end
local RGB = Color3.fromHSV(tick() % 5 / 5, 1, 1)
if not char:FindFirstChild("FlickFXClean") then
local tag = Instance.new("BoolValue")
tag.Name = "FlickFXClean"
tag.Parent = char
for _, obj in pairs(char:GetDescendants()) do
if obj.Name == "FlickSparkle" or obj.Name == "FlickFire" or obj.Name == "FlickSmoke" or obj.Name == "FlickParticle" then
obj:Destroy()
end
end
end
-- Trail
if Settings.TrailEnabled then
local head = char:FindFirstChild("Head")
if hrp and head and not hrp:FindFirstChild("FlickTrail") then
local a0 = Instance.new("Attachment") a0.Name = "FlickTrailA" a0.Position = Vector3.new(0, 1, 0) a0.Parent = hrp
local a1 = Instance.new("Attachment") a1.Name = "FlickTrailB" a1.Position = Vector3.new(0, -2, 0) a1.Parent = hrp
local tr = Instance.new("Trail") tr.Name = "FlickTrail"
tr.Attachment0 = a0; tr.Attachment1 = a1
tr.Lifetime = Settings.TrailLifetime; tr.LightEmission = 1
tr.MinLength = 0; tr.FaceCamera = true
tr.Parent = hrp
end
local tr = hrp:FindFirstChild("FlickTrail")
if tr then
tr.Lifetime = Settings.TrailLifetime
local tCol = Settings.RainbowParticles and RGB or Settings.TrailColor
tr.Color = ColorSequence.new(tCol)
tr.Transparency = NumberSequence.new({NumberSequenceKeypoint.new(0, 0), NumberSequenceKeypoint.new(1, 1)})
tr.Enabled = true
end
end
-- Aura
if Settings.AuraEnabled then
if not hrp:FindFirstChild("FlickAura") then
local pe = Instance.new("ParticleEmitter") pe.Name = "FlickAura"
pe.Texture = "rbxassetid://243098098"
pe.Rate = 50; pe.Speed = NumberRange.new(0.5, 2)
pe.Size = NumberSequence.new({NumberSequenceKeypoint.new(0, 1.5), NumberSequenceKeypoint.new(1, 0)})
pe.Lifetime = NumberRange.new(0.5, 1); pe.LightEmission = 1; pe.LightInfluence = 0
pe.SpreadAngle = Vector2.new(180, 180)
pe.Parent = hrp
end
local aura = hrp:FindFirstChild("FlickAura")
if aura then aura.Color = ColorSequence.new(Settings.RainbowParticles and RGB or Settings.AuraColor); aura.Enabled = true end
end
end)
end)
-- в•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђ
-- HUD + Notifications + ArrayList (Drawing API) - MODERN CLEAN HUD
-- =============================================================
local VisualUI = {}
local function Lerp(a, b, t)
return a + (b - a) * t
end
local function LerpV2(a, b, t)
return Vector2.new(Lerp(a.X, b.X, t), Lerp(a.Y, b.Y, t))
end
local function Snap(n)
return math.floor(n + 0.5)
end
local function SnapV2(v)
return Vector2.new(Snap(v.X), Snap(v.Y))
end
local function HSVGradient(speed)
local h = (tick() * speed) % 1
return Color3.fromHSV(h, 0.85, 1)
end
local function HUDAlpha(kind)
local style = Settings.HUDStyle or "Glass"
if style == "Minimal" then
return kind == "shadow" and 1 or 0.45
elseif style == "Contrast" then
return kind == "shadow" and 0.35 or 0.04
end
return kind == "shadow" and 0.58 or 0.16
end
local function SetDrawVisible(list, visible)
for _, obj in ipairs(list) do
if obj then obj.Visible = visible end
end
end
local function FormatVec3(v)
return string.format("%d, %d, %d", math.floor(v.X), math.floor(v.Y), math.floor(v.Z))
end
local function NewText()
local t = Drawing.new("Text")
t.Font = Drawing.Fonts.Plex
t.Size = 14
t.Outline = true
t.Color = Color3.fromRGB(235, 235, 240)
t.Visible = true
return t
end
local function NewSquare()
local s = Drawing.new("Square")
s.Filled = true
s.Visible = true
return s
end
-- Style
local UI_BG = Color3.fromRGB(14, 14, 18)
local UI_TEXT = Color3.fromRGB(235, 235, 240)
local UI_SUBTEXT = Color3.fromRGB(205, 210, 220)
local HUDLayout = {
margin = 16,
gap = 8,
wmPadX = 10,
wmPadY = 6,
healthWidth = 238,
healthHeight = 12,
statsWidth = 238,
keybindWidth = 238,
rowHeight = 20,
notifWidth = 316,
notifHeight = 42
}
local function ClampHUDPos(pos, size, vp)
local maxX = math.max(0, vp.X - size.X)
local maxY = math.max(0, vp.Y - size.Y)
return Vector2.new(math.clamp(pos.X, 0, maxX), math.clamp(pos.Y, 0, maxY))
end
local function ResolveHUDPos(key, defaultPos, size, vp)
return ClampHUDPos(defaultPos, size, vp)
end
-- =========================
-- Notifications
-- =========================
VisualUI.Notifs = {
items = {},
queue = {},
maxVisible = 5,
width = HUDLayout.notifWidth,
height = HUDLayout.notifHeight,
padding = 8,
life = 3
}
local notifColors = {
info = Color3.fromRGB(120, 190, 255),
success = Color3.fromRGB(120, 255, 170),
warning = Color3.fromRGB(255, 200, 80)
}
function VisualUI:Notify(text, nType)
nType = nType or "info"
table.insert(self.Notifs.queue, {
text = text,
type = nType,
time = tick()
})
end
local function CreateNotif(data)
local theme = GetTheme()
local bg = NewSquare()
bg.Color = theme.card
bg.Transparency = 0.15
bg.Size = Vector2.new(VisualUI.Notifs.width, VisualUI.Notifs.height)
local shadow = NewSquare()
shadow.Color = theme.bg
shadow.Transparency = 0.55
shadow.Size = Vector2.new(VisualUI.Notifs.width + 4, VisualUI.Notifs.height + 4)
local bar = NewSquare()
bar.Color = notifColors[data.type] or Settings.HUDColor
bar.Transparency = 0
bar.Size = Vector2.new(4, VisualUI.Notifs.height)
local lifeBar = NewSquare()
lifeBar.Color = notifColors[data.type] or Settings.HUDColor
lifeBar.Transparency = 0
lifeBar.Size = Vector2.new(VisualUI.Notifs.width, 2)
local icon = NewSquare()
icon.Size = Vector2.new(8, 8)
icon.Color = notifColors[data.type] or Settings.HUDColor
icon.Transparency = 0
local txt = NewText()
txt.Text = data.text
txt.Size = 14
txt.Color = theme.text
return {
shadow = shadow,
bg = bg,
bar = bar,
lifeBar = lifeBar,
icon = icon,
txt = txt,
start = tick(),
alpha = 0,
pos = Vector2.new(0, 0),
data = data
}
end
-- =========================
-- ArrayList
-- =========================
VisualUI.Array = {
byName = {},
ordered = {},
width = 210,
rowHeight = 22,
padding = 4,
slideOffset = 26
}
local function BuildArray(modList)
table.sort(modList, function(a, b) return #a > #b end)
local active = {}
for _, name in ipairs(modList) do
active[name] = true
local item = VisualUI.Array.byName[name]
if not item then
local bg = NewSquare()
bg.Color = GetTheme().card
bg.Transparency = 0.2
bg.Size = Vector2.new(VisualUI.Array.width, VisualUI.Array.rowHeight)
local shadow = NewSquare()
shadow.Color = GetTheme().bg
shadow.Transparency = 0.62
shadow.Size = Vector2.new(VisualUI.Array.width + 4, VisualUI.Array.rowHeight + 4)
local txt = NewText()
txt.Text = name
txt.Size = 14
txt.Color = GetTheme().text
local bar = NewSquare()
bar.Color = Settings.HUDColor
bar.Size = Vector2.new(3, VisualUI.Array.rowHeight)
local glow = NewSquare()
glow.Color = Settings.HUDColor
glow.Transparency = 0.72
glow.Size = Vector2.new(1, VisualUI.Array.rowHeight)
item = {
name = name,
shadow = shadow,
bg = bg,
txt = txt,
bar = bar,
glow = glow,
alpha = 0,
targetAlpha = 1,
x = 0
}
VisualUI.Array.byName[name] = item
else
item.targetAlpha = 1
item.txt.Text = name
end
end
for name, item in pairs(VisualUI.Array.byName) do
if not active[name] then
item.targetAlpha = 0
end
end
VisualUI.Array.ordered = modList
end
-- =========================
-- HUD
-- =========================
VisualUI.HUD = {
wm = {},
health = { value = 1 },
stats = {},
keys = {},
}
VisualUI.ESPPreview = {}
local function BuildHUD()
local theme = GetTheme()
-- Watermark (fake blur via stacked layers)
VisualUI.HUD.wm.blur3 = NewSquare()
VisualUI.HUD.wm.blur3.Color = theme.bg
VisualUI.HUD.wm.blur3.Transparency = 0.6
VisualUI.HUD.wm.blur2 = NewSquare()
VisualUI.HUD.wm.blur2.Color = theme.bg
VisualUI.HUD.wm.blur2.Transparency = 0.48
VisualUI.HUD.wm.blur = NewSquare()
VisualUI.HUD.wm.blur.Color = theme.card
VisualUI.HUD.wm.blur.Transparency = 0.36
VisualUI.HUD.wm.bg = NewSquare()
VisualUI.HUD.wm.bg.Color = theme.card
VisualUI.HUD.wm.bg.Transparency = 0.15
VisualUI.HUD.wm.accent = NewSquare()
VisualUI.HUD.wm.accent.Color = Settings.HUDColor
VisualUI.HUD.wm.accent.Transparency = 0
VisualUI.HUD.wm.text = NewText()
VisualUI.HUD.wm.text.Size = 13
VisualUI.HUD.wm.text.Color = theme.text
-- Health Bar
VisualUI.HUD.health.shadow = NewSquare()
VisualUI.HUD.health.shadow.Color = theme.bg
VisualUI.HUD.health.shadow.Transparency = 0.62
VisualUI.HUD.health.bg = NewSquare()
VisualUI.HUD.health.bg.Color = theme.card
VisualUI.HUD.health.bg.Transparency = 0.2
VisualUI.HUD.health.bg.Size = Vector2.new(HUDLayout.healthWidth, HUDLayout.healthHeight)
VisualUI.HUD.health.damage = NewSquare()
VisualUI.HUD.health.damage.Color = Color3.fromRGB(255, 70, 70)
VisualUI.HUD.health.damage.Transparency = 0.45
VisualUI.HUD.health.fill = NewSquare()
VisualUI.HUD.health.fill.Color = Settings.HUDColor
VisualUI.HUD.health.fill.Transparency = 0
VisualUI.HUD.health.accent = NewSquare()
VisualUI.HUD.health.accent.Color = Settings.HUDColor
VisualUI.HUD.health.accent.Transparency = 0
VisualUI.HUD.health.text = NewText()
VisualUI.HUD.health.text.Size = 12
VisualUI.HUD.health.text.Center = true
VisualUI.HUD.health.text.Color = theme.text
-- Stats Panel
VisualUI.HUD.stats.shadow = NewSquare()
VisualUI.HUD.stats.shadow.Color = theme.bg
VisualUI.HUD.stats.shadow.Transparency = 0.62
VisualUI.HUD.stats.bg = NewSquare()
VisualUI.HUD.stats.bg.Color = theme.card
VisualUI.HUD.stats.bg.Transparency = 0.2
VisualUI.HUD.stats.bg.Size = Vector2.new(HUDLayout.statsWidth, 52)
VisualUI.HUD.stats.accent = NewSquare()
VisualUI.HUD.stats.accent.Color = Settings.HUDColor
VisualUI.HUD.stats.accent.Transparency = 0
VisualUI.HUD.stats.accent.Size = Vector2.new(HUDLayout.statsWidth, 2)
VisualUI.HUD.stats.title = NewText()
VisualUI.HUD.stats.title.Size = 12
VisualUI.HUD.stats.title.Color = theme.subtext
VisualUI.HUD.stats.title.Text = "STATUS"
VisualUI.HUD.stats.text = NewText()
VisualUI.HUD.stats.text.Size = 13
VisualUI.HUD.stats.text.Color = theme.text
-- Keybinds Panel
VisualUI.HUD.keys.shadow = NewSquare()
VisualUI.HUD.keys.shadow.Color = theme.bg
VisualUI.HUD.keys.shadow.Transparency = 0.62
VisualUI.HUD.keys.bg = NewSquare()
VisualUI.HUD.keys.bg.Color = theme.card
VisualUI.HUD.keys.bg.Transparency = 0.2
VisualUI.HUD.keys.accent = NewSquare()
VisualUI.HUD.keys.accent.Color = Settings.HUDColor
VisualUI.HUD.keys.accent.Transparency = 0
VisualUI.HUD.keys.title = NewText()
VisualUI.HUD.keys.title.Size = 12
VisualUI.HUD.keys.title.Color = theme.subtext
VisualUI.HUD.keys.title.Text = "KEYBINDS"
VisualUI.HUD.keys.text = NewText()
VisualUI.HUD.keys.text.Size = 13
VisualUI.HUD.keys.text.Color = theme.text
-- ESP Preview Panel (right side with Roblox character model)
local ep = VisualUI.ESPPreview
ep.panelShadow = NewSquare()
ep.panelShadow.Color = Color3.fromRGB(0, 0, 0)
ep.panelShadow.Transparency = 0.5
ep.panelBG = NewSquare()
ep.panelBG.Color = theme.card
ep.panelBG.Transparency = 0.12
ep.panelAccent = NewSquare()
ep.panelAccent.Color = Settings.HUDColor
ep.panelAccent.Transparency = 0
ep.title = NewText()
ep.title.Center = true
ep.title.Size = 13
ep.subtitle = NewText()
ep.subtitle.Center = true
ep.subtitle.Size = 11
ep.subtitle.Color = theme.subtext
-- Roblox blocky character body parts (filled squares with outlines)
ep.bodyParts = {}
local partNames = {"head", "torso", "leftArm", "rightArm", "leftLeg", "rightLeg"}
for _, pName in ipairs(partNames) do
local fill = NewSquare()
fill.Visible = false
local outline = Drawing.new("Square")
outline.Filled = false
outline.Thickness = 1.5
outline.Visible = false
ep.bodyParts[pName] = { fill = fill, outline = outline }
end
ep.box = Drawing.new("Square")
ep.box.Filled = false
ep.box.Thickness = 1
ep.box.Visible = false
ep.boxOutline = Drawing.new("Square")
ep.boxOutline.Filled = false
ep.boxOutline.Thickness = 2
ep.boxOutline.Color = Color3.new(0, 0, 0)
ep.boxOutline.Visible = false
ep.fill = NewSquare()
ep.corners = {}
for i = 1, 8 do
local ln = Drawing.new("Line")
ln.Thickness = 1.5
ln.Visible = false
ep.corners[i] = ln
end
ep.name = NewText()
ep.name.Center = true
ep.dist = NewText()
ep.dist.Center = true
ep.tracer = Drawing.new("Line")
ep.tracer.Thickness = 1
ep.tracer.Visible = false
ep.healthBG = NewSquare()
ep.health = NewSquare()
-- Hide all preview objects by default
local allPreview = {ep.panelShadow, ep.panelBG, ep.panelAccent, ep.title, ep.subtitle, ep.box, ep.boxOutline, ep.fill, ep.name, ep.dist, ep.tracer, ep.healthBG, ep.health}
for _, c in ipairs(ep.corners) do table.insert(allPreview, c) end
for _, bp in pairs(ep.bodyParts) do table.insert(allPreview, bp.fill) table.insert(allPreview, bp.outline) end
SetDrawVisible(allPreview, false)
end
BuildHUD()
-- =========================
-- Main Loop
-- =========================
local fpsValues = {}
local lastFPS = 60
local lastArrayKey = ""
RunService.RenderStepped:Connect(function(dt)
-- FPS calc
table.insert(fpsValues, 1 / dt)
if #fpsValues > 30 then table.remove(fpsValues, 1) end
local sum = 0
for _, v in pairs(fpsValues) do sum = sum + v end
lastFPS = math.floor(sum / #fpsValues)
local VP = workspace.CurrentCamera.ViewportSize
local theme = GetTheme()
local accent = Settings.HUDColor
if Settings.HUDPulseAccent then
local pulse = 0.88 + math.sin(tick() * 2.2) * 0.12
accent = Color3.new(
math.clamp(accent.R * pulse, 0, 1),
math.clamp(accent.G * pulse, 0, 1),
math.clamp(accent.B * pulse, 0, 1)
)
end
UI_BG = theme.bg
UI_TEXT = theme.text
UI_SUBTEXT = theme.subtext
TargetPanelBG.Color = theme.card
local char = Player.Character
local hum = char and char:FindFirstChildOfClass("Humanoid")
local root = char and char:FindFirstChild("HumanoidRootPart")
local statsLines = {}
if Settings.HUDSpeed then
local velocity = root and root.AssemblyLinearVelocity.Magnitude or 0
table.insert(statsLines, string.format("SPD %d walk | %d vel", math.floor(hum and hum.WalkSpeed or 0), math.floor(velocity)))
end
if Settings.HUDCoords then
local coords = root and root.Position or Vector3.new()
table.insert(statsLines, "XYZ " .. FormatVec3(coords))
end
if Settings.HUDPlayers then
table.insert(statsLines, string.format("PLR %d online", #Players:GetPlayers()))
end
if Settings.HUDTarget and CurrentTarget and CurrentTarget.Parent then
table.insert(statsLines, "TGT " .. CurrentTarget.Parent.Name)
end
local compact = Settings.HUDCompact
local rowStep = compact and 13 or 15
local statsHeight = math.max(compact and 34 or 40, (#statsLines * rowStep) + (compact and 22 or 28))
local healthHeight = compact and 8 or HUDLayout.healthHeight
local healthSize = Vector2.new(HUDLayout.healthWidth, healthHeight)
local healthDefault = Vector2.new(HUDLayout.margin, VP.Y - HUDLayout.margin - healthHeight)
local healthPos = ResolveHUDPos("health", healthDefault, healthSize, VP)
local statsPos
if Settings.HUDHealth then
statsPos = ResolveHUDPos("stats", Vector2.new(HUDLayout.margin, healthPos.Y - HUDLayout.gap - statsHeight), Vector2.new(HUDLayout.statsWidth, statsHeight), VP)
else
statsPos = ResolveHUDPos("stats", Vector2.new(HUDLayout.margin, VP.Y - HUDLayout.margin - statsHeight), Vector2.new(HUDLayout.statsWidth, statsHeight), VP)
end
-- Notifications
if Settings.Notifications then
while #VisualUI.Notifs.queue > 0 and #VisualUI.Notifs.items < VisualUI.Notifs.maxVisible do
local data = table.remove(VisualUI.Notifs.queue, 1)
table.insert(VisualUI.Notifs.items, CreateNotif(data))
end
local notifSize = Vector2.new(VisualUI.Notifs.width, VisualUI.Notifs.height)
local notifDefault = Vector2.new(VP.X - VisualUI.Notifs.width - HUDLayout.margin, VP.Y - HUDLayout.margin - VisualUI.Notifs.height)
local notifPos = ResolveHUDPos("notifs", notifDefault, notifSize, VP)
local baseX = notifPos.X
local baseY = notifPos.Y
for i = #VisualUI.Notifs.items, 1, -1 do
local n = VisualUI.Notifs.items[i]
local t = tick() - n.start
local alive = t < VisualUI.Notifs.life
local targetY = baseY - (i - 1) * (VisualUI.Notifs.height + VisualUI.Notifs.padding)
if alive then
n.alpha = Lerp(n.alpha, 1, dt * 8)
else
n.alpha = Lerp(n.alpha, 0, dt * 8)
if n.alpha < 0.05 then
n.shadow:Remove(); n.bg:Remove(); n.bar:Remove(); n.lifeBar:Remove(); n.icon:Remove(); n.txt:Remove()
table.remove(VisualUI.Notifs.items, i)
continue
end
end
local slideX = baseX - 30 + (30 * n.alpha)
local pos = SnapV2(LerpV2(n.pos, Vector2.new(slideX, targetY), dt * 8))
n.pos = pos
n.shadow.Position = pos + Vector2.new(2, 2)
n.bg.Position = pos
n.bar.Position = pos
n.lifeBar.Position = pos + Vector2.new(0, VisualUI.Notifs.height - 2)
n.icon.Position = pos + Vector2.new(11, 15)
n.txt.Position = pos + Vector2.new(26, 10)
n.shadow.Color = theme.bg
n.bg.Color = theme.card
n.txt.Color = theme.text
n.icon.Color = notifColors[n.data.type] or accent
n.bar.Color = notifColors[n.data.type] or accent
n.lifeBar.Color = notifColors[n.data.type] or accent
local lifeAlpha = math.clamp(1 - (t / VisualUI.Notifs.life), 0, 1)
n.lifeBar.Size = Vector2.new(VisualUI.Notifs.width * lifeAlpha, 2)
n.shadow.Transparency = 0.62 + (1 - n.alpha) * 0.3
n.bg.Transparency = 0.15 + (1 - n.alpha) * 0.6
n.bar.Transparency = 1 - n.alpha
n.lifeBar.Transparency = 1 - n.alpha
n.icon.Transparency = 1 - n.alpha
n.txt.Transparency = 1 - n.alpha
end
else
for i = #VisualUI.Notifs.items, 1, -1 do
local n = VisualUI.Notifs.items[i]
n.shadow:Remove(); n.bg:Remove(); n.bar:Remove(); n.lifeBar:Remove(); n.icon:Remove(); n.txt:Remove()
table.remove(VisualUI.Notifs.items, i)
end
end
-- ArrayList
if Settings.HUDEnabled and Settings.HUDArraylist then
local modules = {}
if Settings.Enabled then table.insert(modules, "Aimbot") end
if Settings.SilentAim then table.insert(modules, "Silent Aim") end
if Settings.Smoothing then table.insert(modules, "Aim Assist") end
if Settings.TriggerBot then table.insert(modules, "TriggerBot") end
if Settings.AutoFire then table.insert(modules, "Auto Fire") end
if Settings.HitboxSink then table.insert(modules, "Hitbox Sink") end
if Settings.HitboxDesync then table.insert(modules, "Hitbox Desync") end
if Settings.ChamsEnabled then table.insert(modules, "Chams") end
if Settings.GlowEnabled then table.insert(modules, "Glow ESP") end
if Settings.Boxes or Settings.Names or Settings.Tracers then table.insert(modules, "ESP") end
if Settings.Fullbright then table.insert(modules, "Fullbright") end
if Settings.BloomEnabled then table.insert(modules, "Bloom") end
if Settings.TrailEnabled then table.insert(modules, "Trail") end
if Settings.AuraEnabled then table.insert(modules, "Aura") end
if Settings.SpeedEnabled then table.insert(modules, "Speed") end
if Settings.FlyEnabled then table.insert(modules, "Flight") end
if Settings.NoclipEnabled then table.insert(modules, "Noclip") end
if Settings.InfJumpEnabled then table.insert(modules, "Infinite Jump") end
local key = table.concat(modules, "|")
if key ~= lastArrayKey then
lastArrayKey = key
BuildArray(modules)
end
local arrayHeight = math.max(VisualUI.Array.rowHeight, (#VisualUI.Array.ordered * (VisualUI.Array.rowHeight + VisualUI.Array.padding)) - VisualUI.Array.padding)
local arraySize = Vector2.new(VisualUI.Array.width, arrayHeight)
local arrayDefault = Vector2.new(VP.X - VisualUI.Array.width - HUDLayout.margin, HUDLayout.margin + 42)
local arrayPos = ResolveHUDPos("array", arrayDefault, arraySize, VP)
local x = arrayPos.X
local y = arrayPos.Y
local row = 0
for _, name in ipairs(VisualUI.Array.ordered) do
local m = VisualUI.Array.byName[name]
if m then
m.alpha = Lerp(m.alpha, m.targetAlpha, dt * 10)
if m.alpha > 0.02 then
row = row + 1
local rowY = y + (row - 1) * (VisualUI.Array.rowHeight + VisualUI.Array.padding)
local targetX = x + (1 - m.alpha) * VisualUI.Array.slideOffset
m.x = Lerp(m.x, targetX, dt * 12)
local rowPos = SnapV2(Vector2.new(m.x, rowY))
m.shadow.Position = rowPos + Vector2.new(2, 2)
m.shadow.Size = Vector2.new(VisualUI.Array.width + 4, VisualUI.Array.rowHeight + 4)
m.bg.Position = rowPos
m.txt.Position = rowPos + Vector2.new(8, 3)
m.bar.Position = rowPos + Vector2.new(VisualUI.Array.width - 3, 0)
m.glow.Position = rowPos + Vector2.new(VisualUI.Array.width - 5, 0)
local hueOffset = ((tick() * 0.18) + (row * 0.06)) % 1
local grad = Color3.fromHSV(hueOffset, 0.85, 1)
m.bar.Color = Settings.HUDRainbowBars and grad or accent
m.glow.Color = m.bar.Color
m.shadow.Color = theme.bg
m.bg.Color = theme.card
m.txt.Color = theme.text
m.shadow.Transparency = HUDAlpha("shadow") + (1 - m.alpha) * 0.25
m.bg.Transparency = HUDAlpha("panel") + (1 - m.alpha) * 0.65
m.txt.Transparency = 1 - m.alpha
m.bar.Transparency = 1 - m.alpha
m.glow.Transparency = 0.72 + (1 - m.alpha) * 0.2
m.shadow.Visible = Settings.HUDStyle ~= "Minimal"
m.bg.Visible = true
m.txt.Visible = true
m.bar.Visible = true
m.glow.Visible = true
else
m.shadow.Visible = false
m.bg.Visible = false
m.txt.Visible = false
m.bar.Visible = false
m.glow.Visible = false
end
end
end
for name, m in pairs(VisualUI.Array.byName) do
if m.targetAlpha == 0 then
m.alpha = Lerp(m.alpha, 0, dt * 8)
if m.alpha <= 0.01 then
m.shadow:Remove()
m.bg:Remove()
m.txt:Remove()
m.bar:Remove()
m.glow:Remove()
VisualUI.Array.byName[name] = nil
end
end
end
else
for _, item in pairs(VisualUI.Array.byName) do
item.targetAlpha = 0
item.shadow.Visible = false
item.bg.Visible = false
item.txt.Visible = false
item.bar.Visible = false
item.glow.Visible = false
end
end
-- ESP Preview Panel (right side with Roblox character model)
local preview = VisualUI.ESPPreview
if Settings.ESPPreview then
local panelW, panelH = 220, 320
local panelX = VP.X - panelW - HUDLayout.margin
local panelY = math.floor(VP.Y / 2 - panelH / 2)
local panelPos = SnapV2(Vector2.new(panelX, panelY))
preview.panelShadow.Visible = true
preview.panelShadow.Position = panelPos + Vector2.new(3, 3)
preview.panelShadow.Size = Vector2.new(panelW + 4, panelH + 4)
preview.panelShadow.Color = Color3.fromRGB(0, 0, 0)
preview.panelShadow.Transparency = HUDAlpha("shadow")
preview.panelBG.Visible = true
preview.panelBG.Position = panelPos
preview.panelBG.Size = Vector2.new(panelW, panelH)
preview.panelBG.Color = theme.card
preview.panelBG.Transparency = HUDAlpha("panel")
preview.panelAccent.Visible = true
preview.panelAccent.Position = panelPos
preview.panelAccent.Size = Vector2.new(panelW, 2)
preview.panelAccent.Color = accent
preview.title.Visible = true
preview.title.Text = "ESP PREVIEW"
preview.title.Position = panelPos + Vector2.new(panelW / 2, 10)
preview.title.Color = theme.text
preview.title.Size = 13
local activeESP = {}
if Settings.Boxes then table.insert(activeESP, "BOX") end
if Settings.CornerBoxes then table.insert(activeESP, "CORNERS") end
if Settings.Names then table.insert(activeESP, "NAME") end
if Settings.Distance then table.insert(activeESP, "DIST") end
if Settings.Tracers then table.insert(activeESP, "TRACER") end
if Settings.HealthBar then table.insert(activeESP, "HP") end
if Settings.BoxFill then table.insert(activeESP, "FILL") end
preview.subtitle.Visible = true
preview.subtitle.Text = #activeESP > 0 and table.concat(activeESP, " · ") or "No elements"
preview.subtitle.Position = panelPos + Vector2.new(panelW / 2, 26)
preview.subtitle.Color = theme.subtext
preview.subtitle.Size = 11
-- Roblox blocky character model
local cx = panelPos.X + panelW / 2
local baseY = panelPos.Y + 52
local s = 1.6 -- scale
-- Roblox R15 proportions (in pixels at scale)
local headW, headH = math.floor(16 * s), math.floor(16 * s)
local torsoW, torsoH = math.floor(16 * s), math.floor(24 * s)
local armW, armH = math.floor(8 * s), math.floor(24 * s)
local legW, legH = math.floor(8 * s), math.floor(24 * s)
local gap = math.floor(1 * s)
local headX = cx - headW / 2
local headY = baseY
local torsoX = cx - torsoW / 2
local torsoY = headY + headH + gap
local lArmX = torsoX - armW - gap
local rArmX = torsoX + torsoW + gap
local armY = torsoY
local lLegX = cx - legW - gap / 2
local rLegX = cx + gap / 2
local legY = torsoY + torsoH + gap
local bodyBottom = legY + legH
-- Colors for body parts
local skinColor = Color3.fromRGB(85, 100, 125)
local torsoColor = Color3.fromRGB(60, 75, 100)
local limbColor = Color3.fromRGB(70, 85, 110)
local outColor = Color3.fromRGB(140, 160, 190)
local function SetPart(name, px, py, pw, ph, fillC, outC)
local bp = preview.bodyParts[name]
if bp then
bp.fill.Visible = true
bp.fill.Position = Vector2.new(px, py)
bp.fill.Size = Vector2.new(pw, ph)
bp.fill.Color = fillC
bp.fill.Transparency = 0
bp.outline.Visible = true
bp.outline.Position = Vector2.new(px, py)
bp.outline.Size = Vector2.new(pw, ph)
bp.outline.Color = outC
end
end
SetPart("head", headX, headY, headW, headH, skinColor, outColor)
SetPart("torso", torsoX, torsoY, torsoW, torsoH, torsoColor, outColor)
SetPart("leftArm", lArmX, armY, armW, armH, limbColor, outColor)
SetPart("rightArm", rArmX, armY, armW, armH, limbColor, outColor)
SetPart("leftLeg", lLegX, legY, legW, legH, limbColor, outColor)
SetPart("rightLeg", rLegX, legY, legW, legH, limbColor, outColor)
-- ESP elements around the character
local espPad = 6
local espBoxSize = Vector2.new(math.floor(rArmX + armW - lArmX + espPad * 2), math.floor(bodyBottom - headY + espPad * 2))
local espBoxPos = SnapV2(Vector2.new(lArmX - espPad, headY - espPad))
local espCenter = espBoxPos + Vector2.new(espBoxSize.X / 2, espBoxSize.Y / 2)
local showCorners = Settings.CornerBoxes
local showBox = Settings.Boxes and not showCorners
for i = 1, 8 do preview.corners[i].Visible = false end
preview.box.Visible = showBox
preview.boxOutline.Visible = showBox
if showBox then
preview.box.Position = espBoxPos
preview.box.Size = espBoxSize
preview.box.Color = Settings.BoxColor
preview.boxOutline.Position = espBoxPos
preview.boxOutline.Size = espBoxSize
end
if showCorners then
local cMax = math.max(3, math.floor(math.min(espBoxSize.X, espBoxSize.Y) / 2))
local cLen = math.clamp(Settings.CornerLength, 3, cMax)
local x, y = espBoxPos.X, espBoxPos.Y
local w, h = espBoxSize.X, espBoxSize.Y
local c = Settings.BoxColor
preview.corners[1].Visible=true; preview.corners[1].From=Vector2.new(x,y); preview.corners[1].To=Vector2.new(x+cLen,y); preview.corners[1].Color=c
preview.corners[2].Visible=true; preview.corners[2].From=Vector2.new(x,y); preview.corners[2].To=Vector2.new(x,y+cLen); preview.corners[2].Color=c
preview.corners[3].Visible=true; preview.corners[3].From=Vector2.new(x+w-cLen,y); preview.corners[3].To=Vector2.new(x+w,y); preview.corners[3].Color=c
preview.corners[4].Visible=true; preview.corners[4].From=Vector2.new(x+w,y); preview.corners[4].To=Vector2.new(x+w,y+cLen); preview.corners[4].Color=c
preview.corners[5].Visible=true; preview.corners[5].From=Vector2.new(x,y+h-cLen); preview.corners[5].To=Vector2.new(x,y+h); preview.corners[5].Color=c
preview.corners[6].Visible=true; preview.corners[6].From=Vector2.new(x,y+h); preview.corners[6].To=Vector2.new(x+cLen,y+h); preview.corners[6].Color=c
preview.corners[7].Visible=true; preview.corners[7].From=Vector2.new(x+w-cLen,y+h); preview.corners[7].To=Vector2.new(x+w,y+h); preview.corners[7].Color=c
preview.corners[8].Visible=true; preview.corners[8].From=Vector2.new(x+w,y+h-cLen); preview.corners[8].To=Vector2.new(x+w,y+h); preview.corners[8].Color=c
end
preview.fill.Visible = Settings.BoxFill and (showBox or showCorners)
if preview.fill.Visible then
preview.fill.Position = espBoxPos
preview.fill.Size = espBoxSize
preview.fill.Color = Settings.BoxFillColor
preview.fill.Transparency = Settings.BoxFillTransparency
end
preview.name.Visible = Settings.Names
preview.name.Text = Player.DisplayName
preview.name.Position = espBoxPos + Vector2.new(espBoxSize.X / 2, -16)
preview.name.Color = Settings.NameColor
preview.dist.Visible = Settings.Distance
preview.dist.Text = "42m"
preview.dist.Position = espBoxPos + Vector2.new(espBoxSize.X / 2, espBoxSize.Y + 4)
preview.dist.Color = Settings.DistanceColor
preview.tracer.Visible = Settings.Tracers
preview.tracer.From = Vector2.new(cx, panelPos.Y + panelH)
preview.tracer.To = espCenter
preview.tracer.Color = Settings.TracerColor
preview.healthBG.Visible = Settings.HealthBar
preview.health.Visible = Settings.HealthBar
if Settings.HealthBar then
local hpPct = 0.72 + math.sin(tick() * 1.2) * 0.12
preview.healthBG.Position = espBoxPos - Vector2.new(7, 0)
preview.healthBG.Size = Vector2.new(3, espBoxSize.Y)
preview.healthBG.Color = Color3.new(0, 0, 0)
preview.healthBG.Transparency = 0.2
preview.health.Position = espBoxPos - Vector2.new(7, 0) + Vector2.new(0, espBoxSize.Y * (1 - hpPct))
preview.health.Size = Vector2.new(3, espBoxSize.Y * hpPct)
preview.health.Color = Color3.fromRGB(math.floor(255 * (1 - hpPct)), math.floor(255 * hpPct), 0)
preview.health.Transparency = 0
end
else
local hideList = {preview.panelShadow, preview.panelBG, preview.panelAccent, preview.title, preview.subtitle, preview.box, preview.boxOutline, preview.fill, preview.name, preview.dist, preview.tracer, preview.healthBG, preview.health}
if preview.corners then for _, c in ipairs(preview.corners) do table.insert(hideList, c) end end
if preview.bodyParts then for _, bp in pairs(preview.bodyParts) do table.insert(hideList, bp.fill) table.insert(hideList, bp.outline) end end
SetDrawVisible(hideList, false)
end
-- HUD Core
if not Settings.HUDEnabled then
SetDrawVisible({VisualUI.HUD.wm.blur3, VisualUI.HUD.wm.blur2, VisualUI.HUD.wm.blur, VisualUI.HUD.wm.bg, VisualUI.HUD.wm.accent, VisualUI.HUD.wm.text}, false)
SetDrawVisible({VisualUI.HUD.health.shadow, VisualUI.HUD.health.bg, VisualUI.HUD.health.damage, VisualUI.HUD.health.fill, VisualUI.HUD.health.accent, VisualUI.HUD.health.text}, false)
SetDrawVisible({VisualUI.HUD.stats.shadow, VisualUI.HUD.stats.bg, VisualUI.HUD.stats.accent, VisualUI.HUD.stats.title, VisualUI.HUD.stats.text}, false)
SetDrawVisible({VisualUI.HUD.keys.shadow, VisualUI.HUD.keys.bg, VisualUI.HUD.keys.accent, VisualUI.HUD.keys.title, VisualUI.HUD.keys.text}, false)
return
end
-- Watermark
if Settings.HUDWatermark then
local ping = "-"
pcall(function()
local stats = game:GetService("Stats")
if stats.Network:FindFirstChild("ServerStatsItem") then
ping = math.floor(stats.Network.ServerStatsItem["Data Ping"]:GetValue())
end
end)
local wmParts = {"FlickSpeed"}
if Settings.HUDFPS then
table.insert(wmParts, string.format("%d FPS", lastFPS))
end
table.insert(wmParts, string.format("%s MS", tostring(ping)))
if Settings.HUDTarget and CurrentTarget and CurrentTarget.Parent then
table.insert(wmParts, "LOCK " .. CurrentTarget.Parent.Name)
end
local wmText = table.concat(wmParts, " | ")
VisualUI.HUD.wm.text.Text = wmText
local bounds = VisualUI.HUD.wm.text.TextBounds
local padX, padY = HUDLayout.wmPadX, HUDLayout.wmPadY
local wmSize = Vector2.new(bounds.X + padX * 2, bounds.Y + padY * 2)
local wmPos = ResolveHUDPos("wm", Vector2.new(HUDLayout.margin, HUDLayout.margin), wmSize, VP)
VisualUI.HUD.wm.blur3.Size = Vector2.new(wmSize.X + 10, wmSize.Y + 10)
VisualUI.HUD.wm.blur3.Position = wmPos - Vector2.new(4, 4)
VisualUI.HUD.wm.blur2.Size = Vector2.new(wmSize.X + 6, wmSize.Y + 6)
VisualUI.HUD.wm.blur2.Position = wmPos - Vector2.new(2, 2)
VisualUI.HUD.wm.blur.Size = Vector2.new(wmSize.X + 3, wmSize.Y + 3)
VisualUI.HUD.wm.blur.Position = wmPos - Vector2.new(1, 1)
VisualUI.HUD.wm.blur3.Color = theme.bg
VisualUI.HUD.wm.blur2.Color = theme.bg
VisualUI.HUD.wm.blur.Color = theme.card
VisualUI.HUD.wm.bg.Size = wmSize
VisualUI.HUD.wm.bg.Position = wmPos
VisualUI.HUD.wm.bg.Color = theme.card
VisualUI.HUD.wm.bg.Transparency = HUDAlpha("panel")
VisualUI.HUD.wm.accent.Position = wmPos
VisualUI.HUD.wm.accent.Size = Vector2.new(wmSize.X, 2)
VisualUI.HUD.wm.accent.Color = accent
VisualUI.HUD.wm.text.Position = wmPos + Vector2.new(padX, padY)
VisualUI.HUD.wm.text.Color = theme.text
VisualUI.HUD.wm.blur3.Transparency = math.clamp(HUDAlpha("shadow") + 0.08, 0, 1)
VisualUI.HUD.wm.blur2.Transparency = HUDAlpha("shadow")
VisualUI.HUD.wm.blur.Transparency = math.clamp(HUDAlpha("panel") + 0.2, 0, 1)
VisualUI.HUD.wm.blur3.Visible = true
VisualUI.HUD.wm.blur2.Visible = true
VisualUI.HUD.wm.bg.Visible = true
VisualUI.HUD.wm.blur.Visible = true
VisualUI.HUD.wm.accent.Visible = true
VisualUI.HUD.wm.text.Visible = true
else
VisualUI.HUD.wm.blur3.Visible = false
VisualUI.HUD.wm.blur2.Visible = false
VisualUI.HUD.wm.bg.Visible = false
VisualUI.HUD.wm.blur.Visible = false
VisualUI.HUD.wm.accent.Visible = false
VisualUI.HUD.wm.text.Visible = false
end
-- Health Bar (animated)
if Settings.HUDHealth then
local hp = (hum and hum.MaxHealth > 0 and hum.Health / hum.MaxHealth) or 1
VisualUI.HUD.health.value = Lerp(VisualUI.HUD.health.value, hp, dt * 6)
local hbPos = SnapV2(healthPos)
local healthColor = GetHealthColor(hum)
local healthW = HUDLayout.healthWidth
VisualUI.HUD.health.shadow.Position = hbPos - Vector2.new(2, 2)
VisualUI.HUD.health.shadow.Size = Vector2.new(healthW + 4, healthHeight + 4)
VisualUI.HUD.health.shadow.Color = theme.bg
VisualUI.HUD.health.shadow.Transparency = HUDAlpha("shadow")
VisualUI.HUD.health.bg.Position = hbPos
VisualUI.HUD.health.bg.Size = Vector2.new(healthW, healthHeight)
VisualUI.HUD.health.bg.Color = theme.card
VisualUI.HUD.health.bg.Transparency = HUDAlpha("panel")
VisualUI.HUD.health.damage.Position = hbPos
VisualUI.HUD.health.damage.Size = Vector2.new(healthW * hp, healthHeight)
VisualUI.HUD.health.damage.Color = BlendColor(healthColor, Color3.fromRGB(255, 255, 255), 0.12)
VisualUI.HUD.health.damage.Transparency = 0.62
VisualUI.HUD.health.fill.Position = hbPos
VisualUI.HUD.health.fill.Size = Vector2.new(healthW * VisualUI.HUD.health.value, healthHeight)
VisualUI.HUD.health.fill.Color = healthColor
VisualUI.HUD.health.accent.Position = hbPos
VisualUI.HUD.health.accent.Size = Vector2.new(healthW, 2)
VisualUI.HUD.health.accent.Color = accent
VisualUI.HUD.health.text.Text = hum and string.format("%d / %d HP", math.floor(hum.Health), math.floor(hum.MaxHealth)) or "HP"
VisualUI.HUD.health.text.Position = hbPos + Vector2.new(healthW / 2, -15)
VisualUI.HUD.health.text.Color = theme.text
SetDrawVisible({VisualUI.HUD.health.shadow, VisualUI.HUD.health.bg, VisualUI.HUD.health.damage, VisualUI.HUD.health.fill, VisualUI.HUD.health.accent, VisualUI.HUD.health.text}, true)
else
SetDrawVisible({VisualUI.HUD.health.shadow, VisualUI.HUD.health.bg, VisualUI.HUD.health.damage, VisualUI.HUD.health.fill, VisualUI.HUD.health.accent, VisualUI.HUD.health.text}, false)
end
-- Stats Panel
if #statsLines > 0 then
VisualUI.HUD.stats.text.Text = table.concat(statsLines, "\n")
local panelPos = SnapV2(statsPos)
VisualUI.HUD.stats.shadow.Position = panelPos + Vector2.new(2, 2)
VisualUI.HUD.stats.shadow.Size = Vector2.new(HUDLayout.statsWidth + 4, statsHeight + 4)
VisualUI.HUD.stats.shadow.Color = theme.bg
VisualUI.HUD.stats.shadow.Transparency = HUDAlpha("shadow")
VisualUI.HUD.stats.bg.Position = panelPos
VisualUI.HUD.stats.bg.Size = Vector2.new(HUDLayout.statsWidth, statsHeight)
VisualUI.HUD.stats.bg.Color = theme.card
VisualUI.HUD.stats.bg.Transparency = HUDAlpha("panel")
VisualUI.HUD.stats.accent.Position = panelPos
VisualUI.HUD.stats.accent.Size = Vector2.new(HUDLayout.statsWidth, 2)
VisualUI.HUD.stats.accent.Color = accent
VisualUI.HUD.stats.title.Position = panelPos + Vector2.new(8, 6)
VisualUI.HUD.stats.title.Color = theme.subtext
VisualUI.HUD.stats.text.Position = panelPos + Vector2.new(8, compact and 18 or 21)
VisualUI.HUD.stats.text.Color = theme.text
VisualUI.HUD.stats.text.Size = compact and 12 or 13
SetDrawVisible({VisualUI.HUD.stats.shadow, VisualUI.HUD.stats.bg, VisualUI.HUD.stats.accent, VisualUI.HUD.stats.title, VisualUI.HUD.stats.text}, true)
else
SetDrawVisible({VisualUI.HUD.stats.shadow, VisualUI.HUD.stats.bg, VisualUI.HUD.stats.accent, VisualUI.HUD.stats.title, VisualUI.HUD.stats.text}, false)
end
-- Keybinds Panel
if Settings.HUDKeybinds then
local keyLines = {}
if Settings.Enabled then table.insert(keyLines, "[M1] Silent Aim") end
if Settings.ClickTP then table.insert(keyLines, "[Ctrl+M1] Click TP") end
if Settings.FlyEnabled then table.insert(keyLines, "[Space] Fly") end
if Settings.NoclipEnabled then table.insert(keyLines, "[Auto] Noclip") end
if Settings.InfJumpEnabled then table.insert(keyLines, "[Jump] Inf Jump") end
if Settings.SpeedEnabled then table.insert(keyLines, "[Auto] Speed") end
if Settings.HitboxSink then table.insert(keyLines, "[Auto] Hitbox Sink") end
if #keyLines == 0 then
table.insert(keyLines, "No active binds")
end
local keyHeight = math.max(compact and 34 or 40, (#keyLines * rowStep) + (compact and 22 or 28))
local keyDefault
if #statsLines > 0 then
keyDefault = Vector2.new(HUDLayout.margin, statsPos.Y - HUDLayout.gap - keyHeight)
elseif Settings.HUDHealth then
keyDefault = Vector2.new(HUDLayout.margin, healthPos.Y - HUDLayout.gap - keyHeight)
else
keyDefault = Vector2.new(HUDLayout.margin, VP.Y - HUDLayout.margin - keyHeight)
end
local keyPos = ResolveHUDPos("keys", keyDefault, Vector2.new(HUDLayout.keybindWidth, keyHeight), VP)
keyPos = SnapV2(keyPos)
VisualUI.HUD.keys.text.Text = table.concat(keyLines, "\n")
VisualUI.HUD.keys.shadow.Position = keyPos + Vector2.new(2, 2)
VisualUI.HUD.keys.shadow.Size = Vector2.new(HUDLayout.keybindWidth + 4, keyHeight + 4)
VisualUI.HUD.keys.shadow.Color = theme.bg
VisualUI.HUD.keys.shadow.Transparency = HUDAlpha("shadow")
VisualUI.HUD.keys.bg.Position = keyPos
VisualUI.HUD.keys.bg.Size = Vector2.new(HUDLayout.keybindWidth, keyHeight)
VisualUI.HUD.keys.bg.Color = theme.card
VisualUI.HUD.keys.bg.Transparency = HUDAlpha("panel")
VisualUI.HUD.keys.accent.Position = keyPos
VisualUI.HUD.keys.accent.Size = Vector2.new(HUDLayout.keybindWidth, 2)
VisualUI.HUD.keys.accent.Color = accent
VisualUI.HUD.keys.title.Position = keyPos + Vector2.new(8, 6)
VisualUI.HUD.keys.title.Color = theme.subtext
VisualUI.HUD.keys.text.Position = keyPos + Vector2.new(8, compact and 18 or 21)
VisualUI.HUD.keys.text.Color = theme.text
VisualUI.HUD.keys.text.Size = compact and 12 or 13
SetDrawVisible({VisualUI.HUD.keys.shadow, VisualUI.HUD.keys.bg, VisualUI.HUD.keys.accent, VisualUI.HUD.keys.title, VisualUI.HUD.keys.text}, true)
else
SetDrawVisible({VisualUI.HUD.keys.shadow, VisualUI.HUD.keys.bg, VisualUI.HUD.keys.accent, VisualUI.HUD.keys.title, VisualUI.HUD.keys.text}, false)
end
end)
-- Example notification (remove if not needed)
-- VisualUI:Notify("Loaded visual systems", "success")
Window:Init()
if ConfigLoaded then
SyncUI()
end
print("[FlickSpeed v3.5] Loaded! | Velocity 0.8.0 | HUD + FX")
Loads code from the internet. It downloads more code when it runs (loadstring + HttpGet), which can change after it was posted. From: raw.githubusercontent.com, games.roblox.com.
has no key system opensource fully made by ai and i like it best script i "Coded" it was for flick but as universal script its good (many shit code)

Universal