local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local Workspace = game:GetService("Workspace") local LocalPlayer = Players.LocalPlayer local character, humanoid, rootPart local isInvisible = false local platform local heightOffset = 100 local function createPlatform() if platform then platform:Destroy() end platform = Instance.new("Part") platform.Name = "InvisPlatform" platform.Size = Vector3.new(6, 1, 6) platform.Anchored = true platform.CanCollide = true platform.Transparency = 0.5 platform.BrickColor = BrickColor.new("Really black") platform.Parent = Workspace end local function removePlatform() if platform then platform:Destroy() platform = nil end end local function setupCharacter(char) character = char humanoid = char:WaitForChild("Humanoid") rootPart = char:WaitForChild("HumanoidRootPart") isInvisible = false removePlatform() end if LocalPlayer.Character then setupCharacter(LocalPlayer.Character) end LocalPlayer.CharacterAdded:Connect(setupCharacter) local PlayerGui = LocalPlayer:WaitForChild("PlayerGui") local oldGui = PlayerGui:FindFirstChild("SkyPlatformGui") if oldGui then oldGui:Destroy() end local screenGui = Instance.new("ScreenGui") screenGui.Name = "SkyPlatformGui" screenGui.ResetOnSpawn = false screenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling screenGui.Parent = PlayerGui local main = Instance.new("Frame") main.Name = "Main" main.Size = UDim2.fromOffset(230, 145) main.Position = UDim2.new(0.5, -115, 0.35, 0) main.BackgroundColor3 = Color3.fromRGB(17, 19, 29) main.BorderSizePixel = 0 main.Parent = screenGui local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, 14) corner.Parent = main local stroke = Instance.new("UIStroke") stroke.Color = Color3.fromRGB(90, 95, 130) stroke.Transparency = 0.55 stroke.Thickness = 1 stroke.Parent = main local header = Instance.new("Frame") header.Size = UDim2.new(1, 0, 0, 43) header.BackgroundColor3 = Color3.fromRGB(25, 28, 42) header.BorderSizePixel = 0 header.Parent = main local headerCorner = Instance.new("UICorner") headerCorner.CornerRadius = UDim.new(0, 14) headerCorner.Parent = header local title = Instance.new("TextLabel") title.Size = UDim2.new(1, -50, 1, 0) title.Position = UDim2.fromOffset(14, 0) title.BackgroundTransparency = 1 title.Text = "SKY PLATFORM" title.TextColor3 = Color3.fromRGB(235, 238, 255) title.TextSize = 15 title.Font = Enum.Font.GothamBold title.TextXAlignment = Enum.TextXAlignment.Left title.Parent = header local close = Instance.new("TextButton") close.Size = UDim2.fromOffset(30, 30) close.Position = UDim2.new(1, -37, 0, 6) close.BackgroundColor3 = Color3.fromRGB(45, 48, 65) close.Text = "×" close.TextColor3 = Color3.fromRGB(255, 255, 255) close.TextSize = 22 close.Font = Enum.Font.GothamBold close.Parent = header Instance.new("UICorner", close).CornerRadius = UDim.new(0, 9) local status = Instance.new("TextLabel") status.Size = UDim2.new(1, -28, 0, 22) status.Position = UDim2.fromOffset(14, 54) status.BackgroundTransparency = 1 status.Text = "STATUS • DISABLED" status.TextColor3 = Color3.fromRGB(150, 155, 175) status.TextSize = 12 status.Font = Enum.Font.GothamMedium status.TextXAlignment = Enum.TextXAlignment.Left status.Parent = main local toggle = Instance.new("TextButton") toggle.Size = UDim2.new(1, -28, 0, 42) toggle.Position = UDim2.fromOffset(14, 87) toggle.BackgroundColor3 = Color3.fromRGB(115, 85, 255) toggle.Text = "ENABLE" toggle.TextColor3 = Color3.fromRGB(255, 255, 255) toggle.TextSize = 14 toggle.Font = Enum.Font.GothamBold toggle.AutoButtonColor = true toggle.Parent = main Instance.new("UICorner", toggle).CornerRadius = UDim.new(0, 10) local function updateUI() if isInvisible then status.Text = "STATUS • ENABLED" status.TextColor3 = Color3.fromRGB(90, 230, 160) toggle.Text = "DISABLE" toggle.BackgroundColor3 = Color3.fromRGB(220, 75, 90) else status.Text = "STATUS • DISABLED" status.TextColor3 = Color3.fromRGB(150, 155, 175) toggle.Text = "ENABLE" toggle.BackgroundColor3 = Color3.fromRGB(115, 85, 255) end end local function toggleInvisible() isInvisible = not isInvisible if isInvisible then createPlatform() else removePlatform() if rootPart then rootPart.CFrame = rootPart.CFrame - Vector3.new(0, heightOffset, 0) end end updateUI() end toggle.MouseButton1Click:Connect(toggleInvisible) close.MouseButton1Click:Connect(function() isInvisible = false removePlatform() if rootPart then rootPart.CFrame = rootPart.CFrame - Vector3.new(0, heightOffset, 0) end screenGui:Destroy() end) local dragging = false local dragStart, startPos header.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true dragStart = input.Position startPos = main.Position end end) UserInputService.InputChanged:Connect(function(input) if dragging and ( input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch ) then local delta = input.Position - dragStart main.Position = UDim2.new( startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y ) end end) UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = false end end) UserInputService.InputBegan:Connect(function(input, processed) if not processed and input.KeyCode == Enum.KeyCode.G then toggleInvisible() end end) RunService.Heartbeat:Connect(function() if isInvisible and rootPart and humanoid and humanoid.Health > 0 then local currentCFrame = rootPart.CFrame rootPart.CFrame = currentCFrame * CFrame.new(0, heightOffset, 0) if platform then platform.CFrame = rootPart.CFrame - Vector3.new(0, 3.5, 0) end humanoid.CameraOffset = Vector3.new(0, -heightOffset, 0) RunService.RenderStepped:Wait() if rootPart then rootPart.CFrame = currentCFrame end humanoid.CameraOffset = Vector3.zero end end)