-- [[ 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=6a93a507d8beafc771722214"))() end) end) --[[rscripts:analytics:end]] local Rayfield = loadstring(game:HttpGet("https://sirius.menu/gen2"))() local Window = Rayfield:CreateWindow({ Name = "BloxStrike", Subtitle = "By luhscripter", }) local Players = game:GetService("Players") local LocalPlayer = Players.LocalPlayer getgenv().ParsaIntegratedSettings = { SilentEnabled = false, WallCheck = false, Wallbang = false, HitPart = "Head", ShowFov = false, FOVRadius = 130, FOVColor = Color3.fromRGB(255, 0, 0), ESP = false, ESPBoxes = false, ESPSkeletons = false, ESPNames = false, ESPHealth = false, ESPDistance = false, ESPMaxDistance = 2500, BoxColor = Color3.fromRGB(0, 186, 186), OutlineColor = Color3.fromRGB(15, 15, 15), NameColor = Color3.fromRGB(255, 255, 255), DistanceColor = Color3.fromRGB(179, 179, 179) } getgenv().ParsaTeamColors = { ["Terrorists"] = Color3.fromRGB(204, 170, 80), ["Counter-Terrorists"] = Color3.fromRGB(100, 149, 200) } getgenv().ParsaSilentTarget = nil local Settings = getgenv().ParsaIntegratedSettings local function get_player_team(player) if not player then return nil end local ok, teamName = pcall(function() return player.Team and player.Team.Name or nil end) if ok and (teamName == "Terrorists" or teamName == "Counter-Terrorists") then return teamName end local character = player.Character if character then local attr = character:GetAttribute("Team") if attr == "Terrorists" or attr == "Counter-Terrorists" then return attr end local parentName = character.Parent and character.Parent.Name if parentName == "Terrorists" or parentName == "Counter-Terrorists" then return parentName end end return nil end getgenv().ParsaGetTeam = get_player_team local CombatTab = Window:CreateTab({ Name = "Main", Icon = 10734950309 }) local VisualsTab = Window:CreateTab({ Name = "Visuals", Icon = 10723345474 }) CombatTab:CreateToggle({ Name = "Silent Aim", CurrentValue = Settings.SilentEnabled, Callback = function(Value) Settings.SilentEnabled = Value end, }) CombatTab:CreateToggle({ Name = "Wallbang", CurrentValue = Settings.Wallbang, Callback = function(Value) Settings.Wallbang = Value end, }) CombatTab:CreateDropdown({ Name = "Target Hitpart", Options = {"Head", "UpperTorso", "LowerTorso"}, CurrentOption = {Settings.HitPart}, MultipleOptions = false, Callback = function(Options) Settings.HitPart = Options end, }) CombatTab:CreateToggle({ Name = "Show Fov", CurrentValue = Settings.UseFOV, Callback = function(Value) Settings.UseFOV = Value end, }) CombatTab:CreateSlider({ Name = "FOV Radius", Range = {10, 500}, Increment = 5, Suffix = "px", CurrentValue = Settings.FOVRadius, Callback = function(Value) Settings.FOVRadius = Value end, }) VisualsTab:CreateToggle({ Name = "ESP", CurrentValue = Settings.ESPEnabled, Callback = function(Value) Settings.ESPEnabled = Value end, }) VisualsTab:CreateToggle({ Name = "Draw Boxes", CurrentValue = Settings.ESPBoxes, Callback = function(Value) Settings.ESPBoxes = Value end, }) VisualsTab:CreateToggle({ Name = "Draw Skeletons", CurrentValue = Settings.ESPSkeletons, Callback = function(Value) Settings.ESPSkeletons = Value end, }) VisualsTab:CreateToggle({ Name = "Display Names", CurrentValue = Settings.ESPNames, Callback = function(Value) Settings.ESPNames = Value end, }) VisualsTab:CreateToggle({ Name = "Display Health", CurrentValue = Settings.ESPHealth, Callback = function(Value) Settings.ESPHealth = Value end, }) VisualsTab:CreateToggle({ Name = "Display Distance", CurrentValue = Settings.ESPDistance, Callback = function(Value) Settings.ESPDistance = Value end, }) VisualsTab:CreateSlider({ Name = "Max Render Distance", Range = {100, 5000}, Increment = 100, Suffix = "m", CurrentValue = Settings.ESPMaxDistance, Callback = function(Value) Settings.ESPMaxDistance = Value end, }) local Players = game:GetService("Players") local LocalPlayer = Players.LocalPlayer local Workspace = game:GetService("Workspace") local RunService = game:GetService("RunService") local Settings = getgenv().ParsaIntegratedSettings local GAME_TEAM_COLORS = getgenv().ParsaTeamColors local get_player_team = getgenv().ParsaGetTeam if not Settings or not get_player_team then end local Camera = Workspace.CurrentCamera getgenv().ParsaEspInstances = getgenv().ParsaEspInstances or {} local espInstances = getgenv().ParsaEspInstances local BONE_MAP_R15 = { {"Head", "UpperTorso"}, {"UpperTorso", "LowerTorso"}, {"UpperTorso", "LeftUpperArm"}, {"LeftUpperArm", "LeftLowerArm"}, {"LeftLowerArm", "LeftHand"}, {"UpperTorso", "RightUpperArm"}, {"RightUpperArm", "RightLowerArm"}, {"RightLowerArm", "RightHand"}, {"LowerTorso", "LeftUpperLeg"}, {"LeftUpperLeg", "LeftLowerLeg"}, {"LeftLowerLeg", "LeftFoot"}, {"LowerTorso", "RightUpperLeg"}, {"RightUpperLeg", "RightLowerLeg"}, {"RightLowerLeg", "RightFoot"} } local BONE_MAP_R6 = { {"Head", "Torso"}, {"Torso", "Left Arm"}, {"Torso", "Right Arm"}, {"Torso", "Left Leg"}, {"Torso", "Right Leg"} } local function createESP(player) if espInstances[player] then return end local objects = { BoxOutline = Drawing.new("Square"), Box = Drawing.new("Square"), Name = Drawing.new("Text"), Distance = Drawing.new("Text"), HealthOutline = Drawing.new("Square"), Health = Drawing.new("Square"), Bones = {} } objects.BoxOutline.Thickness = 2 objects.BoxOutline.Filled = false objects.BoxOutline.Transparency = 0.5 objects.BoxOutline.Color = Settings.OutlineColor objects.Box.Thickness = 1 objects.Box.Filled = false objects.Box.Transparency = 1 objects.Name.Center = true objects.Name.Outline = true objects.Name.Font = 1 objects.Name.Size = 13 objects.Name.Color = Settings.NameColor objects.Distance.Center = true objects.Distance.Outline = true objects.Distance.Font = 1 objects.Distance.Size = 12 objects.Distance.Color = Settings.DistanceColor objects.HealthOutline.Thickness = 1 objects.HealthOutline.Filled = true objects.HealthOutline.Transparency = 0.5 objects.HealthOutline.Color = Settings.OutlineColor objects.Health.Filled = true objects.Health.Transparency = 1 for i = 1, 15 do local boneLine = Drawing.new("Line") boneLine.Thickness = 1 boneLine.Transparency = 1 boneLine.Visible = false table.insert(objects.Bones, boneLine) end espInstances[player] = objects end local function removeESP(player) local objects = espInstances[player] if objects then for _, obj in pairs(objects) do if type(obj) == "table" then for _, bone in pairs(obj) do bone:Remove() end else obj:Remove() end end espInstances[player] = nil end end getgenv().ParsaRemoveEsp = removeESP RunService.RenderStepped:Connect(function() Camera = Workspace.CurrentCamera if not Camera then return end local myTeam = get_player_team(LocalPlayer) local camPos = Camera.CFrame.Position for _, player in next, Players:GetPlayers() do local objects = espInstances[player] if player == LocalPlayer then if objects then removeESP(player) end continue end local char = player.Character local humanoid = char and char:FindFirstChildOfClass("Humanoid") local rootPart = char and (char:FindFirstChild("HumanoidRootPart") or char:FindFirstChild("UpperTorso") or char.PrimaryPart) local isDead = char and (char:GetAttribute("Dead") == true or (humanoid and humanoid.Health <= 0)) local playerTeam = get_player_team(player) local isTeam = myTeam ~= nil and playerTeam == myTeam local allowed = Settings.ESPEnabled and char and rootPart and not isDead if allowed and Settings.TeamCheck and isTeam then allowed = false end if allowed and (camPos - rootPart.Position).Magnitude > Settings.ESPMaxDistance then allowed = false end if not allowed then if objects then for _, obj in pairs(objects) do if type(obj) ~= "table" then obj.Visible = false end end for _, bone in pairs(objects and objects.Bones or {}) do bone.Visible = false end end continue end if not objects then createESP(player) objects = espInstances[player] end local targetColor = Settings.BoxColor if playerTeam and GAME_TEAM_COLORS[playerTeam] then targetColor = GAME_TEAM_COLORS[playerTeam] end local rootPos, onScreen = Camera:WorldToViewportPoint(rootPart.Position) if onScreen then local head = char:FindFirstChild("Head") local headPos = head and Camera:WorldToViewportPoint(head.Position) or Camera:WorldToViewportPoint(rootPart.Position + Vector3.new(0, 2, 0)) local legPos = Camera:WorldToViewportPoint(rootPart.Position - Vector3.new(0, 3, 0)) local height = math.abs(headPos.Y - legPos.Y) local width = height / 1.6 local boxX = rootPos.X - (width / 2) local boxY = headPos.Y objects.Box.Visible = Settings.ESPBoxes objects.BoxOutline.Visible = Settings.ESPBoxes if Settings.ESPBoxes then local size = Vector2.new(width, height) local pos = Vector2.new(boxX, boxY) objects.Box.Size = size objects.Box.Position = pos objects.Box.Color = targetColor objects.BoxOutline.Size = size objects.BoxOutline.Position = pos end local isR15 = char:FindFirstChild("UpperTorso") ~= nil local activeBoneMap = isR15 and BONE_MAP_R15 or BONE_MAP_R6 for i, boneLine in ipairs(objects.Bones) do local connection = activeBoneMap[i] if Settings.ESPSkeletons and connection then local partA = char:FindFirstChild(connection[1]) local partB = char:FindFirstChild(connection[2]) if partA and partB then local posA, visA = Camera:WorldToViewportPoint(partA.Position) local posB, visB = Camera:WorldToViewportPoint(partB.Position) if visA and visB then boneLine.From = Vector2.new(posA.X, posA.Y) boneLine.To = Vector2.new(posB.X, posB.Y) boneLine.Color = targetColor boneLine.Visible = true else boneLine.Visible = false end else boneLine.Visible = false end else boneLine.Visible = false end end if Settings.ESPNames then objects.Name.Text = player.Name objects.Name.Position = Vector2.new(rootPos.X, boxY - 15) objects.Name.Visible = true else objects.Name.Visible = false end if Settings.ESPDistance then local distance = math.floor((camPos - rootPart.Position).Magnitude) objects.Distance.Text = tostring(distance) .. "m" objects.Distance.Position = Vector2.new(rootPos.X, boxY + height + 2) objects.Distance.Visible = true else objects.Distance.Visible = false end if Settings.ESPHealth and humanoid then local barPadding, barWidth = 4, 2 local barX = boxX - barPadding - barWidth local healthPercentage = math.clamp(humanoid.Health / humanoid.MaxHealth, 0, 1) local healthHeight = height * healthPercentage objects.Health.Color = Color3.fromHex("#32CD32"):Lerp(Color3.fromHex("#FF0000"), 1 - healthPercentage) objects.HealthOutline.Position = Vector2.new(barX - 1, boxY - 1) objects.HealthOutline.Size = Vector2.new(barWidth + 2, height + 2) objects.Health.Position = Vector2.new(barX, boxY + (height - healthHeight)) objects.Health.Size = Vector2.new(barWidth, healthHeight) objects.Health.Visible = true objects.HealthOutline.Visible = true else objects.Health.Visible = false objects.HealthOutline.Visible = false end else for _, obj in pairs(objects) do if type(obj) ~= "table" then obj.Visible = false end end for _, bone in pairs(objects.Bones) do bone.Visible = false end end end end) Players.PlayerRemoving:Connect(removeESP) local Players = game:GetService("Players") local LocalPlayer = Players.LocalPlayer local Workspace = game:GetService("Workspace") local RunService = game:GetService("RunService") local Settings = getgenv().ParsaIntegratedSettings local get_player_team = getgenv().ParsaGetTeam if not Settings or not get_player_team then end local Camera = Workspace.CurrentCamera local FOVCircle = Drawing.new("Circle") FOVCircle.Filled = false FOVCircle.Thickness = 1 FOVCircle.NumSides = 64 FOVCircle.Color = Settings.FOVColor local rayParams = RaycastParams.new() rayParams.FilterType = Enum.RaycastFilterType.Exclude rayParams.IgnoreWater = true local function isVisible(target) if Settings.Wallbang then return true end if not target or not target.Parent or not Camera then return false end rayParams.FilterDescendantsInstances = LocalPlayer.Character and { LocalPlayer.Character } or {} local origin = Camera.CFrame.Position local result = Workspace:Raycast(origin, target.Position - origin, rayParams) if not result then return true end local model = result.Instance and result.Instance:FindFirstAncestorOfClass("Model") return model and Players:GetPlayerFromCharacter(model) ~= nil end local function FindSilentTarget() if not Settings.SilentEnabled or not Camera or not LocalPlayer.Character then getgenv().ParsaSilentTarget = nil return end local myTeam = get_player_team(LocalPlayer) local screenCenter = Camera.ViewportSize / 2 local closestDist = math.huge local closestPart = nil for _, player in next, Players:GetPlayers() do if player == LocalPlayer then continue end local char = player.Character if not char or char:GetAttribute("Dead") or char:GetAttribute("Invincible") then continue end if char.Parent and char.Parent.Name == "Debris" then continue end local pTeam = get_player_team(player) local isTeam = myTeam ~= nil and pTeam ~= nil and myTeam == pTeam if Settings.TeamCheck and isTeam then continue end local targetPart = char:FindFirstChild(Settings.HitPart) or char:FindFirstChild("Head") or char.PrimaryPart if not targetPart then continue end local screenPos, onScreen = Camera:WorldToViewportPoint(targetPart.Position) if onScreen then local distFromCenter = (Vector2.new(screenPos.X, screenPos.Y) - screenCenter).Magnitude local maxRadius = Settings.UseFOV and Settings.FOVRadius or math.huge if distFromCenter <= maxRadius and distFromCenter < closestDist then if Settings.Wallbang or isVisible(targetPart) then closestDist = distFromCenter closestPart = targetPart end end end end getgenv().ParsaSilentTarget = closestPart end RunService.RenderStepped:Connect(function() Camera = Workspace.CurrentCamera if not Camera then FOVCircle.Visible = false return end FOVCircle.Visible = Settings.UseFOV if FOVCircle.Visible then FOVCircle.Position = Camera.ViewportSize / 2 FOVCircle.Radius = Settings.FOVRadius FOVCircle.Color = Settings.FOVColor end FindSilentTarget() end) task.spawn(function() if typeof(hookfunction) ~= "function" or typeof(getgc) ~= "function" then return end local bulletClass = nil for attempt = 1, 45 do for _, obj in next, getgc(true) do if type(obj) == "table" and typeof(rawget(obj, "_performRaycast")) == "function" and rawget(obj, "getTrueSpread") ~= nil then bulletClass = obj break end end if bulletClass then break end task.wait(0.5) end if bulletClass then local oldRaycast oldRaycast = hookfunction(bulletClass._performRaycast, function(...) local returns = table.pack(oldRaycast(...)) local result = returns[1] local SilentTarget = getgenv().ParsaSilentTarget if Settings.SilentEnabled and SilentTarget and type(result) == "table" then pcall(function() local hits = rawget(result, "Hits") if type(hits) ~= "table" or not SilentTarget.Parent then return end local aimPos = SilentTarget.Position local lastIndex = nil for index, hit in pairs(hits) do if type(hit) == "table" then if lastIndex == nil or index > lastIndex then lastIndex = index end end end local finalHit = lastIndex and hits[lastIndex] if type(finalHit) ~= "table" then return end finalHit.Instance = SilentTarget finalHit.Position = aimPos if finalHit.Exit ~= nil then finalHit.Exit = false end local origin = rawget(result, "Origin") if typeof(origin) == "Vector3" then local delta = aimPos - origin local length = delta.Magnitude if length > 0.001 then result.Distance = length result.Direction = delta.Unit local unit = delta.Unit for index, hit in pairs(hits) do if index ~= lastIndex and type(hit) == "table" and typeof(hit.Position) == "Vector3" then local along = (hit.Position - origin):Dot(unit) if along > length then hit.Position = origin + unit * (length * 0.5) end end end end end end) end return table.unpack(returns, 1, returns.n) end) else end end)