
Key Required VerifiedUniversal

-- HAKI DE VISIÓN FULL | OSCURIDAD TOTAL
-- Plug & Play
local Players = game:GetService("Players")
local UIS = game:GetService("UserInputService")
local TweenService = game:GetService("TweenService")
local LP = Players.LocalPlayer
local enabled = false
local cache = {}
-- ===== VISIÓN =====
local function addVision(char, playerName)
if cache[char] then return end
local humanoid = char:FindFirstChildOfClass("Humanoid")
local head = char:FindFirstChild("Head")
if not humanoid or not head then return end
-- Highlight
local hl = Instance.new("Highlight")
hl.FillColor = Color3.fromRGB(0,170,255)
hl.OutlineColor = Color3.new(1,1,1)
hl.FillTransparency = 0.45
hl.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
hl.Parent = char
-- Billboard
local bb = Instance.new("BillboardGui")
bb.Size = UDim2.fromOffset(140, 50)
bb.StudsOffset = Vector3.new(0, 3.2, 0)
bb.AlwaysOnTop = true
bb.Parent = head
-- Nombre
local name = Instance.new("TextLabel")
name.Size = UDim2.new(1,0,0.5,0)
name.BackgroundTransparency = 1
name.Text = playerName
name.TextColor3 = Color3.new(1,1,1)
name.TextStrokeTransparency = 0
name.TextScaled = true
name.Font = Enum.Font.GothamBold
name.Parent = bb
-- Fondo vida
local bg = Instance.new("Frame")
bg.Position = UDim2.new(0,0,0.6,0)
bg.Size = UDim2.new(1,0,0.25,0)
bg.BackgroundColor3 = Color3.fromRGB(35,35,35)
bg.BorderSizePixel = 0
bg.Parent = bb
Instance.new("UICorner", bg).CornerRadius = UDim.new(0,6)
-- Barra vida
local bar = Instance.new("Frame")
bar.Size = UDim2.new(1,0,1,0)
bar.BackgroundColor3 = Color3.fromRGB(0,255,0)
bar.BorderSizePixel = 0
bar.Parent = bg
Instance.new("UICorner", bar).CornerRadius = UDim.new(0,6)
local conn
conn = humanoid.HealthChanged:Connect(function(hp)
if humanoid.Health <= 0 then
if conn then conn:Disconnect() end
return
end
bar.Size = UDim2.new(hp / humanoid.MaxHealth, 0, 1, 0)
end)
cache[char] = {hl, bb, conn}
end
local function clearAll()
for _,items in pairs(cache) do
for _,v in pairs(items) do
if typeof(v) == "RBXScriptConnection" then
v:Disconnect()
elseif v then
v:Destroy()
end
end
end
cache = {}
end
local function enableHaki()
for _,p in pairs(Players:GetPlayers()) do
if p ~= LP and p.Character then
addVision(p.Character, p.Name)
end
end
end
Players.PlayerAdded:Connect(function(p)
p.CharacterAdded:Connect(function(c)
if enabled then
task.wait(1)
addVision(c, p.Name)
end
end)
end)
-- ===== GUI =====
local gui = Instance.new("ScreenGui")
gui.Name = "HakiVisionGUI"
gui.IgnoreGuiInset = true -- 🔥 tapa TODA la pantalla
gui.ResetOnSpawn = false
gui.Parent = LP:WaitForChild("PlayerGui")
-- OSCURIDAD TOTAL
local dark = Instance.new("Frame")
dark.Name = "DarkScreen"
dark.Size = UDim2.fromScale(1,1)
dark.Position = UDim2.fromScale(0,0)
dark.BackgroundColor3 = Color3.fromRGB(0,0,0)
dark.BackgroundTransparency = 1
dark.BorderSizePixel = 0
dark.ZIndex = 1
dark.Parent = gui
-- Botón
local btn = Instance.new("TextButton")
btn.Size = UDim2.fromOffset(150,45)
btn.Position = UDim2.fromScale(0.5,0.8)
btn.AnchorPoint = Vector2.new(0.5,0.5)
btn.Text = "👁️ Haki OFF"
btn.TextScaled = true
btn.BackgroundColor3 = Color3.fromRGB(30,30,30)
btn.TextColor3 = Color3.new(1,1,1)
btn.BorderSizePixel = 0
btn.ZIndex = 2
btn.Parent = gui
Instance.new("UICorner", btn).CornerRadius = UDim.new(0,12)
-- BOTÓN MOVIBLE
local dragging, dragStart, startPos
btn.InputBegan:Connect(function(i)
if i.UserInputType == Enum.UserInputType.MouseButton1 or i.UserInputType == Enum.UserInputType.Touch then
dragging = true
dragStart = i.Position
startPos = btn.Position
end
end)
UIS.InputChanged:Connect(function(i)
if dragging and (i.UserInputType == Enum.UserInputType.MouseMovement or i.UserInputType == Enum.UserInputType.Touch) then
local delta = i.Position - dragStart
btn.Position = UDim2.new(
startPos.X.Scale,
startPos.X.Offset + delta.X,
startPos.Y.Scale,
startPos.Y.Offset + delta.Y
)
end
end)
UIS.InputEnded:Connect(function(i)
if i.UserInputType == Enum.UserInputType.MouseButton1 or i.UserInputType == Enum.UserInputType.Touch then
dragging = false
end
end)
-- TOGGLE
btn.MouseButton1Click:Connect(function()
enabled = not enabled
if enabled then
btn.Text = "👁️ Haki ON"
btn.BackgroundColor3 = Color3.fromRGB(0,120,200)
enableHaki()
TweenService:Create(dark, TweenInfo.new(0.4), {
BackgroundTransparency = 0.45 -- 🌑 OSCURIDAD RECOMENDADA
}):Play()
else
btn.Text = "👁️ Haki OFF"
btn.BackgroundColor3 = Color3.fromRGB(30,30,30)
clearAll()
TweenService:Create(dark, TweenInfo.new(0.4), {
BackgroundTransparency = 1
}):Play()
end
end)



R6 or r15
W