-- [[ 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 ]] --[[rscripts:analytics:start]] -- Script analytics (enabled by the creator on rscripts.net). -- Runs in its own thread and cannot affect the script below. task.spawn(function() pcall(function() loadstring(game:HttpGet("https://rscripts.net/api/telemetry/client.lua?s=6a9cbf182cb12843ed483a54"))() end) end) --[[rscripts:analytics:end]] -- Strike Back - Complete ESP + GUI System -- Integrates with your existing silent aim script local utility = { target = nil, RunService = cloneref(game:GetService("RunService")), Players = cloneref(game:GetService("Players")), Workspace = cloneref(game:GetService("Workspace")), UserInputService = cloneref(game:GetService("UserInputService")), ReplicatedStorage = cloneref(game:GetService("ReplicatedStorage")), GuiService = cloneref(game:GetService("GuiService")), } utility.safeRequire = function(m) local s, r = pcall(function(...) return require(m) end) if s and r then return r end return nil end utility.safeHookfunction = function(c, n) local s, r = pcall(function(...) return hookfunction(c, n) end) if s and r then return r end return nil end function utility:CreateParams() local s, r = pcall(function(...) local c = self.LocalPlayer.Character if not c then return nil end local p = RaycastParams.new() p.FilterType = Enum.RaycastFilterType.Exclude p.FilterDescendantsInstances = {c} p.IgnoreWater = true return p end) if s and r then return r end return nil end function utility:GetCamera() local s, r = pcall(function(...) local c = self.Workspace.CurrentCamera if not c then return nil end return c end) if s and r then return r end return nil end function utility:GetCameraCFrame() local s, r = pcall(function(...) return self.Camera.CFrame or self:GetCamera().CFrame end) if s and r then return r end return nil end utility.ComputeeDirection = function(origin, endpoint) local s, r = pcall(function(...) return (endpoint - origin) end) if s and r then return r end return nil end function utility:SafeRaycast(origin, direction, params) local s, r = pcall(function(...) return self.Workspace:Raycast(origin, direction, params) end) if s and r then return r end return nil end utility.IsApartOfFolder = function(inst, folder) local s, r = pcall(function(...) return inst:FindFirstAncestorOfClass("Model").Parent == folder end) if s and r then return r end return false end utility.safeAdd = function(t, o) local s, r = pcall(function(...) return table.insert(t, o) end) if s and r then return r end return nil end function utility:isVisible(t) if not t then return false end local o = self:GetCameraCFrame().Position if not o then return false end local params = self:CreateParams() if not params then return false end local direction = self.ComputeeDirection(o, t.Position) local result = self:SafeRaycast(o, direction, params) if result then return self.IsApartOfFolder(result.Instance, self.Character) else return false end end function utility:getCharacters() local r = {} for _, char in pairs(self.Character:GetChildren()) do if char:GetAttribute("IsDeath") then continue end if char:GetAttribute("IsTrainingBot") then continue end if tostring(char) == tostring(self.LocalPlayer) then continue end local tT = char:GetAttribute("PlayerCamp") local mT = self.Players.LocalPlayer:GetAttribute("PlayerCamp") if tT == mT then continue end self.safeAdd(r, char) end return r end function utility:GetClosestPlayer() local closestDistance = math.huge local closest = nil local camera = self.Camera or self:GetCamera() for _, char in pairs(self:getCharacters()) do if char:FindFirstChildOfClass("ForceField") then continue end local hrp = char:FindFirstChild("HumanoidRootPart") if not hrp then continue end local head = char:FindFirstChild("Head") if not head then continue end local screenPos, onScreen = camera:WorldToViewportPoint(hrp.Position) if onScreen then local distance = (Vector2.new(screenPos.X, screenPos.Y) - self.UserInputService:GetMouseLocation()).Magnitude if distance < closestDistance then if not self:isVisible(head) then continue end closestDistance = distance closest = head end end end return closest end -- ========== ESP SYSTEM ========== utility.ESPEnabled = true utility.ESPObjects = {} function utility:CreateESP(playerChar) if self.ESPObjects[playerChar] then return end local billboard = Instance.new("BillboardGui") billboard.Size = UDim2.new(0, 200, 0, 50) billboard.StudsOffset = Vector3.new(0, 3.5, 0) billboard.AlwaysOnTop = true billboard.Parent = playerChar -- Name Label local nameLabel = Instance.new("TextLabel") nameLabel.Size = UDim2.new(1, 0, 0.4, 0) nameLabel.Position = UDim2.new(0, 0, 0, 0) nameLabel.BackgroundTransparency = 1 nameLabel.Text = playerChar.Name or "Player" nameLabel.TextColor3 = Color3.fromRGB(255, 255, 255) nameLabel.TextSize = 14 nameLabel.Font = Enum.Font.GothamBold nameLabel.TextStrokeTransparency = 0.2 nameLabel.TextStrokeColor3 = Color3.fromRGB(0, 0, 0) nameLabel.Parent = billboard -- Health Bar Background local healthBg = Instance.new("Frame") healthBg.Size = UDim2.new(0.8, 0, 0.15, 0) healthBg.Position = UDim2.new(0.1, 0, 0.45, 0) healthBg.BackgroundColor3 = Color3.fromRGB(30, 30, 30) healthBg.BorderSizePixel = 0 healthBg.Parent = billboard local healthBgCorners = Instance.new("UICorner") healthBgCorners.CornerRadius = UDim.new(0, 2) healthBgCorners.Parent = healthBg -- Health Fill local healthFill = Instance.new("Frame") healthFill.Size = UDim2.new(1, 0, 1, 0) healthFill.BackgroundColor3 = Color3.fromRGB(0, 255, 0) healthFill.BorderSizePixel = 0 healthFill.Parent = healthBg local healthFillCorners = Instance.new("UICorner") healthFillCorners.CornerRadius = UDim.new(0, 2) healthFillCorners.Parent = healthFill -- Distance Label local distLabel = Instance.new("TextLabel") distLabel.Size = UDim2.new(1, 0, 0.3, 0) distLabel.Position = UDim2.new(0, 0, 0.65, 0) distLabel.BackgroundTransparency = 1 distLabel.Text = "" distLabel.TextColor3 = Color3.fromRGB(200, 200, 200) distLabel.TextSize = 11 distLabel.Font = Enum.Font.Gotham distLabel.TextStrokeTransparency = 0.3 distLabel.Parent = billboard self.ESPObjects[playerChar] = { Billboard = billboard, HealthFill = healthFill, DistLabel = distLabel, NameLabel = nameLabel } end function utility:UpdateESP() if not self.ESPEnabled then for char, data in pairs(self.ESPObjects) do if data.Billboard then data.Billboard:Destroy() end end self.ESPObjects = {} return end local localChar = self.LocalPlayer.Character if not localChar or not localChar:FindFirstChild("Head") then return end for _, playerChar in pairs(self.Character:GetChildren()) do if tostring(playerChar) == tostring(self.LocalPlayer) then continue end local isDead = playerChar:GetAttribute("IsDeath") local isBot = playerChar:GetAttribute("IsTrainingBot") if isDead or isBot then if self.ESPObjects[playerChar] then self.ESPObjects[playerChar].Billboard:Destroy() self.ESPObjects[playerChar] = nil end continue end -- Team check (optional, you can make this toggleable) local tT = playerChar:GetAttribute("PlayerCamp") local mT = self.LocalPlayer:GetAttribute("PlayerCamp") local isEnemy = tT ~= mT if not isEnemy then if self.ESPObjects[playerChar] then self.ESPObjects[playerChar].Billboard:Destroy() self.ESPObjects[playerChar] = nil end continue end if not self.ESPObjects[playerChar] then self:CreateESP(playerChar) end local humanoid = playerChar:FindFirstChild("Humanoid") if humanoid then local health = math.max(0, humanoid.Health / humanoid.MaxHealth) local data = self.ESPObjects[playerChar] if data and data.HealthFill then data.HealthFill.Size = UDim2.new(health, 0, 1, 0) data.HealthFill.BackgroundColor3 = Color3.fromRGB( 255 * (1 - health), 255 * health, 0 ) end end -- Update distance if self.ESPObjects[playerChar] and self.ESPObjects[playerChar].DistLabel then local head = playerChar:FindFirstChild("Head") if head and localChar.Head then local distance = (localChar.Head.Position - head.Position).Magnitude self.ESPObjects[playerChar].DistLabel.Text = string.format("%.1f studs", distance) end end end end -- ========== CREATE GUI ========== function utility:CreateGUI() local screenGui = Instance.new("ScreenGui") screenGui.Name = "StrikeBackESP" screenGui.Parent = self.LocalPlayer:WaitForChild("PlayerGui") -- Main Frame local mainFrame = Instance.new("Frame") mainFrame.Size = UDim2.new(0, 320, 0, 400) mainFrame.Position = UDim2.new(0.5, -160, 0.5, -200) mainFrame.BackgroundColor3 = Color3.fromRGB(15, 15, 25) mainFrame.BackgroundTransparency = 0.08 mainFrame.BorderSizePixel = 0 mainFrame.ClipsDescendants = true mainFrame.Parent = screenGui local corners = Instance.new("UICorner") corners.CornerRadius = UDim.new(0, 12) corners.Parent = mainFrame -- Glow Effect local glow = Instance.new("ImageLabel") glow.Size = UDim2.new(1, 30, 1, 30) glow.Position = UDim2.new(0, -15, 0, -15) glow.Image = "rbxassetid://1316045117" glow.ImageColor3 = Color3.fromRGB(0, 150, 255) glow.ImageTransparency = 0.7 glow.BackgroundTransparency = 1 glow.ZIndex = 0 glow.Parent = mainFrame -- Title Bar local titleBar = Instance.new("Frame") titleBar.Size = UDim2.new(1, 0, 0, 38) titleBar.BackgroundColor3 = Color3.fromRGB(30, 30, 50) titleBar.BackgroundTransparency = 0.2 titleBar.BorderSizePixel = 0 titleBar.Parent = mainFrame local titleCorners = Instance.new("UICorner") titleCorners.CornerRadius = UDim.new(0, 12) titleCorners.Parent = titleBar -- Title Text local titleText = Instance.new("TextLabel") titleText.Size = UDim2.new(1, -60, 1, 0) titleText.Position = UDim2.new(0, 12, 0, 0) titleText.BackgroundTransparency = 1 titleText.Text = "⚔️ Strike Back Pro" titleText.TextColor3 = Color3.fromRGB(255, 200, 50) titleText.TextSize = 17 titleText.Font = Enum.Font.GothamSemibold titleText.TextXAlignment = Enum.TextXAlignment.Left titleText.Parent = titleBar -- Close Button local closeBtn = Instance.new("TextButton") closeBtn.Size = UDim2.new(0, 30, 0, 30) closeBtn.Position = UDim2.new(1, -35, 0, 4) closeBtn.BackgroundColor3 = Color3.fromRGB(200, 50, 50) closeBtn.BackgroundTransparency = 0.2 closeBtn.Text = "✕" closeBtn.TextColor3 = Color3.fromRGB(255, 255, 255) closeBtn.TextSize = 18 closeBtn.Font = Enum.Font.GothamBold closeBtn.BorderSizePixel = 0 closeBtn.Parent = titleBar local closeCorners = Instance.new("UICorner") closeCorners.CornerRadius = UDim.new(0, 6) closeCorners.Parent = closeBtn closeBtn.MouseButton1Click:Connect(function() screenGui:Destroy() end) -- Minimize Button local minimizeBtn = Instance.new("TextButton") minimizeBtn.Size = UDim2.new(0, 30, 0, 30) minimizeBtn.Position = UDim2.new(1, -70, 0, 4) minimizeBtn.BackgroundColor3 = Color3.fromRGB(50, 50, 70) minimizeBtn.BackgroundTransparency = 0.2 minimizeBtn.Text = "−" minimizeBtn.TextColor3 = Color3.fromRGB(255, 255, 255) minimizeBtn.TextSize = 18 minimizeBtn.Font = Enum.Font.GothamBold minimizeBtn.BorderSizePixel = 0 minimizeBtn.Parent = titleBar local minCorners = Instance.new("UICorner") minCorners.CornerRadius = UDim.new(0, 6) minCorners.Parent = minimizeBtn local minimized = false minimizeBtn.MouseButton1Click:Connect(function() minimized = not minimized contentFrame.Visible = not minimized minimizeBtn.Text = minimized and "+" or "−" mainFrame.Size = minimized and UDim2.new(0, 320, 0, 38) or UDim2.new(0, 320, 0, 400) end) -- Content Frame local contentFrame = Instance.new("Frame") contentFrame.Size = UDim2.new(1, 0, 1, -38) contentFrame.Position = UDim2.new(0, 0, 0, 38) contentFrame.BackgroundTransparency = 1 contentFrame.Parent = mainFrame -- Scrolling Frame local scrollingFrame = Instance.new("ScrollingFrame") scrollingFrame.Size = UDim2.new(1, -20, 1, -10) scrollingFrame.Position = UDim2.new(0, 10, 0, 5) scrollingFrame.BackgroundTransparency = 1 scrollingFrame.ScrollBarThickness = 4 scrollingFrame.ScrollBarImageColor3 = Color3.fromRGB(80, 80, 120) scrollingFrame.Parent = contentFrame local uiList = Instance.new("UIListLayout") uiList.SortOrder = Enum.SortOrder.LayoutOrder uiList.Padding = UDim.new(0, 8) uiList.Parent = scrollingFrame -- ========== GUI HELPERS ========== local function createToggle(parent, text, default, callback) local frame = Instance.new("Frame") frame.Size = UDim2.new(1, 0, 0, 34) frame.BackgroundColor3 = Color3.fromRGB(35, 35, 50) frame.BackgroundTransparency = 0.3 frame.BorderSizePixel = 0 frame.Parent = parent local frameCorners = Instance.new("UICorner") frameCorners.CornerRadius = UDim.new(0, 6) frameCorners.Parent = frame local label = Instance.new("TextLabel") label.Size = UDim2.new(0.7, 0, 1, 0) label.BackgroundTransparency = 1 label.Text = text label.TextColor3 = Color3.fromRGB(220, 220, 220) label.TextSize = 14 label.Font = Enum.Font.Gotham label.TextXAlignment = Enum.TextXAlignment.Left label.Parent = frame local toggleBtn = Instance.new("TextButton") toggleBtn.Size = UDim2.new(0, 42, 0, 22) toggleBtn.Position = UDim2.new(1, -46, 0.5, -11) toggleBtn.BackgroundColor3 = default and Color3.fromRGB(0, 200, 80) or Color3.fromRGB(80, 80, 80) toggleBtn.Text = "" toggleBtn.BorderSizePixel = 0 toggleBtn.Parent = frame local toggleCorners = Instance.new("UICorner") toggleCorners.CornerRadius = UDim.new(0, 11) toggleCorners.Parent = toggleBtn local state = default toggleBtn.MouseButton1Click:Connect(function() state = not state toggleBtn.BackgroundColor3 = state and Color3.fromRGB(0, 200, 80) or Color3.fromRGB(80, 80, 80) callback(state) end) end local function createSlider(parent, text, min, max, default, callback, suffix) local frame = Instance.new("Frame") frame.Size = UDim2.new(1, 0, 0, 48) frame.BackgroundColor3 = Color3.fromRGB(35, 35, 50) frame.BackgroundTransparency = 0.3 frame.BorderSizePixel = 0 frame.Parent = parent local frameCorners = Instance.new("UICorner") frameCorners.CornerRadius = UDim.new(0, 6) frameCorners.Parent = frame local label = Instance.new("TextLabel") label.Size = UDim2.new(0.6, 0, 0.4, 0) label.Position = UDim2.new(0, 6, 0, 0) label.BackgroundTransparency = 1 label.Text = text label.TextColor3 = Color3.fromRGB(220, 220, 220) label.TextSize = 13 label.Font = Enum.Font.Gotham label.TextXAlignment = Enum.TextXAlignment.Left label.Parent = frame local valueLabel = Instance.new("TextLabel") valueLabel.Size = UDim2.new(0.4, 0, 0.4, 0) valueLabel.Position = UDim2.new(0.6, 0, 0, 0) valueLabel.BackgroundTransparency = 1 valueLabel.Text = tostring(default) .. (suffix or "") valueLabel.TextColor3 = Color3.fromRGB(0, 200, 255) valueLabel.TextSize = 13 valueLabel.Font = Enum.Font.GothamBold valueLabel.TextXAlignment = Enum.TextXAlignment.Right valueLabel.Parent = frame local sliderBar = Instance.new("Frame") sliderBar.Size = UDim2.new(0.93, 0, 0.25, 0) sliderBar.Position = UDim2.new(0.035, 0, 0.55, 0) sliderBar.BackgroundColor3 = Color3.fromRGB(50, 50, 65) sliderBar.BorderSizePixel = 0 sliderBar.Parent = frame local sliderCorners = Instance.new("UICorner") sliderCorners.CornerRadius = UDim.new(0, 3) sliderCorners.Parent = sliderBar local fill = Instance.new("Frame") fill.Size = UDim2.new((default - min) / (max - min), 0, 1, 0) fill.BackgroundColor3 = Color3.fromRGB(0, 200, 255) fill.BorderSizePixel = 0 fill.Parent = sliderBar local fillCorners = Instance.new("UICorner") fillCorners.CornerRadius = UDim.new(0, 3) fillCorners.Parent = fill local value = default local function updateSlider(input) local pos = math.clamp((input.Position.X - sliderBar.AbsolutePosition.X) / sliderBar.AbsoluteSize.X, 0, 1) value = min + (max - min) * pos value = math.round(value * 10) / 10 fill.Size = UDim2.new(pos, 0, 1, 0) valueLabel.Text = tostring(value) .. (suffix or "") callback(value) end sliderBar.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then updateSlider(input) end end) sliderBar.InputChanged:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement then updateSlider(input) end end) end -- ========== BUILD UI ========== createToggle(scrollingFrame, "ESP", true, function(state) self.ESPEnabled = state end) createToggle(scrollingFrame, "Team Check", true, function(state) self.TeamCheck = state end) createToggle(scrollingFrame, "Visible Check", true, function(state) self.VisibleCheck = state end) createSlider(scrollingFrame, "ESP Distance", 50, 500, 300, function(value) self.ESPDistance = value end, "s") -- Status Label local statusFrame = Instance.new("Frame") statusFrame.Size = UDim2.new(1, 0, 0, 30) statusFrame.BackgroundColor3 = Color3.fromRGB(35, 35, 50) statusFrame.BackgroundTransparency = 0.3 statusFrame.BorderSizePixel = 0 statusFrame.Parent = scrollingFrame local statusCorners = Instance.new("UICorner") statusCorners.CornerRadius = UDim.new(0, 6) statusCorners.Parent = statusFrame local statusLabel = Instance.new("TextLabel") statusLabel.Size = UDim2.new(1, 0, 1, 0) statusLabel.BackgroundTransparency = 1 statusLabel.Text = "🟢 Aimbot: Active | ESP: On" statusLabel.TextColor3 = Color3.fromRGB(0, 255, 100) statusLabel.TextSize = 13 statusLabel.Font = Enum.Font.Gotham statusLabel.Parent = statusFrame -- Update status every second game:GetService("RunService").Stepped:Connect(function() statusLabel.Text = string.format( "🟢 Aimbot: Active | ESP: %s | Targets: %d", self.ESPEnabled and "On" or "Off", #self:getCharacters() ) end) -- Dragging local dragStart, startPos, dragging = nil, nil, false titleBar.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = true dragStart = input.Position startPos = mainFrame.Position end end) titleBar.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = false end end) self.UserInputService.InputChanged:Connect(function(input) if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then local delta = input.Position - dragStart mainFrame.Position = UDim2.new( startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y ) end end) end -- ========== INITIALIZATION ========== function utility:init() self.LocalPlayer = self.Players.LocalPlayer if not self.LocalPlayer then return warn("failed to get LocalPlayer") end if not hookfunction then self.LocalPlayer:Kick("Unsupported executor use a better executor like real/madium") end self.Camera = self:GetCamera() if not self.Camera then return warn("failed to get camera") end self.Character = self.Workspace:FindFirstChild("Character") if not self.Character then return warn("failed to find players folder") end -- ESP Distance self.ESPDistance = 300 self.TeamCheck = true self.VisibleCheck = true -- Create GUI self:CreateGUI() -- Update ESP loop self.ESPConnection = self.RunService.RenderStepped:Connect(function() self:UpdateESP() end) -- Target acquisition for aimbot self.GetTargetConn = self.RunService.RenderStepped:Connect(function() self.target = self:GetClosestPlayer() end) -- Weapons System Hook self.WeaponsSystem = self.ReplicatedStorage:FindFirstChild("WeaponsSystem") if not self.WeaponsSystem then return warn("failed to get WeaponsSystem") end self.WeaponTypes = self.WeaponsSystem:FindFirstChild("WeaponTypes") if not self.WeaponTypes then return warn("failed to get WeaponTypes") end self.BulletWeapon = self.WeaponTypes:FindFirstChild("BulletWeapon") if not self.BulletWeapon then return warn("failed to get BulletWeapon") end self.BulletWeapon = self.safeRequire(self.BulletWeapon) if not self.BulletWeapon then return warn("failed to require BulletWeapon") end self.OldFire = self.safeHookfunction(self.BulletWeapon.fire, function(p2, p3, p4) if self.target then p4 = self.ComputeeDirection(p3, self.target.Position).Unit end return self.OldFire(p2,p3,p4) end) print("⚔️ Strike Back Pro loaded successfully!") print("ESP and Silent Aim are active") return warn("success") end utility:init()