
KeylessUniversal

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



