Run it
Copy the script and paste it into your executor.
Players = :()
RunService = :()
UserInputService = :()
TweenService = :()
Workspace = :()
HttpService = :()
LocalPlayer = Players.LocalPlayer
Camera = Workspace.CurrentCamera
IsMobile = UserInputService.TouchEnabled UserInputService.KeyboardEnabled
Config = {
ESP_Enabled = ,
ESP_Box = ,
ESP_Name = ,
ESP_Distance = ,
ESP_Health = ,
ESP_TeamCheck = ,
ESP_MaxDistance = ,
ESP_BoxColor = .(, , ),
ESP_FriendlyColor = .(, , ),
ESP_Snaplines = ,
ESP_Grenades = ,
ESP_Chams = ,
ESP_Weapon = ,
AIM_Enabled = ,
AIM_FOV = IsMobile ,
AIM_Smooth = IsMobile ,
AIM_RageMode = ,
AIM_TeamCheck = ,
AIM_TargetPart = ,
AIM_ShowFOV = ,
AIM_VisCheck = ,
AIM_Prediction = ,
AIM_PredictStrength = ,
AIM_StickyAim = ,
AIM_AimAssist = ,
AIM_SnapRadius = ,
AIM_AimKey = ,
TRIGGER_Enabled = ,
TRIGGER_Delay = ,
TRIGGER_FOV = ,
TRIGGER_TeamCheck = ,
TRIGGER_VisCheck = ,
TRIGGER_HeadOnly = ,
VISUAL_Crosshair = ,
VISUAL_AutoSpot = ,
VISUAL_NoSmoke = ,
VISUAL_NoRain = ,
VISUAL_NoCamShake = ,
VISUAL_BlinkTP = ,
VISUAL_BlinkDist = ,
VISUAL_BlinkDelay = ,
VISUAL_BlinkSync = ,
VISUAL_BlinkSyncInt = ,
MISC_Rearview = ,
MISC_RearviewSize = IsMobile ,
AIM_MobileToggle = ,
AIM_ShowRageBtn = ,
RADAR_Enabled = ,
RADAR_Size = ,
RADAR_Range = ,
MENU_Key = ,
MenuOpen = ,
PERF_LiteMode =
}
State = { Unloaded = , Aiming = , MobileAiming = }
MobileRageBtn =
Cache = { Targets = {}, ESP = {}, Visibility = {}, Chams = {}, GrenadeESP = {}, Grenades = {} }
Connections = {}
RearviewClones = {}
RearviewEnvClones = {}
RearviewGround =
VirtualInputManager =
(() VirtualInputManager = :() )
MouseMoveRel, Mouse1Click
mmr = mousemoverel (Input Input.MouseMoveRelative)
mmr MouseMoveRel = (x, y) (mmr, x, y)
VirtualInputManager MouseMoveRel = (x, y) (() VirtualInputManager:(x, y, .CurrentCamera.ViewportSize.X/, .CurrentCamera.ViewportSize.Y/) )
MouseMoveRel = ()
m1c = mouse1click click
m1c Mouse1Click = () (m1c)
VirtualInputManager Mouse1Click = () (() p = UserInputService:() VirtualInputManager:(p.X,p.Y,,,,) .() VirtualInputManager:(p.X,p.Y,,,,) )
Mouse1Click = ()
DrawingAvailable =
(() t = .() t t:() DrawingAvailable = )
Theme = {
Bar = .(, , ),
Panel = .(, , ),
PanelLight = .(, , ),
Border = .(, , ),
TabActive = .(, , ),
TabInactive = .(, , ),
Text = .(, , ),
TextDim = .(, , ),
Accent = .(, , ),
Input = .(, , ),
Check = .(, , ),
Green = .(, , ),
Red = .(, , )
}
(class, props, children)
inst = .(class)
k, v (props) k ~= inst[k] = v
children _, c (children) c.Parent = inst
props.Parent inst.Parent = props.Parent
inst
ScreenGui = (, {
Name = ,
ResetOnSpawn = ,
ZIndexBehavior = .ZIndexBehavior.Sibling,
IgnoreGuiInset = ,
DisplayOrder = ,
Parent = (gethui ()) ( .protect_gui .(.()) :()) LocalPlayer:()
})
BarHeight = IsMobile
ContentHeight = IsMobile
BottomBar = (, {
Name = ,
BackgroundColor3 = Theme.Bar,
BorderSizePixel = ,
Position = .(, , , -BarHeight),
Size = .(, , , BarHeight),
ZIndex = ,
Parent = ScreenGui
})
(, {
BackgroundColor3 = Theme.Border,
BorderSizePixel = ,
Size = .(, , , ),
ZIndex = ,
Parent = BottomBar
})
TabContainer = (, {
Name = ,
BackgroundTransparency = ,
Position = .(, , , IsMobile ),
Size = .(, IsMobile , , IsMobile - -),
ZIndex = ,
Parent = BottomBar
})
(, {
FillDirection = .FillDirection.Horizontal,
SortOrder = .SortOrder.LayoutOrder,
Padding = .(, ),
Parent = TabContainer
})
IsMobile
(, {
Name = ,
BackgroundTransparency = ,
Position = .(, -, , ),
Size = .(, , , ),
Font = .Font.SourceSansSemibold,
Text = ,
TextColor3 = Theme.Accent,
TextSize = ,
TextXAlignment = .TextXAlignment.Right,
ZIndex = ,
Parent = BottomBar
})
(, {
Name = ,
BackgroundTransparency = ,
Position = .(, -, , ),
Size = .(, , , ),
Font = .Font.SourceSans,
Text = ,
TextColor3 = Theme.TextDim,
TextSize = ,
TextXAlignment = .TextXAlignment.Right,
ZIndex = ,
Parent = BottomBar
})
ContentArea = (, {
Name = ,
BackgroundColor3 = Theme.Panel,
BorderSizePixel = ,
Position = .(, , , -BarHeight - ContentHeight),
Size = .(IsMobile , IsMobile , , ContentHeight),
Visible = ,
ZIndex = ,
Parent = ScreenGui
})
(, {
BackgroundColor3 = Theme.Border,
BorderSizePixel = ,
Size = .(, , , ),
ZIndex = ,
Parent = ContentArea
})
(, {
BackgroundColor3 = Theme.Border,
BorderSizePixel = ,
Position = .(, -, , ),
Size = .(, , , ),
ZIndex = ,
Parent = ContentArea
})
Tabs = {}
CurrentTab =
(parent, label, pos, default, callback)
rowH = IsMobile
boxSize = IsMobile
checkSize = IsMobile
txtSize = IsMobile
container = (, {
BackgroundTransparency = ,
Position = pos,
Size = .(, IsMobile , , rowH),
ZIndex = ,
Parent = parent
})
box = (, {
BackgroundColor3 = Theme.Input,
BorderColor3 = Theme.Border,
BorderSizePixel = ,
Size = .(, boxSize, , boxSize),
Position = .(, , , -boxSize/),
ZIndex = ,
Parent = container
})
check = (, {
BackgroundColor3 = Theme.Check,
BorderSizePixel = ,
Position = .(, , , ),
Size = .(, checkSize, , checkSize),
Visible = default,
ZIndex = ,
Parent = box
})
(, {
BackgroundTransparency = ,
Position = .(, boxSize + , , ),
Size = .(, -(boxSize + ), , ),
Font = .Font.SourceSans,
Text = label,
TextColor3 = Theme.Text,
TextSize = txtSize,
TextXAlignment = .TextXAlignment.Left,
ZIndex = ,
Parent = container
})
btn = (, {
BackgroundTransparency = ,
Size = .(, , , ),
Text = ,
ZIndex = ,
Parent = container
})
value = default
btn.MouseButton1Click:(()
value = value
check.Visible = value
callback (value)
)
{ SetValue = (v) value = v check.Visible = v }
(parent, label, pos, min, max, default, callback)
rowH = IsMobile
btnSize = IsMobile
txtSize = IsMobile
lblW = IsMobile
valW = IsMobile
totalW = IsMobile
container = (, {
BackgroundTransparency = ,
Position = pos,
Size = .(, totalW, , rowH),
ZIndex = ,
Parent = parent
})
(, {
BackgroundTransparency = ,
Size = .(, lblW, , ),
Font = .Font.SourceSans,
Text = label,
TextColor3 = Theme.Text,
TextSize = txtSize,
TextXAlignment = .TextXAlignment.Left,
ZIndex = ,
Parent = container
})
minus = (, {
BackgroundColor3 = Theme.PanelLight,
BorderSizePixel = ,
Position = .(, lblW, , -btnSize/),
Size = .(, btnSize, , btnSize),
Font = .Font.SourceSansBold,
Text = ,
TextColor3 = Theme.Text,
TextSize = IsMobile ,
ZIndex = ,
Parent = container
})
valBox = (, {
BackgroundColor3 = Theme.Input,
BorderSizePixel = ,
Position = .(, lblW + btnSize + , , -btnSize/),
Size = .(, valW, , btnSize),
Font = .Font.SourceSans,
Text = (default),
TextColor3 = Theme.Accent,
TextSize = txtSize,
ClearTextOnFocus = ,
ZIndex = ,
Parent = container
})
plus = (, {
BackgroundColor3 = Theme.PanelLight,
BorderSizePixel = ,
Position = .(, lblW + btnSize + valW + , , -btnSize/),
Size = .(, btnSize, , btnSize),
Font = .Font.SourceSansBold,
Text = ,
TextColor3 = Theme.Text,
TextSize = IsMobile ,
ZIndex = ,
Parent = container
})
value = default
step = max >
(v)
value = .(v, min, max)
valBox.Text = (value)
callback (value)
minus.MouseButton1Click:(() (value - step) )
plus.MouseButton1Click:(() (value + step) )
valBox.FocusLost:(() ((valBox.Text) value) )
{ SetValue = update, GetValue = () value }
(parent, label, pos, options, default, callback)
rowH = IsMobile
txtSize = IsMobile
lblW = IsMobile
btnW = IsMobile
btnH = IsMobile
container = (, {
BackgroundTransparency = ,
Position = pos,
Size = .(, IsMobile , , rowH),
ZIndex = ,
Parent = parent
})
(, {
BackgroundTransparency = ,
Size = .(, lblW, , ),
Font = .Font.SourceSans,
Text = label,
TextColor3 = Theme.Text,
TextSize = txtSize,
TextXAlignment = .TextXAlignment.Left,
ZIndex = ,
Parent = container
})
btn = (, {
BackgroundColor3 = Theme.Input,
BorderSizePixel = ,
Position = .(, lblW, , -btnH/),
Size = .(, btnW, , btnH),
Font = .Font.SourceSans,
Text = default,
TextColor3 = Theme.Accent,
TextSize = IsMobile ,
ZIndex = ,
Parent = container
})
idx = .(options, default)
btn.MouseButton1Click:(()
idx = idx % #options +
btn.Text = options[idx]
callback (options[idx])
)
(parent, title, xOffset, width)
panel = (, {
Name = title,
BackgroundColor3 = Theme.PanelLight,
BorderSizePixel = ,
Position = .(, xOffset, , ),
Size = .(, width, , -),
ZIndex = ,
Parent = parent
})
(, {
BackgroundColor3 = Theme.Border,
BorderSizePixel = ,
Size = .(, , , ),
ZIndex = ,
Parent = panel
})
(, {
BackgroundColor3 = Theme.Border,
BorderSizePixel = ,
Position = .(, , , -),
Size = .(, , , ),
ZIndex = ,
Parent = panel
})
panel
(name, order, builder)
btn = (, {
Name = name,
BackgroundColor3 = Theme.TabInactive,
BorderSizePixel = ,
Size = .(, IsMobile , , ),
Font = .Font.SourceSansSemibold,
Text = name,
TextColor3 = Theme.Text,
TextSize = IsMobile ,
LayoutOrder = order,
ZIndex = ,
Parent = TabContainer
})
IsMobile
(, {
CornerRadius = .(, ),
Parent = btn
})
content = (, {
Name = name .. ,
BackgroundTransparency = ,
Size = .(, , , ),
Visible = ,
ZIndex = ,
Parent = ContentArea
})
builder (content)
tab = { Button = btn, Content = content }
Tabs[name] = tab
btn.MouseButton1Click:(()
CurrentTab == tab
ContentArea.Visible =
btn.BackgroundColor3 = Theme.TabInactive
CurrentTab =
_, t (Tabs)
t.Button.BackgroundColor3 = Theme.TabInactive
t.Content.Visible =
CurrentTab = tab
btn.BackgroundColor3 = Theme.TabActive
content.Visible =
ContentArea.Visible =
)
tab
(, , (parent)
p1 = (parent, , , IsMobile )
(p1, , .(, , , ), Config.AIM_Enabled, (v) Config.AIM_Enabled = v )
(p1, , .(, , , IsMobile ), , , Config.AIM_FOV, (v) Config.AIM_FOV = v )
(p1, , .(, , , IsMobile ), {, }, Config.AIM_TargetPart, (v) Config.AIM_TargetPart = v )
(p1, , .(, , , IsMobile ), , , Config.AIM_Smooth, (v) Config.AIM_Smooth = v )
(p1, , .(, , , IsMobile ), Config.AIM_ShowFOV, (v) Config.AIM_ShowFOV = v )
IsMobile
(p1, , .(, , , ), {, }, Config.AIM_MobileToggle , (v) Config.AIM_MobileToggle = (v == ) )
p2 = (parent, , IsMobile , IsMobile )
(p2, , .(, , , ), Config.AIM_Prediction, (v) Config.AIM_Prediction = v )
(p2, , .(, , , IsMobile ), , , Config.AIM_PredictStrength, (v) Config.AIM_PredictStrength = v )
(p2, , .(, , , IsMobile ), Config.AIM_StickyAim, (v) Config.AIM_StickyAim = v )
(p2, , .(, , , IsMobile ), , , Config.AIM_SnapRadius, (v) Config.AIM_SnapRadius = v )
IsMobile
(p2, , .(, , , ), Config.AIM_ShowRageBtn, (v)
Config.AIM_ShowRageBtn = v
MobileRageBtn MobileRageBtn.Visible = v
)
p3 = (parent, , IsMobile , IsMobile )
(p3, , .(, , , ), Config.AIM_TeamCheck, (v) Config.AIM_TeamCheck = v )
(p3, , .(, , , IsMobile ), Config.AIM_VisCheck, (v) Config.AIM_VisCheck = v )
(p3, , .(, , , IsMobile ), Config.AIM_AimAssist, (v) Config.AIM_AimAssist = v )
)
(, , (parent)
p1 = (parent, , , IsMobile )
(p1, , .(, , , ), Config.TRIGGER_Enabled, (v) Config.TRIGGER_Enabled = v )
(p1, , .(, , , IsMobile ), , , Config.TRIGGER_FOV, (v) Config.TRIGGER_FOV = v )
(p1, , .(, , , IsMobile ), , , Config.TRIGGER_Delay, (v) Config.TRIGGER_Delay = v )
(p1, , .(, , , IsMobile ), Config.TRIGGER_TeamCheck, (v) Config.TRIGGER_TeamCheck = v )
(p1, , .(, , , IsMobile ), Config.TRIGGER_VisCheck, (v) Config.TRIGGER_VisCheck = v )
(p1, , .(, , , IsMobile ), Config.TRIGGER_HeadOnly, (v) Config.TRIGGER_HeadOnly = v )
)
(, , (parent)
p1 = (parent, , , IsMobile )
(p1, , .(, , , ), Config.ESP_Enabled, (v) Config.ESP_Enabled = v )
(p1, , .(, , , IsMobile ), Config.ESP_Box, (v) Config.ESP_Box = v )
(p1, , .(, , , IsMobile ), Config.ESP_Name, (v) Config.ESP_Name = v )
(p1, , .(, , , IsMobile ), Config.ESP_Health, (v) Config.ESP_Health = v )
(p1, , .(, , , IsMobile ), Config.ESP_Distance, (v) Config.ESP_Distance = v )
(p1, , .(, , , IsMobile ), Config.ESP_Weapon, (v) Config.ESP_Weapon = v )
(p1, , .(, , , IsMobile ), Config.ESP_Snaplines, (v) Config.ESP_Snaplines = v )
p2 = (parent, , IsMobile , IsMobile )
(p2, , .(, , , ), Config.ESP_Grenades, (v) Config.ESP_Grenades = v )
(p2, , .(, , , IsMobile ), Config.ESP_TeamCheck, (v) Config.ESP_TeamCheck = v )
(p2, , .(, , , IsMobile ), , , Config.ESP_MaxDistance, (v) Config.ESP_MaxDistance = v )
(p2, , .(, , , IsMobile ), Config.ESP_Chams, (v) Config.ESP_Chams = v )
)
(, , (parent)
p1 = (parent, , , IsMobile )
(p1, , .(, , , ), Config.VISUAL_NoSmoke, (v) Config.VISUAL_NoSmoke = v )
(p1, , .(, , , IsMobile ), Config.VISUAL_NoRain, (v) Config.VISUAL_NoRain = v )
(p1, , .(, , , IsMobile ), Config.VISUAL_NoCamShake, (v) Config.VISUAL_NoCamShake = v )
(p1, , .(, , , IsMobile ), Config.VISUAL_Crosshair, (v) Config.VISUAL_Crosshair = v )
(p1, , .(, , , IsMobile ), Config.VISUAL_AutoSpot, (v) Config.VISUAL_AutoSpot = v )
p2 = (parent, , IsMobile , IsMobile )
(p2, , .(, , , ), Config.RADAR_Enabled, (v) Config.RADAR_Enabled = v )
(p2, , .(, , , IsMobile ), , , Config.RADAR_Size, (v) Config.RADAR_Size = v )
(p2, , .(, , , IsMobile ), , , Config.RADAR_Range, (v) Config.RADAR_Range = v )
)
(, , (parent)
p1 = (parent, , , IsMobile )
(p1, , .(, , , ), Config.VISUAL_BlinkTP, (v) Config.VISUAL_BlinkTP = v )
(p1, , .(, , , IsMobile ), , , .(Config.VISUAL_BlinkDist * ), (v) Config.VISUAL_BlinkDist = v / )
(p1, , .(, , , IsMobile ), , , .(Config.VISUAL_BlinkDelay * ), (v) Config.VISUAL_BlinkDelay = v / )
(p1, , .(, , , IsMobile ), Config.VISUAL_BlinkSync, (v) Config.VISUAL_BlinkSync = v )
)
(, , (parent)
p1 = (parent, , , IsMobile )
(p1, , .(, , , ), Config.MISC_Rearview, (v) Config.MISC_Rearview = v )
(p1, , .(, , , IsMobile ), IsMobile , IsMobile , Config.MISC_RearviewSize, (v) Config.MISC_RearviewSize = v )
)
ConfigFolder =
CurrentConfigName =
()
configs = {}
(()
isfolder (ConfigFolder)
_, file ((ConfigFolder))
name = file:()
name .(configs, name)
)
#configs == .(configs, )
configs
(name)
name = name CurrentConfigName
data = {}
k, v (Config)
(v) == (v) ==
data[k] = {R = .(v.R * ), G = .(v.G * ), B = .(v.B * )}
data[k] = v
success = (()
makefolder (ConfigFolder) (ConfigFolder)
(ConfigFolder .. .. name .. , HttpService:(data))
)
success CurrentConfigName = name
success
(name)
name = name CurrentConfigName
success, result = (()
path = ConfigFolder .. .. name ..
isfile (path)
raw = (path)
data = HttpService:(raw)
k, v (data)
(v) == v.R v.G v.B
Config[k] = .(v.R, v.G, v.B)
Config[k] ~=
Config[k] = v
CurrentConfigName = name
)
success result
(() () )
(, , (parent)
p1 = (parent, , , IsMobile )
p2 = (parent, , IsMobile , IsMobile )
configListFrame = (, {
BackgroundColor3 = Theme.Panel,
BorderSizePixel = ,
Position = .(, , , ),
Size = .(, , , ),
ScrollBarThickness = ,
ScrollBarImageColor3 = Theme.TextDim,
CanvasSize = .(, , , ),
ZIndex = ,
Parent = p1
})
selectedConfig =
configButtons = {}
()
_, btn (configButtons) btn:()
configButtons = {}
configs = ()
yPos =
i, name (configs)
btn = (, {
BackgroundColor3 = name == CurrentConfigName Theme.Accent Theme.TabInactive,
BorderSizePixel = ,
Position = .(, , , yPos),
Size = .(, -, , ),
Font = .Font.SourceSans,
Text = name,
TextColor3 = Theme.Text,
TextSize = ,
ZIndex = ,
Parent = configListFrame
})
btn.MouseButton1Click:(()
selectedConfig = name
_, b (configButtons)
b.BackgroundColor3 = b.Text == selectedConfig Theme.Accent Theme.TabInactive
)
.(configButtons, btn)
yPos = yPos +
configListFrame.CanvasSize = .(, , , yPos)
()
loadBtn = (, {
BackgroundColor3 = Theme.TabInactive,
BorderSizePixel = ,
Position = .(, , , ),
Size = .(, , , ),
Font = .Font.SourceSansSemibold,
Text = ,
TextColor3 = Theme.Text,
TextSize = ,
ZIndex = ,
Parent = p1
})
saveBtn = (, {
BackgroundColor3 = Theme.TabInactive,
BorderSizePixel = ,
Position = .(, , , ),
Size = .(, , , ),
Font = .Font.SourceSansSemibold,
Text = ,
TextColor3 = Theme.Text,
TextSize = ,
ZIndex = ,
Parent = p1
})
newBtn = (, {
BackgroundColor3 = Theme.TabInactive,
BorderSizePixel = ,
Position = .(, , , ),
Size = .(, , , ),
Font = .Font.SourceSansSemibold,
Text = ,
TextColor3 = Theme.Text,
TextSize = ,
ZIndex = ,
Parent = p1
})
statusLbl = (, {
BackgroundTransparency = ,
Position = .(, , , ),
Size = .(, , , ),
Font = .Font.SourceSans,
Text = ,
TextColor3 = Theme.Green,
TextSize = ,
ZIndex = ,
Parent = p1
})
loadBtn.MouseButton1Click:(()
name = selectedConfig CurrentConfigName
(name)
statusLbl.Text = .. name
statusLbl.TextColor3 = Theme.Green
()
statusLbl.Text =
statusLbl.TextColor3 = Theme.Red
.(, () statusLbl.Text = )
)
saveBtn.MouseButton1Click:(()
name = selectedConfig CurrentConfigName
(name)
statusLbl.Text = .. name
statusLbl.TextColor3 = Theme.Green
()
statusLbl.Text =
statusLbl.TextColor3 = Theme.Red
.(, () statusLbl.Text = )
)
newConfigInput =
newBtn.MouseButton1Click:(()
newConfigInput
newConfigInput = (, {
BackgroundColor3 = Theme.Panel,
BorderSizePixel = ,
Position = .(, , , ),
Size = .(, , , ),
Font = .Font.SourceSans,
Text = ,
PlaceholderText = ,
TextColor3 = Theme.Text,
PlaceholderColor3 = Theme.TextDim,
TextSize = ,
ClearTextOnFocus = ,
ZIndex = ,
Parent = p1
})
newConfigInput:()
newConfigInput.FocusLost:((enter)
enter newConfigInput.Text ~=
name = newConfigInput.Text:(, )
name ~=
(name)
statusLbl.Text = .. name
statusLbl.TextColor3 = Theme.Green
()
newConfigInput:()
newConfigInput =
.(, () statusLbl.Text = )
)
)
IsMobile
keyLabel = (, {
BackgroundTransparency = ,
Position = .(, , , ),
Size = .(, , , ),
Font = .Font.SourceSans,
Text = ,
TextColor3 = Theme.TextDim,
TextSize = ,
TextXAlignment = .TextXAlignment.Left,
ZIndex = ,
Parent = p2
})
keyBtn = (, {
BackgroundColor3 = Theme.TabInactive,
BorderSizePixel = ,
Position = .(, , , ),
Size = .(, , , ),
Font = .Font.SourceSans,
Text = Config.MENU_Key,
TextColor3 = Theme.Text,
TextSize = ,
ZIndex = ,
Parent = p2
})
bindingKey =
keyBtn.MouseButton1Click:(()
bindingKey
bindingKey =
keyBtn.Text =
conn
conn = UserInputService.InputBegan:((input, gp)
gp
input.UserInputType == .UserInputType.Keyboard
Config.MENU_Key = input.KeyCode.Name
keyBtn.Text = input.KeyCode.Name
bindingKey =
conn:()
)
)
(p2, , .(, , , IsMobile ), Config.PERF_LiteMode, (v)
Config.PERF_LiteMode = v
v
Config.MISC_Rearview =
Config.ESP_Chams =
Config.ESP_Snaplines =
)
liteLbl = (, {
BackgroundTransparency = ,
Position = .(, IsMobile , , IsMobile ),
Size = .(, IsMobile , , ),
Font = .Font.SourceSans,
Text = ,
TextColor3 = Theme.TextDim,
TextSize = IsMobile ,
TextXAlignment = .TextXAlignment.Left,
ZIndex = ,
Parent = p2
})
unloadBtn = (, {
BackgroundColor3 = .(, , ),
BorderSizePixel = ,
Position = .(, , , IsMobile ),
Size = .(, IsMobile , , IsMobile ),
Font = .Font.SourceSansSemibold,
Text = ,
TextColor3 = Theme.Text,
TextSize = IsMobile ,
ZIndex = ,
Active = ,
AutoButtonColor = ,
Parent = p2
})
powerIcon = (, {
BackgroundTransparency = ,
Position = .(, , , -),
Size = .(, , , ),
Image = ,
ImageColor3 = .(, , ),
ZIndex = ,
Active = ,
Parent = unloadBtn
})
unloadBtn.MouseButton1Click:(() () )
)
IsMobile
aimBtnSize =
MobileBtn = (, {
Name = ,
BackgroundColor3 = .(, , ),
BackgroundTransparency = ,
BorderSizePixel = ,
Position = .(, -aimBtnSize - , , ),
Size = .(, aimBtnSize, , aimBtnSize),
Image = ,
ZIndex = ,
Parent = ScreenGui
})
(, {
CornerRadius = .(, ),
Parent = MobileBtn
})
(, {
Color = .(, , ),
Thickness = ,
Parent = MobileBtn
})
aimIcon = (, {
BackgroundTransparency = ,
Position = .(, , , ),
AnchorPoint = .(, ),
Size = .(, , , ),
Image = ,
ImageColor3 = .(, , ),
ZIndex = ,
Parent = MobileBtn
})
()
State.MobileAiming
MobileBtn.BackgroundColor3 = .(, , )
MobileBtn.BackgroundTransparency =
aimIcon.ImageColor3 = .(, , )
MobileBtn.BackgroundColor3 = .(, , )
MobileBtn.BackgroundTransparency =
aimIcon.ImageColor3 = .(, , )
MobileBtn.InputBegan:((input)
input.UserInputType == .UserInputType.Touch
Config.AIM_MobileToggle
State.MobileAiming = State.MobileAiming
()
State.MobileAiming =
()
)
MobileBtn.InputEnded:((input)
input.UserInputType == .UserInputType.Touch
Config.AIM_MobileToggle
State.MobileAiming =
()
)
rageBtnSize =
MobileRageBtn = (, {
Name = ,
BackgroundColor3 = .(, , ),
BackgroundTransparency = ,
BorderSizePixel = ,
Position = .(, -aimBtnSize - rageBtnSize - , , ),
Size = .(, rageBtnSize, , rageBtnSize),
Font = .Font.SourceSansBold,
Text = ,
TextColor3 = .(, , ),
TextSize = ,
Visible = Config.AIM_ShowRageBtn,
ZIndex = ,
Parent = ScreenGui
})
RageBtn = MobileRageBtn
(, {
CornerRadius = .(, ),
Parent = RageBtn
})
(, {
Color = .(, , ),
Thickness = ,
Parent = RageBtn
})
()
Config.AIM_RageMode
RageBtn.BackgroundColor3 = .(, , )
RageBtn.BackgroundTransparency =
RageBtn.TextColor3 = .(, , )
RageBtn.BackgroundColor3 = .(, , )
RageBtn.BackgroundTransparency =
RageBtn.TextColor3 = .(, , )
RageBtn.MouseButton1Click:(()
Config.AIM_RageMode = Config.AIM_RageMode
()
)
MobileToggle = (, {
Name = ,
BackgroundColor3 = .(, , ),
BackgroundTransparency = ,
BorderSizePixel = ,
Position = .(, -, , ),
Size = .(, , , ),
Font = .Font.SourceSansBold,
Text = ,
TextColor3 = Theme.Accent,
TextSize = ,
ZIndex = ,
Parent = ScreenGui
})
(, {
CornerRadius = .(, ),
Parent = MobileToggle
})
MobileToggle.MouseButton1Click:(()
BottomBar.Visible = BottomBar.Visible
MobileToggle.Text = BottomBar.Visible
BottomBar.Visible ContentArea.Visible
ContentArea.Visible =
CurrentTab
CurrentTab.Button.BackgroundColor3 = Theme.TabInactive
CurrentTab.Content.Visible =
CurrentTab =
)
RearviewFrame = (, {
Name = ,
BackgroundColor3 = .(, , ),
BorderColor3 = Theme.Border,
BorderSizePixel = ,
Position = .(, -, , ),
Size = .(, , , ),
Visible = ,
ZIndex = ,
Parent = ScreenGui
})
(, {
BackgroundColor3 = Theme.Bar,
BorderSizePixel = ,
Size = .(, , , ),
Font = .Font.SourceSansBold,
Text = ,
TextColor3 = Theme.Accent,
TextSize = ,
ZIndex = ,
Parent = RearviewFrame
})
RearviewPort = (, {
Name = ,
BackgroundColor3 = .(, , ),
Position = .(, , , ),
Size = .(, -, , -),
ZIndex = ,
Ambient = .(, , ),
LightColor = .(, , ),
LightDirection = .(-, -, -),
Parent = RearviewFrame
})
RearviewWorld = .()
RearviewWorld.Parent = RearviewPort
RearviewCamera = .()
RearviewCamera.FieldOfView =
RearviewPort.CurrentCamera = RearviewCamera
RadarFrame = (, {
Name = ,
BackgroundColor3 = .(, , ),
BorderColor3 = Theme.Border,
BorderSizePixel = ,
Position = .(, , , ),
Size = .(, , , ),
Visible = ,
ZIndex = ,
Parent = ScreenGui
})
RadarGrid = (, {
Name = ,
BackgroundTransparency = ,
Size = .(, , , ),
ZIndex = ,
Parent = RadarFrame
})
(, {
BackgroundColor3 = .(, , ),
BorderSizePixel = ,
Position = .(, , , ),
Size = .(, , , ),
ZIndex = ,
Parent = RadarGrid
})
(, {
BackgroundColor3 = .(, , ),
BorderSizePixel = ,
Position = .(, , , ),
Size = .(, , , ),
ZIndex = ,
Parent = RadarGrid
})
RadarCenter = (, {
Name = ,
BackgroundColor3 = .(, , ),
BorderSizePixel = ,
AnchorPoint = .(, ),
Position = .(, , , ),
Size = .(, , , ),
ZIndex = ,
Parent = RadarFrame
})
RadarDots = {}
FOVCircle =
DrawingAvailable
(()
FOVCircle = .()
FOVCircle.Thickness =
FOVCircle.NumSides =
FOVCircle.Filled =
FOVCircle.Visible =
FOVCircle.Color = .(, , )
FOVCircle.Radius = Config.AIM_FOV
)
Crosshair = {}
DrawingAvailable
(()
i = ,
l = .()
l.Thickness =
l.Color = .(, , )
l.Visible =
Crosshair[i] = l
)
(char) char char:()
(char) char char:()
(char) char char:()
(char) h = (char) h h.Health >
(char)
char
hrp = (char)
hrp
mg = hrp:()
mg mg:() mg.Enabled ==
(pos)
char = LocalPlayer.Character
root = (char)
root .huge
(pos - root.Position).Magnitude
(pos)
cam = Workspace.CurrentCamera
cam .(, ), ,
sp, onScreen = cam:(pos)
.(sp.X, sp.Y), onScreen, sp.Z
(char)
char
cam = Camera
cam
origin = cam.CFrame.Position
rayParams = RaycastParams.()
rayParams.FilterType = .RaycastFilterType.Exclude
filter = {cam}
LocalPlayer.Character .(filter, LocalPlayer.Character)
.(filter, char)
rayParams.FilterDescendantsInstances = filter
head = (char)
head
dir = (head.Position - origin)
result = Workspace:(origin, dir.Unit * dir.Magnitude, rayParams)
result (result.Position - head.Position).Magnitude <
TargetConnections = {}
(model)
Cache.Targets[model]
Cache.Targets[model] =
TargetConnections[model]
_, conn (TargetConnections[model])
(() conn:() )
TargetConnections[model] =
(model)
model model:()
model == LocalPlayer.Character
Cache.Targets[model]
hrp = model:()
hum = model:()
hrp hum hum.Health >
Cache.Targets[model] = hrp
TargetConnections[model] = {}
.(TargetConnections[model], hum.Died:(()
(model)
))
.(TargetConnections[model], hum:():(()
hum.Health <= (model)
))
hrp hum
.(, ()
model model.Parent
hrp2 = model:()
hum2 = model:()
hrp2 hum2 hum2.Health > Cache.Targets[model]
Cache.Targets[model] = hrp2
TargetConnections[model] = {}
.(TargetConnections[model], hum2.Died:(() (model) ))
.(TargetConnections[model], hum2:():(()
hum2.Health <= (model)
))
)
()
_, obj (Workspace:())
(obj)
Connections.TargetAdded = Workspace.ChildAdded:(TryAddTarget)
Connections.TargetRemoved = Workspace.ChildRemoved:(RemoveTarget)
()
myChar = LocalPlayer.Character
model (Cache.Targets)
model model.Parent model == myChar
(model)
hum = model:()
hum hum.Health <=
(model)
lastValidation =
()
now = ()
now - lastValidation >
lastValidation = now
()
()
ESP = {}
ESP.()
DrawingAvailable
ok, d = (()
{
Box = {.(), .(), .(), .()},
Name = .(),
Distance = .(),
Weapon = .(),
HealthBg = .(),
HealthBar = .(),
Tracer = .()
}
)
ok d
_, line (d.Box) line.Thickness = line.Visible =
d.Name.Size = IsMobile d.Name.Font = .Fonts.Monospace d.Name.Center = d.Name.Outline = d.Name.Visible =
d.Distance.Size = IsMobile d.Distance.Font = .Fonts.Monospace d.Distance.Center = d.Distance.Outline = d.Distance.Visible =
d.Weapon.Size = IsMobile d.Weapon.Font = .Fonts.Monospace d.Weapon.Center = d.Weapon.Outline = d.Weapon.Visible =
d.HealthBg.Thickness = IsMobile d.HealthBg.Color = .(, , ) d.HealthBg.Visible =
d.HealthBar.Thickness = IsMobile d.HealthBar.Visible =
d.Tracer.Thickness = d.Tracer.Visible =
ok d
ESP.(char)
Cache.ESP[char] Cache.ESP[char] = ESP.()
Cache.ESP[char]
ESP.(d)
d
_, line (d.Box) line.Visible =
d.Name.Visible = d.Distance.Visible = d.Weapon.Visible = d.HealthBg.Visible = d.HealthBar.Visible = d.Tracer.Visible =
ESP.(d)
d
(()
_, line (d.Box) line:()
d.Name:() d.Distance:() d.Weapon:() d.HealthBg:() d.HealthBar:() d.Tracer:()
)
ESP.(char, root)
d = ESP.(char)
d
Config.ESP_Enabled (char) ESP.(d)
isTeam = (char)
Config.ESP_TeamCheck isTeam ESP.(d)
dist = (root.Position)
dist > Config.ESP_MaxDistance ESP.(d)
head = (char)
headPos = head head.Position (root.Position + .(, , ))
feetPos = root.Position - .(, , )
rootScreen, onScreen, depth = (root.Position)
headScreen = (headPos + .(, , ))
feetScreen = (feetPos)
onScreen depth <= ESP.(d)
visible = Cache.Visibility[char]
color = isTeam Config.ESP_FriendlyColor (visible .(, , ) Config.ESP_BoxColor)
boxHeight = .(feetScreen.Y - headScreen.Y)
boxWidth = boxHeight *
cx = rootScreen.X
Config.ESP_Box
d.Box[].From = .(cx - boxWidth/, headScreen.Y) d.Box[].To = .(cx + boxWidth/, headScreen.Y)
d.Box[].From = .(cx + boxWidth/, headScreen.Y) d.Box[].To = .(cx + boxWidth/, feetScreen.Y)
d.Box[].From = .(cx + boxWidth/, feetScreen.Y) d.Box[].To = .(cx - boxWidth/, feetScreen.Y)
d.Box[].From = .(cx - boxWidth/, feetScreen.Y) d.Box[].To = .(cx - boxWidth/, headScreen.Y)
_, line (d.Box) line.Color = color line.Visible =
_, line (d.Box) line.Visible =
Config.ESP_Name
name = char.Name
_, p (Players:()) p.Character == char name = p.Name
d.Name.Text = name d.Name.Position = .(cx, headScreen.Y - ) d.Name.Color = color d.Name.Visible =
d.Name.Visible =
Config.ESP_Distance
d.Distance.Text = .(dist) .. d.Distance.Position = .(cx, feetScreen.Y + )
d.Distance.Color = .(, , ) d.Distance.Visible =
d.Distance.Visible =
Config.ESP_Weapon
weapon =
tool = char:()
tool weapon = tool.Name
yOffset = Config.ESP_Distance
d.Weapon.Text = .. weapon .. d.Weapon.Position = .(cx, feetScreen.Y + yOffset)
d.Weapon.Color = .(, , ) d.Weapon.Visible =
d.Weapon.Visible =
Config.ESP_Health
hum = (char)
hum
pct = .(hum.Health / hum.MaxHealth, , )
barX = cx - boxWidth/ -
d.HealthBg.From = .(barX, headScreen.Y) d.HealthBg.To = .(barX, feetScreen.Y) d.HealthBg.Visible =
hc = pct > .(, , ) pct > .(, , ) .(, , )
d.HealthBar.From = .(barX, feetScreen.Y - boxHeight * pct) d.HealthBar.To = .(barX, feetScreen.Y)
d.HealthBar.Color = hc d.HealthBar.Visible =
d.HealthBg.Visible = d.HealthBar.Visible =
d.HealthBg.Visible = d.HealthBar.Visible =
Config.ESP_Snaplines
cam = Workspace.CurrentCamera
cam
bottom = .(cam.ViewportSize.X / , cam.ViewportSize.Y)
d.Tracer.From = bottom d.Tracer.To = .(cx, feetScreen.Y) d.Tracer.Color = color d.Tracer.Visible =
d.Tracer.Visible =
VelocityCache = {}
SmoothedVelocity = {}
LastPositions = {}
LastVelUpdate =
LockedTarget =
VelocityHistory = {}
VELOCITY_SAMPLES =
()
now = ()
dt = now - LastVelUpdate
dt <
LastVelUpdate = now
char, root (Cache.Targets)
root root.Parent
pos = root.Position
LastPositions[char]
rawVel = (pos - LastPositions[char]) / dt
VelocityHistory[char] VelocityHistory[char] = {}
.(VelocityHistory[char], rawVel)
#VelocityHistory[char] > VELOCITY_SAMPLES
.(VelocityHistory[char], )
avgVel = .zero
_, v (VelocityHistory[char])
avgVel = avgVel + v
avgVel = avgVel / #VelocityHistory[char]
prev = SmoothedVelocity[char] avgVel
SmoothedVelocity[char] = prev:(avgVel, )
VelocityCache[char] = SmoothedVelocity[char]
LastPositions[char] = pos
char (LastPositions)
Cache.Targets[char]
LastPositions[char] =
VelocityCache[char] =
SmoothedVelocity[char] =
VelocityHistory[char] =
(char, targetPos, targetPart)
Config.AIM_Prediction targetPos
vel = VelocityCache[char]
vel targetPos
speed = vel.Magnitude
speed < targetPos
cam = Workspace.CurrentCamera
myRoot = LocalPlayer.Character (LocalPlayer.Character)
cam myRoot targetPos
myPos = myRoot.Position
dist = (targetPos - myPos).Magnitude
bulletSpeed =
dist > bulletSpeed =
dist > bulletSpeed =
baseTime = dist / bulletSpeed
ping =
travelTime = baseTime + ping
horizontalVel = .(vel.X, , vel.Z)
hSpeed = horizontalVel.Magnitude
predictScale = Config.AIM_PredictStrength /
distFactor =
dist >
distFactor = - .((dist - ) / , )
finalTime = travelTime * predictScale * distFactor
prediction = horizontalVel * finalTime
verticalOffset =
targetPart targetPart.Name ==
dist >
verticalOffset = (dist / ) *
predictedPos = targetPos + prediction + .(, verticalOffset, )
maxPredictDist = .(hSpeed * , )
predictionDist = prediction.Magnitude
predictionDist > maxPredictDist
prediction = prediction.Unit * maxPredictDist
predictedPos = targetPos + prediction + .(, verticalOffset, )
predictedPos
(fov, forTrigger)
cam = Workspace.CurrentCamera
cam ,
myRoot = LocalPlayer.Character (LocalPlayer.Character)
myRoot ,
center = cam.ViewportSize /
centerVec = .(center.X, center.Y)
best, bestDist, bestChar = , fov,
teamCheck = forTrigger Config.TRIGGER_TeamCheck Config.AIM_TeamCheck
visCheck = forTrigger Config.AIM_VisCheck
Config.AIM_StickyAim LockedTarget forTrigger
char = LockedTarget.Parent LockedTarget.Parent.Parent LockedTarget.Parent
char Cache.Targets[char] (char)
(teamCheck (char))
(visCheck Cache.Visibility[char])
part = Config.AIM_TargetPart == (char) (char)
part
sp, onScreen = cam:(part.Position)
onScreen sp.Z >
d = (.(sp.X, sp.Y) - centerVec).Magnitude
d < fov *
part, char
LockedTarget =
char, root (Cache.Targets)
char char.Parent (char)
teamCheck (char)
visCheck Cache.Visibility[char]
part = Config.AIM_TargetPart == (char) (char)
forTrigger Config.TRIGGER_HeadOnly part = (char)
part
sp, onScreen = cam:(part.Position)
onScreen sp.Z <=
d = (.(sp.X, sp.Y) - centerVec).Magnitude
d < bestDist bestDist = d best = part bestChar = char
best forTrigger LockedTarget = best
best, bestChar
SpotCooldown =
LastSpottedChar =
SPOT_MAX_DIST =
(char)
Config.VISUAL_AutoSpot SpotCooldown
char == LastSpottedChar
myRoot = LocalPlayer.Character LocalPlayer.Character:()
theirRoot = char char:()
myRoot theirRoot
dist = (myRoot.Position - theirRoot.Position).Magnitude
dist > SPOT_MAX_DIST
SpotCooldown =
LastSpottedChar = char
(()
vim = :()
vim:(, .KeyCode.F, , )
.(, ()
vim:(, .KeyCode.F, , )
)
)
.(, ()
SpotCooldown =
LastSpottedChar == char LastSpottedChar =
)
()
State.Unloaded Config.VISUAL_AutoSpot SpotCooldown
scoped = UserInputService:(.UserInputType.MouseButton2)
scoped
cam = Workspace.CurrentCamera
cam
screenCenter = cam.ViewportSize /
bestChar =
bestDist = .huge
char, root (Cache.Targets)
root root.Parent end
if IsTeammate(char) then continue end
local myRoot = LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart")
if not myRoot then continue end
local worldDist = (myRoot.Position - root.Position).Magnitude
if worldDist > SPOT_MAX_DIST then continue end
local head = char:FindFirstChild("Head")
if not head then continue end
local sp, onScreen = cam:WorldToViewportPoint(head.Position)
if not onScreen or sp.Z <= 0 then continue end
local screenDist = (Vector2.new(sp.X, sp.Y) - screenCenter).Magnitude
if screenDist < 150 and screenDist < bestDist then
bestDist = screenDist
bestChar = char
end
end
if bestChar then
DoAutoSpot(bestChar)
end
end
local function AimbotStep()
if State.Unloaded or not Config.AIM_Enabled then return end
local cam = Workspace.CurrentCamera
if not cam then return end
UpdateVelocities()
local keyDown = State.MobileAiming or UserInputService:IsMouseButtonPressed(Enum.UserInputType.MouseButton2)
if Config.AIM_AimAssist and not keyDown and not IsMobile then
local target, char = GetAimTarget(Config.AIM_SnapRadius * 5, false)
if target and char then
local mousePos = UserInputService:GetMouseLocation()
local aimPos = PredictPosition(char, target.Position, target)
local sp = cam:WorldToViewportPoint(aimPos)
local delta = Vector2.new(sp.X - mousePos.X, sp.Y - mousePos.Y)
if delta.Magnitude > 1 and delta.Magnitude < Config.AIM_SnapRadius * 5 then
pcall(function() MouseMoveRel(delta.X * 0.03, delta.Y * 0.03) end)
end
end
return
end
if not keyDown then State.Aiming = false LockedTarget = nil return end
State.Aiming = true
local fovToUse = Config.AIM_RageMode and 400 or Config.AIM_FOV
local target, char = GetAimTarget(fovToUse, false)
if not target or not char then return end
DoAutoSpot(char)
local aimPos = PredictPosition(char, target.Position, target)
if IsMobile then
local camPos = cam.CFrame.Position
local targetCF = CFrame.lookAt(camPos, aimPos)
local smoothAmount
if Config.AIM_RageMode then
smoothAmount = 0.95
else
smoothAmount = 1.0 - (Config.AIM_Smooth / 100)
smoothAmount = math.clamp(smoothAmount, 0.4, 0.75)
end
local newCF = cam.CFrame:Lerp(targetCF, smoothAmount)
cam.CFrame = newCF
else
local mousePos = UserInputService:GetMouseLocation()
local sp = cam:WorldToViewportPoint(aimPos)
local delta = Vector2.new(sp.X - mousePos.X, sp.Y - mousePos.Y)
if delta.Magnitude < 1 then return end
local smooth = Config.AIM_Smooth / 100
pcall(function() MouseMoveRel(delta.X * smooth, delta.Y * smooth) end)
end
end
local TriggerCooldown = false
local TriggerLastFire = 0
local function TriggerStep()
if State.Unloaded or not Config.TRIGGER_Enabled then return end
local now = tick()
local minDelay = math.max(Config.TRIGGER_Delay, 50) / 1000
if now - TriggerLastFire < minDelay then return end
local cam = Workspace.CurrentCamera
if not cam then return end
local screenCenter = cam.ViewportSize / 2
local myRoot = LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart")
if not myRoot then return end
local bestChar = nil
local bestPart = nil
local bestScreenDist = math.huge
local bestWorldDist = 0
for char, root in pairs(Cache.Targets) do
if not root or not root.Parent then continue end
if IsTeammate(char) then continue end
if Config.TRIGGER_VisCheck and not Cache.Visibility[char] then continue end
local worldDist = (myRoot.Position - root.Position).Magnitude
local targetPart = nil
if Config.TRIGGER_HeadOnly then
targetPart = char:FindFirstChild("Head")
else
targetPart = char:FindFirstChild("Head") or char:FindFirstChild("UpperTorso") or char:FindFirstChild("Torso") or root
end
if not targetPart then continue end
local sp, onScreen = cam:WorldToViewportPoint(targetPart.Position)
if not onScreen or sp.Z <= 0 then continue end
local screenDist = (Vector2.new(sp.X, sp.Y) - screenCenter).Magnitude
if screenDist < Config.TRIGGER_FOV and screenDist < bestScreenDist then
bestScreenDist = screenDist
bestChar = char
bestPart = targetPart
bestWorldDist = worldDist
end
end
if not bestChar or not bestPart then return end
local hitThreshold = Config.TRIGGER_FOV * 0.5
if bestWorldDist > 100 then hitThreshold = Config.TRIGGER_FOV * 0.3 end
if bestWorldDist > 200 then hitThreshold = Config.TRIGGER_FOV * 0.2 end
if bestScreenDist > hitThreshold then return end
if Config.TRIGGER_VisCheck then
local rayParams = RaycastParams.new()
rayParams.FilterType = Enum.RaycastFilterType.Exclude
rayParams.FilterDescendantsInstances = {LocalPlayer.Character}
local rayResult = Workspace:Raycast(cam.CFrame.Position, (bestPart.Position - cam.CFrame.Position), rayParams)
if rayResult then
local hitChar = rayResult.Instance and rayResult.Instance.Parent
if not hitChar or not hitChar:FindFirstChild("Humanoid") then
if rayResult.Distance < bestWorldDist * 0.95 then
return
end
end
end
end
DoAutoSpot(bestChar)
TriggerLastFire = now
pcall(Mouse1Click)
end
local lastRearviewUpdate = 0
local lastEnvUpdate = 0
local function ClonePartSimple(part)
local clone = Instance.new("Part")
clone.Size = part.Size
clone.CFrame = part.CFrame
clone.Color = part.Color
clone.Material = part.Material
clone.Transparency = part.Transparency
clone.Anchored = true
clone.CanCollide = false
return clone
end
local function UpdateRearview()
if not Config.MISC_Rearview then
RearviewFrame.Visible = false
return
end
local char = LocalPlayer.Character
if not char then RearviewFrame.Visible = false return end
local root = char:FindFirstChild("HumanoidRootPart")
if not root then RearviewFrame.Visible = false return end
RearviewFrame.Visible = true
local size = Config.MISC_RearviewSize
RearviewFrame.Size = UDim2.new(0, size, 0, size * 0.6 + 20)
RearviewFrame.Position = UDim2.new(0.5, -size/2, 0, 10)
local camPos = root.CFrame * CFrame.new(0, 3, 5)
local lookAt = root.CFrame * CFrame.new(0, 2, 50)
RearviewCamera.CFrame = CFrame.new(camPos.Position, lookAt.Position)
local now = tick()
local myPos = root.Position
local behindDir = -root.CFrame.LookVector
if not RearviewGround then
RearviewGround = Instance.new("Part")
RearviewGround.Size = Vector3.new(500, 1, 500)
RearviewGround.Color = Color3.fromRGB(60, 80, 60)
RearviewGround.Material = Enum.Material.Grass
RearviewGround.Anchored = true
RearviewGround.CanCollide = false
RearviewGround.Parent = RearviewWorld
end
RearviewGround.CFrame = CFrame.new(myPos.X, myPos.Y - 3, myPos.Z)
if now - lastRearviewUpdate > 0.2 then
lastRearviewUpdate = now
local seen = {}
for _, plr in ipairs(Players:GetPlayers()) do
if plr ~= LocalPlayer and plr.Character then
local theirRoot = plr.Character:FindFirstChild("HumanoidRootPart")
if theirRoot then
local dist = (theirRoot.Position - myPos).Magnitude
if dist < 80 then
seen[plr] = true
local isFriendly = IsTeammate(plr.Character)
local espColor = isFriendly and Config.ESP_FriendlyColor or Config.ESP_BoxColor
if not RearviewClones[plr] then
RearviewClones[plr] = { parts = {}, highlight = nil }
end
for _, part in ipairs(plr.Character:GetChildren()) do
if part:IsA("BasePart") and part.Transparency < 0.9 then
if not RearviewClones[plr].parts[part] then
pcall(function()
local clone = ClonePartSimple(part)
clone.Color = espColor
clone.Material = Enum.Material.Neon
clone.Parent = RearviewWorld
RearviewClones[plr].parts[part] = clone
end)
else
pcall(function()
RearviewClones[plr].parts[part].CFrame = part.CFrame
RearviewClones[plr].parts[part].Color = espColor
end)
end
elseif part:IsA("Accessory") then
local handle = part:FindFirstChild("Handle")
if handle and not RearviewClones[plr].parts[handle] then
pcall(function()
local clone = ClonePartSimple(handle)
clone.Color = espColor
clone.Material = Enum.Material.Neon
clone.Parent = RearviewWorld
RearviewClones[plr].parts[handle] = clone
end)
elseif handle and RearviewClones[plr].parts[handle] then
pcall(function()
RearviewClones[plr].parts[handle].CFrame = handle.CFrame
RearviewClones[plr].parts[handle].Color = espColor
end)
end
end
end
end
end
end
end
for plr, data in pairs(RearviewClones) do
if not seen[plr] then
for _, clone in pairs(data.parts or data) do
pcall(function() clone:Destroy() end)
end
if data.highlight then pcall(function() data.highlight:Destroy() end) end
RearviewClones[plr] = nil
end
end
end
if now - lastEnvUpdate > 2.0 then
lastEnvUpdate = now
local envSeen = {}
local envCount = 0
local maxEnv = 30
for _, obj in ipairs(Workspace:GetChildren()) do
if envCount >= maxEnv then break end
if obj:IsA("BasePart") and obj.Transparency < 0.8 and obj.Name ~= "Terrain" then
local offset = obj.Position - myPos
local dist = offset.Magnitude
if dist < 60 and dist > 5 and obj.Size.Magnitude > 8 then
local dot = offset.Unit:Dot(behindDir)
if dot > 0.3 then
envSeen[obj] = true
envCount = envCount + 1
if not RearviewEnvClones[obj] then
pcall(function()
local clone = ClonePartSimple(obj)
clone.Parent = RearviewWorld
RearviewEnvClones[obj] = clone
end)
end
end
end
elseif obj:IsA("Model") and not obj:FindFirstChildOfClass("Humanoid") then
local primary = obj.PrimaryPart or obj:FindFirstChildWhichIsA("BasePart")
if primary then
local offset = primary.Position - myPos
local dist = offset.Magnitude
if dist < 50 and dist > 5 then
local dot = offset.Unit:Dot(behindDir)
if dot > 0.3 then
for _, part in ipairs(obj:GetChildren()) do
if envCount >= maxEnv then break end
if part:IsA("BasePart") and part.Transparency < 0.8 and part.Size.Magnitude > 6 then
envSeen[part] = true
envCount = envCount + 1
if not RearviewEnvClones[part] then
pcall(function()
local clone = ClonePartSimple(part)
clone.Parent = RearviewWorld
RearviewEnvClones[part] = clone
end)
end
end
end
end
end
end
end
end
for obj, clone in pairs(RearviewEnvClones) do
if not envSeen[obj] or not obj.Parent then
pcall(function() clone:Destroy() end)
RearviewEnvClones[obj] = nil
end
end
end
end
local function UpdateRadar()
if not Config.RADAR_Enabled then
RadarFrame.Visible = false
return
end
local char = LocalPlayer.Character
if not char then RadarFrame.Visible = false return end
local root = char:FindFirstChild("HumanoidRootPart")
if not root then RadarFrame.Visible = false return end
RadarFrame.Visible = true
local size = Config.RADAR_Size
RadarFrame.Size = UDim2.new(0, size, 0, size)
local myPos = root.Position
local myLook = root.CFrame.LookVector
local myAngle = math.atan2(-myLook.X, -myLook.Z)
local seen = {}
local dotIndex = 0
for _, plr in ipairs(Players:GetPlayers()) do
if plr ~= LocalPlayer and plr.Character then
local theirRoot = plr.Character:FindFirstChild("HumanoidRootPart")
if theirRoot then
local offset = theirRoot.Position - myPos
local dist = offset.Magnitude
if dist < Config.RADAR_Range then
dotIndex = dotIndex + 1
seen[dotIndex] = true
local angle = math.atan2(-offset.X, -offset.Z) - myAngle
local scaledDist = (dist / Config.RADAR_Range) * (size / 2 - 4)
local x = -math.sin(angle) * scaledDist
local y = -math.cos(angle) * scaledDist
local isFriendly = IsTeammate(plr.Character)
local dotColor = isFriendly and Config.ESP_FriendlyColor or Config.ESP_BoxColor
if not RadarDots[dotIndex] then
RadarDots[dotIndex] = Create("Frame", {
BackgroundColor3 = dotColor,
BorderSizePixel = 0,
AnchorPoint = Vector2.new(0.5, 0.5),
Size = UDim2.new(0, 6, 0, 6),
ZIndex = 152,
Parent = RadarFrame
})
end
RadarDots[dotIndex].Position = UDim2.new(0.5, x, 0.5, y)
RadarDots[dotIndex].BackgroundColor3 = dotColor
RadarDots[dotIndex].Visible = true
end
end
end
end
for i = dotIndex + 1, #RadarDots do
if RadarDots[i] then
RadarDots[i].Visible = false
end
end
end
local RainBoolCache = nil
local ParticleCache = {}
local function UpdateNoRain()
if Config.VISUAL_NoRain then
local loadedMap = Workspace:FindFirstChild("LoadedMap")
if loadedMap then
local map = loadedMap:FindFirstChild("Map")
if map then
local rainBool = map:FindFirstChild("Rain")
if rainBool and rainBool:IsA("BoolValue") then
if rainBool.Value == true then
RainBoolCache = true
pcall(function() rainBool.Value = false end)
end
end
end
end
local snowFollower = Workspace:FindFirstChild("SnowParticleFollower")
if snowFollower then
for _, desc in ipairs(snowFollower:GetDescendants()) do
if desc:IsA("ParticleEmitter") then
if desc.Enabled or desc.Rate > 0 then
ParticleCache[desc] = {enabled = desc.Enabled, rate = desc.Rate}
pcall(function()
desc.Enabled = false
desc.Rate = 0
end)
end
end
end
end
for _, desc in ipairs(Workspace:GetDescendants()) do
if desc:IsA("ParticleEmitter") then
local n = desc.Name:lower()
if n:find("rain") or n:find("snow") or n:find("weather") or n:find("splash") then
if desc.Enabled or desc.Rate > 0 then
ParticleCache[desc] = {enabled = desc.Enabled, rate = desc.Rate}
pcall(function()
desc.Enabled = false
desc.Rate = 0
end)
end
end
end
end
local terrain = Workspace:FindFirstChild("Terrain")
if terrain then
for _, att in ipairs(terrain:GetChildren()) do
if att.Name:find("Rain") or att.Name:find("Splash") or att.Name:find("Snow") then
for _, desc in ipairs(att:GetDescendants()) do
if desc:IsA("ParticleEmitter") then
if desc.Enabled or desc.Rate > 0 then
ParticleCache[desc] = {enabled = desc.Enabled, rate = desc.Rate}
pcall(function()
desc.Enabled = false
desc.Rate = 0
end)
end
end
end
end
end
for _, desc in ipairs(terrain:GetDescendants()) do
if desc:IsA("ParticleEmitter") then
if desc.Enabled or desc.Rate > 0 then
ParticleCache[desc] = {enabled = desc.Enabled, rate = desc.Rate}
pcall(function()
desc.Enabled = false
desc.Rate = 0
end)
end
end
end
end
else
if RainBoolCache then
local loadedMap = Workspace:FindFirstChild("LoadedMap")
if loadedMap then
local map = loadedMap:FindFirstChild("Map")
if map then
local rainBool = map:FindFirstChild("Rain")
if rainBool then pcall(function() rainBool.Value = true end) end
end
end
RainBoolCache = nil
end
for obj, cached in pairs(ParticleCache) do
if obj and obj.Parent then
pcall(function()
obj.Enabled = cached.enabled
obj.Rate = cached.rate
end)
end
end
ParticleCache = {}
end
end
local CamShakerDisabled = false
local function UpdateNoCamShake()
if Config.VISUAL_NoCamShake then
if not CamShakerDisabled then
local rs = game:GetService("ReplicatedStorage")
local shaker = rs:FindFirstChild("CameraShaker")
if shaker and shaker:IsA("ModuleScript") then
pcall(function()
local module = require(shaker)
if module and module.Stop then
module:Stop()
end
if module and module.StopSustained then
module:StopSustained()
end
end)
end
CamShakerDisabled = true
end
else
CamShakerDisabled = false
end
end
local SmokeCache = {}
local function HideSmoke(desc)
if desc:IsA("Smoke") then
if desc.Enabled then
SmokeCache[desc] = {type = "smoke", enabled = true}
pcall(function() desc.Enabled = false end)
end
elseif desc:IsA("Fire") then
if desc.Enabled then
SmokeCache[desc] = {type = "fire", enabled = true}
pcall(function() desc.Enabled = false end)
end
elseif desc:IsA("ParticleEmitter") then
local n = desc.Name:lower()
local pn = desc.Parent and desc.Parent.Name:lower() or ""
if n == "smoke" or n:find("smoke") or pn:find("smoke") or n:find("artillery") or n:find("gas") or n:find("flare") or n:find("dust") or n:find("fire") or n:find("explosion") or n:find("muzzle") or n:find("flame") then
if desc.Enabled or desc.Rate > 0 then
SmokeCache[desc] = {type = "particle", enabled = desc.Enabled, rate = desc.Rate}
pcall(function()
desc.Enabled = false
desc.Rate = 0
end)
end
end
elseif desc:IsA("Attachment") then
local n = desc.Name:lower()
if n:find("smoke") then
for _, child in ipairs(desc:GetDescendants()) do
if child:IsA("ParticleEmitter") then
if child.Enabled or child.Rate > 0 then
SmokeCache[child] = {type = "particle", enabled = child.Enabled, rate = child.Rate}
pcall(function()
child.Enabled = false
child.Rate = 0
end)
end
end
end
end
end
end
local function UpdateNoSmoke()
if Config.VISUAL_NoSmoke then
for _, desc in ipairs(Workspace:GetDescendants()) do
HideSmoke(desc)
end
for _, desc in ipairs(game:GetService("ReplicatedStorage"):GetDescendants()) do
HideSmoke(desc)
end
for _, desc in ipairs(game:GetService("Players").LocalPlayer:GetDescendants()) do
HideSmoke(desc)
end
else
for obj, cached in pairs(SmokeCache) do
if obj and obj.Parent then
pcall(function()
obj.Enabled = cached.enabled
if cached.rate then obj.Rate = cached.rate end
end)
end
end
SmokeCache = {}
end
end
local function UpdateCrosshair()
if not DrawingAvailable or #Crosshair < 4 then return end
if not Config.VISUAL_Crosshair then
for _, l in pairs(Crosshair) do l.Visible = false end
return
end
local cam = Workspace.CurrentCamera
if not cam then return end
local c = cam.ViewportSize / 2
local cx, cy = c.X, c.Y
local gap, len = 4, 8
Crosshair[1].From = Vector2.new(cx - gap - len, cy) Crosshair[1].To = Vector2.new(cx - gap, cy) Crosshair[1].Visible = true
Crosshair[2].From = Vector2.new(cx + gap, cy) Crosshair[2].To = Vector2.new(cx + gap + len, cy) Crosshair[2].Visible = true
Crosshair[3].From = Vector2.new(cx, cy - gap - len) Crosshair[3].To = Vector2.new(cx, cy - gap) Crosshair[3].Visible = true
Crosshair[4].From = Vector2.new(cx, cy + gap) Crosshair[4].To = Vector2.new(cx, cy + gap + len) Crosshair[4].Visible = true
end
local function UpdateChams()
for char in pairs(Cache.Chams) do
if not Cache.Targets[char] then
pcall(function() Cache.Chams[char]:Destroy() end)
Cache.Chams[char] = nil
end
end
if not Config.ESP_Chams then
for char, h in pairs(Cache.Chams) do
pcall(function() h:Destroy() end)
Cache.Chams[char] = nil
end
return
end
for char in pairs(Cache.Targets) do
local isFriendly = IsTeammate(char)
if Config.ESP_TeamCheck and isFriendly then
if Cache.Chams[char] then
pcall(function() Cache.Chams[char]:Destroy() end)
Cache.Chams[char] = nil
end
else
local baseColor = isFriendly and Config.ESP_FriendlyColor or Config.ESP_BoxColor
if not Cache.Chams[char] then
local existing = char:FindFirstChildOfClass("Highlight")
if existing then existing:Destroy() end
local h = Instance.new("Highlight")
h.Adornee = char
h.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
h.FillColor = baseColor
h.FillTransparency = 0.5
h.OutlineColor = baseColor
h.OutlineTransparency = 0
h.Parent = char
Cache.Chams[char] = h
else
local visible = Cache.Visibility[char]
local color = visible and Color3.fromRGB(0, 255, 0) or baseColor
Cache.Chams[char].FillColor = color
Cache.Chams[char].OutlineColor = color
end
end
end
end
local GrenadeTracking = {}
local function RefreshGrenades()
local new = {}
local now = tick()
for _, obj in ipairs(Workspace:GetChildren()) do
local n = obj.Name:lower()
if n:find("grenade") then
local part = obj:IsA("BasePart") and obj or obj:FindFirstChildWhichIsA("BasePart")
if part then new[part] = obj.Name end
end
end
for _, obj in ipairs(Workspace:GetDescendants()) do
if obj:IsA("BasePart") then
local n = obj.Name:lower()
if n:find("grenade") or n:find("frag") or n:find("thrown") or n:find("projectile") then
new[obj] = obj.Name
end
end
end
for obj in pairs(new) do
if obj and obj.Parent then
local pos = obj.Position
local track = GrenadeTracking[obj]
if not track then
GrenadeTracking[obj] = { pos = pos, lastMove = now }
else
local moved = (pos - track.pos).Magnitude > 0.5
if moved then
track.pos = pos
track.lastMove = now
elseif now - track.lastMove > 1.0 then
new[obj] = nil
end
end
end
end
for obj in pairs(GrenadeTracking) do
if not new[obj] or not obj.Parent then
GrenadeTracking[obj] = nil
end
end
Cache.Grenades = new
end
local function UpdateGrenadeESP()
for obj in pairs(Cache.GrenadeESP) do
if not Cache.Grenades[obj] or not obj.Parent then
pcall(function() Cache.GrenadeESP[obj]:Remove() end)
Cache.GrenadeESP[obj] = nil
end
end
if not Config.ESP_Grenades or not DrawingAvailable then
for obj, d in pairs(Cache.GrenadeESP) do
pcall(function() d:Remove() end)
Cache.GrenadeESP[obj] = nil
end
return
end
for obj in pairs(Cache.Grenades) do
if obj and obj.Parent then
local sp, onScreen, depth = WorldToScreen(obj.Position)
if onScreen and depth > 0 then
if not Cache.GrenadeESP[obj] then
local txt = Drawing.new("Text")
txt.Size = 14
txt.Font = Drawing.Fonts.Monospace
txt.Center = true
txt.Outline = true
txt.Color = Color3.fromRGB(255, 200, 0)
Cache.GrenadeESP[obj] = txt
end
Cache.GrenadeESP[obj].Text = "GRENADE"
Cache.GrenadeESP[obj].Position = sp
Cache.GrenadeESP[obj].Visible = true
elseif Cache.GrenadeESP[obj] then
Cache.GrenadeESP[obj].Visible = false
end
end
end
end
local lastRefresh, lastVis, lastGrenade, lastEffects = 0, 0, 0, 0
local lastBlink = 0
local lastSync = 0
local syncPaused = false
local function BlinkStep()
if not Config.VISUAL_BlinkTP then return end
local char = LocalPlayer.Character
if not char then return end
local hum = char:FindFirstChildOfClass("Humanoid")
local hrp = char:FindFirstChild("HumanoidRootPart")
if not hum or not hrp then return end
local now = tick()
if Config.VISUAL_BlinkSync then
if now - lastSync >= Config.VISUAL_BlinkSyncInt then
lastSync = now
syncPaused = true
pcall(function()
hrp.AssemblyLinearVelocity = Vector3.new(0, hrp.AssemblyLinearVelocity.Y, 0)
end)
task.delay(0.05, function() syncPaused = false end)
end
end
if syncPaused then return end
if hum.MoveDirection.Magnitude < 0.1 then return end
if now - lastBlink < Config.VISUAL_BlinkDelay then return end
lastBlink = now
pcall(function()
hrp.AssemblyLinearVelocity = Vector3.new(0, hrp.AssemblyLinearVelocity.Y, 0)
end)
local offset = hum.MoveDirection * Config.VISUAL_BlinkDist
hrp.CFrame = hrp.CFrame + offset
end
local liteFrameSkip = 0
local visCheckIndex = 0
local visCheckList = {}
local lastRadarUpdate = 0
local lastGrenadeESPUpdate = 0
local function Unload()
if State.Unloaded then return end
State.Unloaded = true
for _, conn in pairs(Connections) do pcall(function() conn:Disconnect() end) end
for _, conns in pairs(TargetConnections or {}) do
for _, conn in pairs(conns) do pcall(function() conn:Disconnect() end) end
end
TargetConnections = {}
for _, d in pairs(Cache.ESP) do ESP.Destroy(d) end
for _, d in pairs(Cache.GrenadeESP or {}) do pcall(function() d:Remove() end) end
for _, h in pairs(Cache.Chams or {}) do pcall(function() h:Destroy() end) end
for _, d in pairs(RadarDots or {}) do pcall(function() d:Destroy() end) end
for _, data in pairs(RearviewClones or {}) do for _, c in pairs(data.parts or data) do pcall(function() c:Destroy() end) end end
for _, c in pairs(RearviewEnvClones or {}) do pcall(function() c:Destroy() end) end
if RearviewGround then pcall(function() RearviewGround:Destroy() end) end
if FOVCircle then pcall(function() FOVCircle:Remove() end) end
for _, l in pairs(Crosshair) do pcall(function() l:Remove() end) end
ScreenGui:Destroy()
end
local function MainLoop()
if State.Unloaded then return end
Camera = Workspace.CurrentCamera
if not Camera then return end
local now = tick()
local lite = Config.PERF_LiteMode
local refreshInt = lite and 3.0 or 1.5
local visInt = lite and 0.5 or 0.2
local grenadeInt = lite and 1.0 or 0.5
local effectsInt = lite and 1.0 or 0.5
if now - lastRefresh > refreshInt then
lastRefresh = now
RefreshTargets()
visCheckList = {}
for char in pairs(Cache.Targets) do table.insert(visCheckList, char) end
visCheckIndex = 0
end
if now - lastVis > visInt and #visCheckList > 0 then
lastVis = now
local checkCount = lite and 2 or 4
for i = 1, checkCount do
visCheckIndex = visCheckIndex + 1
if visCheckIndex > #visCheckList then visCheckIndex = 1 end
local char = visCheckList[visCheckIndex]
if char and Cache.Targets[char] then
Cache.Visibility[char] = IsVisible(char)
end
end
end
if now - lastGrenade > grenadeInt then lastGrenade = now RefreshGrenades() end
if now - lastEffects > effectsInt then lastEffects = now UpdateNoRain() UpdateNoSmoke() UpdateNoCamShake() end
if lite then
liteFrameSkip = liteFrameSkip + 1
if liteFrameSkip < 3 then
AimbotStep()
TriggerStep()
return
end
liteFrameSkip = 0
end
for char in pairs(Cache.ESP) do
if not Cache.Targets[char] then ESP.Hide(Cache.ESP[char]) ESP.Destroy(Cache.ESP[char]) Cache.ESP[char] = nil end
end
for char, root in pairs(Cache.Targets) do if root and root.Parent then ESP.Render(char, root) end end
if not lite then UpdateChams() end
if now - lastGrenadeESPUpdate > (lite and 0.3 or 0.1) then
lastGrenadeESPUpdate = now
UpdateGrenadeESP()
end
if FOVCircle then
local c = Camera.ViewportSize / 2
FOVCircle.Position = Vector2.new(c.X, c.Y)
FOVCircle.Radius = Config.AIM_RageMode and 400 or Config.AIM_FOV
FOVCircle.Color = Config.AIM_RageMode and Color3.fromRGB(255, 50, 50) or Color3.fromRGB(255, 255, 255)
FOVCircle.Visible = Config.AIM_ShowFOV and Config.AIM_Enabled
end
UpdateCrosshair()
if not lite then UpdateRearview() end
if now - lastRadarUpdate > (lite and 0.15 or 0.05) then
lastRadarUpdate = now
UpdateRadar()
end
AimbotStep()
TriggerStep()
AutoSpotStep()
if not lite then BlinkStep() end
end
Connections.Render = RunService.RenderStepped:Connect(MainLoop)
local fpsCheckFrames = {}
local fpsCheckStart = tick()
local fpsCheckDone = false
Connections.FPSCheck = RunService.RenderStepped:Connect(function(dt)
if fpsCheckDone then return end
local elapsed = tick() - fpsCheckStart
if elapsed > 3 then
fpsCheckDone = true
if #fpsCheckFrames > 10 then
local total = 0
for _, f in ipairs(fpsCheckFrames) do total = total + f end
local avgFPS = total / #fpsCheckFrames
if avgFPS < 45 and not Config.PERF_LiteMode then
Config.PERF_LiteMode = true
Config.MISC_Rearview = false
Config.ESP_Chams = false
Config.ESP_Snaplines = false
print("[Entrenched] Lite Mode auto-enabled (detected " .. math.floor(avgFPS) .. " FPS)")
end
end
Connections.FPSCheck:Disconnect()
return
end
table.insert(fpsCheckFrames, 1/dt)
end)
Connections.Input = UserInputService.InputBegan:Connect(function(input, processed)
if processed then return end
local menuKey = Enum.KeyCode[Config.MENU_Key] or Enum.KeyCode.RightShift
if input.KeyCode == menuKey then
BottomBar.Visible = not BottomBar.Visible
if not BottomBar.Visible then ContentArea.Visible = false end
elseif input.KeyCode == Enum.KeyCode.Home then
Unload()
end
end)
print("[Entrenched] Loaded - RightShift=Menu | Home=Unload | RMB=Aim")
Mobile and Desktop Ready, Xeno Compatible source code. Tested on Pot a ssium , xeno and Delta. Custom Mobile and desktop views, custom mobile aim buttons, toggles and touch points. Optimized for performance. Script ready for you to make your own. Open sourced, if you have something you'd like to change feel free to ask or do it yourself :). Mobile mode was carefully made aimbot is fun and if you learn the prediction you absolutely destroy, desktop has clean prediction at every range granted the games hit reg might miss a few shots here and there. Didn't go super far into this game theres more to do so feel free to make it your own. Components cleanly built to save you hours of work. Warning if you get reported a ton you may* get a ban, just how the game is made. Especially if you are speeding around and blinking Features: Aimbot Fov, Hitbox (target part) , Smoothing Mobile & Desktop custom aimbots, with prediction Soft Aim Sticky Aim Snap Aim Team Check Vis Check Rage Mode for mobile Toggle or hold mobile options Triggerbot Fov Delay TeamCheck Vis Check Head Only ESP: Box Name Health Distance Weapon Snaplines Chams (Undetected) Grenades Team Check Max Distance Visual: NoSmoke

[🗣️CALLOUT🗣️] ENTRENCHED 🥀