Run it
Copy the script and paste it into your executor.
repo =
Library = (:(repo .. ))()
().ObsidianV1Running
Library:(, )
().ObsidianV1Running =
ThemeManager = (:(repo .. ))()
SaveManager = (:(repo .. ))()
.()
Options = Library.Options
Toggles = Library.Toggles
PerceivedPos =
PerceivedVel = .()
LastUpdateTimeX =
LastUpdateTimeY =
ReactionDelayX =
ReactionDelayY =
TargetReactionDelay =
JustLocked =
CurrentLockedTarget =
TargetSwitchTimer =
PendingTarget =
Target =
DeathDelayStart =
LastPartSwitchTime =
CurrentSwitchPart =
Window = Library:({
Title = ,
Footer = ,
NotifySide = ,
ShowCustomCursor = ,
})
.(()
Stats = :()
StartTime = ()
LabelInstance =
.()
Container = Library.MainFrame :()
_, obj (Container:())
obj:() obj.Text ==
LabelInstance = obj
LabelInstance.RichText =
Elapsed = () - StartTime
h = .(Elapsed / )
m = .(Elapsed / ) %
s = .(Elapsed % )
pingVal =
(() pingVal = Stats.Network.ServerStatsItem[]:() )
r, g, b = , ,
pingVal >
r, g, b = , ,
pingVal >
r, g, b = , ,
pingVal >
r, g, b = , ,
pingString = .(, r, g, b, pingVal)
verString =
dateString = .() ..
timeString = .()
uptimeString = .(, h, m, s)
finalString = .(,
verString, pingString, dateString, timeString, uptimeString)
LabelInstance LabelInstance.Parent
LabelInstance.RichText =
LabelInstance.Text = finalString
Window.FooterLabel
Window.FooterLabel.RichText =
Window.FooterLabel.Text = finalString
.()
)
Tabs = {
Combat = Window:(, ),
Whitelist = Window:(, ),
Misc = Window:(, ),
User = Window:(, ),
[] = Window:(, ),
Hitsound = Window:(, ),
}
AimbotGroup = Tabs.Combat:()
AimbotGroup:(, {
Text = ,
Default = ,
Callback = (value)
FOVCircle
FOVCircle.Visible = value Toggles.FovVisible.Value
,
})
AimbotGroup:(, { Text = , Default = })
AimbotGroup:(, { Text = , Default = })
AimbotGroup:(, { Text = , Default = })
AimbotGroup:(, { Text = , Default = })
AimbotGroup:(, {
Text = ,
Default = ,
Min = ,
Max = ,
Rounding = ,
})
AimbotGroup:():(, {
Default = ,
Mode = ,
Text = ,
DefaultModifiers = {},
})
AimbotGroup:()
AimbotGroup:(, {
Values = { , },
Default = ,
Text = ,
})
AimbotGroup:(, {
Values = { , },
Default = ,
Text = ,
})
AimbotGroup:(, {
Text = ,
Default = ,
Min = ,
Max = ,
Rounding = ,
})
AimbotGroup:(, {
Text = ,
Default = ,
Min = ,
Max = ,
Rounding = ,
Tooltip =
})
AimbotGroup:(, {
Text = ,
Default = ,
Min = ,
Max = ,
Rounding = ,
Callback = (val)
ReactionDelayX = val /
TargetReactionDelay = (ReactionDelayX + ReactionDelayY) /
})
AimbotGroup:(, {
Text = ,
Default = ,
Min = ,
Max = ,
Rounding = ,
Callback = (val)
ReactionDelayY = val /
TargetReactionDelay = (ReactionDelayX + ReactionDelayY) /
})
AimbotGroup:(, {
Text = ,
Default = ,
Min = ,
Max = ,
Rounding = ,
Tooltip =
})
AimbotGroup:(, {
Text = ,
Default = ,
Min = ,
Max = ,
})
AimbotGroup:(, {
Text = ,
Default = ,
Min = ,
Max = ,
})
AimbotGroup:(, {
Text = ,
Default = ,
Min = ,
Max = ,
})
AimbotGroup:()
AimbotGroup:(, {
Values = { , , },
Default = ,
Text = ,
})
AimbotGroup:():(, {
Default = .(,,),
})
AimbotGroup:()
AimbotGroup:(, {
Text = ,
Default = ,
Min = ,
Max = ,
})
AimbotGroup:(, {
Text = ,
Default = ,
Callback = (val)
FOVCircle
FOVCircle.Visible = Toggles.AimbotEnabled.Value val
,
})
AimbotGroup:(, {
Text = ,
Default = ,
})
AimbotGroup:()
AimbotGroup:(, {
Text = ,
Default = ,
})
AimbotGroup:():(, {
Default = .(, , ),
})
AimbotGroup:(, {
Text = ,
Default = ,
Min = ,
Max = ,
Rounding = ,
})
WhitelistGroup = Tabs.Whitelist:()
WhitelistGroup:(, {
SpecialType = ,
ExcludeLocalPlayer = ,
Multi = ,
Text = ,
Tooltip = ,
})
WhitelistGroup:(, {
SpecialType = ,
Multi = ,
Text = ,
Tooltip = ,
})
WhitelistGroup:()
WhitelistGroup:()
WhitelistGroup:(, {
SpecialType = ,
ExcludeLocalPlayer = ,
Multi = ,
Text = ,
Tooltip = ,
})
WhitelistGroup:(, {
SpecialType = ,
Multi = ,
Text = ,
Tooltip = ,
})
MiscGroup = Tabs.Misc:()
MiscGroup:(, { Text = , Default = })
MiscGroup:(, { Text = , Default = })
MiscGroup:(, { Text = , Default = , Tooltip = })
MiscGroup:(, { Text = , Default = })
Lighting = :()
OriginalLighting = {
Brightness = Lighting.Brightness,
ClockTime = Lighting.ClockTime,
FogEnd = Lighting.FogEnd,
Ambient = Lighting.Ambient
}
MiscGroup:(, {
Text = ,
Default = ,
Callback = (Value)
Value
Lighting.Brightness =
Lighting.ClockTime =
Lighting.FogEnd =
Lighting.Ambient = .(,,)
Lighting.Brightness = OriginalLighting.Brightness
Lighting.ClockTime = OriginalLighting.ClockTime
Lighting.FogEnd = OriginalLighting.FogEnd
Lighting.Ambient = OriginalLighting.Ambient
})
VisualsGroup = Tabs.Combat:()
VisualsGroup:(, {
Text = ,
Default = ,
Callback = (value)
ESP.Enabled = value
,
})
VisualsGroup:(, { Text = , Default = , Callback = (value)
ESP.Drawing.Boxes.Full.Enabled = value
ESP.Drawing.Boxes.Corner.Enabled = value
})
VisualsGroup:():(, { Default = .(,,), Callback = (value)
ESP.Drawing.Boxes.GradientRGB1 = value
ESP.Drawing.Boxes.GradientFillRGB1 = value
})
VisualsGroup:(, { Text = , Default = , Callback = (value)
ESP.Drawing.Boxes.Filled.Enabled = value
})
VisualsGroup:():(, { Default = .(,,), Callback = (value)
ESP.Drawing.Boxes.Filled.RGB = value
})
VisualsGroup:(, {
Text = ,
Default = ,
Min = ,
Max = ,
Rounding = ,
Callback = (value)
ESP.Drawing.Boxes.Filled.Transparency = value *
,
})
VisualsGroup:(, { Text = , Default = , Callback = (value)
ESP.Drawing.Names.Enabled = value
})
VisualsGroup:(, { Text = , Default = , Callback = (value)
ESP.Drawing.Distances.Enabled = value
})
VisualsGroup:(, { Text = , Default = , Callback = (value)
ESP.Drawing.Healthbar.Enabled = value
})
VisualsGroup:(, { Text = , Default = , Callback = (value)
ESP.Drawing.Weapons.Enabled = value
})
VisualsGroup:(, { Text = , Default = , Callback = (value)
ESP.TeamCheck = value
})
VisualsGroup:(, {
Text = ,
Default = ,
Min = ,
Max = ,
Rounding = ,
Callback = (val)
ESP.MaxDistance = val
})
VisualsGroup:()
VisualsGroup:():(, { Default = .(,,), Callback = (value)
ESP.Drawing.Weapons.WeaponTextRGB = value
ESP.Drawing.Healthbar.HealthTextRGB = value
ESP.Drawing.Names.RGB = value
ESP.Drawing.Distances.RGB = value
})
VisualsGroup:(, { Text = , Default = })
VisualsGroup:(, {
Text = ,
Default = ,
Callback = (value)
ESP.Drawing.Chams.Enabled = value
,
})
VisualsGroup:():(, { Default = .(,,), Callback = (value)
ESP.Drawing.Chams.FillRGB = value
ESP.Drawing.Chams.OutlineRGB = value
})
VisualsGroup:(, {
Text = ,
Default = ,
Min = ,
Max = ,
Rounding = ,
Callback = (val)
ESP.FontSize = + (val - ) *
})
HitsoundGroup = Tabs.Hitsound:()
HitsoundGroup:(, {
Text = ,
Default = ,
})
HitsoundGroup:(, {
Values = { , , , , , },
Default = ,
Text = ,
})
HitsoundGroup:(, {
Text = ,
Default = ,
Min = ,
Max = ,
Rounding = ,
Callback = (val)
HitSound
HitSound.Volume = val
,
})
HitSound = .()
HitSound.Parent = :()
HitSound.SoundId =
HitSound.Volume =
ContentProvider = :()
soundIds = {
,
,
,
,
,
}
ContentProvider:(soundIds)
Options.HitsoundType:((value)
value ==
HitSound.SoundId =
value ==
HitSound.SoundId =
value ==
HitSound.SoundId =
value ==
HitSound.SoundId =
value ==
HitSound.SoundId =
value ==
HitSound.SoundId =
)
Players = :()
LocalPlayer = Players.LocalPlayer
mouse = LocalPlayer:()
Debris = :()
(char)
hum = char:(, )
hum
lastHealth = hum.Health
hum.HealthChanged:((newHealth)
newHealth < lastHealth
Toggles.HitsoundEnabled.Value
isTarget = (Target char == Target)
isTarget
mouseT = mouse.Target
mouseT mouseT:(char)
isTarget =
isTarget
s = HitSound:()
s.Parent = HitSound.Parent
s:()
s.Ended:(()
s:()
)
lastHealth = newHealth
)
_, plr (Players:())
plr ~= LocalPlayer
plr.Character (plr.Character)
plr.CharacterAdded:(HookHitsound)
Players.PlayerAdded:((plr)
plr ~= LocalPlayer
plr.CharacterAdded:(HookHitsound)
)
TabBox = Tabs.Combat:()
LegitTab = TabBox:()
LegitTab:(, { Text = , Default = })
LegitTab:(, { Text = , Default = })
LegitTab:(, {
Text = ,
Default = ,
Tooltip =
})
LegitTab:(, {
Text = ,
Default = ,
Min = ,
Max = ,
Rounding = ,
Tooltip =
})
LegitTab:(, { Text = , Default = })
LegitTab:(, {
Text = ,
Default = ,
Min = ,
Max = ,
})
LegitTab:(, { Text = , Default = })
LegitTab:(, { Text = , Default = })
LegitTab:():(, {
Default = ,
Mode = ,
Text = ,
DefaultModifiers = {},
})
BlantantTab = TabBox:()
BlantantTab:(, {
Text = ,
Default = ,
Callback = (val) SilentAimSettings.Enabled = val
})
BlantantTab:(, {
Values = {
,
,
,
,
,
,
},
Default = ,
Text = ,
Callback = (val) SilentAimSettings.SilentAimMethod = val
})
BlantantTab:(, {
Values = { , , },
Default = ,
Text = ,
Callback = (val) SilentAimSettings.TargetPart = val
})
BlantantTab:(, {
Text = ,
Default = ,
Min = ,
Max = ,
Rounding = ,
Callback = (val) SilentAimSettings.HitChance = val
})
BlantantTab:(, {
Text = ,
Default = ,
Callback = (val) SilentAimSettings.AliveCheck = val
})
BlantantTab:(, {
Text = ,
Default = ,
Callback = (val) SilentAimSettings.BulletTP = val
})
BlantantTab:()
RunService = :()
UserInputService = :()
Camera = .CurrentCamera
LocalCharacter = LocalPlayer.Character LocalPlayer.CharacterAdded:()
LocalHumanoidRootPart = LocalCharacter:()
UserGroup = Tabs.User:()
UserGroup:( .. (() ))
UserGroup:( .. LocalPlayer.Name)
UserGroup:( .. LocalPlayer.DisplayName)
creationTime = .() - (LocalPlayer.AccountAge * )
creationDate = .(, creationTime)
UserGroup:( .. creationDate)
LocalPlayer.CharacterAdded:((char)
LocalCharacter = char
LocalHumanoidRootPart = char:()
)
UserInputService.MouseBehavior = .MouseBehavior.Default
UserInputService.MouseIconEnabled =
()
character = LocalPlayer.Character
character
head = character:()
humanoid = character:()
head humanoid
isFirstPerson = (Camera.CFrame.Position - head.Position).Magnitude <
isRagdolled = humanoid:() == .HumanoidStateType.Physics
isShiftLock = isRagdolled humanoid.AutoRotate ==
rightClickPressed = UserInputService:(.UserInputType.MouseButton2)
isRagdolled
UserInputService.MouseBehavior = .MouseBehavior.Default
UserInputService.MouseIconEnabled =
isFirstPerson
UserInputService.MouseBehavior = .MouseBehavior.LockCenter
UserInputService.MouseIconEnabled =
isShiftLock
UserInputService.MouseBehavior = .MouseBehavior.LockCenter
UserInputService.MouseIconEnabled =
rightClickPressed
UserInputService.MouseBehavior = .MouseBehavior.Default
UserInputService.MouseIconEnabled =
(selection, value)
selection ==
selection == value
targetName =
targetUserId =
targetTeamName =
targetIsPlayer =
targetIsTeam =
(value) ==
value:()
targetIsPlayer =
targetName = value.Name
targetUserId = value.UserId
value:()
targetIsTeam =
targetTeamName = value.Name
targetName = value.Name
targetName = (value)
n = (value)
n targetUserId = n
tsel = (selection)
tsel == tsel ==
(selection) == (value)
(selection) ==
selection:() targetIsPlayer
selection.UserId == targetUserId selection.Name == targetName
selection:() targetIsTeam
selection.Name == targetTeamName
hasNumericKey =
(selection) ==
k,_ (selection)
(k) ==
hasNumericKey =
hasNumericKey
_, entry (selection)
(entry) ==
entry:() targetIsPlayer
entry.UserId == targetUserId entry.Name == targetName
entry:() targetIsTeam
entry.Name == targetTeamName
(entry) == (value)
(entry) ==
k,v (entry)
(k) == k == targetName
(v) == targetName
num = (v)
num targetUserId num == targetUserId
(entry) == targetName
n = (entry)
n targetUserId n == targetUserId
(selection) ==
k,v (selection)
(k) == k:()
targetIsPlayer (k.UserId == targetUserId k.Name == targetName)
(k) == k:()
targetIsTeam k.Name == targetTeamName
(k) ==
targetIsPlayer k == targetName
targetIsTeam k == targetTeamName
(v) ==
v:() targetIsPlayer
v.UserId == targetUserId v.Name == targetName
v:() targetIsTeam
v.Name == targetTeamName
(v) == targetName
num = (v)
num targetUserId num == targetUserId
(character, forcedPartName)
character
partName = forcedPartName Options.AimPart.Value
part = character:(partName)
part
partName ==
part = character:()
partName ==
part = character:()
part
ScriptState = { ClosestHitPart = }
SilentAimSettings = {
Enabled = ,
TeamCheck = ,
VisibleCheck = ,
AliveCheck = ,
TargetPart = ,
SilentAimMethod = ,
FOVRadius = ,
HitChance = ,
MultiplyUnitBy = ,
BulletTP = ,
}
ExpectedArguments = {
ViewportPointToRay = { ArgCountRequired = , Args = { , } },
ScreenPointToRay = { ArgCountRequired = , Args = { , } },
Raycast = { ArgCountRequired = , Args = { , , , } },
FindPartOnRay = { ArgCountRequired = , Args = { , , , } },
FindPartOnRayWithIgnoreList = { ArgCountRequired = , Args = { , , , } },
FindPartOnRayWithWhitelist = { ArgCountRequired = , Args = { , , } }
}
(Percentage)
Percentage = .(Percentage)
chance = .(Random.().(Random.(), , ) * ) /
chance <= Percentage /
(Origin, Position)
(Position - Origin).Unit
(Args, RayMethod)
Matches =
#Args < RayMethod.ArgCountRequired
Pos, Argument , Args
Expected = RayMethod.Args[Pos]
Expected
IsOptional = Expected:(-) ==
BaseType = IsOptional Expected:(, -) Expected
(Argument) == BaseType Matches = Matches +
IsOptional Argument == Matches = Matches +
Matches >= RayMethod.ArgCountRequired
(Player)
PlayerCharacter = Player Player.Character
LocalPlayerCharacter = LocalPlayer.Character
(PlayerCharacter LocalPlayerCharacter)
targetPartName = (SilentAimSettings.TargetPart == ) SilentAimSettings.TargetPart
PlayerRoot = PlayerCharacter:(targetPartName) PlayerCharacter:()
PlayerRoot
CastPoints = { PlayerRoot.Position, LocalPlayerCharacter, PlayerCharacter }
IgnoreList = { LocalPlayerCharacter, PlayerCharacter }
ObscuringObjects = #Camera:(CastPoints, IgnoreList)
ObscuringObjects ==
()
radiusOption = Options.FOVRadius.Value
Toggles.InfDistance.Value radiusOption = .huge
visibleCheck = (Toggles.WallCheck Toggles.WallCheck.Value)
teamCheck = (Toggles.TeamCheck Toggles.TeamCheck.Value)
aliveCheck = (Toggles.SilentAliveCheck Toggles.SilentAliveCheck.Value)
targetPartOption = (Options.SilentTargetPart Options.SilentTargetPart.Value)
ClosestPart =
DistanceToMouse = radiusOption
MousePos = UserInputService:()
_, Player (Players:())
Player == LocalPlayer
teamCheck LocalPlayer.Team Player.Team == LocalPlayer.Team
Character = Player.Character
Character
playerWL = (Options.PlayerWhitelist Options.PlayerWhitelist.Value) {}
teamWL = (Options.TeamWhitelist Options.TeamWhitelist.Value) {}
(playerWL, Player)
Player.Team (teamWL, Player.Team)
Humanoid = Character:()
HRP = Character:()
HRP Humanoid
aliveCheck Humanoid.Health <=
Toggles.ForceFieldCheck.Value Character:()
visibleCheck (Player)
ScreenPosition, OnScreen = Camera:(HRP.Position)
Toggles.InfDistance.Value OnScreen
Distance = (.(MousePos.X, MousePos.Y) - .(ScreenPosition.X, ScreenPosition.Y)).Magnitude
Distance <= DistanceToMouse
chosenPart = targetPartOption
targetPartOption ==
parts = {, , }
chosenPart = parts[.(, #parts)]
candidatePart = Character:(chosenPart)
candidatePart
ClosestPart = candidatePart
DistanceToMouse = Distance
ClosestPart
RunService.RenderStepped:(()
Toggles.SilentAim Toggles.SilentAim.Value Toggles.AimbotEnabled.Value
ScriptState.ClosestHitPart = ()
ScriptState.ClosestHitPart =
)
oldNamecall
oldNamecall = (, , ((...)
Method = ()
Arguments = {...}
self = Arguments[]
enabled = Toggles.SilentAim Toggles.SilentAim.Value Toggles.AimbotEnabled.Value
chance = ((Options.SilentHitChance Options.SilentHitChance.Value) )
() enabled self == chance
HitPart = ScriptState.ClosestHitPart
HitPart
(origin)
adjustedOrigin = origin
Toggles.BulletTP Toggles.BulletTP.Value
adjustedOrigin = (HitPart.CFrame * .(, , )).p
multiplier = SilentAimSettings.MultiplyUnitBy
direction = (adjustedOrigin, HitPart.Position) * multiplier
adjustedOrigin, direction
currentMethod = (Options.SilentMethod Options.SilentMethod.Value)
Method == currentMethod ==
(Arguments, ExpectedArguments.Raycast)
Origin, Direction = (Arguments[])
Arguments[] = Origin
Arguments[] = Direction
((Arguments))
(Method == Method == ) currentMethod ==
(Arguments, ExpectedArguments.FindPartOnRay)
Origin, Direction = (Arguments[].Origin)
Arguments[] = Ray.(Origin, Direction)
((Arguments))
Method == currentMethod ==
(Arguments, ExpectedArguments.FindPartOnRayWithIgnoreList)
Origin, Direction = (Arguments[].Origin)
Arguments[] = Ray.(Origin, Direction)
((Arguments))
Method == currentMethod ==
(Arguments, ExpectedArguments.FindPartOnRayWithWhitelist)
Origin, Direction = (Arguments[].Origin)
Arguments[] = Ray.(Origin, Direction)
((Arguments))
Method == currentMethod ==
Origin, Direction = (Arguments[].Origin)
Arguments[] = Ray.(Origin, Direction)
((Arguments))
(...)
))
(part)
Toggles.WallCheck.Value part
origin = Camera.CFrame.Position
method = Options.WallCheckMethod.Value
params = RaycastParams.()
params.FilterType = .RaycastFilterType.Blacklist
params.FilterDescendantsInstances = {LocalPlayer.Character}
method ==
direction = (part.Position - origin)
result = :(origin, direction, params)
result
result.Instance:(part.Parent)
method ==
direction = (part.Position - origin)
result = :(origin, direction, params)
result result.Instance:(part.Parent)
offsetAmount = part.Size.Magnitude /
offsets = {
.(offsetAmount, , ),
.(-offsetAmount, , ),
.(, offsetAmount, ),
.(, -offsetAmount, ),
}
_, offset offsets
targetPos = part.Position + part.CFrame:(offset)
direction = (targetPos - origin)
result = :(origin, direction, params)
result result.Instance:(part.Parent)
FOVCircle
(()
FOVCircle = .()
FOVCircle.Thickness =
FOVCircle.Filled =
FOVCircle.Transparency =
FOVCircle.Color = .(,,)
FOVCircle.Visible =
)
hue =
Workspace, RunService, Players, CoreGui, Lighting = (:()), (:()), (:()), :(), (:())
ESP = {
Enabled = Toggles.ESPEnabled.Value,
TeamCheck = Toggles.ESPHideTeam.Value,
MaxDistance = Options.ESPMaxDistance.Value,
FontSize = + (Options.ESPFontSize.Value - ) * ,
FadeOut = {
OnDistance = ,
OnDeath = ,
OnLeave = ,
},
Options = {
Teamcheck = , TeamcheckRGB = .(, , ),
Friendcheck = , FriendcheckRGB = .(, , ),
Highlight = , HighlightRGB = .(, , ),
},
= {
Chams = {
Enabled = Toggles.ChamsEnabled.Value,
Thermal = ,
FillRGB = Options.ChamsColor.Value,
Fill_Transparency = ,
OutlineRGB = Options.ChamsColor.Value,
Outline_Transparency = ,
VisibleCheck = ,
},
Names = {
Enabled = Toggles.ESPName.Value,
RGB = Options.ESPColor.Value,
},
Flags = {
Enabled = ,
},
Distances = {
Enabled = Toggles.ESPDistance.Value,
Position = ,
RGB = Options.ESPColor.Value,
},
Weapons = {
Enabled = Toggles.ESPTool.Value, WeaponTextRGB = Options.ESPColor.Value,
Outlined = ,
Gradient = ,
GradientRGB1 = .(, , ), GradientRGB2 = .(, , ),
},
Healthbar = {
Enabled = Toggles.ESPHealth.Value,
HealthText = , Lerp = , HealthTextRGB = Options.ESPColor.Value,
Width = ,
Gradient = , GradientRGB1 = .(, , ), GradientRGB2 = .(, , ), GradientRGB3 = .(, , ),
},
Boxes = {
Animate = ,
RotationSpeed = ,
Gradient = , GradientRGB1 = Options.ESPBoxColor.Value, GradientRGB2 = .(, , ),
GradientFill = , GradientFillRGB1 = Options.ESPBoxColor.Value, GradientFillRGB2 = .(, , ),
Filled = {
Enabled = Toggles.ESPBoxFilled.Value,
Transparency = Options.ESPBoxFillTransparency.Value * ,
RGB = Options.ESPBoxFillColor.Value,
},
Full = {
Enabled = Toggles.ESPBox.Value,
RGB = .(, , ),
},
Corner = {
Enabled = Toggles.ESPBox.Value,
RGB = .(, , ),
},
};
};
Connections = {
RunService = RunService;
};
Fonts = {};
}
Toggles.ESPEnabled:((value)
ESP.Enabled = value
)
Toggles.ESPHideTeam:((value)
ESP.TeamCheck = value
)
Toggles.ChamsEnabled:((value)
ESP.Drawing.Chams.Enabled = value
)
Toggles.ESPName:((value)
ESP.Drawing.Names.Enabled = value
)
Toggles.ESPDistance:((value)
ESP.Drawing.Distances.Enabled = value
)
Toggles.ESPHealth:((value)
ESP.Drawing.Healthbar.Enabled = value
)
Toggles.ESPTool:((value)
ESP.Drawing.Weapons.Enabled = value
)
Toggles.ESPBox:((value)
ESP.Drawing.Boxes.Full.Enabled = value
ESP.Drawing.Boxes.Corner.Enabled = value
)
Toggles.ESPBoxFilled:((value)
ESP.Drawing.Boxes.Filled.Enabled = value
)
Options.ESPBoxFillTransparency:((value)
ESP.Drawing.Boxes.Filled.Transparency = value *
)
Options.ESPBoxFillColor:((value)
ESP.Drawing.Boxes.Filled.RGB = value
)
Options.ESPBoxColor:((value)
ESP.Drawing.Boxes.GradientRGB1 = value
ESP.Drawing.Boxes.GradientFillRGB1 = value
)
Options.ESPColor:((value)
ESP.Drawing.Weapons.WeaponTextRGB = value
ESP.Drawing.Healthbar.HealthTextRGB = value
ESP.Drawing.Names.RGB = value
ESP.Drawing.Distances.RGB = value
)
Options.ChamsColor:((value)
ESP.Drawing.Chams.FillRGB = value
ESP.Drawing.Chams.OutlineRGB = value
)
Options.ESPFontSize:((value)
ESP.FontSize = + (value - ) *
)
Options.ESPMaxDistance:((value)
ESP.MaxDistance = value
)
Euphoria = ESP.Connections;
lplayer = Players.LocalPlayer;
camera = .Workspace.CurrentCamera;
Cam = Workspace.CurrentCamera;
RotationAngle, Tick = -, ();
Weapon_Icons = {
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] = ,
[] =
};
Functions = {}
Functions:(Class, Properties)
_Instance = (Class) == .(Class) Class
Property, Value (Properties)
_Instance[Property] = Value
_Instance;
Functions:(element, distance)
transparency = .(, - (distance / ESP.MaxDistance))
element:()
element.TextTransparency = - transparency
element:()
element.ImageTransparency = - transparency
element:()
element.Transparency = - transparency
element:() (element == Healthbar element == BehindHealthbar)
element.BackgroundTransparency = - transparency
element:()
element.BackgroundTransparency = - transparency
element:()
element.FillTransparency = - transparency
element.OutlineTransparency = - transparency
;
;
;
ScreenGui = Functions:(, {
Parent = CoreGui,
Name = ,
});
DupeCheck = (plr)
ScreenGui:(plr.Name)
ScreenGui[plr.Name]:()
ESPFunc = (plr)
.(DupeCheck)(plr)
Folder = Functions:(, {Parent = ScreenGui, Name = plr.Name})
Name = Functions:(, {Parent = Folder, Position = .(, , , -), Size = .(, , , ), AnchorPoint = .(, ), BackgroundTransparency = , TextColor3 = .(, , ), Font = .Font.Code, TextSize = ESP.FontSize, TextStrokeTransparency = , TextStrokeColor3 = .(, , ), RichText = })
Distance = Functions:(, {Parent = Folder, Position = .(, , , ), Size = .(, , , ), AnchorPoint = .(, ), BackgroundTransparency = , TextColor3 = .(, , ), Font = .Font.Code, TextSize = ESP.FontSize, TextStrokeTransparency = , TextStrokeColor3 = .(, , ), RichText = })
Weapon = Functions:(, {Parent = Folder, Position = .(, , , ), Size = .(, , , ), AnchorPoint = .(, ), BackgroundTransparency = , TextColor3 = .(, , ), Font = .Font.Code, TextSize = ESP.FontSize, TextStrokeTransparency = , TextStrokeColor3 = .(, , ), RichText = })
Box = Functions:(, {Parent = Folder, BackgroundColor3 = .(, , ), BackgroundTransparency = , BorderSizePixel = })
Gradient1 = Functions:(, {Parent = Box, Enabled = ESP.Drawing.Boxes.GradientFill, Color = ColorSequence.{ColorSequenceKeypoint.(, ESP.Drawing.Boxes.GradientFillRGB1), ColorSequenceKeypoint.(, ESP.Drawing.Boxes.GradientFillRGB2)}})
Outline = Functions:(, {Parent = Box, Enabled = ESP.Drawing.Boxes.Gradient, Transparency = , Color = .(, , ), LineJoinMode = .LineJoinMode.Miter})
Gradient2 = Functions:(, {Parent = Outline, Enabled = ESP.Drawing.Boxes.Gradient, Color = ColorSequence.{ColorSequenceKeypoint.(, ESP.Drawing.Boxes.GradientRGB1), ColorSequenceKeypoint.(, ESP.Drawing.Boxes.GradientRGB2)}})
Healthbar = Functions:(, {Parent = Folder, BackgroundColor3 = .(, , ), BackgroundTransparency = })
BehindHealthbar = Functions:(, {Parent = Folder, ZIndex = -, BackgroundColor3 = .(, , ), BackgroundTransparency = })
HealthbarGradient = Functions:(, {Parent = Healthbar, Enabled = ESP.Drawing.Healthbar.Gradient, Rotation = -, Color = ColorSequence.{ColorSequenceKeypoint.(, ESP.Drawing.Healthbar.GradientRGB1), ColorSequenceKeypoint.(, ESP.Drawing.Healthbar.GradientRGB2), ColorSequenceKeypoint.(, ESP.Drawing.Healthbar.GradientRGB3)}})
HealthText = Functions:(, {Parent = Folder, Position = .(, , , ), Size = .(, , , ), AnchorPoint = .(, ), BackgroundTransparency = , TextColor3 = .(, , ), Font = .Font.Code, TextSize = ESP.FontSize, TextStrokeTransparency = , TextStrokeColor3 = .(, , )})
Chams = Functions:(, {Parent = Folder, FillTransparency = , OutlineTransparency = , OutlineColor = .(, , ), DepthMode = })
WeaponIcon = Functions:(, {Parent = Folder, BackgroundTransparency = , BorderColor3 = .(, , ), BorderSizePixel = , Size = .(, , , )})
Gradient3 = Functions:(, {Parent = WeaponIcon, Rotation = -, Enabled = ESP.Drawing.Weapons.Gradient, Color = ColorSequence.{ColorSequenceKeypoint.(, ESP.Drawing.Weapons.GradientRGB1), ColorSequenceKeypoint.(, ESP.Drawing.Weapons.GradientRGB2)}})
LeftTop = Functions:(, {Parent = Folder, BackgroundColor3 = ESP.Drawing.Boxes.Corner.RGB, Position = .(, , , )})
LeftSide = Functions:(, {Parent = Folder, BackgroundColor3 = ESP.Drawing.Boxes.Corner.RGB, Position = .(, , , )})
RightTop = Functions:(, {Parent = Folder, BackgroundColor3 = ESP.Drawing.Boxes.Corner.RGB, Position = .(, , , )})
RightSide = Functions:(, {Parent = Folder, BackgroundColor3 = ESP.Drawing.Boxes.Corner.RGB, Position = .(, , , )})
BottomSide = Functions:(, {Parent = Folder, BackgroundColor3 = ESP.Drawing.Boxes.Corner.RGB, Position = .(, , , )})
BottomDown = Functions:(, {Parent = Folder, BackgroundColor3 = ESP.Drawing.Boxes.Corner.RGB, Position = .(, , , )})
BottomRightSide = Functions:(, {Parent = Folder, BackgroundColor3 = ESP.Drawing.Boxes.Corner.RGB, Position = .(, , , )})
BottomRightDown = Functions:(, {Parent = Folder, BackgroundColor3 = ESP.Drawing.Boxes.Corner.RGB, Position = .(, , , )})
Flag1 = Functions:(, {Parent = Folder, Position = .(, , , ), Size = .(, , , ), AnchorPoint = .(, ), BackgroundTransparency = , TextColor3 = .(, , ), Font = .Font.Code, TextSize = ESP.FontSize, TextStrokeTransparency = , TextStrokeColor3 = .(, , )})
Flag2 = Functions:(, {Parent = Folder, Position = .(, , , ), Size = .(, , , ), AnchorPoint = .(, ), BackgroundTransparency = , TextColor3 = .(, , ), Font = .Font.Code, TextSize = ESP.FontSize, TextStrokeTransparency = , TextStrokeColor3 = .(, , )})
Updater = ()
Connection;
()
Box.Visible = ;
Name.Visible = ;
Distance.Visible = ;
Weapon.Visible = ;
Healthbar.Visible = ;
BehindHealthbar.Visible = ;
HealthText.Visible = ;
WeaponIcon.Visible = ;
LeftTop.Visible = ;
LeftSide.Visible =
BottomSide.Visible = ;
BottomDown.Visible = ;
RightTop.Visible = ;
RightSide.Visible = ;
BottomRightSide.Visible = ;
BottomRightDown.Visible = ;
Flag1.Visible = ;
Chams.Enabled = ;
Flag2.Visible = ;
plr plr.Parent
Connection Connection:()
Folder:()
Connection = Euphoria.RunService.RenderStepped:(()
plr plr.Parent
()
Connection:()
espPlayerWL = (Options.ESPPlayerWhitelist Options.ESPPlayerWhitelist.Value) {}
espTeamWL = (Options.ESPTeamWhitelist Options.ESPTeamWhitelist.Value) {}
player = plr
(espPlayerWL, player) (player.Team (espTeamWL, player.Team))
()
ESP.Enabled
()
plr.Character plr.Character:() plr.Character:()
HRP = plr.Character.HumanoidRootPart
Humanoid = plr.Character.Humanoid
Humanoid.Health <=
()
Pos, OnScreen = Cam:(HRP.Position)
Dist = (Cam.CFrame.Position - HRP.Position).Magnitude /
OnScreen Dist <= ESP.MaxDistance
rainbowColor = .(hue, , )
boxColor = Toggles.RainbowESP.Value rainbowColor Options.ESPBoxColor.Value
fillColor = Toggles.RainbowESP.Value rainbowColor Options.ESPBoxFillColor.Value
textColor = Toggles.RainbowESP.Value rainbowColor Options.ESPColor.Value
chamColor = Toggles.RainbowESP.Value rainbowColor Options.ChamsColor.Value
Size = HRP.Size.Y
scaleFactor = (Size * Cam.ViewportSize.Y) / (Pos.Z * )
w, h = * scaleFactor, * scaleFactor
ESP.FadeOut.OnDistance
Functions:(Box, Dist)
Functions:(Outline, Dist)
Functions:(Name, Dist)
Functions:(Distance, Dist)
Functions:(Weapon, Dist)
Functions:(Healthbar, Dist)
Functions:(BehindHealthbar, Dist)
Functions:(HealthText, Dist)
Functions:(WeaponIcon, Dist)
Functions:(LeftTop, Dist)
Functions:(LeftSide, Dist)
Functions:(BottomSide, Dist)
Functions:(BottomDown, Dist)
Functions:(RightTop, Dist)
Functions:(RightSide, Dist)
Functions:(BottomRightSide, Dist)
Functions:(BottomRightDown, Dist)
Functions:(Chams, Dist)
Functions:(Flag1, Dist)
Functions:(Flag2, Dist)
ESP.TeamCheck plr ~= LocalPlayer ((LocalPlayer.Team ~= plr.Team plr.Team) ( LocalPlayer.Team plr.Team)) plr.Character plr.Character:() plr.Character:()
Chams.Adornee = plr.Character
Chams.Enabled = ESP.Drawing.Chams.Enabled
Chams.FillColor = chamColor
Chams.OutlineColor = chamColor
ESP.Drawing.Chams.Thermal
breathe_effect = .(.(() * )) * / .pi
Chams.FillTransparency = ESP.Drawing.Chams.Fill_Transparency * breathe_effect *
Chams.OutlineTransparency = ESP.Drawing.Chams.Outline_Transparency * breathe_effect *
Chams.FillTransparency = ESP.Drawing.Chams.Fill_Transparency *
Chams.OutlineTransparency = ESP.Drawing.Chams.Outline_Transparency *
ESP.Drawing.Chams.VisibleCheck
Chams.DepthMode =
Chams.DepthMode =
;
LeftTop.Visible = ESP.Drawing.Boxes.Corner.Enabled
LeftTop.Position = .(, Pos.X - w / , , Pos.Y - h / )
LeftTop.Size = .(, w / , , )
LeftTop.BackgroundColor3 = boxColor
LeftSide.Visible = ESP.Drawing.Boxes.Corner.Enabled
LeftSide.Position = UDim2.new(0, Pos.X - w / 2, 0, Pos.Y - h / 2)
LeftSide.Size = UDim2.new(0, 1, 0, h / 5)
LeftSide.BackgroundColor3 = boxColor
BottomSide.Visible = ESP.Drawing.Boxes.Corner.Enabled
BottomSide.Position = UDim2.new(0, Pos.X - w / 2, 0, Pos.Y + h / 2)
BottomSide.Size = UDim2.new(0, 1, 0, h / 5)
BottomSide.AnchorPoint = Vector2.new(0, 5)
BottomSide.BackgroundColor3 = boxColor
BottomDown.Visible = ESP.Drawing.Boxes.Corner.Enabled
BottomDown.Position = UDim2.new(0, Pos.X - w / 2, 0, Pos.Y + h / 2)
BottomDown.Size = UDim2.new(0, w / 5, 0, 1)
BottomDown.AnchorPoint = Vector2.new(0, 1)
BottomDown.BackgroundColor3 = boxColor
RightTop.Visible = ESP.Drawing.Boxes.Corner.Enabled
RightTop.Position = UDim2.new(0, Pos.X + w / 2, 0, Pos.Y - h / 2)
RightTop.Size = UDim2.new(0, w / 5, 0, 1)
RightTop.AnchorPoint = Vector2.new(1, 0)
RightTop.BackgroundColor3 = boxColor
RightSide.Visible = ESP.Drawing.Boxes.Corner.Enabled
RightSide.Position = UDim2.new(0, Pos.X + w / 2, 0, Pos.Y - h / 2)
RightSide.Size = UDim2.new(0, 1, 0, h / 5)
RightSide.AnchorPoint = Vector2.new(0, 0)
RightSide.BackgroundColor3 = boxColor
BottomRightSide.Visible = ESP.Drawing.Boxes.Corner.Enabled
BottomRightSide.Position = UDim2.new(0, Pos.X + w / 2, 0, Pos.Y + h / 2)
BottomRightSide.Size = UDim2.new(0, 1, 0, h / 5)
BottomRightSide.AnchorPoint = Vector2.new(1, 1)
BottomRightSide.BackgroundColor3 = boxColor
BottomRightDown.Visible = ESP.Drawing.Boxes.Corner.Enabled
BottomRightDown.Position = UDim2.new(0, Pos.X + w / 2, 0, Pos.Y + h / 2)
BottomRightDown.Size = UDim2.new(0, w / 5, 0, 1)
BottomRightDown.AnchorPoint = Vector2.new(1, 1)
BottomRightDown.BackgroundColor3 = boxColor
end
do -- Boxes
Box.Position = UDim2.new(0, Pos.X - w / 2, 0, Pos.Y - h / 2)
Box.Size = UDim2.new(0, w, 0, h)
Box.Visible = ESP.Drawing.Boxes.Full.Enabled;
-- Gradient
if ESP.Drawing.Boxes.Filled.Enabled then
Box.BackgroundColor3 = fillColor
Box.BackgroundTransparency = ESP.Drawing.Boxes.Filled.Transparency / 100
Box.BorderSizePixel = 1
else
Box.BackgroundTransparency = 1
end
-- Animation
RotationAngle = RotationAngle + (tick() - Tick) * ESP.Drawing.Boxes.RotationSpeed * math.cos(math.pi / 4 * tick() - math.pi / 2)
if ESP.Drawing.Boxes.Animate then
Gradient1.Rotation = RotationAngle
Gradient2.Rotation = RotationAngle
else
Gradient1.Rotation = -45
Gradient2.Rotation = -45
end
Tick = tick()
Gradient1.Color = ColorSequence.new{ColorSequenceKeypoint.new(0, boxColor), ColorSequenceKeypoint.new(1, ESP.Drawing.Boxes.GradientFillRGB2)}
Gradient2.Color = ColorSequence.new{ColorSequenceKeypoint.new(0, boxColor), ColorSequenceKeypoint.new(1, ESP.Drawing.Boxes.GradientRGB2)}
end
do -- Healthbar
local health = Humanoid.Health / Humanoid.MaxHealth;
Healthbar.Visible = ESP.Drawing.Healthbar.Enabled;
Healthbar.Position = UDim2.new(0, Pos.X - w / 2 - 6, 0, Pos.Y - h / 2 + h * (1 - health))
Healthbar.Size = UDim2.new(0, ESP.Drawing.Healthbar.Width, 0, h * health)
--
BehindHealthbar.Visible = ESP.Drawing.Healthbar.Enabled;
BehindHealthbar.Position = UDim2.new(0, Pos.X - w / 2 - 6, 0, Pos.Y - h / 2)
BehindHealthbar.Size = UDim2.new(0, ESP.Drawing.Healthbar.Width, 0, h)
-- Health Text
do
if ESP.Drawing.Healthbar.HealthText then
local healthPercentage = math.floor(Humanoid.Health / Humanoid.MaxHealth * 100)
HealthText.Position = UDim2.new(0, Pos.X - w / 2 - 6, 0, Pos.Y - h / 2 + h * (1 - healthPercentage / 100) + 3)
HealthText.Text = tostring(healthPercentage)
HealthText.Visible = Humanoid.Health < Humanoid.MaxHealth
HealthText.TextColor3 = textColor
HealthText.TextSize = ESP.FontSize
if ESP.Drawing.Healthbar.Lerp then
local frac = health
local r = math.min(255, 510 * (1 - frac))
local g = math.min(255, 510 * frac)
local color = Color3.fromRGB(r, g, 0)
HealthText.TextColor3 = color
else
HealthText.TextColor3 = ESP.Drawing.Healthbar.HealthTextRGB
end
end
end
end
do -- Names
Name.Visible = ESP.Drawing.Names.Enabled
Name.TextColor3 = textColor
Name.TextSize = ESP.FontSize
if ESP.Options.Friendcheck and lplayer:IsFriendsWith(plr.UserId) then
Name.Text = string.format('(<font color="rgb(%d, %d, %d)">F</font>) %s', ESP.Options.FriendcheckRGB.R * 255, ESP.Options.FriendcheckRGB.G * 255, ESP.Options.FriendcheckRGB.B * 255, plr.Name)
else
Name.Text = string.format('(<font color="rgb(%d, %d, %d)">E</font>) %s', 255, 0, 0, plr.Name)
end
Name.Position = UDim2.new(0, Pos.X, 0, Pos.Y - h / 2 - 9)
end
do -- Distance and Tool Text & Positioning (Fixed)
local bottomOffset = Pos.Y + h / 2
local distEnabled = ESP.Drawing.Distances.Enabled
-- 1. Handle Distance Visibility
if distEnabled then
Distance.TextColor3 = textColor
Distance.TextSize = ESP.FontSize
Distance.Position = UDim2.new(0, Pos.X, 0, bottomOffset + 7)
if ESP.Drawing.Distances.Position == "Bottom" then
Distance.Text = string.format("%d meters", math.floor(Dist))
Distance.Visible = true
bottomOffset = bottomOffset + 12 -- Add padding for Tool below
elseif ESP.Drawing.Distances.Position == "Text" then
-- Combined in Name Logic (distance hidden here)
Distance.Visible = false
-- Logic is inside name block in original script, but simple update here:
if ESP.Options.Friendcheck and lplayer:IsFriendsWith(plr.UserId) then
Name.Text = string.format('(<font color="rgb(%d, %d, %d)">F</font>) %s [%d]', ESP.Options.FriendcheckRGB.R * 255, ESP.Options.FriendcheckRGB.G * 255, ESP.Options.FriendcheckRGB.B * 255, plr.Name, math.floor(Dist))
else
Name.Text = string.format('(<font color="rgb(%d, %d, %d)">E</font>) %s [%d]', 255, 0, 0, plr.Name, math.floor(Dist))
end
end
else
Distance.Visible = false
end
-- 2. Handle Tool Visibility & Positioning
-- Logic separate from Distance check so position updates even if distance is off
local tool = plr.Character:FindFirstChildOfClass("Tool") or (plr.Backpack and plr.Backpack:FindFirstChildOfClass("Tool"))
if ESP.Drawing.Weapons.Enabled then
Weapon.TextColor3 = textColor
Weapon.TextSize = ESP.FontSize
-- Calculate Weapon Position based on updated bottomOffset
-- Note: Original script added +18 / +15 relative to Y+h/2.
-- If distance is there, bottomOffset increased.
Weapon.Position = UDim2.new(0, Pos.X, 0, bottomOffset + 11)
WeaponIcon.Position = UDim2.new(0, Pos.X - 21, 0, bottomOffset + 8)
if tool then
Weapon.Text = tool.Name
WeaponIcon.Image = Weapon_Icons[tool.Name] or ""
else
Weapon.Text = "none"
WeaponIcon.Image = ""
end
Weapon.Visible = true
WeaponIcon.Visible = true -- Ensuring Icon visible
else
Weapon.Visible = false
WeaponIcon.Visible = false -- Ensuring Icon hidden
end
end
else
HideESP();
end
else
HideESP();
end
else
HideESP();
end
end)
end
coroutine.wrap(Updater)();
end
do -- Update ESP
for _, v in pairs(game:GetService("Players"):GetPlayers()) do
if v.Name ~= lplayer.Name then
coroutine.wrap(ESPFunc)(v)
end
end
--
game:GetService("Players").PlayerAdded:Connect(function(v)
coroutine.wrap(ESPFunc)(v)
end);
end;
end;
Players.PlayerRemoving:Connect(function(p)
if ScreenGui:FindFirstChild(p.Name) then
ScreenGui[p.Name]:Destroy()
end
end)
-- ==============================================================
-- PREDICTION FORESHADOW (GHOST CLONE) SYSTEM (OPTIMIZED)
-- ==============================================================
local GhostCharacter = nil
local GhostPartsCache = {}
local function ClearGhost()
if GhostCharacter then
GhostCharacter:Destroy()
GhostCharacter = nil
end
GhostPartsCache = {}
end
local function UpdateGhost(target, predictedPos)
if not target or not target:FindFirstChild("HumanoidRootPart") then
ClearGhost()
return
end
-- 1. Create Ghost if missing or target changed
if not GhostCharacter or GhostCharacter.Name ~= target.Name .. "_Ghost" then
ClearGhost()
GhostCharacter = Instance.new("Model")
GhostCharacter.Name = target.Name .. "_Ghost"
GhostCharacter.Parent = workspace.CurrentCamera -- Client side only
-- Clone visual parts only
for _, v in pairs(target:GetChildren()) do
if v:IsA("BasePart") and v.Name ~= "HumanoidRootPart" then
local clone = v:Clone()
clone:ClearAllChildren() -- Remove scripts/welds to prevent lag/interactions
clone.Parent = GhostCharacter
clone.Anchored = true
clone.CanCollide = false
clone.CanTouch = false
clone.CanQuery = false
clone.Material = Enum.Material.Plastic -- Plastic material
clone.Color = Options.GhostColor.Value
clone.Transparency = Options.GhostTransparency.Value
clone.CastShadow = false
-- Cache the mapping of original name -> clone part
GhostPartsCache[v.Name] = clone
if v:IsA("MeshPart") then
clone.TextureID = ""
end
end
end
end
-- 2. Move Ghost to Predicted Position
local currentHRP = target:FindFirstChild("HumanoidRootPart")
if currentHRP then
local currentPos = currentHRP.Position
-- The offset from current player to predicted position
local offset = predictedPos - currentPos
-- Get Visual Settings
local gColor = Options.GhostColor.Value
local gTrans = Options.GhostTransparency.Value
for origName, clonePart in pairs(GhostPartsCache) do
local originalPart = target:FindFirstChild(origName)
if originalPart then
-- Apply the offset to every part's CFrame to maintain animation pose
clonePart.CFrame = originalPart.CFrame + offset
-- Update visuals live
clonePart.Color = gColor
clonePart.Transparency = gTrans
end
end
end
end
-- Aimbot functions
-- EXPANDED BODY PARTS LIST TO INCLUDE R6 PARTS (Torso, Arms, Legs)
local bodyParts = {
"Head", "UpperTorso", "LowerTorso", "HumanoidRootPart",
"LeftUpperArm", "RightUpperArm", "LeftLowerArm", "RightLowerArm", "LeftHand", "RightHand",
"LeftUpperLeg", "RightUpperLeg", "LeftLowerLeg", "RightLowerLeg", "LeftFoot", "RightFoot",
"Torso", "Left Arm", "Right Arm", "Left Leg", "Right Leg" -- R6 Parts
}
local function getClosestTarget()
local closest, closestDist = nil, math.huge
local mousePos = UserInputService:GetMouseLocation()
for _, player in pairs(Players:GetPlayers()) do
if player == LocalPlayer then continue end
local character = player.Character
if not character then continue end
if Toggles.ForceFieldCheck.Value and character:FindFirstChildOfClass("ForceField") then continue end
local hrp = character:FindFirstChild("HumanoidRootPart")
if not hrp then continue end
if Toggles.TeamCheck.Value and LocalPlayer.Team and player.Team == LocalPlayer.Team then continue end
local playerWL = (Options.PlayerWhitelist and Options.PlayerWhitelist.Value) or {}
local teamWL = (Options.TeamWhitelist and Options.TeamWhitelist.Value) or {}
if selectionContains(playerWL, player) then continue end
if player.Team and selectionContains(teamWL, player.Team) then continue end
if Toggles.HealthCheck.Value then
local humanoid = character:FindFirstChildOfClass("Humanoid")
if not humanoid or humanoid.Health <= 0 then continue end
if humanoid.Health < Options.MinHealth.Value then continue end
end
local distance = (Camera.CFrame.Position - hrp.Position).Magnitude
if not Toggles.InfDistance.Value and distance > Options.MaxDistance.Value then continue end
local charBestDist = math.huge
if Toggles.AimVisibleParts.Value then
for _, partName in ipairs(bodyParts) do
local part = character:FindFirstChild(partName)
if part and isVisible(part) then
local screenPos, onScreen = Camera:WorldToViewportPoint(part.Position)
if onScreen then
local dist = (Vector2.new(screenPos.X, screenPos.Y) - mousePos).Magnitude
if dist < charBestDist then
charBestDist = dist
end
end
end
end
else
local part = getAimPart(character)
if part and isVisible(part) then
local screenPos, onScreen = Camera:WorldToViewportPoint(part.Position)
if onScreen then
charBestDist = (Vector2.new(screenPos.X, screenPos.Y) - mousePos).Magnitude
end
end
end
if charBestDist <= Options.FOVRadius.Value and charBestDist < closestDist then
closest = character
closestDist = charBestDist
end
end
if Toggles.AimNPCs.Value then
for _, npc in pairs(workspace:GetChildren()) do
local playerFromChar = Players:GetPlayerFromCharacter(npc)
if playerFromChar then continue end
if npc == LocalCharacter then continue end
if not npc:IsA("Model") or not npc:FindFirstChild("Humanoid") or not npc:FindFirstChild("HumanoidRootPart") then continue end
if Toggles.ForceFieldCheck.Value and npc:FindFirstChildOfClass("ForceField") then continue end
local hrp = npc.HumanoidRootPart
local humanoid = npc:FindFirstChild("Humanoid")
if Toggles.HealthCheck.Value then
if not humanoid or humanoid.Health <= 0 then continue end
if humanoid.Health < Options.MinHealth.Value then continue end
end
local distance = (Camera.CFrame.Position - hrp.Position).Magnitude
if not Toggles.InfDistance.Value and distance > Options.MaxDistance.Value then continue end
local charBestDist = math.huge
if Toggles.AimVisibleParts.Value then
for _, partName in ipairs(bodyParts) do
local part = npc:FindFirstChild(partName)
if part and isVisible(part) then
local screenPos, onScreen = Camera:WorldToViewportPoint(part.Position)
if onScreen then
local dist = (Vector2.new(screenPos.X, screenPos.Y) - mousePos).Magnitude
if dist < charBestDist then
charBestDist = dist
end
end
end
end
else
local part = getAimPart(npc)
if part and isVisible(part) then
local screenPos, onScreen = Camera:WorldToViewportPoint(part.Position)
if onScreen then
charBestDist = (Vector2.new(screenPos.X, screenPos.Y) - mousePos).Magnitude
end
end
end
if charBestDist <= Options.FOVRadius.Value and charBestDist < closestDist then
closest = npc
closestDist = charBestDist
end
end
end
return closest
end
local function isValidLockedTarget(targetChar)
if not targetChar or not targetChar.Parent then return false end
if Toggles.ForceFieldCheck.Value and targetChar:FindFirstChildOfClass("ForceField") then return false end
local hrp = targetChar:FindFirstChild("HumanoidRootPart")
if not hrp then return false end
local humanoid = targetChar:FindFirstChildOfClass("Humanoid")
if not humanoid or humanoid.Health <= 0 then return false end
if Toggles.HealthCheck.Value and humanoid.Health < Options.MinHealth.Value then return false end
local distance = (Camera.CFrame.Position - hrp.Position).Magnitude
if not Toggles.InfDistance.Value and distance > Options.MaxDistance.Value then return false end
local player = Players:GetPlayerFromCharacter(targetChar)
if player then
if Toggles.TeamCheck.Value and LocalPlayer.Team and player.Team == LocalPlayer.Team then return false end
local playerWL = (Options.PlayerWhitelist and Options.PlayerWhitelist.Value) or {}
local teamWL = (Options.TeamWhitelist and Options.TeamWhitelist.Value) or {}
if selectionContains(playerWL, player) then return false end
if player.Team and selectionContains(teamWL, player.Team) then return false end
end
return true
end
-- Aimbot & Triggerbot toggle states
local lockedTarget = nil
local stickyTarget = nil
local Clicked = false
-- Main Render RenderStepped loop
RunService.RenderStepped:Connect(function(dt)
hue = (hue + dt * 0.25) % 1
updateMouseLock()
local mousePos = UserInputService:GetMouseLocation()
if FOVCircle then
FOVCircle.Position = mousePos
FOVCircle.Radius = Options.FOVRadius.Value
FOVCircle.Visible = Toggles.AimbotEnabled.Value and Toggles.FovVisible.Value
if Toggles.RainbowFov.Value then
FOVCircle.Color = Color3.fromHSV(hue,1,1)
else
FOVCircle.Color = Options.FovColor.Value
end
end
local triggerActive = Toggles.TriggerbotEnabled.Value
if triggerActive then
local targetPart = mouse.Target
if targetPart then
local char = targetPart.Parent
local humanoid = char:FindFirstChildOfClass("Humanoid")
if not humanoid then
char = targetPart.Parent.Parent
humanoid = char:FindFirstChildOfClass("Humanoid")
end
if humanoid and humanoid.Health > 0 and char.Name ~= LocalPlayer.Name then
local hrp = char:FindFirstChild("HumanoidRootPart")
if not hrp then
if Clicked then
mouse1release()
Clicked = false
end
else
local playerFromChar = Players:GetPlayerFromCharacter(char)
local shouldShoot = true
if Toggles.ForceFieldCheck.Value and char:FindFirstChildOfClass("ForceField") then
shouldShoot = false
end
if playerFromChar then
if Toggles.TeamCheck.Value and LocalPlayer.Team and playerFromChar.Team == LocalPlayer.Team then
shouldShoot = false
end
local playerWL = (Options.PlayerWhitelist and Options.PlayerWhitelist.Value) or {}
local teamWL = (Options.TeamWhitelist and Options.TeamWhitelist.Value) or {}
if selectionContains(playerWL, playerFromChar) then
shouldShoot = false
end
if playerFromChar.Team and selectionContains(teamWL, playerFromChar.Team) then
shouldShoot = false
end
end
local dist = (LocalHumanoidRootPart.Position - hrp.Position).Magnitude
if Toggles.TriggerDistanceCheck.Value and dist > Options.TriggerMaxDistance.Value then
shouldShoot = false
end
local visible = not Toggles.TriggerbotWallCheck.Value or isVisible(targetPart)
if not visible then
shouldShoot = false
end
if shouldShoot then
-- SET TARGET FOR HITSOUNDS
Target = char
if not Clicked then
mouse1press()
Clicked = true
end
else
if Clicked then
mouse1release()
Clicked = false
end
end
end
else
if Clicked then
mouse1release()
Clicked = false
end
end
else
if Clicked then
mouse1release()
Clicked = false
end
end
else
if Clicked then
mouse1release()
Clicked = false
end
end
if not Toggles.AimbotEnabled.Value then
-- Don't clear target if triggerbot is using it
if not triggerActive then
Target = nil
end
lockedTarget = nil
stickyTarget = nil
CurrentLockedTarget = nil
PerceivedPos = nil
PerceivedVel = Vector3.new()
JustLocked = true
ClearGhost()
return
end
local mousePos = UserInputService:GetMouseLocation()
local aimbotActive = false
if Options.AimbotKeybind and type(Options.AimbotKeybind.GetState) == "function" then
aimbotActive = Options.AimbotKeybind:GetState()
end
if not aimbotActive then
Target = nil
lockedTarget = nil
stickyTarget = nil
CurrentLockedTarget = nil
PerceivedPos = nil
PerceivedVel = Vector3.new()
JustLocked = true
ClearGhost() -- Cleanup ghost
return
end
local currentTarget = nil
-- --- TARGET SELECTION LOGIC ---
if Toggles.OutwallAim.Value then
if not lockedTarget or not isValidLockedTarget(lockedTarget) then
lockedTarget = getClosestTarget()
end
currentTarget = lockedTarget
elseif Toggles.StickyAim.Value then
-- STICKY AIM FIXED LOGIC
if stickyTarget and not isValidLockedTarget(stickyTarget) then
stickyTarget = nil
end
if stickyTarget then
local part = stickyTarget:FindFirstChild("HumanoidRootPart")
if part then
local screenPos, onScreen = Camera:WorldToViewportPoint(part.Position)
local distFromMouse = (Vector2.new(screenPos.X, screenPos.Y) - mousePos).Magnitude
if not onScreen or distFromMouse > Options.FOVRadius.Value then
stickyTarget = nil
end
if stickyTarget and Toggles.StickyWallCheck.Value then
local aimP = getAimPart(stickyTarget)
if aimP and not isVisible(aimP) then
stickyTarget = nil
end
end
else
stickyTarget = nil
end
end
if not stickyTarget then
stickyTarget = getClosestTarget()
end
currentTarget = stickyTarget
else
-- REACTION TIME LOGIC FIX
local newClosest = getClosestTarget()
if CurrentLockedTarget and isValidLockedTarget(CurrentLockedTarget) then
if newClosest ~= CurrentLockedTarget then
if PendingTarget ~= newClosest then
PendingTarget = newClosest
TargetSwitchTimer = tick()
end
if tick() - TargetSwitchTimer >= TargetReactionDelay then
currentTarget = newClosest
CurrentLockedTarget = currentTarget
else
currentTarget = CurrentLockedTarget
end
else
currentTarget = CurrentLockedTarget
PendingTarget = nil
end
else
currentTarget = newClosest
CurrentLockedTarget = currentTarget
PendingTarget = nil
end
end
-- DEAD SWITCH DELAY CHECK
if CurrentLockedTarget and CurrentLockedTarget:FindFirstChild("Humanoid") and CurrentLockedTarget.Humanoid.Health <= 0 then
if DeathDelayStart == 0 then
DeathDelayStart = tick()
end
CurrentLockedTarget = nil
end
if DeathDelayStart > 0 and (tick() - DeathDelayStart) < Options.DeadDelay.Value then
Target = nil
JustLocked = true
ClearGhost()
return
elseif DeathDelayStart > 0 then
DeathDelayStart = 0
end
if not currentTarget then
Target = nil
PerceivedPos = nil
PerceivedVel = Vector3.new()
JustLocked = true
ClearGhost() -- Cleanup ghost
return
end
-- =====================================
-- AIM PART SELECTION (VISIBLE/SWITCH PART FIX)
-- =====================================
local aimPart = nil
local useWallCheck = Toggles.WallCheck.Value and not (Toggles.StickyAim.Value and Toggles.StickyWallCheck.Value and currentTarget == stickyTarget)
-- 1. Check "Aim Visible Parts" (Highest Priority if enabled)
if Toggles.AimVisibleParts.Value then
local bestDist = math.huge
local bestPart = nil
for _, partName in ipairs(bodyParts) do
local part = currentTarget:FindFirstChild(partName)
if part and isVisible(part) then -- Only care if it's visible
local scr, onScreen = Camera:WorldToViewportPoint(part.Position)
if onScreen then
local dist = (Vector2.new(scr.X, scr.Y) - mousePos).Magnitude
if dist < bestDist then
bestDist = dist
bestPart = part
end
end
end
end
if bestPart then
aimPart = bestPart
end
end
-- 2. If no visible part found (or setting disabled), use Switch Part logic or Default
if not aimPart then
if Toggles.SwitchPart.Value then
-- Switch Part Logic (Delay based - Closest Part)
if tick() - LastPartSwitchTime > Options.SwitchPartDelay.Value then
local closestP = nil
local closestDist = math.huge
-- Iterate all body parts to find closest to cursor
for _, partName in ipairs(bodyParts) do
local part = currentTarget:FindFirstChild(partName)
if part then
local scr, onScreen = Camera:WorldToViewportPoint(part.Position)
if onScreen then
local dist = (Vector2.new(scr.X, scr.Y) - mousePos).Magnitude
if dist < closestDist then
closestDist = dist
closestP = partName
end
end
end
end
if closestP then
CurrentSwitchPart = closestP
end
LastPartSwitchTime = tick()
end
-- Try to get the switched part
aimPart = getAimPart(currentTarget, CurrentSwitchPart)
end
-- 3. Fallback to Main Aim Part (if SwitchPart didn't set one or failed)
if not aimPart then
aimPart = getAimPart(currentTarget)
end
end
-- Final Wallcheck Validation (if applicable)
if useWallCheck and aimPart and not isVisible(aimPart) then
aimPart = nil
end
if not aimPart then
Target = nil
PerceivedPos = nil
PerceivedVel = Vector3.new()
JustLocked = true
ClearGhost() -- Cleanup ghost
return
end
local currentVelocity = aimPart.AssemblyLinearVelocity or Vector3.new()
local currentWorldPos = aimPart.Position
local now = tick()
-- First lock or target change = instant
if JustLocked then
PerceivedPos = currentWorldPos
PerceivedVel = currentVelocity
LastUpdateTimeX = now
LastUpdateTimeY = now
JustLocked = false
end
-- Force update on landing to prevent downward drift
local LANDING_THRESHOLD = 1 -- If current Y vel near 0
local FALLING_THRESHOLD = -10 -- And perceived was falling
if math.abs(currentVelocity.Y) < LANDING_THRESHOLD and PerceivedVel.Y < FALLING_THRESHOLD then
PerceivedPos = Vector3.new(PerceivedPos.X, currentWorldPos.Y, PerceivedPos.Z)
PerceivedVel = Vector3.new(PerceivedVel.X, currentVelocity.Y, PerceivedVel.Z)
LastUpdateTimeY = now
end
-- Update perception for X/Z (horizontal) and Y (vertical) independently
if now - LastUpdateTimeX >= ReactionDelayX then
PerceivedPos = Vector3.new(currentWorldPos.X, PerceivedPos.Y, currentWorldPos.Z)
PerceivedVel = Vector3.new(currentVelocity.X, PerceivedVel.Y, currentVelocity.Z)
LastUpdateTimeX = now
end
if now - LastUpdateTimeY >= ReactionDelayY then
PerceivedPos = Vector3.new(PerceivedPos.X, currentWorldPos.Y, PerceivedPos.Z)
PerceivedVel = Vector3.new(PerceivedVel.X, currentVelocity.Y, PerceivedVel.Z)
LastUpdateTimeY = now
end
local timeSinceX = now - LastUpdateTimeX
local timeSinceY = now - LastUpdateTimeY
-- Extrapolate X/Z and Y with independent times
local perceivedX = PerceivedPos.X + PerceivedVel.X * timeSinceX
local perceivedY = PerceivedPos.Y + PerceivedVel.Y * timeSinceY
local perceivedZ = PerceivedPos.Z + PerceivedVel.Z * timeSinceX
local perceivedWorldPos = Vector3.new(perceivedX, perceivedY, perceivedZ)
-- THIS IS WHERE THE TARGET WILL BE
local predictedWorldPos = perceivedWorldPos + PerceivedVel * Options.Prediction.Value
-- ==============================================================
-- UPDATE GHOST FORESHADOW
-- ==============================================================
if Toggles.PredictionForeshadow.Value and currentTarget then
local hrp = currentTarget:FindFirstChild("HumanoidRootPart")
if hrp then
local predHrpPos = hrp.Position + (hrp.AssemblyLinearVelocity * Options.Prediction.Value)
UpdateGhost(currentTarget, predHrpPos)
end
else
ClearGhost()
end
-- ==============================================================
local screenPos, onScreen = Camera:WorldToViewportPoint(predictedWorldPos)
if not onScreen then
Target = nil
JustLocked = true
ClearGhost() -- Cleanup ghost
return
end
local mousePos = UserInputService:GetMouseLocation()
-- [[ FIX: If Silent Aim is ON and Aimbot is ON, stop Mouse Moving here! ]] --
if Toggles.SilentAim.Value then
Target = currentTarget
return
end
if Options.AimMethod.Value == "Mouse" then
local currentSmoothnessX = Options.XSmoothness.Value
local currentSmoothnessY = Options.YSmoothness.Value
local dist = (Vector2.new(screenPos.X, screenPos.Y) - mousePos).Magnitude
-- FIX: Snap Back only activates if target is >100px away (e.g. due to drift)
-- If close (<100px), standard smoothness is used to avoid jitter/instant snaps.
if dist > 100 then
currentSmoothnessX = Options.SnapBackSpeed.Value
currentSmoothnessY = Options.SnapBackSpeed.Value
end
local deltaX = (screenPos.X - mousePos.X) / math.max(1, currentSmoothnessX)
local deltaY = (screenPos.Y - mousePos.Y) / math.max(1, currentSmoothnessY)
deltaX = deltaX + math.random(-1, 1) * 0.15
deltaY = deltaY + math.random(-1, 1) * 0.15
if mousemoverel then
mousemoverel(deltaX, deltaY)
end
elseif Options.AimMethod.Value == "Camera" then
local targetCFrame = CFrame.lookAt(Camera.CFrame.Position, predictedWorldPos)
local avgSmoothness = (Options.XSmoothness.Value + Options.YSmoothness.Value) / 2
local alpha = 1 / math.max(1, avgSmoothness)
Camera.CFrame = Camera.CFrame:Lerp(targetCFrame, alpha)
end
if Target ~= currentTarget then
JustLocked = true
end
Target = currentTarget
end)
-- UI Settings
local MenuGroup = Tabs["UI Settings"]:AddLeftGroupbox("Menu")
MenuGroup:AddToggle("KeybindMenuOpen", {
Default = Library.KeybindFrame.Visible,
Text = "Keybind Menu",
Callback = function(Value) Library.KeybindFrame.Visible = Value end
})
MenuGroup:AddLabel("Menu bind"):AddKeyPicker("MenuKeybind", { Default = "RightShift", NoUI = true, Text = "Menu keybind" })
MenuGroup:AddButton({ Text = "Unload", Func = function()
getgenv().ObsidianV1Running = false -- Reset the check
ClearGhost()
Library:Unload()
end })
Library.ToggleKeybind = Options.MenuKeybind
ThemeManager:SetLibrary(Library)
SaveManager:SetLibrary(Library)
SaveManager:IgnoreThemeSettings()
SaveManager:SetIgnoreIndexes({ "MenuKeybind", "AimbotKeybind", "TriggerbotKeybind" })
ThemeManager:ApplyToTab(Tabs["UI Settings"])
SaveManager:BuildConfigSection(Tabs["UI Settings"])
SaveManager:LoadAutoloadConfig()
Library:Notify("Obsidian GUI Loaded!", 5)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, www.roblox.com.
Its third person aimbot but obsidian ui and more bad idk bad script dont use

Universal