--[[ Convertito per Delta Executor Helper globali garantiti dagli executor più comuni: getgenv, getrenv, hookfunction, getconnections, getnamecallmethod, setreadonly, checkcaller, identifyexecutor, syn?, request/http_request ]] local httpRequest = (syn and syn.request) or (http and http.request) or request or http_request -- FlyGUI - Script di volo per Roblox Studio (ottimizzato per Mobile) -- Da inserire in StarterGui come LocalScript local Players = game:GetService("Players") local UserInputService = game:GetService("UserInputService") local RunService = game:GetService("RunService") local TweenService = game:GetService("TweenService") local player = Players.LocalPlayer local character = player.Character or player.CharacterAdded:Wait() local humanoid = character:WaitForChild("Humanoid") local rootPart = character:WaitForChild("HumanoidRootPart") -- Variabili di stato local flying = false local flySpeed = 50 -- valore mostrato (1-100) local SPEED_MULTIPLIER = 3 -- velocità reale = flySpeed * SPEED_MULTIPLIER local draggingSlider = false local flyAttachment, linearVelocity, alignOrientation -- === GUI === local screenGui = Instance.new("ScreenGui") screenGui.Name = "FlyGUI" screenGui.ResetOnSpawn = false screenGui.Parent = player:WaitForChild("PlayerGui") local mainFrame = Instance.new("Frame") mainFrame.Size = UDim2.new(0, 240, 0, 180) mainFrame.Position = UDim2.new(0, 24, 0.5, -90) mainFrame.BackgroundColor3 = Color3.fromRGB(24, 24, 28) mainFrame.BorderSizePixel = 0 mainFrame.Active = true mainFrame.Draggable = true mainFrame.Parent = screenGui local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, 16) corner.Parent = mainFrame local gradient = Instance.new("UIGradient") gradient.Color = ColorSequence.new{ ColorSequenceKeypoint.new(0, Color3.fromRGB(35, 35, 42)), ColorSequenceKeypoint.new(1, Color3.fromRGB(18, 18, 22)) } gradient.Rotation = 90 gradient.Parent = mainFrame local stroke = Instance.new("UIStroke") stroke.Color = Color3.fromRGB(90, 170, 255) stroke.Thickness = 1.2 stroke.Transparency = 0.5 stroke.Parent = mainFrame local topBar = Instance.new("Frame") topBar.Size = UDim2.new(1, 0, 0, 4) topBar.BackgroundColor3 = Color3.fromRGB(90, 170, 255) topBar.BorderSizePixel = 0 topBar.Parent = mainFrame local topBarCorner = Instance.new("UICorner") topBarCorner.CornerRadius = UDim.new(1, 0) topBarCorner.Parent = topBar local topGradient = Instance.new("UIGradient") topGradient.Color = ColorSequence.new{ ColorSequenceKeypoint.new(0, Color3.fromRGB(90, 170, 255)), ColorSequenceKeypoint.new(1, Color3.fromRGB(140, 100, 255)) } topGradient.Parent = topBar local title = Instance.new("TextLabel") title.Size = UDim2.new(1, -20, 0, 26) title.Position = UDim2.new(0, 16, 0, 14) title.BackgroundTransparency = 1 title.Text = "✈️ Fly Controller" title.TextColor3 = Color3.fromRGB(255, 255, 255) title.Font = Enum.Font.GothamBold title.TextSize = 19 title.TextXAlignment = Enum.TextXAlignment.Left title.Parent = mainFrame local subtitle = Instance.new("TextLabel") subtitle.Size = UDim2.new(1, -20, 0, 16) subtitle.Position = UDim2.new(0, 16, 0, 40) subtitle.BackgroundTransparency = 1 subtitle.Text = "Sistema di volo personalizzato" subtitle.TextColor3 = Color3.fromRGB(140, 140, 150) subtitle.Font = Enum.Font.Gotham subtitle.TextSize = 12 subtitle.TextXAlignment = Enum.TextXAlignment.Left subtitle.Parent = mainFrame local flyButton = Instance.new("TextButton") flyButton.Size = UDim2.new(1, -32, 0, 40) flyButton.Position = UDim2.new(0, 16, 0, 64) flyButton.BackgroundColor3 = Color3.fromRGB(50, 160, 90) flyButton.Text = "✈️ Attiva Volo" flyButton.TextColor3 = Color3.fromRGB(255,255,255) flyButton.Font = Enum.Font.GothamBold flyButton.TextSize = 15 flyButton.AutoButtonColor = false flyButton.Parent = mainFrame local btnCorner = Instance.new("UICorner") btnCorner.CornerRadius = UDim.new(0, 10) btnCorner.Parent = flyButton flyButton.MouseEnter:Connect(function() TweenService:Create(flyButton, TweenInfo.new(0.15), {BackgroundTransparency = 0.1}):Play() end) flyButton.MouseLeave:Connect(function() TweenService:Create(flyButton, TweenInfo.new(0.15), {BackgroundTransparency = 0}):Play() end) local speedRow = Instance.new("Frame") speedRow.Size = UDim2.new(1, -32, 0, 18) speedRow.Position = UDim2.new(0, 16, 0, 118) speedRow.BackgroundTransparency = 1 speedRow.Parent = mainFrame local speedLabel = Instance.new("TextLabel") speedLabel.Size = UDim2.new(0.5, 0, 1, 0) speedLabel.BackgroundTransparency = 1 speedLabel.Text = "Velocità" speedLabel.TextColor3 = Color3.fromRGB(160, 160, 170) speedLabel.Font = Enum.Font.Gotham speedLabel.TextSize = 13 speedLabel.TextXAlignment = Enum.TextXAlignment.Left speedLabel.Parent = speedRow local speedValue = Instance.new("TextLabel") speedValue.Size = UDim2.new(0.5, 0, 1, 0) speedValue.Position = UDim2.new(0.5, 0, 0, 0) speedValue.BackgroundTransparency = 1 speedValue.Text = flySpeed .. " / 100" speedValue.TextColor3 = Color3.fromRGB(90, 170, 255) speedValue.Font = Enum.Font.GothamBold speedValue.TextSize = 13 speedValue.TextXAlignment = Enum.TextXAlignment.Right speedValue.Parent = speedRow -- Slider con area di trascinamento più grande (facile su mobile) local sliderBack = Instance.new("Frame") sliderBack.Size = UDim2.new(1, -32, 0, 8) sliderBack.Position = UDim2.new(0, 16, 0, 144) sliderBack.BackgroundColor3 = Color3.fromRGB(45, 45, 52) sliderBack.BorderSizePixel = 0 sliderBack.Parent = mainFrame local sliderBackCorner = Instance.new("UICorner") sliderBackCorner.CornerRadius = UDim.new(1, 0) sliderBackCorner.Parent = sliderBack -- Hitbox invisibile più grande sopra/sotto la barra per facilitare il tocco local sliderHitbox = Instance.new("TextButton") sliderHitbox.Size = UDim2.new(1, 0, 0, 36) sliderHitbox.Position = UDim2.new(0, 0, 0.5, -18) sliderHitbox.BackgroundTransparency = 1 sliderHitbox.Text = "" sliderHitbox.ZIndex = 3 sliderHitbox.Parent = sliderBack local sliderFill = Instance.new("Frame") sliderFill.Size = UDim2.new(flySpeed/100, 0, 1, 0) sliderFill.BackgroundColor3 = Color3.fromRGB(90, 170, 255) sliderFill.BorderSizePixel = 0 sliderFill.Parent = sliderBack local fillGradient = Instance.new("UIGradient") fillGradient.Color = ColorSequence.new{ ColorSequenceKeypoint.new(0, Color3.fromRGB(90, 170, 255)), ColorSequenceKeypoint.new(1, Color3.fromRGB(140, 100, 255)) } fillGradient.Parent = sliderFill local fillCorner = Instance.new("UICorner") fillCorner.CornerRadius = UDim.new(1, 0) fillCorner.Parent = sliderFill local sliderDot = Instance.new("Frame") sliderDot.Size = UDim2.new(0, 20, 0, 20) sliderDot.Position = UDim2.new(flySpeed/100, -10, 0.5, -10) sliderDot.BackgroundColor3 = Color3.fromRGB(255,255,255) sliderDot.ZIndex = 4 sliderDot.Parent = sliderBack local dotCorner = Instance.new("UICorner") dotCorner.CornerRadius = UDim.new(1, 0) dotCorner.Parent = sliderDot local dotStroke = Instance.new("UIStroke") dotStroke.Color = Color3.fromRGB(90, 170, 255) dotStroke.Thickness = 2 dotStroke.Parent = sliderDot -- === Logica slider velocità === local function updateSpeedFromX(inputX) local relative = (inputX - sliderBack.AbsolutePosition.X) / sliderBack.AbsoluteSize.X relative = math.clamp(relative, 0, 1) flySpeed = math.floor(relative * 100) if flySpeed < 1 then flySpeed = 1 end sliderFill.Size = UDim2.new(relative, 0, 1, 0) sliderDot.Position = UDim2.new(relative, -10, 0.5, -10) speedValue.Text = flySpeed .. " / 100" end sliderHitbox.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then draggingSlider = true updateSpeedFromX(input.Position.X) end end) UserInputService.InputChanged:Connect(function(input) if draggingSlider and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then updateSpeedFromX(input.Position.X) end end) UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then draggingSlider = false end end) -- === Funzioni di volo === local function startFly() if flying then return end flying = true flyButton.Text = "🛬 Disattiva Volo" flyButton.BackgroundColor3 = Color3.fromRGB(200, 60, 60) humanoid.PlatformStand = true humanoid.AutoRotate = false flyAttachment = Instance.new("Attachment") flyAttachment.Name = "FlyAttachment" flyAttachment.Parent = rootPart linearVelocity = Instance.new("LinearVelocity") linearVelocity.Attachment0 = flyAttachment linearVelocity.MaxForce = math.huge linearVelocity.VectorVelocity = Vector3.new(0, 0, 0) linearVelocity.RelativeTo = Enum.ActuatorRelativeTo.World linearVelocity.Parent = rootPart alignOrientation = Instance.new("AlignOrientation") alignOrientation.Attachment0 = flyAttachment alignOrientation.MaxTorque = math.huge alignOrientation.Responsiveness = 100 alignOrientation.Mode = Enum.OrientationAlignmentMode.OneAttachment alignOrientation.Parent = rootPart end local function stopFly() if not flying then return end flying = false flyButton.Text = "✈️ Attiva Volo" flyButton.BackgroundColor3 = Color3.fromRGB(50, 160, 90) humanoid.PlatformStand = false humanoid.AutoRotate = true if linearVelocity then linearVelocity:Destroy() linearVelocity = nil end if alignOrientation then alignOrientation:Destroy() alignOrientation = nil end if flyAttachment then flyAttachment:Destroy() flyAttachment = nil end end flyButton.MouseButton1Click:Connect(function() if flying then stopFly() else startFly() end end) -- === Movimento durante il volo === -- Usa SOLO il joystick di Roblox: guardando in alto/basso mentre spingi -- il joystick in avanti sali/scendi, come in un vero volo. RunService.RenderStepped:Connect(function() if flying and linearVelocity and alignOrientation then local camera = workspace.CurrentCamera local moveDir = humanoid.MoveDirection -- da joystick (mobile) o WASD (PC) local moveVector = Vector3.new(0, 0, 0) if moveDir.Magnitude > 0.05 then local lookFlat = Vector3.new(camera.CFrame.LookVector.X, 0, camera.CFrame.LookVector.Z) local rightFlat = Vector3.new(camera.CFrame.RightVector.X, 0, camera.CFrame.RightVector.Z) if lookFlat.Magnitude > 0.001 then lookFlat = lookFlat.Unit end if rightFlat.Magnitude > 0.001 then rightFlat = rightFlat.Unit end -- quanto il joystick spinge avanti/indietro e lateralmente local forwardAmount = moveDir:Dot(lookFlat) local rightAmount = moveDir:Dot(rightFlat) -- il movimento "avanti" usa il vettore camera COMPLETO (con inclinazione), -- così guardare su/giù fa salire/scendere moveVector = (camera.CFrame.LookVector * forwardAmount) + (rightFlat * rightAmount) end if moveVector.Magnitude > 0 then moveVector = moveVector.Unit * (flySpeed * SPEED_MULTIPLIER) end linearVelocity.VectorVelocity = moveVector alignOrientation.CFrame = camera.CFrame end end) -- Ripristina lo stato al respawn player.CharacterAdded:Connect(function(newChar) character = newChar humanoid = character:WaitForChild("Humanoid") rootPart = character:WaitForChild("HumanoidRootPart") flying = false flyButton.Text = "✈️ Attiva Volo" flyButton.BackgroundColor3 = Color3.fromRGB(50, 160, 90) end)