--[[ WARNING: Heads up! This script has not been verified by ScriptBlox. Use at your own risk! ]] -- ============================================================================ -- SCRIPT: CYBER FLY PRO v8.0 [TOTAL IMMUNITY ANCHOR EDITION] -- BLOCCO FORZATO CFRAME E ANCHOR PER PREVENIRE CADUTE COSTRANTE DA GIOCO -- ============================================================================ print("[CYBER FLY] Loading Total Immunity Flight System...") local Players = game:GetService("Players") local UserInputService = game:GetService("UserInputService") local RunService = game:GetService("RunService") local StarterGui = game:GetService("StarterGui") local player = Players.LocalPlayer local character = player.Character or player.CharacterAdded:Wait() local rootPart = character:WaitForChild("HumanoidRootPart") local humanoid = character:WaitForChild("Humanoid") local camera = workspace.CurrentCamera -- Rimuove GUI precedenti local playerGui = player:WaitForChild("PlayerGui") if playerGui:FindFirstChild("CyberFlyGui") then playerGui.CyberFlyGui:Destroy() end -- STATO GLOBALE local flying = false local baseSpeed = 50 local currentSpeed = 50 local isMultiplierOn = false local flightConnection = nil local lastStaticCFrame = nil -- Forza la coordinata esatta nello spazio -- NOTIFICA local function notify(message) pcall(function() StarterGui:SetCore("SendNotification", { Title = "Cyber Fly", Text = message, Duration = 1.5 }) end) end -- LOOP DI VOLO HARD-ANCHORED local function flightLoop() if flying and rootPart and camera then local direction = Vector3.new(0, 0, 0) -- Input della tastiera if UserInputService:IsKeyDown(Enum.KeyCode.W) then direction = direction + camera.CFrame.LookVector end if UserInputService:IsKeyDown(Enum.KeyCode.S) then direction = direction - camera.CFrame.LookVector end if UserInputService:IsKeyDown(Enum.KeyCode.A) then direction = direction - camera.CFrame.RightVector end if UserInputService:IsKeyDown(Enum.KeyCode.D) then direction = direction + camera.CFrame.RightVector end if UserInputService:IsKeyDown(Enum.KeyCode.Space) then direction = direction + Vector3.new(0, 1, 0) end if UserInputService:IsKeyDown(Enum.KeyCode.LeftShift) then direction = direction - Vector3.new(0, 1, 0) end -- Isola l'orientamento della visuale local cameraRotation = camera.CFrame - camera.CFrame.Position if direction.Magnitude > 0 then -- Se si muove, sblocca momentaneamente l'ancoraggio per permettere lo spostamento rootPart.Anchored = false local nextPosition = rootPart.Position + (direction.Unit * (currentSpeed * RunService.Heartbeat:Wait())) rootPart.CFrame = CFrame.new(nextPosition) * cameraRotation lastStaticCFrame = rootPart.CFrame else -- SE SEI FERMO: Blocca via codice le velocità e attiva l'ancoraggio rigido hardware rootPart.Velocity = Vector3.new(0, 0, 0) rootPart.RotVelocity = Vector3.new(0, 0, 0) if lastStaticCFrame then rootPart.CFrame = CFrame.new(lastStaticCFrame.Position) * cameraRotation else lastStaticCFrame = rootPart.CFrame end rootPart.Anchored = true -- Impedisce al motore di Roblox di farti cadere giù end end end -- ACCENSIONE / SPEGNIMENTO VOLO local function startFlying() if not character or not character.Parent then return end flying = true humanoid.PlatformStand = true lastStaticCFrame = rootPart.CFrame flightConnection = RunService.Heartbeat:Connect(flightLoop) notify("🟢 Flight Mode: ACTIVATED") end local function stopFlying() flying = false if flightConnection then flightConnection:Disconnect() flightConnection = nil end if rootPart then rootPart.Anchored = false -- Restituisce il controllo alla fisica normale end if humanoid then humanoid.PlatformStand = false end lastStaticCFrame = nil notify("🔴 Flight Mode: DEACTIVATED") end player.CharacterAdded:Connect(function(newChar) character = newChar rootPart = character:WaitForChild("HumanoidRootPart") humanoid = character:WaitForChild("Humanoid") if flying then stopFlying() end end) -- --- INTERFACCIA GRAFICA CYBERPUNK v8.0 --- local screenGui = Instance.new("ScreenGui") screenGui.Name = "CyberFlyGui" screenGui.ResetOnSpawn = false screenGui.Parent = playerGui local MainFrame = Instance.new("Frame") MainFrame.Size = UDim2.new(0, 240, 0, 175) MainFrame.Position = UDim2.new(0.05, 0, 0.6, 0) MainFrame.BackgroundColor3 = Color3.fromRGB(15, 18, 22) MainFrame.BorderSizePixel = 0 MainFrame.Active = true MainFrame.Parent = screenGui local MainStroke = Instance.new("UIStroke") MainStroke.Thickness = 2 MainStroke.Color = Color3.fromRGB(0, 255, 255) MainStroke.Parent = MainFrame local MainCorner = Instance.new("UICorner") MainCorner.CornerRadius = UDim.new(0, 8) MainCorner.Parent = MainFrame local Title = Instance.new("TextLabel") Title.Size = UDim2.new(1, 0, 0, 35) Title.BackgroundColor3 = Color3.fromRGB(22, 27, 34) Title.Text = "🚀 CYBER FLY CONTROLLER v8.0" Title.TextColor3 = Color3.fromRGB(0, 255, 255) Title.Font = Enum.Font.GothamBold Title.TextSize = 12 Title.Active = true Title.Parent = MainFrame local TitleCorner = Instance.new("UICorner") TitleCorner.CornerRadius = UDim.new(0, 8) TitleCorner.Parent = Title -- TRASCINAMENTO PERSONALIZZATO FLUIDO local dragging, dragInput, dragStart, startPos Title.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true dragStart = input.Position startPos = MainFrame.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false end end) end end) Title.InputChanged:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then dragInput = input end end) UserInputService.InputChanged:Connect(function(input) if input == dragInput and dragging then local delta = input.Position - dragStart MainFrame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y) end end) -- INTERFACCIA: PULSANTE DI ATTIVAZIONE DIRETTA (.Activated) local flyButton = Instance.new("TextButton") flyButton.Size = UDim2.new(1, -20, 0, 38) flyButton.Position = UDim2.new(0, 10, 0, 45) flyButton.BackgroundColor3 = Color3.fromRGB(24, 28, 34) flyButton.Font = Enum.Font.GothamBold flyButton.TextSize = 13 flyButton.Text = "VOLO: DISATTIVATO" flyButton.TextColor3 = Color3.fromRGB(255, 50, 50) flyButton.Parent = MainFrame local btnStroke = Instance.new("UIStroke") btnStroke.Thickness = 1 btnStroke.Color = Color3.fromRGB(255, 50, 50) btnStroke.Parent = flyButton local btnCorner = Instance.new("UICorner") btnCorner.CornerRadius = UDim.new(0, 5) btnCorner.Parent = flyButton -- INTERFACCIA: VISUALIZZATORE VELOCITÀ local speedLabel = Instance.new("TextLabel") speedLabel.Size = UDim2.new(1, -20, 0, 25) speedLabel.Position = UDim2.new(0, 10, 0, 92) speedLabel.BackgroundTransparency = 1 speedLabel.Text = "SPEED: " .. currentSpeed speedLabel.TextColor3 = Color3.fromRGB(200, 220, 240) speedLabel.Font = Enum.Font.GothamBold speedLabel.TextSize = 13 speedLabel.Parent = MainFrame -- COSTRUZIONE PULSANTI PICCOLI DI CONTROLLO local function styleSmallBtn(btn, text, color) btn.Text = text btn.Font = Enum.Font.GothamBold btn.TextSize = 14 btn.TextColor3 = color btn.BackgroundColor3 = Color3.fromRGB(24, 28, 34) btn.BorderSizePixel = 0 local s = Instance.new("UIStroke") s.Thickness = 1 s.Color = color s.Parent = btn local c = Instance.new("UICorner") c.CornerRadius = UDim.new(0, 4) c.Parent = btn end local minusBtn = Instance.new("TextButton") minusBtn.Size = UDim2.new(0, 40, 0, 32) minusBtn.Position = UDim2.new(0, 10, 0, 128) styleSmallBtn(minusBtn, "-", Color3.fromRGB(255, 200, 0)) minusBtn.Parent = MainFrame local plusBtn = Instance.new("TextButton") plusBtn.Size = UDim2.new(0, 40, 0, 32) plusBtn.Position = UDim2.new(0, 55, 0, 128) styleSmallBtn(plusBtn, "+", Color3.fromRGB(0, 255, 150)) plusBtn.Parent = MainFrame local multiBtn = Instance.new("TextButton") multiBtn.Size = UDim2.new(0, 115, 0, 32) multiBtn.Position = UDim2.new(1, -125, 0, 128) styleSmallBtn(multiBtn, "⚡ MOLT. 10X", Color3.fromRGB(255, 0, 255)) multiBtn.Parent = MainFrame -- LOGICA AGGIORNAMENTO VALORI local function updateSpeedDisplay() if isMultiplierOn then currentSpeed = baseSpeed * 10 speedLabel.Text = "SPEED: " .. currentSpeed .. " (Molt. 10x)" else currentSpeed = baseSpeed speedLabel.Text = "SPEED: " .. currentSpeed end end -- ASSEGNAZIONE EVENTI NATIVI .ACTIVATED flyButton.Activated:Connect(function() if flying then stopFlying() flyButton.Text = "VOLO: DISATTIVATO" flyButton.TextColor3 = Color3.fromRGB(255, 50, 50) btnStroke.Color = Color3.fromRGB(255, 50, 50) else startFlying() flyButton.Text = "VOLO: ATTIVO" flyButton.TextColor3 = Color3.fromRGB(0, 255, 150) btnStroke.Color = Color3.fromRGB(0, 255, 150) end end) minusBtn.Activated:Connect(function() if baseSpeed > 10 then baseSpeed = baseSpeed - 10 updateSpeedDisplay() end end) plusBtn.Activated:Connect(function() if baseSpeed < 1000 then baseSpeed = baseSpeed + 10 updateSpeedDisplay() end end) multiBtn.Activated:Connect(function() isMultiplierOn = not isMultiplierOn if isMultiplierOn then multiBtn.BackgroundColor3 = Color3.fromRGB(45, 15, 50) multiBtn.UIStroke.Color = Color3.fromRGB(0, 255, 255) multiBtn.TextColor3 = Color3.fromRGB(0, 255, 255) else multiBtn.BackgroundColor3 = Color3.fromRGB(24, 28, 34) multiBtn.UIStroke.Color = Color3.fromRGB(255, 0, 255) multiBtn.TextColor3 = Color3.fromRGB(255, 0, 255) end updateSpeedDisplay() end)