Version / Update: v1.0.0
- Download / Script Link
- local plr, char, mouse, human, torso
repeat wait(); plr = game.Players.LocalPlayer until plr
repeat wait(); mouse = plr:GetMouse() until mouse
local input = game:GetService("UserInputService")
local ui_toggle_fly
local flying = false
local flyspeed = 65
local aimbot = false
local aimbottarget
--[[
--
-- Character
--
--]]
do
function UpdateCharacter ()
char = plr.Character
human = char:WaitForChild("Humanoid")
torso = human.Torso
end
repeat wait() until plr.Character
UpdateCharacter()
plr.CharacterAdded:Connect(UpdateCharacter)
plr.CharacterRemoving:Connect(function()
ui_toggle_fly:Set(false)
end)
end
--[[
--
-- Properties
--
--]]
local SetProperty
local RestoreProperty
do
--
-- Instance
--
local InstanceHasProperty
local GetCustomInstanceProperty
local SetCustomInstanceProperty
do
local customprops = {}
-- why is there no function for this, roblox?
InstanceHasProperty = function (obj, prop)
return pcall(function() return obj[prop] end)
end
GetCustomInstanceProperty = function (obj, key)
customprops[obj] = customprops[obj] or {}
return customprops[obj][key]
end
SetCustomInstanceProperty = function (obj, key, value)
customprops[obj] = customprops[obj] or {}
customprops[obj][key] = value
end
end
--
-- Properties
--
function Get (obj, prop)
if type(obj) == 'table' then
return rawget(obj, prop)
elseif typeof(obj) == 'Instance' then
if InstanceHasProperty(obj, prop) then
return obj[prop]
end
return GetCustomInstanceProperty(obj, prop)
end
error(typeof(obj))
end
function Set (obj, prop, value)
if type(obj) == 'table' then
rawset(obj, prop, value)
elseif typeof(obj) == 'Instance' then
if InstanceHasProperty(obj, prop) then
obj[prop] = value
else
SetCustomInstanceProperty(obj, prop, value)
end
else
error(typeof(obj))
end
end
local GetCached
local SetCached
do
function CachedProperty (prop)
return 'epic_cached_' .. prop
end
GetCached = function(obj, prop) return Get(obj, CachedProperty(prop)) end
SetCached = function(obj, prop, value) Set(obj, CachedProperty(prop), value) end
end
RestoreProperty = function (obj, prop)
local cached = GetCached(obj, prop)
if cached then
Set(obj, prop, cached)
SetCached(obj, prop, nil)
end
end
SetProperty = function (obj, prop, value)
if Get(obj, prop) then
if not GetCached(obj, prop) then
SetCached(obj, prop, Get(obj, prop))
end
Set(obj, prop, value)
end
end
end
--[[
--
-- Aimbot
--
--]]
game:GetService("RunService").RenderStepped:Connect(function()
if aimbot then
local cam = game:GetService("Workspace").CurrentCamera
if not aimbottarget then
local closest
local mpos = Vector2.new(mouse.X, mouse.Y)
for _,p in pairs(game:GetService("Players"):GetChildren()) do
if p ~= plr and p.Character then
local t = p.Character.Head
local scrpos, onscr = cam:WorldToViewportPoint(t.Position)
scrpos = Vector2.new(scrpos.X, scrpos.Y)
if onscr and (closest==nil or (scrpos-mpos).Magnitude < (closest-mpos).Magnitude) then
closest = scrpos
aimbottarget = t
end
end
end
end
if aimbottarget then
cam.CFrame = CFrame.new(cam.CFrame.Position, aimbottarget.Position)
end
else
aimbottarget = nil
end
end)
--[[
--
-- UI
--
--]]
local pepsi = loadstring(game:GetObjects("rbxassetid://7657867786")[1].Source)():CreateWindow({
Name = "Epic",
Themeable = {
Info = "Discord Server: VzYTJ7Y"
}
})
local general = pepsi:CreateTab({ Name="General" })
--[[
--
-- EPIC
--
--]]
do
local epic = general:CreateSection({ Name="Epic" })
function SetAllBasepartProperties (prop, value, ifobjfunc)
for _,v in pairs(game.Workspace:GetDescendants()) do
if v:IsA("BasePart") and (ifobjfunc==nil or ifobjfunc(v)) then
SetProperty(v, prop, value)
end
end
end
function RestoreAllBasepartProperties (prop)
for _,v in pairs(game.Workspace:GetDescendants()) do
if v:IsA("BasePart") then
RestoreProperty(v, prop)
end
end
end
epic:AddToggle({ Name="Neons", Key=true, Value=true, Callback=function(yes)
if yes then RestoreAllBasepartProperties("Material")
else SetAllBasepartProperties("Material", Enum.Material.Plastic, function(obj) return obj.Material==Enum.Material.Neon end)
end
end})
epic:AddToggle({ Name="Moving Parts", Key=true, Value=true, Callback=function(yes)
if yes then RestoreAllBasepartProperties("Velocity")
else SetAllBasepartProperties("Velocity", Vector3.zero)
end
end})
epic:AddSlider({ Name="Walk speed", Value=human.WalkSpeed, Min=1, Max=1000, Callback=function(v)
human.WalkSpeed = v
end})
epic:AddToggle({ Name="Aimbot / Aimlock", Key=Enum.KeyCode.Q, Value=false, Callback=function(yes)
aimbot = yes
end})
end
--[[
--
-- FLY
--
--]]
do
local useplatformstand = true
local left, right, up, down, frwd, back, x2, x4
function Fly ()
local bg = Instance.new("BodyGyro", torso)
bg.P = 9e4
bg.maxTorque = Vector3.new(9e9, 9e9, 9e9)
local bv = Instance.new("BodyVelocity", torso)
bv.maxForce = Vector3.new(9e9, 9e9, 9e9)
if useplatformstand then human.PlatformStand = true end
while flying do
local camframe = game.Workspace.CurrentCamera.CoordinateFrame
bg.cframe = camframe
bv.velocity = Vector3.zero
local markiplier = (input:IsKeyDown(x4:Get()) and 4) or (input:IsKeyDown(x2:Get()) and 2) or 1
if input:IsKeyDown(frwd:Get()) then bv.velocity += flyspeed * markiplier * camframe.LookVector end
if input:IsKeyDown(left:Get()) then bv.velocity += flyspeed * markiplier * camframe.RightVector * -1 end
if input:IsKeyDown(back:Get()) then bv.velocity += flyspeed * markiplier * camframe.LookVector * -1 end
if input:IsKeyDown(right:Get()) then bv.velocity += flyspeed * markiplier * camframe.RightVector end
if input:IsKeyDown(up:Get()) then bv.velocity += flyspeed * markiplier * Vector3.new(0,1,0) end
if input:IsKeyDown(down:Get()) then bv.velocity += flyspeed * markiplier * Vector3.new(0,-1,0) end
wait()
end
bg:Destroy()
bv:Destroy()
if useplatformstand then human.PlatformStand = false end
end
local fly = general:CreateSection({ Name="Fly" })
ui_toggle_fly = fly:AddToggle({ Name="Fly", Key=Enum.KeyCode.F, Callback=function(yes)
flying = yes
if yes then Fly() end
end, UnloadFunc = function()
flying = false
end})
fly:AddSlider({ Name="Fly Speed", Value=flyspeed, Min=1, Max=1000, Callback=function(v)
flyspeed = v
end})
fly:AddToggle({ Name="Use PlatformStand", Value=useplatformstand, Callback=function(yes)
useplatformstand = yes
end})
frwd = fly:AddKeybind({ Name="forwards", Value=Enum.KeyCode.W })
back = fly:AddKeybind({ Name="backwards", Value=Enum.KeyCode.S })
left = fly:AddKeybind({ Name="left", Value=Enum.KeyCode.A })
right = fly:AddKeybind({ Name="right", Value=Enum.KeyCode.D })
up = fly:AddKeybind({ Name="up", Value=Enum.KeyCode.Space })
down = fly:AddKeybind({ Name="down", Value=Enum.KeyCode.LeftShift })
x2 = fly:AddKeybind({ Name="2x speed (hold)", Value=Enum.KeyCode.LeftControl })
x4 = fly:AddKeybind({ Name="4x speed (hold)", Value=Enum.KeyCode.LeftAlt })
end
--[[
--
-- JAILBREAK
--
--]]
do
local jb = pepsi:CreateTab({ Name="JailBreak" })
local g = jb:CreateSection({ Name="General" })
function SetGCProperties (prop, value)
for _,v in pairs(getgc(true)) do
if type(v) == 'table' then
SetProperty(v, prop, value)
end
end
end
function RestoreGCProperties (prop)
for _,v in pairs(getgc(true)) do
if type(v) == 'table' then
RestoreProperty(v, prop)
end
end
end
g:AddToggle({ Name="Keycard", Key=true, Callback=function(yes)
if yes then
SetGCProperties("hasKey", function() return true end)
else
RestoreGCProperties("hasKey")
end
end})
g:AddToggle({ Name="No camera shake", Key=true, Callback=function(yes)
if yes then
SetGCProperties("CamShakeMagnitude", 0)
else
RestoreGCProperties("CamShakeMagnitude")
end
end})
g:AddToggle({ Name="No bullet spread", Key=true, Callback=function(yes)
if yes then
SetGCProperties("BulletSpread", 0)
else
RestoreGCProperties("BulletSpread")
end
end})
end[ View More ]
Universal – FLY GUI AUTO FARM | March 2026
Experience the most powerful and feature-rich version of FLY GUI AUTO FARM, with advanced aimlock and auto farm capabilities.
KEY FEATURES
FLY GUI – intuitive and user-friendly interface for easy navigation
Aimlock – precise and automatic aiming system for improved accuracy
Auto Farm – automated farming feature for efficient resource collection
Filan Jailbreak – compatibility with Filan Jailbreak for enhanced functionality
NO KEY REQUIRED – instant execution, zero ads
COMPATIBILITY
Windows 10 / 11 ✔ Supported | Delta / Arceus X ✔ Supported | Delta / Pallene ✔ Supported |
HOW TO USE
1. Download and open your executor (Solara, Wave, Celery, etc.)
2. Attach to Roblox and open any Roblox game
3. Paste the script below and press Execute
SAFE USAGE NOTE
This script is currently UNDETECTED as of March 2026.
Always test on an alt account first. Do not use on your main account.
Want more free undetected scripts?
► Browse the Full Script Library on Heapleak
Daily drops, undetected releases and the latest free scripts – all in one place.
Looking for more free scripts? Heapleak – the biggest Roblox & gaming script hub in the community.
roblox script, roblox hack 2026, universal roblox script, roblox script any game, roblox multi game script 2026, solara roblox script, wave executor roblox, undetected roblox script march 2026
Q: Is this Universal script undetected?
A: Yes, as of March 2026.
Q: Does this script require a key?
A: No.
Q: Does this script work on mobile?
A: Yes, compatible with Android and iOS.
Link to Roblox Scripting Forum, Link to Heapleak Community Hub
- Works on mobile
- Yes