-- [[ 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 ]] --[[ SNIPER DUELS | Delta Executor (Mobile/PC) Features: Discord Verification + Silent Aim + ESP (Team Green, Enemy Red) Made for Delta on Roblox mobile. ]] local Players = game:GetService("Players") local RunService = game:GetService("RunService") local HttpService = game:GetService("HttpService") local LocalPlayer = Players.LocalPlayer -- ===== DISCORD VERIFICATION ===== local DISCORD_INVITE = "https://discord.gg/6DB396XR4" -- This is a public "discord member check" API that verifies a user is in a server. -- Replace with your own backend endpoint for full reliability. local VERIFY_API = "https://discord-verification.vercel.app/api/verify?serverId=6DB396XR4" local verified = false local function checkDiscord(userId) local success, result = pcall(function() local url = VERIFY_API .. "&userId=" .. userId local resp = HttpService:GetAsync(url) local data = HttpService:JSONDecode(resp) return data and data.member == true end) return success and result == true end -- ===== VERIFICATION GUI ===== local function showVerifyGUI() local gui = Instance.new("ScreenGui") gui.Name = "VerifyGUI" gui.ResetOnSpawn = false gui.IgnoreGuiInset = true gui.Parent = LocalPlayer:WaitForChild("PlayerGui") local frame = Instance.new("Frame") frame.Size = UDim2.new(0, 350, 0, 200) frame.Position = UDim2.new(0.5, -175, 0.5, -100) frame.BackgroundColor3 = Color3.fromRGB(30, 30, 35) frame.BorderSizePixel = 0 frame.Parent = gui local title = Instance.new("TextLabel") title.Size = UDim2.new(1, 0, 0, 40) title.Position = UDim2.new(0, 0, 0, 0) title.BackgroundTransparency = 1 title.Text = "DISCORD VERIFICATION REQUIRED" title.TextScaled = true title.Font = Enum.Font.GothamBold title.TextColor3 = Color3.fromRGB(88, 101, 242) title.Parent = frame local desc = Instance.new("TextLabel") desc.Size = UDim2.new(1, -20, 0, 50) desc.Position = UDim2.new(0, 10, 0, 45) desc.BackgroundTransparency = 1 desc.Text = "Join the Discord server to unlock the script. Then click Verify." desc.TextWrapped = true desc.TextScaled = true desc.Font = Enum.Font.Gotham desc.TextColor3 = Color3.new(1, 1, 1) desc.Parent = frame local joinBtn = Instance.new("TextButton") joinBtn.Size = UDim2.new(1, -40, 0, 40) joinBtn.Position = UDim2.new(0, 20, 0, 100) joinBtn.BackgroundColor3 = Color3.fromRGB(88, 101, 242) joinBtn.Text = "JOIN DISCORD" joinBtn.TextScaled = true joinBtn.Font = Enum.Font.GothamBold joinBtn.TextColor3 = Color3.new(1, 1, 1) joinBtn.Parent = frame joinBtn.MouseButton1Click:Connect(function() setclipboard(DISCORD_INVITE) -- Try to open discord link (may not work on all mobile executors) pcall(function() syn and syn.request and syn.request({Url = DISCORD_INVITE, Method = "GET"}) end) joinBtn.Text = "COPIED! Now verify below" end) local verifyBtn = Instance.new("TextButton") verifyBtn.Size = UDim2.new(1, -40, 0, 40) verifyBtn.Position = UDim2.new(0, 20, 0, 150) verifyBtn.BackgroundColor3 = Color3.fromRGB(46, 204, 113) verifyBtn.Text = "VERIFY" verifyBtn.TextScaled = true verifyBtn.Font = Enum.Font.GothamBold verifyBtn.TextColor3 = Color3.new(1, 1, 1) verifyBtn.Parent = frame verifyBtn.MouseButton1Click:Connect(function() verifyBtn.Text = "Checking..." local ok = checkDiscord(LocalPlayer.UserId) if ok then verified = true gui:Destroy() print("Verification passed. Script unlocked.") startScript() else verifyBtn.Text = "NOT IN SERVER - RETRY" verifyBtn.BackgroundColor3 = Color3.fromRGB(231, 76, 60) end end) end -- ===== MAIN SCRIPT (runs after verification) ===== function startScript() local Camera = workspace.CurrentCamera local UserInputService = game:GetService("UserInputService") local Settings = { SilentAim = true, ESP = true, FOV = 90, MaxDistance = 300, TeamCheck = true, WallCheck = true, KillCheck = true, HitPart = "Head", ShowFOV = true, FOVColor = Color3.fromRGB(255, 255, 255), ESPColorTeam = Color3.fromRGB(0, 255, 0), ESPColorEnemy = Color3.fromRGB(255, 0, 0), } local function getTeam(p) local team = p and p.Team if team then return team end local char = p and p.Character local tc = char and char:FindFirstChild("TeamColor") if tc then return tc.Value end return nil end local function isAlive(p) local char = p and p.Character if not char then return false end local hum = char:FindFirstChildOfClass("Humanoid") return hum and hum.Health > 0 and hum.Health <= hum.MaxHealth end local function getHitPart(p) local char = p and p.Character if not char then return nil end local part = char:FindFirstChild(Settings.HitPart) if part then return part end return char:FindFirstChild("HumanoidRootPart") or char:FindFirstChild("Torso") or char:FindFirstChild("Head") end local function getTarget() local best, bestAngle, bestDist = nil, Settings.FOV, math.huge for _, p in ipairs(Players:GetPlayers()) do if p ~= LocalPlayer then if Settings.TeamCheck and getTeam(p) == getTeam(LocalPlayer) then continue end if Settings.KillCheck and not isAlive(p) then continue end local part = getHitPart(p) if not part then continue end local pos = part.Position local dist = (pos - Camera.CFrame.Position).Magnitude if dist > Settings.MaxDistance then continue end if Settings.WallCheck then local ray = Ray.new(Camera.CFrame.Position, (pos - Camera.CFrame.Position).Unit * dist) local hit = workspace:FindPartOnRayWithIgnoreList(ray, {LocalPlayer.Character, Camera}) if hit and hit:IsDescendantOf(p.Character) == false then continue end end local screenPos, onScreen = Camera:WorldToScreenPoint(pos) if not onScreen then continue end local center = Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y / 2) local angle = (Vector2.new(screenPos.X, screenPos.Y) - center).Magnitude if angle <= bestAngle then bestAngle = angle best = part bestDist = dist end end end return best end local oldFindPart oldFindPart = hookfunction(workspace.FindPartOnRay, newcclosure(function(self, ray, ignore, ...) if Settings.SilentAim then local target = getTarget() if target then local origin = ray.Origin local dir = (target.Position - origin).Unit * 500 ray = Ray.new(origin, dir) end end return oldFindPart(self, ray, ignore, ...) end)) local oldRaycast oldRaycast = hookfunction(workspace.Raycast, newcclosure(function(self, origin, direction, params, ...) if Settings.SilentAim then local target = getTarget() if target then local dir = (target.Position - origin).Unit * 500 return oldRaycast(self, origin, dir, params, ...) end end return oldRaycast(self, origin, direction, params, ...) end)) local ESPObjects = {} local function createESP(p) if ESPObjects[p] then return end local char = p.Character if not char then return end local hrp = char:FindFirstChild("HumanoidRootPart") or char:FindFirstChild("Torso") if not hrp then return end local billboard = Instance.new("BillboardGui") billboard.Adornee = hrp billboard.Size = UDim2.new(0, 100, 0, 30) billboard.StudsOffset = Vector3.new(0, 3, 0) billboard.AlwaysOnTop = true local label = Instance.new("TextLabel") label.Size = UDim2.new(1, 0, 1, 0) label.BackgroundTransparency = 1 label.Text = p.Name label.TextScaled = true label.Font = Enum.Font.GothamBold label.Parent = billboard local box = Instance.new("BoxHandleAdornment") box.Adornee = hrp box.Size = hrp.Size * 1.5 box.AlwaysOnTop = true box.Transparency = 0.5 billboard.Parent = char box.Parent = char ESPObjects[p] = {billboard = billboard, box = box, label = label} local function update() if not ESPObjects[p] then return end local isTeam = getTeam(p) == getTeam(LocalPlayer) local color = isTeam and Settings.ESPColorTeam or Settings.ESPColorEnemy ESPObjects[p].label.TextColor3 = color ESPObjects[p].box.Color3 = color end update() ESPObjects[p].update = update end local function removeESP(p) local obj = ESPObjects[p] if obj then if obj.billboard then obj.billboard:Destroy() end if obj.box then obj.box:Destroy() end ESPObjects[p] = nil end end local fovRing if Settings.ShowFOV then local gui = Instance.new("ScreenGui") gui.Name = "AimFOV" gui.IgnoreGuiInset = true gui.Parent = LocalPlayer:WaitForChild("PlayerGui") fovRing = Instance.new("Frame") fovRing.Size = UDim2.new(0, Settings.FOV * 2, 0, Settings.FOV * 2) fovRing.Position = UDim2.new(0.5, -Settings.FOV, 0.5, -Settings.FOV) fovRing.BackgroundTransparency = 1 fovRing.BorderSizePixel = 2 fovRing.BorderColor3 = Settings.FOVColor fovRing.Parent = gui end Players.PlayerAdded:Connect(function(p) p.CharacterAdded:Connect(function() createESP(p) end) if p.Character then createESP(p) end end) Players.PlayerRemoving:Connect(removeESP) for _, p in ipairs(Players:GetPlayers()) do if p ~= LocalPlayer then p.CharacterAdded:Connect(function() createESP(p) end) if p.Character then createESP(p) end end end RunService.RenderStepped:Connect(function() for p, obj in pairs(ESPObjects) do if obj.update then obj.update() end end end) -- ===== TOGGLE GUI ===== local gui2 = Instance.new("ScreenGui") gui2.Name = "Toggles" gui2.IgnoreGuiInset = true gui2.Parent = LocalPlayer:WaitForChild("PlayerGui") local function makeButton(text, posY, callback) local btn = Instance.new("TextButton") btn.Size = UDim2.new(0, 140, 0, 40) btn.Position = UDim2.new(0, 10, 0, posY) btn.BackgroundColor3 = Color3.fromRGB(40, 40, 40) btn.TextColor3 = Color3.new(1, 1, 1) btn.Text = text .. ": ON" btn.Parent = gui2 btn.MouseButton1Click:Connect(function() callback() btn.Text = text .. ": " .. (callback() and "ON" or "OFF") end) return btn end makeButton("Silent Aim", 10, function() Settings.SilentAim = not Settings.SilentAim return Settings.SilentAim end) makeButton("ESP", 60, function() Settings.ESP = not Settings.ESP for p, obj in pairs(ESPObjects) do if obj.billboard then obj.billboard.Enabled = Settings.ESP end if obj.box then obj.box.Visible = Settings.ESP end end return Settings.ESP end) print("SNIPER DUELS | Delta script loaded (verified).") end -- ===== START ===== showVerifyGUI()