-- LocalScript inside StarterPlayer -> StarterPlayerScripts local Rayfield = loadstring(game:HttpGet('https://sirius.menu/rayfield'))() local Window = Rayfield:CreateWindow({ Name = "Ultimate Fly Script", LoadingTitle = "Fly Utility", LoadingSubtitle = "ISOXTERIA", ConfigurationSaving = { Enabled = true, FolderName = "AIMBOT", FileName = "FlyConfig" }, Discord = { Enabled = false }, KeySystem = false }) local FlightTab = Window:CreateTab("Flight Controls", 4483362458) local Players = game:GetService("Players") local UserInputService = game:GetService("UserInputService") local RunService = game:GetService("RunService") local Workspace = game:GetService("Workspace") local TweenService = game:GetService("TweenService") local LocalPlayer = Players.LocalPlayer local Flying = false local FlySpeed = 50 local BoostMultiplier = 2.5 local BoostCooldown = 1.2 local CanBoost = true local NoclipWhileFlying = false local EnableAnimations = true local EnableTrail = true local DynamicFOV = true local Attachment, LinearVelocity, AlignOrientation local CurrentVelocity = Vector3.zero local TargetVelocity = Vector3.zero local CurrentLean = 0 local CurrentTilt = 0 local CurrentRoll = 0 local BobTimer = 0 local TrailInstance = nil local Attachment0, Attachment1 local DefaultFOV = 70 -- Dynamic Universal Arm Joint Variables (Supports R6, R15 & Custom Rigs) local LeftShoulder, RightShoulder local OriginalLeftC0, OriginalRightC0 local CurrentChar = nil local function getCharacterParts() local char = LocalPlayer.Character if char then local hum = char:FindFirstChildOfClass("Humanoid") local root = char:FindFirstChild("HumanoidRootPart") local torso = char:FindFirstChild("Torso") or char:FindFirstChild("UpperTorso") or root return char, hum, root, torso end return nil, nil, nil, nil end -- Universal Joint Finder (Scans Rig Structure for Shoulders) local function SetupArmJoints() local char = getCharacterParts() if not char then return end -- Clear previous references if character reset if char ~= CurrentChar then CurrentChar = char LeftShoulder = nil RightShoulder = nil OriginalLeftC0 = nil OriginalRightC0 = nil end if LeftShoulder and RightShoulder then return end -- Dynamic Search across all descendants for Motor6D Shoulder Joints for _, v in pairs(char:GetDescendants()) do if v:IsA("Motor6D") then local name = v.Name:lower() if (name:find("left") or name:find("l_")) and (name:find("shoulder") or name:find("arm")) then if not LeftShoulder then LeftShoulder = v end elseif (name:find("right") or name:find("r_")) and (name:find("shoulder") or name:find("arm")) then if not RightShoulder then RightShoulder = v end end end end -- Fallback check for standard Roblox Rig naming if not LeftShoulder then LeftShoulder = char:FindFirstChild("Left Shoulder", true) or char:FindFirstChild("LeftShoulder", true) end if not RightShoulder then RightShoulder = char:FindFirstChild("Right Shoulder", true) or char:FindFirstChild("RightShoulder", true) end -- Cache original C0 positions if LeftShoulder and not OriginalLeftC0 then OriginalLeftC0 = LeftShoulder.C0 end if RightShoulder and not OriginalRightC0 then OriginalRightC0 = RightShoulder.C0 end end local function ResetArmJoints() if LeftShoulder and OriginalLeftC0 then TweenService:Create(LeftShoulder, TweenInfo.new(0.25), {C0 = OriginalLeftC0}):Play() end if RightShoulder and OriginalRightC0 then TweenService:Create(RightShoulder, TweenInfo.new(0.25), {C0 = OriginalRightC0}):Play() end end local function ApplySupermanPose(isMovingForward) if not LeftShoulder or not RightShoulder then return end if not OriginalLeftC0 or not OriginalRightC0 then return end if isMovingForward and EnableAnimations then -- Universal Superman Arm Pose Offset (Works across R6, R15, Rthro) local leftTargetC0 = OriginalLeftC0 * CFrame.Angles(math.rad(175), math.rad(-5), math.rad(5)) local rightTargetC0 = OriginalRightC0 * CFrame.Angles(math.rad(175), math.rad(5), math.rad(-5)) TweenService:Create(LeftShoulder, TweenInfo.new(0.25), {C0 = leftTargetC0}):Play() TweenService:Create(RightShoulder, TweenInfo.new(0.25), {C0 = rightTargetC0}):Play() else ResetArmJoints() end end -- Create Sonic Shockwave Effect local function SpawnShockwave(position, direction) local shockwave = Instance.new("Part") shockwave.Name = "SonicShockwave" shockwave.Shape = Enum.PartType.Cylinder shockwave.Size = Vector3.new(0.2, 2, 2) shockwave.Material = Enum.Material.Neon shockwave.Color = Color3.fromRGB(0, 220, 255) shockwave.Transparency = 0.25 shockwave.Anchored = true shockwave.CanCollide = false shockwave.CFrame = CFrame.lookAt(position, position + direction) * CFrame.Angles(0, math.rad(90), 0) shockwave.Parent = Workspace local innerRing = shockwave:Clone() innerRing.Color = Color3.fromRGB(255, 255, 255) innerRing.Size = Vector3.new(0.3, 1, 1) innerRing.Parent = Workspace local tweenInfo = TweenInfo.new(0.4, Enum.EasingStyle.Quad, Enum.EasingDirection.Out) local outerTween = TweenService:Create(shockwave, tweenInfo, { Size = Vector3.new(0.1, 40, 40), Transparency = 1 }) local innerTween = TweenService:Create(innerRing, tweenInfo, { Size = Vector3.new(0.1, 25, 25), Transparency = 1 }) outerTween:Play() innerTween:Play() outerTween.Completed:Connect(function() shockwave:Destroy() innerRing:Destroy() end) end local function SetupTrail(rootPart) if TrailInstance then TrailInstance:Destroy() end if Attachment0 then Attachment0:Destroy() end if Attachment1 then Attachment1:Destroy() end Attachment0 = Instance.new("Attachment") Attachment0.Position = Vector3.new(-1.5, 0, 0) Attachment0.Parent = rootPart Attachment1 = Instance.new("Attachment") Attachment1.Position = Vector3.new(1.5, 0, 0) Attachment1.Parent = rootPart TrailInstance = Instance.new("Trail") TrailInstance.Attachment0 = Attachment0 TrailInstance.Attachment1 = Attachment1 TrailInstance.Lifetime = 0.35 TrailInstance.MinLength = 0.1 TrailInstance.Transparency = NumberSequence.new({ NumberSequenceKeypoint.new(0, 0.2), NumberSequenceKeypoint.new(1, 1) }) TrailInstance.Color = ColorSequence.new(Color3.fromRGB(0, 170, 255), Color3.fromRGB(150, 0, 255)) TrailInstance.Enabled = EnableTrail TrailInstance.Parent = rootPart end local function TriggerShockwaveBoost() if not Flying or not CanBoost then return end local _, _, rootPart = getCharacterParts() if not rootPart then return end CanBoost = false local camera = Workspace.CurrentCamera local boostDir = camera.CFrame.LookVector SpawnShockwave(rootPart.Position, boostDir) CurrentVelocity = boostDir * (FlySpeed * BoostMultiplier) if DynamicFOV then local startFOV = camera.FieldOfView TweenService:Create(camera, TweenInfo.new(0.12), {FieldOfView = math.min(startFOV + 25, 120)}):Play() task.delay(0.12, function() TweenService:Create(camera, TweenInfo.new(0.35), {FieldOfView = startFOV}):Play() end) end task.delay(BoostCooldown, function() CanBoost = true end) end local function EnableFly() local char, humanoid, rootPart = getCharacterParts() if not rootPart or not humanoid then return end Flying = true humanoid.PlatformStand = true humanoid:SetStateEnabled(Enum.HumanoidStateType.FallingDown, false) humanoid:SetStateEnabled(Enum.HumanoidStateType.Ragdoll, false) SetupArmJoints() Attachment = Instance.new("Attachment") Attachment.Name = "FlyAttachment" Attachment.Parent = rootPart LinearVelocity = Instance.new("LinearVelocity") LinearVelocity.MaxForce = 1e8 LinearVelocity.VectorVelocity = Vector3.zero LinearVelocity.Attachment0 = Attachment LinearVelocity.RelativeTo = Enum.ActuatorRelativeTo.World LinearVelocity.Parent = rootPart AlignOrientation = Instance.new("AlignOrientation") AlignOrientation.MaxTorque = 1e8 AlignOrientation.MaxAngularVelocity = 150 AlignOrientation.Responsiveness = 250 AlignOrientation.Mode = Enum.OrientationAlignmentMode.OneAttachment AlignOrientation.Attachment0 = Attachment AlignOrientation.CFrame = rootPart.CFrame AlignOrientation.Parent = rootPart SetupTrail(rootPart) DefaultFOV = Workspace.CurrentCamera.FieldOfView end local function DisableFly() Flying = false CurrentVelocity = Vector3.zero TargetVelocity = Vector3.zero CurrentLean = 0 CurrentTilt = 0 CurrentRoll = 0 BobTimer = 0 ResetArmJoints() local char, humanoid = getCharacterParts() if humanoid then humanoid.PlatformStand = false humanoid:SetStateEnabled(Enum.HumanoidStateType.FallingDown, true) humanoid:SetStateEnabled(Enum.HumanoidStateType.Ragdoll, true) end if LinearVelocity then LinearVelocity:Destroy() end if AlignOrientation then AlignOrientation:Destroy() end if Attachment then Attachment:Destroy() end if TrailInstance then TrailInstance:Destroy() end if Attachment0 then Attachment0:Destroy() end if Attachment1 then Attachment1:Destroy() end TweenService:Create(Workspace.CurrentCamera, TweenInfo.new(0.3), {FieldOfView = DefaultFOV}):Play() end -- UI CONTROLS local FlyToggle = FlightTab:CreateToggle({ Name = "Enable Flight", CurrentValue = false, Flag = "FlyToggle", Callback = function(Value) if Value then EnableFly() else DisableFly() end end, }) FlightTab:CreateSlider({ Name = "Flight Speed (Studs/s)", Range = {10, 1000}, Increment = 10, Suffix = "Studs", CurrentValue = 50, Flag = "FlySpeedSlider", Callback = function(Value) FlySpeed = Value end, }) FlightTab:CreateSlider({ Name = "Shift Boost Multiplier", Range = {1.5, 5}, Increment = 0.5, Suffix = "x", CurrentValue = 2.5, Flag = "BoostMultiplierSlider", Callback = function(Value) BoostMultiplier = Value end, }) FlightTab:CreateToggle({ Name = "Superman Pose & Animations", CurrentValue = true, Flag = "FlyAnimToggle", Callback = function(Value) EnableAnimations = Value if not Value then ResetArmJoints() end end, }) FlightTab:CreateToggle({ Name = "Dynamic Speed FOV", CurrentValue = true, Flag = "DynamicFOVToggle", Callback = function(Value) DynamicFOV = Value if not Value then TweenService:Create(Workspace.CurrentCamera, TweenInfo.new(0.3), {FieldOfView = DefaultFOV}):Play() end end, }) FlightTab:CreateToggle({ Name = "Flight Speed Trail", CurrentValue = true, Flag = "FlyTrailToggle", Callback = function(Value) EnableTrail = Value if TrailInstance then TrailInstance.Enabled = Value end end, }) FlightTab:CreateToggle({ Name = "Noclip While Flying", CurrentValue = false, Flag = "NoclipFlyToggle", Callback = function(Value) NoclipWhileFlying = Value end, }) FlightTab:CreateKeybind({ Name = "Toggle Fly Keybind", CurrentKeybind = "E", HoldToInteract = false, Flag = "FlyKeybind", Callback = function() FlyToggle:Set(not Flying) end, }) -- Listen for Shift Key Boost Press UserInputService.InputBegan:Connect(function(input, gameProcessed) if gameProcessed then return end if input.KeyCode == Enum.KeyCode.LeftShift and Flying then TriggerShockwaveBoost() end end) -- Re-hook joint listener on character respawn LocalPlayer.CharacterAdded:Connect(function() task.wait(0.5) SetupArmJoints() end) -- MAIN MOVEMENT & ANIMATION LOOP RunService.Stepped:Connect(function(_, deltaTime) if not Flying then return end local char, humanoid, rootPart = getCharacterParts() if not rootPart or not LinearVelocity or not AlignOrientation then return end if NoclipWhileFlying and char then for _, part in pairs(char:GetDescendants()) do if part:IsA("BasePart") then part.CanCollide = false end end end local Camera = Workspace.CurrentCamera local rawDir = Vector3.zero local isW = UserInputService:IsKeyDown(Enum.KeyCode.W) local isS = UserInputService:IsKeyDown(Enum.KeyCode.S) local isA = UserInputService:IsKeyDown(Enum.KeyCode.A) local isD = UserInputService:IsKeyDown(Enum.KeyCode.D) if isW then rawDir = rawDir + Camera.CFrame.LookVector end if isS then rawDir = rawDir - Camera.CFrame.LookVector end if isA then rawDir = rawDir - Camera.CFrame.RightVector end if isD then rawDir = rawDir + Camera.CFrame.RightVector end if UserInputService:IsKeyDown(Enum.KeyCode.Space) then rawDir = rawDir + Vector3.new(0, 1, 0) end -- Smooth Velocity Calculation if rawDir.Magnitude > 0 then TargetVelocity = rawDir.Unit * FlySpeed else TargetVelocity = Vector3.zero end CurrentVelocity = CurrentVelocity:Lerp(TargetVelocity, math.clamp(deltaTime * 8, 0, 1)) -- Advanced Multi-Axis Hovering Idle Animation BobTimer = BobTimer + deltaTime * 2.5 local bobOffset = Vector3.zero local hoverJitter = Vector3.zero if rawDir.Magnitude == 0 and EnableAnimations then bobOffset = Vector3.new( math.cos(BobTimer * 0.8) * 0.35, math.sin(BobTimer * 1.5) * 0.6, math.sin(BobTimer * 0.5) * 0.25 ) elseif EnableAnimations and CurrentVelocity.Magnitude > 100 then -- High-speed subtle micro-vibrations for wind effect hoverJitter = Vector3.new( (math.random() - 0.5) * 0.1, (math.random() - 0.5) * 0.1, (math.random() - 0.5) * 0.1 ) end LinearVelocity.VectorVelocity = CurrentVelocity + bobOffset + hoverJitter -- Universal Superman Arm Pose Animation ApplySupermanPose(isW) -- Dynamic Speed FOV if DynamicFOV then local currentSpeedRatio = CurrentVelocity.Magnitude / 1000 local targetFOV = math.clamp(DefaultFOV + (currentSpeedRatio * 35), DefaultFOV, 110) Camera.FieldOfView = Camera.FieldOfView + (targetFOV - Camera.FieldOfView) * math.clamp(deltaTime * 5, 0, 1) end -- Overhauled Body Pitching, Banking & Rolling Physics local targetLean = 0 local targetTilt = 0 local targetRoll = 0 if EnableAnimations then if isW then targetLean = math.rad(-80) -- Full horizontal Superman stance end if isS then targetLean = math.rad(30) end if isA then targetTilt = math.rad(22) targetRoll = math.rad(-25) -- Banking roll into turns end if isD then targetTilt = math.rad(-22) targetRoll = math.rad(25) -- Banking roll into turns end end CurrentLean = CurrentLean + (targetLean - CurrentLean) * math.clamp(deltaTime * 9, 0, 1) CurrentTilt = CurrentTilt + (targetTilt - CurrentTilt) * math.clamp(deltaTime * 9, 0, 1) CurrentRoll = CurrentRoll + (targetRoll - CurrentRoll) * math.clamp(deltaTime * 9, 0, 1) local camLook = Camera.CFrame.LookVector local flatLook = Vector3.new(camLook.X, 0, camLook.Z) if flatLook.Magnitude > 0.001 then local baseCFrame = CFrame.lookAt(rootPart.Position, rootPart.Position + camLook) AlignOrientation.CFrame = baseCFrame * CFrame.Angles(CurrentLean, CurrentRoll, CurrentTilt) end end)