--// Infinity Yield Style CFrameFly | DK Ghost (Auto-Speed + Clone Visual)
--// Mobile + PC | Xane Executor | UI Compacta & Minimizável
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UIS = game:GetService("UserInputService")
local player = Players.LocalPlayer
local CFspeed = 1
local CFloop
local flying = false
local startPos = nil
local originalTransparencies = {}
local bodyClone = nil
-- Character
local function getChar()
return player.Character or player.CharacterAdded:Wait()
end
-- GUI
local gui = Instance.new("ScreenGui")
gui.Name = "IY_CFly_Ghost"
gui.ResetOnSpawn = false
gui.Parent = game.CoreGui
-- Main Frame (Mais compacto: 220x180)
local frame = Instance.new("Frame")
frame.Size = UDim2.new(0, 220, 0, 180)
frame.Position = UDim2.new(0.5, -110, 0.7, -90)
frame.BackgroundColor3 = Color3.fromRGB(30, 30, 35)
frame.BorderSizePixel = 0
frame.Active = true
frame.Draggable = true
frame.ClipsDescendants = true -- Essencial para o efeito de minimizar
frame.Parent = gui
Instance.new("UICorner", frame).CornerRadius = UDim.new(0, 10)
local stroke = Instance.new("UIStroke", frame)
stroke.Color = Color3.fromRGB(80, 80, 90)
stroke.Thickness = 2
-- Title Area (Barra Superior)
local titleArea = Instance.new("Frame")
titleArea.Size = UDim2.new(1, 0, 0, 30)
titleArea.BackgroundTransparency = 1
titleArea.Parent = frame
local title = Instance.new("TextLabel")
title.Size = UDim2.new(1, -30, 1, 0)
title.BackgroundTransparency = 1
title.Text = " DK GHOST FLY"
title.TextColor3 = Color3.new(1, 1, 1)
title.Font = Enum.Font.GothamBold
title.TextSize = 14
title.TextXAlignment = Enum.TextXAlignment.Left
title.Parent = titleArea
-- Minimize Button
local minBtn = Instance.new("TextButton")
minBtn.Size = UDim2.new(0, 30, 0, 30)
minBtn.Position = UDim2.new(1, -30, 0, 0)
minBtn.BackgroundTransparency = 1
minBtn.Text = "-"
minBtn.TextColor3 = Color3.new(1, 1, 1)
minBtn.Font = Enum.Font.GothamBold
minBtn.TextSize = 18
minBtn.Parent = titleArea
-- Container para os botões (Facilita organizar e esconder)
local contentFrame = Instance.new("Frame")
contentFrame.Size = UDim2.new(1, 0, 1, -30)
contentFrame.Position = UDim2.new(0, 0, 0, 30)
contentFrame.BackgroundTransparency = 1
contentFrame.Parent = frame
local layout = Instance.new("UIListLayout", contentFrame)
layout.HorizontalAlignment = Enum.HorizontalAlignment.Center
layout.Padding = UDim.new(0, 6) -- Espaço entre os botões
layout.SortOrder = Enum.SortOrder.LayoutOrder
local padding = Instance.new("UIPadding", contentFrame)
padding.PaddingTop = UDim.new(0, 5)
-- Função para criar botões de forma mais limpa
local function createButton(text, color)
local btn = Instance.new("TextButton")
btn.Size = UDim2.new(0.9, 0, 0, 28) -- Altura mais fina (compacta)
btn.Text = text
btn.BackgroundColor3 = color
btn.TextColor3 = Color3.new(1, 1, 1)
btn.Font = Enum.Font.GothamBold
btn.TextScaled = true
Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 6)
btn.Parent = contentFrame
return btn
end
-- Botões
local flyBtn = createButton("ATIVAR FANTASMA", Color3.fromRGB(40, 170, 40))
local cancelBtn = createButton("CANCELAR E VOLTAR", Color3.fromRGB(200, 120, 30))
-- Speed Box
local speedBox = Instance.new("TextBox")
speedBox.Size = UDim2.new(0.9, 0, 0, 28)
speedBox.PlaceholderText = "Velocidade: " .. tostring(CFspeed)
speedBox.Text = tostring(CFspeed)
speedBox.BackgroundColor3 = Color3.fromRGB(50, 50, 60)
speedBox.TextColor3 = Color3.new(1, 1, 1)
speedBox.Font = Enum.Font.GothamBold
speedBox.TextScaled = true
speedBox.Parent = contentFrame
Instance.new("UICorner", speedBox).CornerRadius = UDim.new(0, 6)
local closeBtn = createButton("ENCERRAR SCRIPT", Color3.fromRGB(200, 50, 50))
--// LÓGICA DE MINIMIZAR //--
local minimized = false
minBtn.MouseButton1Click:Connect(function()
minimized = not minimized
if minimized then
frame.Size = UDim2.new(0, 220, 0, 30) -- Encolhe pro tamanho do título
minBtn.Text = "+"
else
frame.Size = UDim2.new(0, 220, 0, 180) -- Volta ao tamanho normal
minBtn.Text = "-"
end
end)
--// LÓGICA DO FANTASMA / VOO //--
local function setGhostMode(enabled)
local char = getChar()
if enabled then
for _, part in pairs(char:GetDescendants()) do
if part:IsA("BasePart") or part:IsA("Decal") then
if part.Name ~= "HumanoidRootPart" then
if originalTransparencies[part] == nil then
originalTransparencies[part] = part.Transparency
end
part.Transparency = 0.5
end
end
end
else
for part, trans in pairs(originalTransparencies) do
if part and part.Parent then
part.Transparency = trans
end
end
table.clear(originalTransparencies)
end
end
local function startFly()
local char = getChar()
local humanoid = char:FindFirstChildOfClass("Humanoid")
local Head = char:WaitForChild("Head")
local hrp = char:WaitForChild("HumanoidRootPart")
startPos = hrp.CFrame
if bodyClone then bodyClone:Destroy() end
char.Archivable = true
bodyClone = char:Clone()
bodyClone.Name = "DK_Vessel"
for _, v in pairs(bodyClone:GetDescendants()) do
if v:IsA("BasePart") then
v.Anchored = true
v.CanCollide = false
elseif v:IsA("Script") or v:IsA("LocalScript") then
v:Destroy()
end
end
bodyClone.Parent = workspace
bodyClone:SetPrimaryPartCFrame(startPos)
humanoid.PlatformStand = true
Head.Anchored = true
setGhostMode(true)
if CFloop then CFloop:Disconnect() end
CFloop = RunService.Heartbeat:Connect(function(deltaTime)
local moveDirection = humanoid.MoveDirection * (CFspeed * deltaTime * 60)
local headCFrame = Head.CFrame
local camera = workspace.CurrentCamera
local cameraCFrame = camera.CFrame
local cameraOffset = headCFrame:ToObjectSpace(cameraCFrame).Position
cameraCFrame = cameraCFrame * CFrame.new(-cameraOffset.X, -cameraOffset.Y, -cameraOffset.Z + 1)
local cameraPosition = cameraCFrame.Position
local headPosition = headCFrame.Position
local objectSpaceVelocity = CFrame.new(cameraPosition, Vector3.new(headPosition.X, cameraPosition.Y, headPosition.Z)):VectorToObjectSpace(moveDirection)
Head.CFrame = CFrame.new(headPosition) * (cameraCFrame - cameraPosition) * CFrame.new(objectSpaceVelocity)
end)
end
local function stopFly(isCancel)
local char = getChar()
local humanoid = char:FindFirstChildOfClass("Humanoid")
local Head = char:WaitForChild("Head")
local hrp = char:FindFirstChild("HumanoidRootPart")
if CFloop then CFloop:Disconnect() end
humanoid.PlatformStand = false
Head.Anchored = false
setGhostMode(false)
if bodyClone then
bodyClone:Destroy()
bodyClone = nil
end
if isCancel and startPos and hrp then
hrp.CFrame = startPos
end
end
-- Botões Funcionais
flyBtn.MouseButton1Click:Connect(function()
flying = not flying
if flying then
startFly()
flyBtn.Text = "DESATIVAR (FICAR AQUI)"
flyBtn.BackgroundColor3 = Color3.fromRGB(200, 70, 70)
else
stopFly(false)
flyBtn.Text = "ATIVAR FANTASMA"
flyBtn.BackgroundColor3 = Color3.fromRGB(40, 170, 40)
end
end)
cancelBtn.MouseButton1Click:Connect(function()
if flying then
flying = false
stopFly(true)
flyBtn.Text = "ATIVAR FANTASMA"
flyBtn.BackgroundColor3 = Color3.fromRGB(40, 170, 40)
end
end)
speedBox:GetPropertyChangedSignal("Text"):Connect(function()
local num = tonumber(speedBox.Text)
if num then
CFspeed = num
end
end)
closeBtn.MouseButton1Click:Connect(function()
flying = false
stopFly(false)
gui:Destroy()
end)
player.CharacterAdded:Connect(function()
if bodyClone then bodyClone:Destroy() bodyClone = nil end
task.wait(1)
if flying then
startFly()
end
end)