
Key RequiredUniversal

--// ECLIPSE• FE FLY
--// Made by K_4VAE on Roblox
local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local TweenService = game:GetService("TweenService")
local Lighting = game:GetService("Lighting")
local LocalPlayer = Players.LocalPlayer
local PlayerGui = LocalPlayer:WaitForChild("PlayerGui")
--==================================================
-- CONFIG
--==================================================
local LOADING_TIME = 3
local PARTICLE_INTERVAL = 15
local DEFAULT_SPEED = 60
local MIN_SPEED = 1
local MAX_SPEED = 500
local BLACK = Color3.fromRGB(7, 7, 9)
local DARK = Color3.fromRGB(13, 13, 16)
local DARKER = Color3.fromRGB(20, 20, 24)
local ORANGE = Color3.fromRGB(255, 105, 15)
local LIGHT_ORANGE = Color3.fromRGB(255, 160, 60)
local DARK_ORANGE = Color3.fromRGB(135, 45, 5)
local WHITE = Color3.fromRGB(245, 245, 245)
local GREY = Color3.fromRGB(145, 145, 145)
--==================================================
-- STATE
--==================================================
local flying = false
local unloaded = false
local guiHidden = false
local flySpeed = DEFAULT_SPEED
local keyboardLayout = "AZERTY"
local waitingForKey = nil
local character
local humanoid
local rootPart
local flyVelocity
local flyGyro
local flyConnection
local espEnabled = false
local playerNamesEnabled = false
local skeletonEnabled = false
local fpsBoostEnabled = false
local antiLagEnabled = false
local rtxEnabled = false
local noclipEnabled = false
local noclipConnection
local connections = {}
local espObjects = {}
--==================================================
-- ORIGINAL LIGHTING
--==================================================
local originalLighting = {
GlobalShadows = Lighting.GlobalShadows,
FogEnd = Lighting.FogEnd,
Brightness = Lighting.Brightness,
ExposureCompensation = Lighting.ExposureCompensation,
Ambient = Lighting.Ambient,
OutdoorAmbient = Lighting.OutdoorAmbient,
ClockTime = Lighting.ClockTime
}
--==================================================
-- KEYBINDS
--==================================================
local keys = {
Fly = Enum.KeyCode.F,
Forward = Enum.KeyCode.Z,
Backward = Enum.KeyCode.S,
Left = Enum.KeyCode.Q,
Right = Enum.KeyCode.D,
Up = Enum.KeyCode.E,
Down = Enum.KeyCode.X
}
--==================================================
-- HELPERS
--==================================================
local function connect(signal, callback)
local connection = signal:Connect(callback)
table.insert(connections, connection)
return connection
end
local function disconnectAll()
for _, connection in ipairs(connections) do
if connection then
connection:Disconnect()
end
end
table.clear(connections)
end
local function createCorner(parent, radius)
local corner = Instance.new("UICorner")
corner.CornerRadius = UDim.new(0, radius or 8)
corner.Parent = parent
return corner
end
local function createStroke(parent, color, thickness, transparency)
local stroke = Instance.new("UIStroke")
stroke.Color = color
stroke.Thickness = thickness or 1
stroke.Transparency = transparency or 0
stroke.Parent = parent
return stroke
end
--==================================================
-- LOADING SCREEN
--==================================================
local gui = Instance.new("ScreenGui")
gui.Name = "EclipseFEFly"
gui.ResetOnSpawn = false
gui.IgnoreGuiInset = true
gui.Parent = PlayerGui
local loading = Instance.new("Frame")
loading.Size = UDim2.fromScale(1, 1)
loading.BackgroundColor3 = BLACK
loading.BorderSizePixel = 0
loading.ZIndex = 100
loading.Parent = gui
local loadingTitle = Instance.new("TextLabel")
loadingTitle.Size = UDim2.new(1, 0, 0, 60)
loadingTitle.Position = UDim2.new(0, 0, 0.34, 0)
loadingTitle.BackgroundTransparency = 1
loadingTitle.Text = "ECLIPSE"
loadingTitle.TextColor3 = ORANGE
loadingTitle.TextSize = 40
loadingTitle.Font = Enum.Font.GothamBlack
loadingTitle.ZIndex = 101
loadingTitle.Parent = loading
local loadingSub = Instance.new("TextLabel")
loadingSub.Size = UDim2.new(1, 0, 0, 30)
loadingSub.Position = UDim2.new(0, 0, 0.43, 0)
loadingSub.BackgroundTransparency = 1
loadingSub.Text = "FE FLY"
loadingSub.TextColor3 = WHITE
loadingSub.TextSize = 17
loadingSub.Font = Enum.Font.GothamBold
loadingSub.ZIndex = 101
loadingSub.Parent = loading
local loadingMade = Instance.new("TextLabel")
loadingMade.Size = UDim2.new(1, 0, 0, 25)
loadingMade.Position = UDim2.new(0, 0, 0.49, 0)
loadingMade.BackgroundTransparency = 1
loadingMade.Text = "Made by K_4VAE on Roblox"
loadingMade.TextColor3 = LIGHT_ORANGE
loadingMade.TextSize = 14
loadingMade.Font = Enum.Font.GothamBold
loadingMade.ZIndex = 101
loadingMade.Parent = loading
local loadingText = Instance.new("TextLabel")
loadingText.Size = UDim2.new(1, 0, 0, 25)
loadingText.Position = UDim2.new(0, 0, 0.535, 0)
loadingText.BackgroundTransparency = 1
loadingText.Text = "Initializing..."
loadingText.TextColor3 = GREY
loadingText.TextSize = 13
loadingText.Font = Enum.Font.Gotham
loadingText.ZIndex = 101
loadingText.Parent = loading
local loadingBack = Instance.new("Frame")
loadingBack.Size = UDim2.new(0, 300, 0, 5)
loadingBack.Position = UDim2.new(0.5, -150, 0.59, 0)
loadingBack.BackgroundColor3 = DARKER
loadingBack.BorderSizePixel = 0
loadingBack.ZIndex = 101
loadingBack.Parent = loading
createCorner(loadingBack, 5)
local loadingBar = Instance.new("Frame")
loadingBar.Size = UDim2.new(0, 0, 1, 0)
loadingBar.BackgroundColor3 = ORANGE
loadingBar.BorderSizePixel = 0
loadingBar.ZIndex = 102
loadingBar.Parent = loadingBack
createCorner(loadingBar, 5)
TweenService:Create(
loadingBar,
TweenInfo.new(LOADING_TIME, Enum.EasingStyle.Linear),
{Size = UDim2.fromScale(1, 1)}
):Play()
task.wait(LOADING_TIME)
if loading then
loading:Destroy()
end
--==================================================
-- MAIN FRAME
--==================================================
local main = Instance.new("Frame")
main.Name = "Main"
main.Size = UDim2.new(0, 330, 0, 310)
main.Position = UDim2.new(0.5, -165, 0.5, -155)
main.BackgroundColor3 = BLACK
main.BorderSizePixel = 0
main.ClipsDescendants = false
main.ZIndex = 5
main.Parent = gui
createCorner(main, 14)
createStroke(main, ORANGE, 1.5, 0.2)
local glow = Instance.new("ImageLabel")
glow.Name = "Glow"
glow.AnchorPoint = Vector2.new(0.5, 0.5)
glow.Position = UDim2.fromScale(0.5, 0.5)
glow.Size = UDim2.new(1, 45, 1, 45)
glow.BackgroundTransparency = 1
glow.Image = "rbxassetid://5028857084"
glow.ImageColor3 = ORANGE
glow.ImageTransparency = 0.9
glow.ZIndex = 4
glow.Parent = main
--==================================================
-- TITLE
--==================================================
local title = Instance.new("TextLabel")
title.Size = UDim2.new(1, -75, 0, 50)
title.Position = UDim2.new(0, 15, 0, 0)
title.BackgroundTransparency = 1
title.Text = "ECLIPSE • FE FLY"
title.TextColor3 = WHITE
title.TextSize = 20
title.Font = Enum.Font.GothamBlack
title.TextXAlignment = Enum.TextXAlignment.Left
title.ZIndex = 7
title.Parent = main
local titleLine = Instance.new("Frame")
titleLine.Size = UDim2.new(0, 50, 0, 2)
titleLine.Position = UDim2.new(0, 16, 0, 48)
titleLine.BackgroundColor3 = ORANGE
titleLine.BorderSizePixel = 0
titleLine.ZIndex = 7
titleLine.Parent = main
--==================================================
-- SETTINGS BUTTON
--==================================================
local settingsButton = Instance.new("TextButton")
settingsButton.Size = UDim2.new(0, 40, 0, 40)
settingsButton.Position = UDim2.new(1, -50, 0, 5)
settingsButton.BackgroundColor3 = DARK
settingsButton.Text = "⚙"
settingsButton.TextColor3 = ORANGE
settingsButton.TextSize = 21
settingsButton.BorderSizePixel = 0
settingsButton.ZIndex = 8
settingsButton.Parent = main
createCorner(settingsButton, 8)
--==================================================
-- FLY BUTTON
--==================================================
local flyButton = Instance.new("TextButton")
flyButton.Size = UDim2.new(0, 270, 0, 48)
flyButton.Position = UDim2.new(0.5, -135, 0, 65)
flyButton.BackgroundColor3 = DARK
flyButton.Text = "✦ FLY : OFF"
flyButton.TextColor3 = ORANGE
flyButton.TextSize = 17
flyButton.Font = Enum.Font.GothamBold
flyButton.BorderSizePixel = 0
flyButton.ZIndex = 7
flyButton.Parent = main
createCorner(flyButton, 9)
createStroke(flyButton, DARK_ORANGE, 1, 0.25)
--==================================================
-- FLY KEY
--==================================================
local flyKeyButton = Instance.new("TextButton")
flyKeyButton.Size = UDim2.new(0, 270, 0, 40)
flyKeyButton.Position = UDim2.new(0.5, -135, 0, 125)
flyKeyButton.BackgroundColor3 = DARK
flyKeyButton.Text = "Fly Key : F"
flyKeyButton.TextColor3 = WHITE
flyKeyButton.TextSize = 14
flyKeyButton.Font = Enum.Font.Gotham
flyKeyButton.BorderSizePixel = 0
flyKeyButton.ZIndex = 7
flyKeyButton.Parent = main
createCorner(flyKeyButton, 8)
--==================================================
-- SPEED
--==================================================
local speedBox = Instance.new("TextBox")
speedBox.Size = UDim2.new(0, 270, 0, 40)
speedBox.Position = UDim2.new(0.5, -135, 0, 175)
speedBox.BackgroundColor3 = DARK
speedBox.Text = tostring(DEFAULT_SPEED)
speedBox.PlaceholderText = "Fly Speed"
speedBox.TextColor3 = WHITE
speedBox.TextSize = 14
speedBox.Font = Enum.Font.Gotham
speedBox.ClearTextOnFocus = false
speedBox.BorderSizePixel = 0
speedBox.ZIndex = 7
speedBox.Parent = main
createCorner(speedBox, 8)
--==================================================
-- UNLOAD
--==================================================
local unloadButton = Instance.new("TextButton")
unloadButton.Size = UDim2.new(0, 120, 0, 32)
unloadButton.Position = UDim2.new(0, 12, 1, -44)
unloadButton.BackgroundColor3 = Color3.fromRGB(25, 10, 8)
unloadButton.Text = "✕ UNLOAD"
unloadButton.TextColor3 = Color3.fromRGB(255, 90, 60)
unloadButton.TextSize = 12
unloadButton.Font = Enum.Font.GothamBold
unloadButton.BorderSizePixel = 0
unloadButton.ZIndex = 7
unloadButton.Parent = main
createCorner(unloadButton, 7)
createStroke(unloadButton, Color3.fromRGB(130, 35, 20), 1, 0.3)
--==================================================
-- SETTINGS
--==================================================
local settings = Instance.new("Frame")
settings.Name = "Settings"
settings.Size = UDim2.new(0, 450, 0, 600)
settings.Position = UDim2.new(0.5, -225, 0.5, -300)
settings.BackgroundColor3 = BLACK
settings.BorderSizePixel = 0
settings.Visible = false
settings.ClipsDescendants = true
settings.ZIndex = 20
settings.Parent = gui
createCorner(settings, 14)
createStroke(settings, ORANGE, 1.5, 0.2)
local settingsTitle = Instance.new("TextLabel")
settingsTitle.Size = UDim2.new(1, -65, 0, 50)
settingsTitle.Position = UDim2.new(0, 15, 0, 0)
settingsTitle.BackgroundTransparency = 1
settingsTitle.Text = "⚙ SETTINGS"
settingsTitle.TextColor3 = WHITE
settingsTitle.TextSize = 21
settingsTitle.Font = Enum.Font.GothamBlack
settingsTitle.TextXAlignment = Enum.TextXAlignment.Left
settingsTitle.ZIndex = 22
settingsTitle.Parent = settings
local closeSettings = Instance.new("TextButton")
closeSettings.Size = UDim2.new(0, 40, 0, 40)
closeSettings.Position = UDim2.new(1, -50, 0, 5)
closeSettings.BackgroundColor3 = DARK
closeSettings.Text = "X"
closeSettings.TextColor3 = ORANGE
closeSettings.TextSize = 17
closeSettings.Font = Enum.Font.GothamBold
closeSettings.BorderSizePixel = 0
closeSettings.ZIndex = 22
closeSettings.Parent = settings
createCorner(closeSettings, 8)
--==================================================
-- SETTINGS SCROLL
--==================================================
local scroll = Instance.new("ScrollingFrame")
scroll.Size = UDim2.new(1, -20, 1, -60)
scroll.Position = UDim2.new(0, 10, 0, 55)
scroll.BackgroundTransparency = 1
scroll.BorderSizePixel = 0
scroll.ScrollBarThickness = 3
scroll.ScrollBarImageColor3 = ORANGE
scroll.CanvasSize = UDim2.new(0, 0, 0, 850)
scroll.ZIndex = 21
scroll.Parent = settings
--==================================================
-- SECTION
--==================================================
local function createSection(text, y)
local label = Instance.new("TextLabel")
label.Size = UDim2.new(1, -20, 0, 25)
label.Position = UDim2.new(0, 10, 0, y)
label.BackgroundTransparency = 1
label.Text = text
label.TextColor3 = GREY
label.TextSize = 12
label.Font = Enum.Font.GothamBold
label.TextXAlignment = Enum.TextXAlignment.Left
label.ZIndex = 22
label.Parent = scroll
return label
end
--==================================================
-- KEYBOARD
--==================================================
createSection("KEYBOARD LAYOUT", 10)
local azertyButton = Instance.new("TextButton")
azertyButton.Size = UDim2.new(0, 190, 0, 40)
azertyButton.Position = UDim2.new(0, 10, 0, 40)
azertyButton.BackgroundColor3 = ORANGE
azertyButton.Text = "AZERTY ✓"
azertyButton.TextColor3 = BLACK
azertyButton.TextSize = 14
azertyButton.Font = Enum.Font.GothamBold
azertyButton.BorderSizePixel = 0
azertyButton.ZIndex = 22
azertyButton.Parent = scroll
createCorner(azertyButton, 8)
local qwertyButton = Instance.new("TextButton")
qwertyButton.Size = UDim2.new(0, 190, 0, 40)
qwertyButton.Position = UDim2.new(0, 210, 0, 40)
qwertyButton.BackgroundColor3 = DARK
qwertyButton.Text = "QWERTY"
qwertyButton.TextColor3 = WHITE
qwertyButton.TextSize = 14
qwertyButton.Font = Enum.Font.GothamBold
qwertyButton.BorderSizePixel = 0
qwertyButton.ZIndex = 22
qwertyButton.Parent = scroll
createCorner(qwertyButton, 8)
--==================================================
-- KEYBINDS
--==================================================
createSection("FLY CONTROLS", 95)
local keyButtons = {}
local function createKeyButton(keyName, text, x, y)
local button = Instance.new("TextButton")
button.Size = UDim2.new(0, 190, 0, 38)
button.Position = UDim2.new(0, x, 0, y)
button.BackgroundColor3 = DARK
button.Text = text
button.TextColor3 = WHITE
button.TextSize = 13
button.Font = Enum.Font.Gotham
button.BorderSizePixel = 0
button.ZIndex = 22
button.Parent = scroll
createCorner(button, 7)
createStroke(button, DARK_ORANGE, 1, 0.4)
keyButtons[keyName] = button
return button
end
local forwardButton = createKeyButton("Forward", "Forward : Z", 10, 125)
local backwardButton = createKeyButton("Backward", "Backward : S", 210, 125)
local leftButton = createKeyButton("Left", "Left : Q", 10, 170)
local rightButton = createKeyButton("Right", "Right : D", 210, 170)
local upButton = createKeyButton("Up", "Up : E", 10, 215)
local downButton = createKeyButton("Down", "Down : X", 210, 215)
--==================================================
-- PERFORMANCE
--==================================================
createSection("PERFORMANCE", 270)
local fpsButton = Instance.new("TextButton")
fpsButton.Size = UDim2.new(0, 390, 0, 40)
fpsButton.Position = UDim2.new(0, 10, 0, 300)
fpsButton.BackgroundColor3 = DARK
fpsButton.Text = "FPS BOOST ● OFF"
fpsButton.TextColor3 = WHITE
fpsButton.TextSize = 13
fpsButton.Font = Enum.Font.GothamBold
fpsButton.TextXAlignment = Enum.TextXAlignment.Left
fpsButton.BorderSizePixel = 0
fpsButton.ZIndex = 22
fpsButton.Parent = scroll
createCorner(fpsButton, 8)
local antiLagButton = Instance.new("TextButton")
antiLagButton.Size = UDim2.new(0, 390, 0, 40)
antiLagButton.Position = UDim2.new(0, 10, 0, 350)
antiLagButton.BackgroundColor3 = DARK
antiLagButton.Text = "ANTI-LAG ● OFF"
antiLagButton.TextColor3 = WHITE
antiLagButton.TextSize = 13
antiLagButton.Font = Enum.Font.GothamBold
antiLagButton.TextXAlignment = Enum.TextXAlignment.Left
antiLagButton.BorderSizePixel = 0
antiLagButton.ZIndex = 22
antiLagButton.Parent = scroll
createCorner(antiLagButton, 8)
local rtxButton = Instance.new("TextButton")
rtxButton.Size = UDim2.new(0, 390, 0, 40)
rtxButton.Position = UDim2.new(0, 10, 0, 400)
rtxButton.BackgroundColor3 = DARK
rtxButton.Text = "RTX / REALISTIC ● OFF"
rtxButton.TextColor3 = WHITE
rtxButton.TextSize = 13
rtxButton.Font = Enum.Font.GothamBold
rtxButton.TextXAlignment = Enum.TextXAlignment.Left
rtxButton.BorderSizePixel = 0
rtxButton.ZIndex = 22
rtxButton.Parent = scroll
createCorner(rtxButton, 8)
local noclipButton = Instance.new("TextButton")
noclipButton.Size = UDim2.new(0, 390, 0, 40)
noclipButton.Position = UDim2.new(0, 10, 0, 450)
noclipButton.BackgroundColor3 = DARK
noclipButton.Text = "NOCLIP ● OFF"
noclipButton.TextColor3 = WHITE
noclipButton.TextSize = 13
noclipButton.Font = Enum.Font.GothamBold
noclipButton.TextXAlignment = Enum.TextXAlignment.Left
noclipButton.BorderSizePixel = 0
noclipButton.ZIndex = 22
noclipButton.Parent = scroll
createCorner(noclipButton, 8)
--==================================================
-- ESP
--==================================================
createSection("ESP", 505)
local espButton = Instance.new("TextButton")
espButton.Size = UDim2.new(0, 390, 0, 40)
espButton.Position = UDim2.new(0, 10, 0, 535)
espButton.BackgroundColor3 = DARK
espButton.Text = "ESP ● OFF"
espButton.TextColor3 = WHITE
espButton.TextSize = 13
espButton.Font = Enum.Font.GothamBold
espButton.TextXAlignment = Enum.TextXAlignment.Left
espButton.BorderSizePixel = 0
espButton.ZIndex = 22
espButton.Parent = scroll
createCorner(espButton, 8)
local namesButton = Instance.new("TextButton")
namesButton.Size = UDim2.new(0, 390, 0, 40)
namesButton.Position = UDim2.new(0, 10, 0, 585)
namesButton.BackgroundColor3 = DARK
namesButton.Text = "PLAYER NAMES ● OFF"
namesButton.TextColor3 = WHITE
namesButton.TextSize = 13
namesButton.Font = Enum.Font.GothamBold
namesButton.TextXAlignment = Enum.TextXAlignment.Left
namesButton.BorderSizePixel = 0
namesButton.ZIndex = 22
namesButton.Parent = scroll
createCorner(namesButton, 8)
local skeletonButton = Instance.new("TextButton")
skeletonButton.Size = UDim2.new(0, 390, 0, 40)
skeletonButton.Position = UDim2.new(0, 10, 0, 635)
skeletonButton.BackgroundColor3 = DARK
skeletonButton.Text = "SKELETON ● OFF"
skeletonButton.TextColor3 = WHITE
skeletonButton.TextSize = 13
skeletonButton.Font = Enum.Font.GothamBold
skeletonButton.TextXAlignment = Enum.TextXAlignment.Left
skeletonButton.BorderSizePixel = 0
skeletonButton.ZIndex = 22
skeletonButton.Parent = scroll
createCorner(skeletonButton, 8)
scroll.CanvasSize = UDim2.new(0, 0, 0, 700)
--==================================================
-- DRAGGING
--==================================================
local function makeDraggable(frame, handle)
local dragging = false
local dragStart
local startPosition
connect(handle.InputBegan, function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
dragging = true
dragStart = input.Position
startPosition = frame.Position
end
end)
connect(handle.InputEnded, function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
dragging = false
end
end)
connect(UserInputService.InputChanged, function(input)
if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then
local delta = input.Position - dragStart
frame.Position = UDim2.new(
startPosition.X.Scale,
startPosition.X.Offset + delta.X,
startPosition.Y.Scale,
startPosition.Y.Offset + delta.Y
)
end
end)
end
makeDraggable(main, title)
makeDraggable(settings, settingsTitle)
--==================================================
-- CHARACTER
--==================================================
local function setupCharacter(char)
character = char
humanoid = char:WaitForChild("Humanoid")
rootPart = char:WaitForChild("HumanoidRootPart")
flying = false
if flyButton then
flyButton.Text = "✦ FLY : OFF"
flyButton.TextColor3 = ORANGE
end
if noclipEnabled then
task.wait(0.2)
for _, object in ipairs(char:GetDescendants()) do
if object:IsA("BasePart") then
object.CanCollide = false
end
end
end
end
if LocalPlayer.Character then
setupCharacter(LocalPlayer.Character)
end
connect(LocalPlayer.CharacterAdded, setupCharacter)
--==================================================
-- FLY
--==================================================
local function stopFly()
flying = false
if flyConnection then
flyConnection:Disconnect()
flyConnection = nil
end
if flyVelocity then
flyVelocity:Destroy()
flyVelocity = nil
end
if flyGyro then
flyGyro:Destroy()
flyGyro = nil
end
if humanoid then
humanoid.PlatformStand = false
end
if flyButton then
flyButton.Text = "✦ FLY : OFF"
flyButton.TextColor3 = ORANGE
end
end
local function startFly()
if not humanoid or not rootPart then
return
end
flying = true
flyButton.Text = "✦ FLY : ON"
flyButton.TextColor3 = LIGHT_ORANGE
flyVelocity = Instance.new("BodyVelocity")
flyVelocity.MaxForce = Vector3.new(math.huge, math.huge, math.huge)
flyVelocity.Velocity = Vector3.zero
flyVelocity.Parent = rootPart
flyGyro = Instance.new("BodyGyro")
flyGyro.MaxTorque = Vector3.new(math.huge, math.huge, math.huge)
flyGyro.P = 10000
flyGyro.Parent = rootPart
humanoid.PlatformStand = true
flyConnection = RunService.RenderStepped:Connect(function()
if not flying or not rootPart or not rootPart.Parent then
return
end
local camera = workspace.CurrentCamera
local direction = Vector3.zero
if UserInputService:IsKeyDown(keys.Forward) then
direction += camera.CFrame.LookVector
end
if UserInputService:IsKeyDown(keys.Backward) then
direction -= camera.CFrame.LookVector
end
if UserInputService:IsKeyDown(keys.Left) then
direction -= camera.CFrame.RightVector
end
if UserInputService:IsKeyDown(keys.Right) then
direction += camera.CFrame.RightVector
end
if UserInputService:IsKeyDown(keys.Up) then
direction += Vector3.new(0, 1, 0)
end
if UserInputService:IsKeyDown(keys.Down) then
direction -= Vector3.new(0, 1, 0)
end
if direction.Magnitude > 0 then
direction = direction.Unit * flySpeed
end
flyVelocity.Velocity = direction
flyGyro.CFrame = camera.CFrame
end)
end
--==================================================
-- SKELETON
--==================================================
local function removeSkeleton(data)
if not data or not data.skeleton then
return
end
for _, beam in ipairs(data.skeleton) do
if beam then
beam:Destroy()
end
end
data.skeleton = nil
end
local function getPart(char, name)
return char:FindFirstChild(name)
end
local function createSkeletonLine(folder, partA, partB)
if not partA or not partB then
return nil
end
local attachmentA = Instance.new("Attachment")
attachmentA.Name = "EclipseSkeletonA"
attachmentA.Parent = partA
local attachmentB = Instance.new("Attachment")
attachmentB.Name = "EclipseSkeletonB"
attachmentB.Parent = partB
local beam = Instance.new("Beam")
beam.Name = "EclipseSkeleton"
beam.Attachment0 = attachmentA
beam.Attachment1 = attachmentB
beam.Color = ColorSequence.new(LIGHT_ORANGE)
beam.Width0 = 0.055
beam.Width1 = 0.055
beam.FaceCamera = true
beam.LightEmission = 1
beam.Transparency = NumberSequence.new(0)
beam.Parent = folder
return {
beam = beam,
attachmentA = attachmentA,
attachmentB = attachmentB
}
end
local function createSkeleton(player)
if player == LocalPlayer then
return nil
end
local char = player.Character
if not char then
return nil
end
local folder = Instance.new("Folder")
folder.Name = "EclipseSkeleton"
folder.Parent = char
local lines = {}
local torso = getPart(char, "UpperTorso") or getPart(char, "Torso")
local head = getPart(char, "Head")
local upperLeftArm = getPart(char, "LeftUpperArm")
local lowerLeftArm = getPart(char, "LeftLowerArm")
local leftHand = getPart(char, "LeftHand")
local upperRightArm = getPart(char, "RightUpperArm")
local lowerRightArm = getPart(char, "RightLowerArm")
local rightHand = getPart(char, "RightHand")
local upperLeftLeg = getPart(char, "LeftUpperLeg")
local lowerLeftLeg = getPart(char, "LeftLowerLeg")
local leftFoot = getPart(char, "LeftFoot")
local upperRightLeg = getPart(char, "RightUpperLeg")
local lowerRightLeg = getPart(char, "RightLowerLeg")
local rightFoot = getPart(char, "RightFoot")
-- R15
if torso and head then
table.insert(lines, createSkeletonLine(folder, head, torso))
end
if torso and upperLeftArm then
table.insert(lines, createSkeletonLine(folder, torso, upperLeftArm))
table.insert(lines, createSkeletonLine(folder, upperLeftArm, lowerLeftArm))
table.insert(lines, createSkeletonLine(folder, lowerLeftArm, leftHand))
end
if torso and upperRightArm then
table.insert(lines, createSkeletonLine(folder, torso, upperRightArm))
table.insert(lines, createSkeletonLine(folder, upperRightArm, lowerRightArm))
table.insert(lines, createSkeletonLine(folder, lowerRightArm, rightHand))
end
if torso and upperLeftLeg then
table.insert(lines, createSkeletonLine(folder, torso, upperLeftLeg))
table.insert(lines, createSkeletonLine(folder, upperLeftLeg, lowerLeftLeg))
table.insert(lines, createSkeletonLine(folder, lowerLeftLeg, leftFoot))
end
if torso and upperRightLeg then
table.insert(lines, createSkeletonLine(folder, torso, upperRightLeg))
table.insert(lines, createSkeletonLine(folder, upperRightLeg, lowerRightLeg))
table.insert(lines, createSkeletonLine(folder, lowerRightLeg, rightFoot))
end
-- R6
local leftArm = getPart(char, "Left Arm")
local rightArm = getPart(char, "Right Arm")
local leftLeg = getPart(char, "Left Leg")
local rightLeg = getPart(char, "Right Leg")
if torso and not upperLeftArm then
if head then
table.insert(lines, createSkeletonLine(folder, head, torso))
end
if leftArm then
table.insert(lines, createSkeletonLine(folder, torso, leftArm))
end
if rightArm then
table.insert(lines, createSkeletonLine(folder, torso, rightArm))
end
if leftLeg then
table.insert(lines, createSkeletonLine(folder, torso, leftLeg))
end
if rightLeg then
table.insert(lines, createSkeletonLine(folder, torso, rightLeg))
end
end
local cleanLines = {}
for _, line in ipairs(lines) do
if line then
table.insert(cleanLines, line.beam)
end
end
return {
folder = folder,
skeleton = cleanLines
}
end
--==================================================
-- ESP
--==================================================
local function removeESP(player)
local data = espObjects[player]
if not data then
return
end
if data.highlight then
data.highlight:Destroy()
end
if data.billboard then
data.billboard:Destroy()
end
if data.skeletonFolder then
data.skeletonFolder:Destroy()
end
espObjects[player] = nil
end
local function updateESP(player)
if player == LocalPlayer then
return
end
removeESP(player)
if not espEnabled and not playerNamesEnabled and not skeletonEnabled then
return
end
local char = player.Character
if not char then
return
end
local root = char:FindFirstChild("HumanoidRootPart")
if not root then
return
end
local data = {}
-- ESP highlight
if espEnabled then
local highlight = Instance.new("Highlight")
highlight.Name = "EclipseESP"
highlight.FillColor = ORANGE
highlight.OutlineColor = LIGHT_ORANGE
highlight.FillTransparency = 0.8
highlight.OutlineTransparency = 0
highlight.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
highlight.Parent = char
data.highlight = highlight
end
-- Names
if playerNamesEnabled then
local billboard = Instance.new("BillboardGui")
billboard.Name = "EclipsePlayerName"
billboard.Size = UDim2.new(0, 200, 0, 40)
billboard.StudsOffset = Vector3.new(0, 3, 0)
billboard.AlwaysOnTop = true
billboard.Adornee = root
billboard.Parent = gui
local label = Instance.new("TextLabel")
label.Size = UDim2.fromScale(1, 1)
label.BackgroundTransparency = 1
label.Text = player.DisplayName
label.TextColor3 = LIGHT_ORANGE
label.TextStrokeColor3 = BLACK
label.TextStrokeTransparency = 0
label.TextSize = 14
label.Font = Enum.Font.GothamBold
label.Parent = billboard
data.billboard = billboard
end
-- Skeleton
if skeletonEnabled then
local skeletonData = createSkeleton(player)
if skeletonData then
data.skeletonFolder = skeletonData.folder
end
end
espObjects[player] = data
end
local function refreshESP()
for _, player in ipairs(Players:GetPlayers()) do
if player ~= LocalPlayer then
updateESP(player)
end
end
end
--==================================================
-- FPS BOOST
--==================================================
local function setFPSBoost(enabled)
fpsBoostEnabled = enabled
if enabled then
Lighting.GlobalShadows = false
Lighting.FogEnd = 100000
else
Lighting.GlobalShadows = originalLighting.GlobalShadows
Lighting.FogEnd = originalLighting.FogEnd
end
fpsButton.Text =
"FPS BOOST ● " ..
(enabled and "ON" or "OFF")
fpsButton.TextColor3 =
enabled and LIGHT_ORANGE or WHITE
end
--==================================================
-- ANTI LAG
--==================================================
local function setAntiLag(enabled)
antiLagEnabled = enabled
for _, object in ipairs(workspace:GetDescendants()) do
if object:IsA("ParticleEmitter") then
if enabled then
if object:GetAttribute("EclipseOriginalRate") == nil then
object:SetAttribute(
"EclipseOriginalRate",
object.Rate
)
end
object.Rate = math.min(object.Rate, 5)
else
local original =
object:GetAttribute("EclipseOriginalRate")
if original then
object.Rate = original
object:SetAttribute(
"EclipseOriginalRate",
nil
)
end
end
end
if object:IsA("Trail") then
if enabled then
if object:GetAttribute("EclipseOriginalLifetime") == nil then
object:SetAttribute(
"EclipseOriginalLifetime",
object.Lifetime
)
end
object.Lifetime = NumberRange.new(0.05)
else
local original =
object:GetAttribute("EclipseOriginalLifetime")
if original then
object.Lifetime = original
object:SetAttribute(
"EclipseOriginalLifetime",
nil
)
end
end
end
end
antiLagButton.Text =
"ANTI-LAG ● " ..
(enabled and "ON" or "OFF")
antiLagButton.TextColor3 =
enabled and LIGHT_ORANGE or WHITE
end
--==================================================
-- RTX / REALISTIC
--==================================================
local rtxObjects = {}
local function removeRTXObjects()
for _, object in ipairs(rtxObjects) do
if object and object.Parent then
object:Destroy()
end
end
table.clear(rtxObjects)
end
local function setRTX(enabled)
rtxEnabled = enabled
removeRTXObjects()
if enabled then
-- Atmosphere
local atmosphere = Instance.new("Atmosphere")
atmosphere.Name = "EclipseRTX_Atmosphere"
atmosphere.Density = 0.28
atmosphere.Offset = 0.15
atmosphere.Color = Color3.fromRGB(199, 216, 255)
atmosphere.Decay = Color3.fromRGB(90, 105, 130)
atmosphere.Glare = 0.15
atmosphere.Haze = 1.2
atmosphere.Parent = Lighting
table.insert(rtxObjects, atmosphere)
-- Bloom
local bloom = Instance.new("BloomEffect")
bloom.Name = "EclipseRTX_Bloom"
bloom.Intensity = 0.32
bloom.Size = 24
bloom.Threshold = 1.1
bloom.Parent = Lighting
table.insert(rtxObjects, bloom)
-- Color correction
local color = Instance.new("ColorCorrectionEffect")
color.Name = "EclipseRTX_Color"
color.Brightness = 0.04
color.Contrast = 0.16
color.Saturation = 0.08
color.TintColor = Color3.fromRGB(255, 245, 230)
color.Parent = Lighting
table.insert(rtxObjects, color)
-- Sun rays
local sun = Instance.new("SunRaysEffect")
sun.Name = "EclipseRTX_SunRays"
sun.Intensity = 0.08
sun.Spread = 0.85
sun.Parent = Lighting
table.insert(rtxObjects, sun)
-- Depth of field
local depth = Instance.new("DepthOfFieldEffect")
depth.Name = "EclipseRTX_Depth"
depth.FarIntensity = 0.08
depth.FocusDistance = 35
depth.InFocusRadius = 45
depth.NearIntensity = 0.03
depth.Parent = Lighting
table.insert(rtxObjects, depth)
Lighting.GlobalShadows = true
Lighting.Brightness = math.max(
originalLighting.Brightness,
2
)
Lighting.ExposureCompensation = 0.05
else
Lighting.GlobalShadows = originalLighting.GlobalShadows
Lighting.Brightness = originalLighting.Brightness
Lighting.ExposureCompensation =
originalLighting.ExposureCompensation
end
rtxButton.Text =
"RTX / REALISTIC ● " ..
(enabled and "ON" or "OFF")
rtxButton.TextColor3 =
enabled and LIGHT_ORANGE or WHITE
end
--==================================================
-- NOCLIP
--==================================================
local function setNoclip(enabled)
noclipEnabled = enabled
if noclipConnection then
noclipConnection:Disconnect()
noclipConnection = nil
end
if enabled then
noclipConnection = RunService.Stepped:Connect(function()
if not noclipEnabled or not character then
return
end
for _, object in ipairs(character:GetDescendants()) do
if object:IsA("BasePart") then
object.CanCollide = false
end
end
end)
end
noclipButton.Text =
"NOCLIP ● " ..
(enabled and "ON" or "OFF")
noclipButton.TextColor3 =
enabled and LIGHT_ORANGE or WHITE
end
--==================================================
-- LAYOUT
--==================================================
local function setAZERTY()
keyboardLayout = "AZERTY"
keys.Forward = Enum.KeyCode.Z
keys.Backward = Enum.KeyCode.S
keys.Left = Enum.KeyCode.Q
keys.Right = Enum.KeyCode.D
keys.Up = Enum.KeyCode.E
keys.Down = Enum.KeyCode.X
forwardButton.Text = "Forward : Z"
backwardButton.Text = "Backward : S"
leftButton.Text = "Left : Q"
rightButton.Text = "Right : D"
upButton.Text = "Up : E"
downButton.Text = "Down : X"
azertyButton.Text = "AZERTY ✓"
azertyButton.BackgroundColor3 = ORANGE
azertyButton.TextColor3 = BLACK
qwertyButton.Text = "QWERTY"
qwertyButton.BackgroundColor3 = DARK
qwertyButton.TextColor3 = WHITE
end
local function setQWERTY()
keyboardLayout = "QWERTY"
keys.Forward = Enum.KeyCode.W
keys.Backward = Enum.KeyCode.S
keys.Left = Enum.KeyCode.A
keys.Right = Enum.KeyCode.D
keys.Up = Enum.KeyCode.Space
keys.Down = Enum.KeyCode.LeftControl
forwardButton.Text = "Forward : W"
backwardButton.Text = "Backward : S"
leftButton.Text = "Left : A"
rightButton.Text = "Right : D"
upButton.Text = "Up : SPACE"
downButton.Text = "Down : CTRL"
azertyButton.Text = "AZERTY"
azertyButton.BackgroundColor3 = DARK
azertyButton.TextColor3 = WHITE
qwertyButton.Text = "QWERTY ✓"
qwertyButton.BackgroundColor3 = ORANGE
qwertyButton.TextColor3 = BLACK
end
--==================================================
-- KEYBIND EDITING
--==================================================
local displayNames = {
Forward = "Forward",
Backward = "Backward",
Left = "Left",
Right = "Right",
Up = "Up",
Down = "Down"
}
local function beginKeybindChange(button, keyName)
if waitingForKey then
return
end
waitingForKey = keyName
button.Text = "Press a key..."
button.TextColor3 = ORANGE
end
connect(forwardButton.MouseButton1Click, function()
beginKeybindChange(forwardButton, "Forward")
end)
connect(backwardButton.MouseButton1Click, function()
beginKeybindChange(backwardButton, "Backward")
end)
connect(leftButton.MouseButton1Click, function()
beginKeybindChange(leftButton, "Left")
end)
connect(rightButton.MouseButton1Click, function()
beginKeybindChange(rightButton, "Right")
end)
connect(upButton.MouseButton1Click, function()
beginKeybindChange(upButton, "Up")
end)
connect(downButton.MouseButton1Click, function()
beginKeybindChange(downButton, "Down")
end)
connect(flyKeyButton.MouseButton1Click, function()
if waitingForKey then
return
end
waitingForKey = "Fly"
flyKeyButton.Text = "Press a key..."
flyKeyButton.TextColor3 = ORANGE
end)
--==================================================
-- BUTTON EVENTS
--==================================================
connect(flyButton.MouseButton1Click, function()
if flying then
stopFly()
else
startFly()
end
end)
connect(settingsButton.MouseButton1Click, function()
main.Visible = false
settings.Visible = true
end)
connect(closeSettings.MouseButton1Click, function()
settings.Visible = false
main.Visible = true
end)
connect(azertyButton.MouseButton1Click, setAZERTY)
connect(qwertyButton.MouseButton1Click, setQWERTY)
connect(speedBox.FocusLost, function()
local value = tonumber(speedBox.Text)
if value then
flySpeed = math.clamp(value, MIN_SPEED, MAX_SPEED)
else
flySpeed = DEFAULT_SPEED
end
speedBox.Text = tostring(flySpeed)
end)
--==================================================
-- ESP BUTTONS
--==================================================
connect(espButton.MouseButton1Click, function()
espEnabled = not espEnabled
espButton.Text =
"ESP ● " ..
(espEnabled and "ON" or "OFF")
espButton.TextColor3 =
espEnabled and LIGHT_ORANGE or WHITE
refreshESP()
end)
connect(namesButton.MouseButton1Click, function()
playerNamesEnabled = not playerNamesEnabled
namesButton.Text =
"PLAYER NAMES ● " ..
(playerNamesEnabled and "ON" or "OFF")
namesButton.TextColor3 =
playerNamesEnabled and LIGHT_ORANGE or WHITE
refreshESP()
end)
connect(skeletonButton.MouseButton1Click, function()
skeletonEnabled = not skeletonEnabled
skeletonButton.Text =
"SKELETON ● " ..
(skeletonEnabled and "ON" or "OFF")
skeletonButton.TextColor3 =
skeletonEnabled and LIGHT_ORANGE or WHITE
refreshESP()
end)
--==================================================
-- PERFORMANCE BUTTONS
--==================================================
connect(fpsButton.MouseButton1Click, function()
setFPSBoost(not fpsBoostEnabled)
end)
connect(antiLagButton.MouseButton1Click, function()
setAntiLag(not antiLagEnabled)
end)
connect(rtxButton.MouseButton1Click, function()
setRTX(not rtxEnabled)
end)
connect(noclipButton.MouseButton1Click, function()
setNoclip(not noclipEnabled)
end)
--==================================================
-- PLAYER EVENTS
--==================================================
connect(Players.PlayerAdded, function(player)
connect(player.CharacterAdded, function()
task.wait(0.5)
if espEnabled or playerNamesEnabled or skeletonEnabled then
updateESP(player)
end
end)
end)
connect(Players.PlayerRemoving, function(player)
removeESP(player)
end)
for _, player in ipairs(Players:GetPlayers()) do
if player ~= LocalPlayer then
connect(player.CharacterAdded, function()
task.wait(0.5)
if espEnabled or playerNamesEnabled or skeletonEnabled then
updateESP(player)
end
end)
end
end
--==================================================
-- GUI PARTICLES
--==================================================
local particleFolder = Instance.new("Folder")
particleFolder.Name = "EclipseParticles"
particleFolder.Parent = gui
local function createParticle()
if unloaded or not main.Visible then
return
end
local particle = Instance.new("Frame")
local size = math.random(2, 5)
particle.Size = UDim2.new(0, size, 0, size)
particle.BackgroundColor3 = ORANGE
particle.BackgroundTransparency = 0.1
particle.BorderSizePixel = 0
particle.ZIndex = 15
particle.Parent = particleFolder
createCorner(particle, 10)
local side = math.random(1, 4)
if side == 1 then
particle.Position = UDim2.new(
math.random(),
0,
0,
-10
)
elseif side == 2 then
particle.Position = UDim2.new(
1,
10,
math.random(),
0
)
elseif side == 3 then
particle.Position = UDim2.new(
math.random(),
0,
1,
10
)
else
particle.Position = UDim2.new(
0,
-10,
math.random(),
0
)
end
local target = UDim2.new(
math.random(),
math.random(-30, 30),
math.random(),
math.random(-30, 30)
)
local tween = TweenService:Create(
particle,
TweenInfo.new(
math.random(12, 20) / 10,
Enum.EasingStyle.Quad,
Enum.EasingDirection.Out
),
{
Position = target,
BackgroundTransparency = 1,
Size = UDim2.new(0, 1, 0, 1)
}
)
tween:Play()
tween.Completed:Connect(function()
if particle then
particle:Destroy()
end
end)
end
task.spawn(function()
while not unloaded do
task.wait(PARTICLE_INTERVAL)
if not unloaded and main.Visible then
for i = 1, 14 do
if unloaded then
break
end
createParticle()
task.wait(0.05)
end
end
end
end)
--==================================================
-- CTRL HIDE / SHOW + KEYBINDS
--==================================================
connect(UserInputService.InputBegan, function(input, gameProcessed)
if unloaded then
return
end
if input.UserInputType ~= Enum.UserInputType.Keyboard then
return
end
-- Keybind editing
if waitingForKey then
local selectedKey = waitingForKey
if selectedKey == "Fly" then
keys.Fly = input.KeyCode
flyKeyButton.Text =
"Fly Key : " .. input.KeyCode.Name
flyKeyButton.TextColor3 = WHITE
else
keys[selectedKey] = input.KeyCode
keyButtons[selectedKey].Text =
displayNames[selectedKey] ..
" : " ..
input.KeyCode.Name
keyButtons[selectedKey].TextColor3 = WHITE
end
waitingForKey = nil
return
end
if gameProcessed then
return
end
-- CTRL = hide/show
if input.KeyCode == Enum.KeyCode.LeftControl
or input.KeyCode == Enum.KeyCode.RightControl then
guiHidden = not guiHidden
main.Visible = not guiHidden
if guiHidden then
settings.Visible = false
end
return
end
-- Fly key
if input.KeyCode == keys.Fly then
if flying then
stopFly()
else
startFly()
end
end
end)
--==================================================
-- UNLOAD
--==================================================
local function unload()
if unloaded then
return
end
unloaded = true
-- Stop Fly
stopFly()
-- Stop Noclip
if noclipConnection then
noclipConnection:Disconnect()
noclipConnection = nil
end
noclipEnabled = false
-- Restore character collision
if character then
for _, object in ipairs(character:GetDescendants()) do
if object:IsA("BasePart") then
object.CanCollide = true
end
end
end
-- Remove ESP
for player in pairs(espObjects) do
removeESP(player)
end
table.clear(espObjects)
-- Remove RTX
removeRTXObjects()
-- Restore lighting
Lighting.GlobalShadows = originalLighting.GlobalShadows
Lighting.FogEnd = originalLighting.FogEnd
Lighting.Brightness = originalLighting.Brightness
Lighting.ExposureCompensation =
originalLighting.ExposureCompensation
Lighting.Ambient = originalLighting.Ambient
Lighting.OutdoorAmbient = originalLighting.OutdoorAmbient
Lighting.ClockTime = originalLighting.ClockTime
-- Restore anti-lag
for _, object in ipairs(workspace:GetDescendants()) do
if object:IsA("ParticleEmitter") then
local original =
object:GetAttribute("EclipseOriginalRate")
if original then
object.Rate = original
object:SetAttribute(
"EclipseOriginalRate",
nil
)
end
end
if object:IsA("Trail") then
local original =
object:GetAttribute(
"EclipseOriginalLifetime"
)
if original then
object.Lifetime = original
object:SetAttribute(
"EclipseOriginalLifetime",
nil
)
end
end
end
-- Remove particles
if particleFolder then
particleFolder:Destroy()
end
-- Disconnect
disconnectAll()
-- Remove GUI
if gui then
gui:Destroy()
end
end
connect(unloadButton.MouseButton1Click, unload)
--==================================================
-- INITIALIZE
--==================================================
setAZERTY()
print("ECLIPSE • FE FLY loaded successfully.")
print("Made by K_4VAE on Roblox")No comments yet for this script.



