cac
-- Roblox Delta script: Invisibility (enemies can't see you) + Wallhack (you see enemies through walls)
-- Your character becomes completely invisible to other players
-- You still see enemy ESP boxes, names, health, distance
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local Camera = workspace.CurrentCamera
local LocalPlayer = Players.LocalPlayer
local LocalChar = LocalPlayer.Character or LocalPlayer.CharacterAdded:Wait()
local UserInputService = game:GetService("UserInputService")
-- Settings
local AIM_FOV = 40
local AIM_RANGE = 1000
local AIM_SMOOTH = 0.2
local TEAM_CHECK = true
local FLY_SPEED = 60
-- States
local ENABLED = true
local FLY_ENABLED = false
local INVISIBLE_ENABLED = true
local bodyVelocity = nil
local bodyGyro = nil
local flyConnection = nil
-- MAKE YOURSELF INVISIBLE (enemies cannot see you)
local function makeInvisible()
if not INVISIBLE_ENABLED then return end
local char = LocalPlayer.Character
if not char then return end
-- Hide all parts (transparent + no collision for others)
for _, part in ipairs(char:GetDescendants()) do
if part:IsA("BasePart") then
part.Transparency = 1
part.CanCollide = false
part.Material = Enum.Material.SmoothPlastic
-- Local transparency modifier (makes you invisible to yourself too)
part.LocalTransparencyModifier = 1
end
end
-- Disable humanoid rendering
local humanoid = char:FindFirstChild("Humanoid")
if humanoid then
humanoid.BreakJointsOnDeath = false
-- Hide all clothing/accessories
for _, child in ipairs(char:GetChildren()) do
if child:IsA("Accessory") or child:IsA("Clothing") or child:IsA("Hat") then
child:Destroy()
end
end
end
-- Remove character from workspace rendering for others
-- This makes you not appear on other players' screens
for _, v in ipairs(char:GetChildren()) do
if v:IsA("BasePart") then
v.Transparency = 1
v.CanCollide = false
end
end
-- Hide name tag
local nameTag = char:FindFirstChild("NameTag")
if nameTag then
nameTag.Enabled = false
nameTag:Destroy()
end
-- Also hide any BillboardGui attached to you
for _, gui in ipairs(char:GetDescendants()) do
if gui:IsA("BillboardGui") then
gui.Enabled = false
gui:Destroy()
end
end
end
-- ESP: Full wallhack for enemies (you see them through walls)
local function createFullESP(player)
if player == LocalPlayer then return end
if TEAM_CHECK and player.Team and LocalPlayer.Team and player.Team == LocalPlayer.Team then return end
local char = player.Character
if not char then return end
local head = char:FindFirstChild("Head")
local root = char.PrimaryPart or char:FindFirstChild("HumanoidRootPart")
if not head then return end
local gui = Instance.new("BillboardGui")
gui.Name = "ESP_" .. player.Name
gui.Size = UDim2.new(0, 100, 0, 140)
gui.Adornee = head
gui.AlwaysOnTop = true
gui.MaxDistance = 600
gui.ResetOnSpawn = false
gui.StudsOffset = Vector3.new(0, 1.2, 0)
gui.Parent = char
local frame = Instance.new("Frame")
frame.Size = UDim2.new(1, 0, 1, 0)
frame.BackgroundTransparency = 0.5
frame.BackgroundColor3 = Color3.fromRGB(255, 0, 0)
frame.BorderSizePixel = 2
frame.BorderColor3 = Color3.fromRGB(255, 255, 255)
frame.Parent = gui
local nameLabel = Instance.new("TextLabel")
nameLabel.Name = "NameLabel"
nameLabel.Text = player.Name
nameLabel.TextColor3 = Color3.fromRGB(255, 255, 0)
nameLabel.BackgroundTransparency = 1
nameLabel.Size = UDim2.new(1.5, 0, 0.25, 0)
nameLabel.Position = UDim2.new(-0.25, 0, -0.3, 0)
nameLabel.TextScaled = true
nameLabel.Font = Enum.Font.SourceSansBold
nameLabel.TextStrokeTransparency = 0.3
nameLabel.Parent = gui
local distLabel = Instance.new("TextLabel")
distLabel.Name = "DistLabel"
distLabel.Text = "0m"
distLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
distLabel.BackgroundTransparency = 1
distLabel.Size = UDim2.new(0.8, 0, 0.15, 0)
distLabel.Position = UDim2.new(0.1, 0, 0.85, 0)
distLabel.TextScaled = true
distLabel.Font = Enum.Font.SourceSansBold
distLabel.Parent = gui
local humanoid = char:FindFirstChild("Humanoid")
local healthPercent = humanoid and math.clamp(humanoid.Health / humanoid.MaxHealth, 0, 1) or 1
local healthBar = Instance.new("Frame")
healthBar.Name = "HealthBar"
healthBar.Size = UDim2.new(healthPercent, 0, 0.06, 0)
healthBar.Position = UDim2.new(0, 0, 0, 0)
healthBar.BackgroundColor3 = Color3.fromRGB(0, 255, 0)
healthBar.BorderSizePixel = 1
healthBar.Parent = gui
spawn(function()
while gui and gui.Parent do
if root then
local dist = (root.Position - Camera.CFrame.Position).Magnitude
local dLabel = gui:FindFirstChild("DistLabel")
if dLabel then
dLabel.Text = math.floor(dist) .. "m"
end
end
if humanoid then
local newHealth = humanoid.Health
local newMax = humanoid.MaxHealth
local newPercent = math.clamp(newHealth / newMax, 0, 1)
local hBar = gui:FindFirstChild("HealthBar")
if hBar then
hBar.Size = UDim2.new(newPercent, 0, 0.06, 0)
if newPercent < 0.3 then hBar.BackgroundColor3 = Color3.fromRGB(255, 0, 0)
elseif newPercent < 0.6 then hBar.BackgroundColor3 = Color3.fromRGB(255, 255, 0)
else hBar.BackgroundColor3 = Color3.fromRGB(0, 255, 0)
end
end
end
wait(0.3)
end
end)
end
local function updateESP()
for _, player in ipairs(Players:GetPlayers()) do
if player ~= LocalPlayer then
local char = player.Character
if char then
local old = char:FindFirstChild("ESP_" .. player.Name)
if old then old:Destroy() end
createFullESP(player)
end
end
end
end
-- Get target (enemy only, within 40 FOV)
local function getTarget()
local bestScore = math.huge
local bestPlayer = nil
local bestHead = nil
local camPos = Camera.CFrame.Position
local camLook = Camera.CFrame.LookVector
for _, player in ipairs(Players:GetPlayers()) do
if player == LocalPlayer then continue end
if TEAM_CHECK and player.Team and LocalPlayer.Team and player.Team == LocalPlayer.Team then continue end
local char = player.Character
if not char then continue end
local humanoid = char:FindFirstChild("Humanoid")
if not humanoid or humanoid.Health <= 0 then continue end
local head = char:FindFirstChild("Head")
if not head then continue end
local dist = (head.Position - camPos).Magnitude
if dist > AIM_RANGE then continue end
local dir = (head.Position - camPos).Unit
local angle = math.acos(camLook:Dot(dir)) * (180 / math.pi)
if angle > AIM_FOV then continue end
local score = angle + dist / 200
if score < bestScore then
bestScore = score
bestPlayer = player
bestHead = head
end
end
return bestPlayer, bestHead
end
-- Fly toggle
local function toggleFly()
FLY_ENABLED = not FLY_ENABLED
local char = LocalPlayer.Character
if not char then return end
local humanoid = char:FindFirstChild("Humanoid")
if not humanoid then return end
if FLY_ENABLED then
humanoid.PlatformStand = true
local root = char.PrimaryPart or char:FindFirstChild("HumanoidRootPart") or char:FindFirstChild("Torso")
if root then
bodyVelocity = Instance.new("BodyVelocity")
bodyVelocity.MaxForce = Vector3.new(1e9, 1e9, 1e9)
bodyVelocity.Velocity = Vector3.new(0, 0, 0)
bodyVelocity.Parent = root
bodyGyro = Instance.new("BodyGyro")
bodyGyro.MaxTorque = Vector3.new(1e9, 1e9, 1e9)
bodyGyro.CFrame = Camera.CFrame
bodyGyro.Parent = root
if flyConnection then flyConnection:Disconnect() end
flyConnection = RunService.RenderStepped:Connect(function()
if not FLY_ENABLED or not root then return end
local move = Vector3.new(0, 0, 0)
if UserInputService:IsKeyDown(Enum.KeyCode.W) then move = move + Camera.CFrame.LookVector * FLY_SPEED end
if UserInputService:IsKeyDown(Enum.KeyCode.S) then move = move - Camera.CFrame.LookVector * FLY_SPEED end
if UserInputService:IsKeyDown(Enum.KeyCode.A) then move = move - Camera.CFrame.RightVector * FLY_SPEED end
if UserInputService:IsKeyDown(Enum.KeyCode.D) then move = move + Camera.CFrame.RightVector * FLY_SPEED end
if UserInputService:IsKeyDown(Enum.KeyCode.Space) then move = move + Vector3.new(0, FLY_SPEED, 0) end
if UserInputService:IsKeyDown(Enum.KeyCode.LeftShift) then move = move - Vector3.new(0, FLY_SPEED, 0) end
if bodyVelocity then
bodyVelocity.Velocity = move
end
if bodyGyro then
bodyGyro.CFrame = Camera.CFrame
end
end)
end
else
humanoid.PlatformStand = false
if bodyVelocity then bodyVelocity:Destroy() end
if bodyGyro then bodyGyro:Destroy() end
if flyConnection then flyConnection:Disconnect() end
bodyVelocity = nil
bodyGyro = nil
flyConnection = nil
end
print("Fly: " .. (FLY_ENABLED and "ON" or "OFF"))
end
-- Main loop
RunService.RenderStepped:Connect(function()
if not ENABLED then
updateESP()
return
end
updateESP()
local targetPlayer, targetHead = getTarget()
if targetHead and targetPlayer then
local targetPos = targetHead.Position
local current = Camera.CFrame
local targetCF = CFrame.new(current.Position, targetPos)
Camera.CFrame = current:Lerp(targetCF, AIM_SMOOTH)
end
end)
-- Hotkeys
UserInputService.InputBegan:Connect(function(input, gameProcessed)
if gameProcessed then return end
if input.KeyCode == Enum.KeyCode.F then
toggleFly()
end
if input.KeyCode == Enum.KeyCode.E then
ENABLED = not ENABLED
print("Aimbot: " .. (ENABLED and "ON" or "OFF"))
end
if input.KeyCode == Enum.KeyCode.I then
INVISIBLE_ENABLED = not INVISIBLE_ENABLED
if INVISIBLE_ENABLED then
makeInvisible()
else
-- Revert visibility (if you want to be seen again)
local char = LocalPlayer.Character
if char then
for _, part in ipairs(char:GetDescendants()) do
if part:IsA("BasePart") then
part.Transparency = 0
part.CanCollide = true
part.LocalTransparencyModifier = 0
end
end
end
end
print("Invisibility: " .. (INVISIBLE_ENABLED and "ON" or "OFF"))
end
end)
-- Make invisible on spawn
LocalPlayer.CharacterAdded:Connect(function(char)
LocalChar = char
wait(0.5)
makeInvisible()
end)
-- Init ESP and invisibility
for _, p in ipairs(Players:GetPlayers()) do
if p ~= LocalPlayer then
p.CharacterAdded:Connect(function()
wait(0.3)
createFullESP(p)
end)
if p.Character then
wait(0.3)
createFullESP(p)
end
end
end
Players.PlayerAdded:Connect(function(p)
p.CharacterAdded:Connect(function()
wait(0.3)
createFullESP(p)
end)
end)
-- Initial invisibility
makeInvisible()
print("INVISIBILITY + Wallhack + Aimbot (40 FOV) + Fly loaded.")
print("You are invisible to enemies. You see all enemies with boxes.")
print("F = Fly, E = Aimbot toggle, I = Invisibility toggle")
tiep yheo me
-- Roblox Delta script: Invisibility + Wallhack + Aimbot (40 FOV) + Fly + Separate Body Aim
-- Press B to toggle between Head aim and Body aim
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local Camera = workspace.CurrentCamera
local LocalPlayer = Players.LocalPlayer
local LocalChar = LocalPlayer.Character or LocalPlayer.CharacterAdded:Wait()
local UserInputService = game:GetService("UserInputService")
-- Settings
local AIM_FOV = 40
local AIM_RANGE = 1000
local AIM_SMOOTH = 0.2
local TEAM_CHECK = true
local FLY_SPEED = 60
-- States
local ENABLED = true
local FLY_ENABLED = false
local INVISIBLE_ENABLED = true
local AIM_BODY = false -- false = head, true = body
local bodyVelocity = nil
local bodyGyro = nil
local flyConnection = nil
-- MAKE YOURSELF INVISIBLE
local function makeInvisible()
if not INVISIBLE_ENABLED then return end
local char = LocalPlayer.Character
if not char then return end
for _, part in ipairs(char:GetDescendants()) do
if part:IsA("BasePart") then
part.Transparency = 1
part.CanCollide = false
part.Material = Enum.Material.SmoothPlastic
part.LocalTransparencyModifier = 1
end
end
local humanoid = char:FindFirstChild("Humanoid")
if humanoid then
humanoid.BreakJointsOnDeath = false
for _, child in ipairs(char:GetChildren()) do
if child:IsA("Accessory") or child:IsA("Clothing") or child:IsA("Hat") then
child:Destroy()
end
end
end
for _, v in ipairs(char:GetChildren()) do
if v:IsA("BasePart") then
v.Transparency = 1
v.CanCollide = false
end
end
local nameTag = char:FindFirstChild("NameTag")
if nameTag then
nameTag.Enabled = false
nameTag:Destroy()
end
for _, gui in ipairs(char:GetDescendants()) do
if gui:IsA("BillboardGui") then
gui.Enabled = false
gui:Destroy()
end
end
end
-- ESP: Full wallhack for enemies
local function createFullESP(player)
if player == LocalPlayer then return end
if TEAM_CHECK and player.Team and LocalPlayer.Team and player.Team == LocalPlayer.Team then return end
local char = player.Character
if not char then return end
local head = char:FindFirstChild("Head")
local root = char.PrimaryPart or char:FindFirstChild("HumanoidRootPart")
if not head then return end
local gui = Instance.new("BillboardGui")
gui.Name = "ESP_" .. player.Name
gui.Size = UDim2.new(0, 100, 0, 140)
gui.Adornee = head
gui.AlwaysOnTop = true
gui.MaxDistance = 600
gui.ResetOnSpawn = false
gui.StudsOffset = Vector3.new(0, 1.2, 0)
gui.Parent = char
local frame = Instance.new("Frame")
frame.Size = UDim2.new(1, 0, 1, 0)
frame.BackgroundTransparency = 0.5
frame.BackgroundColor3 = Color3.fromRGB(255, 0, 0)
frame.BorderSizePixel = 2
frame.BorderColor3 = Color3.fromRGB(255, 255, 255)
frame.Parent = gui
local nameLabel = Instance.new("TextLabel")
nameLabel.Name = "NameLabel"
nameLabel.Text = player.Name
nameLabel.TextColor3 = Color3.fromRGB(255, 255, 0)
nameLabel.BackgroundTransparency = 1
nameLabel.Size = UDim2.new(1.5, 0, 0.25, 0)
nameLabel.Position = UDim2.new(-0.25, 0, -0.3, 0)
nameLabel.TextScaled = true
nameLabel.Font = Enum.Font.SourceSansBold
nameLabel.TextStrokeTransparency = 0.3
nameLabel.Parent = gui
local distLabel = Instance.new("TextLabel")
distLabel.Name = "DistLabel"
distLabel.Text = "0m"
distLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
distLabel.BackgroundTransparency = 1
distLabel.Size = UDim2.new(0.8, 0, 0.15, 0)
distLabel.Position = UDim2.new(0.1, 0, 0.85, 0)
distLabel.TextScaled = true
distLabel.Font = Enum.Font.SourceSansBold
distLabel.Parent = gui
local humanoid = char:FindFirstChild("Humanoid")
local healthPercent = humanoid and math.clamp(humanoid.Health / humanoid.MaxHealth, 0, 1) or 1
local healthBar = Instance.new("Frame")
healthBar.Name = "HealthBar"
healthBar.Size = UDim2.new(healthPercent, 0, 0.06, 0)
healthBar.Position = UDim2.new(0, 0, 0, 0)
healthBar.BackgroundColor3 = Color3.fromRGB(0, 255, 0)
healthBar.BorderSizePixel = 1
healthBar.Parent = gui
spawn(function()
while gui and gui.Parent do
if root then
local dist = (root.Position - Camera.CFrame.Position).Magnitude
local dLabel = gui:FindFirstChild("DistLabel")
if dLabel then
dLabel.Text = math.floor(dist) .. "m"
end
end
if humanoid then
local newHealth = humanoid.Health
local newMax = humanoid.MaxHealth
local newPercent = math.clamp(newHealth / newMax, 0, 1)
local hBar = gui:FindFirstChild("HealthBar")
if hBar then
hBar.Size = UDim2.new(newPercent, 0, 0.06, 0)
if newPercent < 0.3 then hBar.BackgroundColor3 = Color3.fromRGB(255, 0, 0)
elseif newPercent < 0.6 then hBar.BackgroundColor3 = Color3.fromRGB(255, 255, 0)
else hBar.BackgroundColor3 = Color3.fromRGB(0, 255, 0)
end
end
end
wait(0.3)
end
end)
end
local function updateESP()
for _, player in ipairs(Players:GetPlayers()) do
if player ~= LocalPlayer then
local char = player.Character
if char then
local old = char:FindFirstChild("ESP_" .. player.Name)
if old then old:Destroy() end
createFullESP(player)
end
end
end
end
-- Get target: returns player, head, and body (root)
local function getTarget()
local bestScore = math.huge
local bestPlayer = nil
local bestPart = nil -- either head or body
local camPos = Camera.CFrame.Position
local camLook = Camera.CFrame.LookVector
for _, player in ipairs(Players:GetPlayers()) do
if player == LocalPlayer then continue end
if TEAM_CHECK and player.Team and LocalPlayer.Team and player.Team == LocalPlayer.Team then continue end
local char = player.Character
if not char then continue end
local humanoid = char:FindFirstChild("Humanoid")
if not humanoid or humanoid.Health <= 0 then continue end
local head = char:FindFirstChild("Head")
local root = char.PrimaryPart or char:FindFirstChild("HumanoidRootPart")
if not head and not root then continue end
-- Choose aim part: head or body (root/torso)
local aimPart = head
if AIM_BODY then
aimPart = root or head
end
if not aimPart then aimPart = head or root end
if not aimPart then continue end
local dist = (aimPart.Position - camPos).Magnitude
if dist > AIM_RANGE then continue end
local dir = (aimPart.Position - camPos).Unit
local angle = math.acos(camLook:Dot(dir)) * (180 / math.pi)
if angle > AIM_FOV then continue end
local score = angle + dist / 200
if score < bestScore then
bestScore = score
bestPlayer = player
bestPart = aimPart
end
end
return bestPlayer, bestPart
end
-- Fly toggle
local function toggleFly()
FLY_ENABLED = not FLY_ENABLED
local char = LocalPlayer.Character
if not char then return end
local humanoid = char:FindFirstChild("Humanoid")
if not humanoid then return end
if FLY_ENABLED then
humanoid.PlatformStand = true
local root = char.PrimaryPart or char:FindFirstChild("HumanoidRootPart") or char:FindFirstChild("Torso")
if root then
bodyVelocity = Instance.new("BodyVelocity")
bodyVelocity.MaxForce = Vector3.new(1e9, 1e9, 1e9)
bodyVelocity.Velocity = Vector3.new(0, 0, 0)
bodyVelocity.Parent = root
bodyGyro = Instance.new("BodyGyro")
bodyGyro.MaxTorque = Vector3.new(1e9, 1e9, 1e9)
bodyGyro.CFrame = Camera.CFrame
bodyGyro.Parent = root
if flyConnection then flyConnection:Disconnect() end
flyConnection = RunService.RenderStepped:Connect(function()
if not FLY_ENABLED or not root then return end
local move = Vector3.new(0, 0, 0)
if UserInputService:IsKeyDown(Enum.KeyCode.W) then move = move + Camera.CFrame.LookVector * FLY_SPEED end
if UserInputService:IsKeyDown(Enum.KeyCode.S) then move = move - Camera.CFrame.LookVector * FLY_SPEED end
if UserInputService:IsKeyDown(Enum.KeyCode.A) then move = move - Camera.CFrame.RightVector * FLY_SPEED end
if UserInputService:IsKeyDown(Enum.KeyCode.D) then move = move + Camera.CFrame.RightVector * FLY_SPEED end
if UserInputService:IsKeyDown(Enum.KeyCode.Space) then move = move + Vector3.new(0, FLY_SPEED, 0) end
if UserInputService:IsKeyDown(Enum.KeyCode.LeftShift) then move = move - Vector3.new(0, FLY_SPEED, 0) end
if bodyVelocity then
bodyVelocity.Velocity = move
end
if bodyGyro then
bodyGyro.CFrame = Camera.CFrame
end
end)
end
else
humanoid.PlatformStand = false
if bodyVelocity then bodyVelocity:Destroy() end
if bodyGyro then bodyGyro:Destroy() end
if flyConnection then flyConnection:Disconnect() end
bodyVelocity = nil
bodyGyro = nil
flyConnection = nil
end
print("Fly: " .. (FLY_ENABLED and "ON" or "OFF"))
end
-- Main loop
RunService.RenderStepped:Connect(function()
if not ENABLED then
updateESP()
return
end
updateESP()
local targetPlayer, targetPart = getTarget()
if targetPart and targetPlayer then
local targetPos = targetPart.Position
local current = Camera.CFrame
local targetCF = CFrame.new(current.Position, targetPos)
Camera.CFrame = current:Lerp(targetCF, AIM_SMOOTH)
end
end)
-- Hotkeys
UserInputService.InputBegan:Connect(function(input, gameProcessed)
if gameProcessed then return end
if input.KeyCode == Enum.KeyCode.F then
toggleFly()
end
if input.KeyCode == Enum.KeyCode.E then
ENABLED = not ENABLED
print("Aimbot: " .. (ENABLED and "ON" or "OFF"))
end
if input.KeyCode == Enum.KeyCode.I then
INVISIBLE_ENABLED = not INVISIBLE_ENABLED
if INVISIBLE_ENABLED then
makeInvisible()
else
local char = LocalPlayer.Character
if char then
for _, part in ipairs(char:GetDescendants()) do
if part:IsA("BasePart") then
part.Transparency = 0
part.CanCollide = true
part.LocalTransparencyModifier = 0
end
end
end
end
print("Invisibility: " .. (INVISIBLE_ENABLED and "ON" or "OFF"))
end
if input.KeyCode == Enum.KeyCode.B then
AIM_BODY = not AIM_BODY
print("Aim mode: " .. (AIM_BODY and "BODY" or "HEAD"))
end
end)
-- Init
LocalPlayer.CharacterAdded:Connect(function(char)
LocalChar = char
wait(0.5)
makeInvisible()
end)
for _, p in ipairs(Players:GetPlayers()) do
if p ~= LocalPlayer then
p.CharacterAdded:Connect(function()
wait(0.3)
createFullESP(p)
end)
if p.Character then
wait(0.3)
createFullESP(p)
end
end
end
Players.PlayerAdded:Connect(function(p)
p.CharacterAdded:Connect(function()
wait(0.3)
createFullESP(p)
end)
end)
makeInvisible()
print("INVISIBILITY + Wallhack + Aimbot (40 FOV) + Fly + Body/Head aim toggle")
print("F = Fly, E = Aimbot toggle, I = Invisibility toggle, B = Toggle HEAD/BODY aim")
print("Current aim: HEAD")
Công khai Cập nhật lần cuối: 2026-08-04 01:27:46 PM