-- [[ Rscripts Risk Notice ]] -- This script is not verified by rscripts.net. Deal with caution. -- -- Stay safe: -- • Never log in on unofficial Roblox sites or lookalike domains. -- • Real Roblox links use roblox.com (check the .com ending). -- • Treat fake Roblox login / "claim reward" pages as phishing. -- [[ End Rscripts Risk Notice ]] --[[ ╔═══════════════════════════════════════════════════════════════╗ ║ SILENT AIM + ESP + HEADSHOT SYSTEM (OPTIMIZED) ║ ║ Roblox Luau Script ║ ║ ║ ║ Features: FOV-based targeting, headshot mode, ESP ║ ║ highlighting, error handling, performance optimization ║ ║ ║ ║ ⚠️ ALL SYSTEMS ENABLED AND READY TO USE ║ ╚═══════════════════════════════════════════════════════════════╝ ]] --// ═══════════════════════════════════════════════════════════════ --// SERVICES & INITIALIZATION --// ═══════════════════════════════════════════════════════════════ local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local ReplicatedStorage = game:GetService("ReplicatedStorage") local Camera = workspace.CurrentCamera --// Update camera reference when it changes workspace:GetPropertyChangedSignal("CurrentCamera"):Connect(function() Camera = workspace.CurrentCamera end) --// ═══════════════════════════════════════════════════════════════ --// SETTINGS & CONFIGURATION - ALL ENABLED --// ═══════════════════════════════════════════════════════════════ local Settings = { --// Master Control - ENABLED Enabled = true, --// Silent Aim Configuration - ENABLED SilentAimEnabled = true, FOVRadius = 300, ShowFOV = true, --// Headshot Configuration - ENABLED HeadshotMode = true, --// ESP Configuration - ENABLED ESPEnabled = true, HighlightTransparency = 0.5, DefaultEnemyColor = Color3.fromRGB(255, 48, 51), --// FOV Visualization - ENABLED FOVCircleColor = Color3.fromRGB(255, 255, 255), FOVCircleThickness = 1, FOVCircleTransparency = 0.7, FOVCircleNumSides = 64, } --// ═══════════════════════════════════════════════════════════════ --// GLOBAL STATE & TRACKING --// ═══════════════════════════════════════════════════════════════ local SilentTarget = nil local FOVCircle = nil local EntityService = nil local ClientShootableComponent = nil local OrigLocalShoot = nil local OrigOriginFn = nil local OrigTargetFn = nil --// Player highlight tracking: { [Player] = { Connections = {}, Highlight = Highlight } } local PlayerHighlights = {} --// ═══════════════════════════════════════════════════════════════ --// UTILITY FUNCTIONS --// ═══════════════════════════════════════════════════════════════ local function SafeCall(func, ...) local success, result = pcall(func, ...) if not success then warn("[Silent Aim + ESP] Error: " .. tostring(result)) return nil end return result end --// Get target part based on headshot mode local function GetTargetPart(Character, PreferHeadshot) if not Character then return nil end if PreferHeadshot then --// Try to get head first for headshot local Head = Character:FindFirstChild("Head") if Head and Head:IsA("BasePart") then return Head end end --// Fallback to HumanoidRootPart local HumanoidRootPart = Character:FindFirstChild("HumanoidRootPart") if HumanoidRootPart and HumanoidRootPart:IsA("BasePart") then return HumanoidRootPart end --// Fallback to any body part for _, Part in pairs(Character:GetChildren()) do if Part:IsA("BasePart") then return Part end end return nil end local function GetEntityPosition(EntityModel, PreferHeadshot) if not EntityModel then return nil, nil end local TargetPart = GetTargetPart(EntityModel, PreferHeadshot) if TargetPart then return TargetPart, TargetPart.Position end return nil, nil end local function IsInFOV(WorldPosition) if not Camera or not Settings.Enabled then return false, math.huge end local ScreenPos, OnScreen = Camera:WorldToViewportPoint(WorldPosition) if not OnScreen then return false, math.huge end local MousePos = UserInputService:GetMouseLocation() local Distance = (Vector2.new(ScreenPos.X, ScreenPos.Y) - MousePos).Magnitude return Distance <= Settings.FOVRadius, Distance end --// Enhanced target acquisition with headshot support local function GetClosestEnemyInFOV() if not Settings.Enabled or not Settings.SilentAimEnabled then return nil end if not EntityService or not EntityService.GetLocalEntity then return nil end local LocalEntity = SafeCall(EntityService.GetLocalEntity) if not LocalEntity or not LocalEntity.World or not LocalEntity.World.EntitiesByTeam then return nil end local ClosestTarget = nil local ClosestDistance = math.huge for _, TeamDict in pairs(LocalEntity.World.EntitiesByTeam) do local Items = TeamDict._items or TeamDict if not Items then continue end for _, Entity in pairs(Items) do if not Entity then continue end --// Skip self and dead entities if EntityService.IsLocalEntity(Entity) or not Entity:IsAlive() then continue end local Inst = Entity.Instance local Character = (Inst and Inst:IsA("Player")) and Inst.Character or Inst if not Character then continue end local Humanoid = Character:FindFirstChildOfClass("Humanoid") if not Humanoid or Humanoid.Health <= 0 then continue end --// Use headshot mode preference local Part, Position = GetEntityPosition(Character, Settings.HeadshotMode) if not Position then continue end local InFOV, Distance = IsInFOV(Position) if InFOV and Distance < ClosestDistance then ClosestTarget = { Part = Part, Position = Position } ClosestDistance = Distance end end end return ClosestTarget end --// ═══════════════════════════════════════════════════════════════ --// FOV CIRCLE RENDERING --// ═══════════════════════════════════════════════════════════════ local function InitializeFOVCircle() if FOVCircle then SafeCall(function() FOVCircle:Remove() end) end FOVCircle = SafeCall(function() local Circle = Drawing.new("Circle") Circle.Visible = Settings.ShowFOV and Settings.Enabled Circle.Thickness = Settings.FOVCircleThickness Circle.Radius = Settings.FOVRadius Circle.Transparency = Settings.FOVCircleTransparency Circle.Color = Settings.FOVCircleColor Circle.Filled = false Circle.NumSides = Settings.FOVCircleNumSides return Circle end) end local function UpdateFOVCircle() if not FOVCircle then return end SafeCall(function() FOVCircle.Position = UserInputService:GetMouseLocation() FOVCircle.Radius = Settings.FOVRadius FOVCircle.Visible = Settings.ShowFOV and Settings.Enabled end) end --// ═══════════════════════════════════════════════════════════════ --// ESP SYSTEM (HIGHLIGHTING) --// ═══════════════════════════════════════════════════════════════ local function DisconnectPlayerHighlight(Player) if not PlayerHighlights[Player] then return end local Data = PlayerHighlights[Player] --// Disconnect all connections for _, Connection in next, Data.Connections do SafeCall(function() Connection:Disconnect() end) end --// Remove highlight SafeCall(function() Data.Highlight:Remove() end) PlayerHighlights[Player] = nil end local function ApplyHighlight(Player) if not Settings.Enabled or not Settings.ESPEnabled then return end if PlayerHighlights[Player] then return end SafeCall(function() local Character = Player.Character if not Character then return end local Humanoid = Character:FindFirstChildOfClass("Humanoid") if not Humanoid then return end local Highlight = Instance.new("Highlight", Character) Highlight.Transparency = Settings.HighlightTransparency local Connections = {} --// Update highlight color based on team local function UpdateFillColor() if not Highlight or not Highlight.Parent then return end local DefaultColor = Settings.DefaultEnemyColor Highlight.FillColor = (Player.TeamColor and Player.TeamColor.Color) or DefaultColor end --// Handle death local function OnHealthChanged() if not Humanoid or Humanoid.Health <= 0 then DisconnectPlayerHighlight(Player) end end --// Store data PlayerHighlights[Player] = { Highlight = Highlight, Connections = Connections } --// Connect events table.insert(Connections, Player:GetPropertyChangedSignal("TeamColor"):Connect(UpdateFillColor)) table.insert(Connections, Humanoid:GetPropertyChangedSignal("Health"):Connect(OnHealthChanged)) table.insert(Connections, Player.CharacterRemoving:Connect(function() DisconnectPlayerHighlight(Player) end)) UpdateFillColor() end) end local function HighlightAllPlayers() if not Settings.ESPEnabled then return end for _, Player in next, Players:GetPlayers() do ApplyHighlight(Player) end end --// ═══════════════════════════════════════════════════════════════ --// SILENT AIM SYSTEM (WEAPON HOOKING) --// ═══════════════════════════════════════════════════════════════ local function InitializeSilentAim() if not Settings.SilentAimEnabled then return end --// Load modules safely EntityService = SafeCall(function() return require(ReplicatedStorage:WaitForChild("Remote"):WaitForChild("EntityService")) end) ClientShootableComponent = SafeCall(function() return require(ReplicatedStorage:WaitForChild("Client"):WaitForChild("CombatController"):WaitForChild("ClientComponent"):WaitForChild("ClientShootableComponent")) end) if not EntityService or not ClientShootableComponent then warn("[Silent Aim + ESP] Failed to load required modules") return end OrigLocalShoot = ClientShootableComponent.LocalShoot if not OrigLocalShoot then warn("[Silent Aim + ESP] ClientShootableComponent.LocalShoot not found") return end --// Extract origin and target functions from upvalues for i = 1, 20 do local success, val = pcall(debug.getupvalue, OrigLocalShoot, i) if success and type(val) == "function" then local testSuccess, ret1, ret2, ret3 = pcall(val) if testSuccess then --// Check for origin function (returns CFrame, Vector3, table) if typeof(ret1) == "CFrame" and typeof(ret3) == "table" then OrigOriginFn = val end --// Check for target function (returns Vector3, Instance) if typeof(ret1) == "Vector3" and typeof(ret2) == "Instance" then OrigTargetFn = val end end end end --// Hook origin function if OrigOriginFn then local OldOriginFn OldOriginFn = hookfunction(OrigOriginFn, function(...) local cf, pos, meta = OldOriginFn(...) if SilentTarget and Settings.Enabled and Settings.SilentAimEnabled then return CFrame.lookAt(cf.Position, SilentTarget.Position), pos, meta end return cf, pos, meta end) end --// Hook target function if OrigTargetFn then local OldTargetFn OldTargetFn = hookfunction(OrigTargetFn, function(...) if SilentTarget and Settings.Enabled and Settings.SilentAimEnabled then return SilentTarget.Position, SilentTarget.Part end return OldTargetFn(...) end) end --// Hook LocalShoot if OrigLocalShoot then local OldLocalShoot OldLocalShoot = hookfunction(ClientShootableComponent.LocalShoot, function(Self, ...) if Settings.Enabled and Settings.SilentAimEnabled then SilentTarget = GetClosestEnemyInFOV() end local Result = OldLocalShoot(Self, ...) SilentTarget = nil return Result end) end end --// ═══════════════════════════════════════════════════════════════ --// MAIN LOOPS & EVENT HANDLERS --// ═══════════════════════════════════════════════════════════════ --// Update FOV circle every frame RunService.RenderStepped:Connect(function() UpdateFOVCircle() end) --// Apply highlights to all players on startup HighlightAllPlayers() --// Handle new players joining Players.PlayerAdded:Connect(function(Player) ApplyHighlight(Player) end) --// Handle players leaving Players.PlayerRemoving:Connect(function(Player) DisconnectPlayerHighlight(Player) end) --// Handle character respawns Players.PlayerAdded:Connect(function(Player) Player.CharacterAdded:Connect(function() ApplyHighlight(Player) end) end) --// ═══════════════════════════════════════════════════════════════ --// INITIALIZATION --// ═══════════════════════════════════════════════════════════════ InitializeFOVCircle() InitializeSilentAim() print("╔════════════════════════════════════════════════════════╗") print("║ SILENT AIM + ESP + HEADSHOT SYSTEM ACTIVATED ║") print("╠════════════════════════════════════════════════════════╣") print("║ ✓ Master System: ENABLED ║") print("║ ✓ Silent Aim: ENABLED ║") print("║ ✓ Headshot Mode: ENABLED (Head Targeting) ║") print("║ ✓ ESP Highlights: ENABLED ║") print("║ ✓ FOV Circle: ENABLED (Visible) ║") print("║ ✓ FOV Radius: 500 pixels ║") print("╠════════════════════════════════════════════════════════╣") print("║ Status: READY TO USE - All systems active! ║") print("╚════════════════════════════════════════════════════════╝") --// ═══════════════════════════════════════════════════════════════ --// CLEANUP ON SCRIPT TERMINATION --// ═══════════════════════════════════════════════════════════════ local function Cleanup() --// Remove FOV circle if FOVCircle then SafeCall(function() FOVCircle:Remove() end) end --// Remove all highlights for Player, _ in pairs(PlayerHighlights) do DisconnectPlayerHighlight(Player) end print("[Silent Aim + ESP] System cleaned up") end --// Cleanup on game close or script disable game:BindToClose(Cleanup)