Run it
Copy the script and paste it into your executor.
:()
:(, )
Players = :()
RunService = :()
UserInputService = :()
CoreGui = :()
TweenService = :()
LocalizationService = :()
LocalPlayer = Players.LocalPlayer
Character = LocalPlayer.Character LocalPlayer.CharacterAdded:()
Humanoid = Character:()
HRP = Character:()
userLocale = .(LocalizationService.RobloxLocaleId)
isRussian = .(userLocale, ) ~=
L = {
title = isRussian ,
force = isRussian ,
clickMode = isRussian ,
on = isRussian ,
off = isRussian ,
start = isRussian ,
}
boostForce =
clickModeEnabled =
isBoostActive =
needStart =
activeBlockTarget =
activeAirDirection =
residualSpin = .zero
isInResidualSpin =
bodyVelocity
bodyAngular
safeDistance =
savedProperties = {}
()
.(savedProperties)
Character
_, part (Character:())
part:()
savedProperties[part] = {
canCollide = part.CanCollide,
massless = part.Massless
}
()
Character
_, part (Character:())
part:() savedProperties[part] part.Parent
orig = savedProperties[part]
part.CanCollide = orig.canCollide
part.Massless = orig.massless
.(savedProperties)
()
bodyVelocity
bodyVelocity:()
bodyVelocity =
bodyAngular
bodyAngular:()
bodyAngular =
Humanoid Humanoid.Parent
Humanoid.PlatformStand =
Humanoid.AutoRotate =
()
activeBlockTarget =
activeAirDirection =
residualSpin = .zero
isInResidualSpin =
()
()
Character = LocalPlayer.Character LocalPlayer.CharacterAdded:()
Humanoid = Character:()
HRP = Character:()
()
_, part (Character:())
part:()
part.CanCollide =
part.Massless =
Humanoid.PlatformStand =
Humanoid.AutoRotate =
bodyVelocity = .()
bodyVelocity.MaxForce = .(.huge, .huge, .huge)
bodyVelocity.Velocity = .zero
bodyVelocity.Parent = HRP
bodyAngular = .()
bodyAngular.MaxTorque = .(.huge, .huge, .huge)
bodyAngular.AngularVelocity = .zero
bodyAngular.Parent = HRP
()
(targetPos, isBlock)
bodyVelocity bodyAngular
HRP HRP.Parent
direction = (targetPos - HRP.Position).Unit
direction.Magnitude < direction = .(, , )
speed = boostForce *
bodyVelocity.Velocity = direction * speed
angularStrength = boostForce /
randAngular = .(
.(-, ) / ,
.(-, ) / ,
.(-, ) /
).Unit * angularStrength
bodyAngular.AngularVelocity = randAngular
residualSpin = randAngular *
isBlock
activeBlockTarget = targetPos
activeAirDirection =
isInResidualSpin =
activeAirDirection =
activeBlockTarget =
isInResidualSpin =
()
activeBlockTarget =
activeAirDirection =
bodyVelocity
bodyVelocity.Velocity = .zero
(hitPos, target, normal)
isBoostActive
HRP HRP.Parent
isDragging
activeBlockTarget
(HRP.Position - activeBlockTarget).Magnitude < safeDistance
isBlock =
safeTargetPos = hitPos
target target:() target:(Character)
surfNormal = normal (HRP.Position - hitPos).Unit
surfNormal.Magnitude == surfNormal = .(,,)
safeTargetPos = hitPos + surfNormal * safeDistance
isBlock =
(safeTargetPos, isBlock)
mouse = LocalPlayer:()
mouse.Button1Down:(()
UserInputService.TouchEnabled
UserInputService:(.UserInputType.MouseButton2)
target = mouse.Target
hitPos = mouse.Hit.Position
normal = target target:() .(mouse.TargetSurface)
(hitPos, target, normal)
)
touchStartPos =
touchMoved =
touchStartTime =
UserInputService.InputBegan:((input, gameProcessed)
gameProcessed
input.UserInputType == .UserInputType.Touch
touchStartPos = input.Position
touchMoved =
touchStartTime = ()
)
UserInputService.InputChanged:((input)
input.UserInputType == .UserInputType.Touch touchStartPos
delta = (input.Position - touchStartPos).Magnitude
delta >
touchMoved =
)
UserInputService.InputEnded:((input)
input.UserInputType == .UserInputType.Touch
touchMoved (() - touchStartTime) <
mousePos = UserInputService:()
ray = .CurrentCamera:(mousePos.X, mousePos.Y)
raycastParams = RaycastParams.()
raycastParams.FilterType = .RaycastFilterType.Blacklist
raycastParams.FilterDescendantsInstances = {Character}
rayResult = :(ray.Origin, ray.Direction * , raycastParams)
hitPos = rayResult rayResult.Position (ray.Origin + ray.Direction * )
target = rayResult rayResult.Instance
normal = rayResult rayResult.Normal
(hitPos, target, normal)
touchStartPos =
touchMoved =
)
RunService.Heartbeat:((dt)
HRP HRP.Parent
bodyVelocity bodyAngular
activeBlockTarget
dir = (activeBlockTarget - HRP.Position)
distance = dir.Magnitude
distance <
()
isInResidualSpin =
bodyAngular.AngularVelocity = residualSpin
direction = dir.Unit
maxSpeed = boostForce *
speed = maxSpeed
distance < safeDistance +
t = .((distance - safeDistance) / , , )
speed = maxSpeed * t
bodyVelocity.Velocity = direction * speed
bodyAngular.AngularVelocity = bodyAngular.AngularVelocity *
speed < bodyAngular.AngularVelocity.Magnitude <
()
isInResidualSpin =
bodyAngular.AngularVelocity = residualSpin
activeAirDirection
bodyVelocity.Velocity = bodyVelocity.Velocity *
bodyAngular.AngularVelocity = bodyAngular.AngularVelocity *
bodyVelocity.Velocity.Magnitude < bodyAngular.AngularVelocity.Magnitude <
()
bodyAngular.AngularVelocity = .zero
isInResidualSpin
bodyAngular.AngularVelocity = bodyAngular.AngularVelocity *
bodyVelocity.Velocity = .zero
bodyAngular.AngularVelocity.Magnitude <
bodyAngular.AngularVelocity = .zero
isInResidualSpin =
bodyVelocity.Velocity = .zero
bodyAngular.AngularVelocity = .zero
)
CoreGui:() CoreGui.MeteorBoostUI:()
screenGui = .()
screenGui.Name =
screenGui.ResetOnSpawn =
screenGui.IgnoreGuiInset =
screenGui.Parent = CoreGui
mainFrame = .()
mainFrame.Size = .(, , , )
mainFrame.Position = .(, -, , )
mainFrame.BackgroundColor3 = .(, , )
mainFrame.BorderSizePixel =
mainFrame.ZIndex =
mainFrame.ClipsDescendants =
mainFrame.Parent = screenGui
(parent)
t =
l = .(); l.Size = .(, t, , ); l.BackgroundColor3 = .(,,); l.BorderSizePixel=; l.ZIndex=; l.Parent=parent
tp = .(); tp.Size = .(,,,t); tp.BackgroundColor3 = .(,,); tp.BorderSizePixel=; tp.ZIndex=; tp.Parent=parent
r = .(); r.Size = .(, t, , ); r.Position=.(,-t,,); r.BackgroundColor3 = .(,,); r.BorderSizePixel=; r.ZIndex=; r.Parent=parent
b = .(); b.Size = .(,,,t); b.Position=.(,,,-t); b.BackgroundColor3 = .(,,); b.BorderSizePixel=; b.ZIndex=; b.Parent=parent
(mainFrame)
titleBar = .()
titleBar.Size = .(, -, , )
titleBar.Position = .(, , , )
titleBar.BackgroundColor3 = .(,,)
titleBar.BorderSizePixel =
titleBar.ZIndex =
titleBar.Parent = mainFrame
titleLabel = .()
titleLabel.Size = .(, -, , )
titleLabel.Position = .(, , , )
titleLabel.BackgroundTransparency =
titleLabel.Text = L.title
titleLabel.TextColor3 = .(,,)
titleLabel.Font = .Font.Code
titleLabel.TextSize =
titleLabel.TextXAlignment = .TextXAlignment.Left
titleLabel.ZIndex =
titleLabel.Parent = titleBar
collapseButton = .()
collapseButton.Size = .(, , , )
collapseButton.Position = .(, -, , )
collapseButton.BackgroundColor3 = .(,,)
collapseButton.BorderSizePixel =
collapseButton.Text =
collapseButton.TextColor3 = .(,,)
collapseButton.Font = .Font.Code
collapseButton.TextSize =
collapseButton.ZIndex =
collapseButton.Parent = titleBar
(collapseButton)
titleDivider = .()
titleDivider.Size = .(, -, , )
titleDivider.Position = .(, , , )
titleDivider.BackgroundColor3 = .(,,)
titleDivider.BorderSizePixel =
titleDivider.ZIndex =
titleDivider.Parent = mainFrame
contentFrame = .()
contentFrame.Size = .(, -, , -)
contentFrame.Position = .(, , , )
contentFrame.BackgroundTransparency =
contentFrame.ZIndex =
contentFrame.Visible =
contentFrame.Parent = mainFrame
isDragging =
dragStartPos =
frameStartPos =
(input)
isDragging =
dragStartPos = input.Position
frameStartPos = mainFrame.Position
()
isDragging =
titleBar.InputBegan:((input)
input.UserInputType == .UserInputType.MouseButton1 input.UserInputType == .UserInputType.Touch
(input)
)
titleBar.InputEnded:(stopDrag)
titleLabel.InputBegan:((input)
input.UserInputType == .UserInputType.MouseButton1 input.UserInputType == .UserInputType.Touch
(input)
)
titleLabel.InputEnded:(stopDrag)
UserInputService.InputChanged:((input)
isDragging (input.UserInputType == .UserInputType.MouseMovement input.UserInputType == .UserInputType.Touch)
delta = input.Position - dragStartPos
mainFrame.Position = .(frameStartPos.X.Scale, frameStartPos.X.Offset + delta.X, frameStartPos.Y.Scale, frameStartPos.Y.Offset + delta.Y)
)
UserInputService.InputEnded:((input)
input.UserInputType == .UserInputType.MouseButton1 input.UserInputType == .UserInputType.Touch ()
)
menuCollapsed =
collapseButton.MouseButton1Click:(()
menuCollapsed = menuCollapsed
menuCollapsed
mainFrame:(.(, , , ), , , , )
collapseButton.Text =
contentFrame.Visible =
mainFrame:(.(, , , ), , , , )
collapseButton.Text =
contentFrame.Visible =
)
(text, yPos, callback)
btn = .()
btn.Size = .(, , , )
btn.Position = .(, -, , yPos)
btn.BackgroundColor3 = .(,,)
btn.Text = text
btn.TextColor3 = .(,,)
btn.Font = .Font.Code
btn.TextSize =
btn.BorderSizePixel =
btn.ZIndex =
btn.Parent = contentFrame
(btn)
btn.Activated:(callback)
btn
(text, yPos, default, callback)
btn = .()
btn.Size = .(, , , )
btn.Position = .(, -, , yPos)
btn.BackgroundColor3 = default .(,,) .(,,)
btn.Text = text .. .. (default L.on L.off)
btn.TextColor3 = .(,,)
btn.Font = .Font.Code
btn.TextSize =
btn.BorderSizePixel =
btn.ZIndex =
btn.Parent = contentFrame
(btn)
state = default
debounce =
btn.Activated:(()
debounce
debounce =
state = state
btn.Text = text .. .. (state L.on L.off)
btn.BackgroundColor3 = state .(,,) .(,,)
(state)
.(, () debounce = )
)
btn
forceLabel = .()
forceLabel.Size = .(, , , )
forceLabel.Position = .(, -, , )
forceLabel.BackgroundTransparency =
forceLabel.Text = L.force ..
forceLabel.TextColor3 = .(,,)
forceLabel.Font = .Font.Code
forceLabel.TextSize =
forceLabel.ZIndex =
forceLabel.Parent = contentFrame
forceInput = .()
forceInput.Size = .(, , , )
forceInput.Position = .(, -, , )
forceInput.BackgroundColor3 = .(,,)
forceInput.TextColor3 = .(,,)
forceInput.PlaceholderText =
forceInput.PlaceholderColor3 = .(,,)
forceInput.Text =
forceInput.Font = .Font.Code
forceInput.TextSize =
forceInput.BorderSizePixel =
forceInput.ZIndex =
forceInput.Parent = contentFrame
(forceInput)
forceInput.FocusLost:(()
num = (forceInput.Text)
num num >= num <=
boostForce = num
forceLabel.Text = L.force .. .. num
forceInput.Text =
forceInput.Text =
)
(L.clickMode, , , (state)
clickModeEnabled = state
needStart
isBoostActive = state
)
startBtn = .()
startBtn.Size = .(, , , )
startBtn.Position = .(, -, , )
startBtn.BackgroundColor3 = .(, , )
startBtn.Text = L.start
startBtn.TextColor3 = .(,,)
startBtn.Font = .Font.Code
startBtn.TextSize =
startBtn.BorderSizePixel =
startBtn.ZIndex =
startBtn.Visible =
startBtn.Parent = contentFrame
(startBtn)
startBtn.MouseButton1Click:(()
Character = LocalPlayer.Character
Character
Humanoid = Character:()
HRP = Character:()
()
tweenInfo = TweenInfo.(, .EasingStyle.Quad, .EasingDirection.Out)
goals = { BackgroundTransparency = , TextTransparency = , Size = .(, , , ) }
tween = TweenService:(startBtn, tweenInfo, goals)
tween:()
tween.Completed:(()
startBtn.Visible =
startBtn.BackgroundTransparency =
startBtn.TextTransparency =
startBtn.Size = .(, , , )
)
needStart =
isBoostActive = clickModeEnabled
)
Humanoid.Died:(()
needStart =
isBoostActive =
()
startBtn
startBtn.Visible =
)
LocalPlayer.CharacterAdded:((newChar)
Character = newChar
Humanoid = newChar:()
HRP = newChar:()
()
isInResidualSpin =
needStart =
isBoostActive =
startBtn
startBtn.Visible =
Humanoid.Died:(()
needStart =
isBoostActive =
()
startBtn
startBtn.Visible =
)
)
.Destroying:(()
:(, )
screenGui screenGui:()
()
)Turn your character into a weightless meteor with realistic physics. Click anywhere to send yourself flying through the air, or click on a part to gracefully land at a safe distance without touching the surface. Features: • Zero-gravity meteor physics – your entire body floats and spins like in space • Click-to-boost – tap anywhere to fly in that direction with random realistic spinning • Smart surface landing – clicking on a block makes you fly to it and stop at a safe distance (6 studs), never clipping through or touching the surface • Residual spin – when stopping near a surface, your character keeps spinning slightly for a realistic effect • Adjustable force (1-500) – type your desired boost strength • Click Mode toggle – enable or disable click flying anytime • Collapsible draggable GUI – clean Nova-style menu you can collapse and move anywhere • Death support – after dying, press the START button (with smooth fade-out animation) to resume flying • Mobile support – touch detection distinguishes taps from camera rotation, no accidental flying • R6 and R15 compatible Tested on mobile, fully supports PC as well.

Universal