
Key RequiredUniversal

--[[
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)No comments yet for this script.



