Bad Fly Script
Key RequiredUniversal

Bad Fly Script

Universal ScriptRequimRequim 546 views 8 executesUpdated Feb 15, 2026
Unrated
00
Lua Script•619 lines (17001 chars)
-- StarterGui.spart
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "spart"
ScreenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
ScreenGui.Parent = game:GetService("Players").LocalPlayer:WaitForChild("PlayerGui")

-- StarterGui.spart.Main
local Main = Instance.new("Frame")
Main.BorderSizePixel = 3
Main.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
Main.Size = UDim2.new(0, 167, 0, 137)
Main.Position = UDim2.new(0.14129, 0, 0.35256, 0)
Main.BorderColor3 = Color3.fromRGB(0, 0, 0)
Main.Name = "Main"
Main.Parent = ScreenGui

-- StarterGui.spart.Main.TextLabel
local TextLabel = Instance.new("TextLabel")
TextLabel.TextWrapped = true
TextLabel.BorderSizePixel = 3
TextLabel.TextSize = 14
TextLabel.TextScaled = true
TextLabel.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
TextLabel.FontFace = Font.new("rbxasset://fonts/families/SpecialElite.json", Enum.FontWeight.Regular, Enum.FontStyle.Italic)
TextLabel.TextColor3 = Color3.fromRGB(0, 0, 0)
TextLabel.Size = UDim2.new(0, 166, 0, 32)
TextLabel.BorderColor3 = Color3.fromRGB(0, 0, 0)
TextLabel.Text = "ByMadeByTenmaski"
TextLabel.Position = UDim2.new(0, 0, 0.01435, 0)
TextLabel.Parent = Main

-- StarterGui.spart.Main.Fly
local Fly = Instance.new("TextButton")
Fly.TextWrapped = true
Fly.BorderSizePixel = 3
Fly.TextSize = 14
Fly.TextColor3 = Color3.fromRGB(0, 0, 0)
Fly.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
Fly.FontFace = Font.new("rbxasset://fonts/families/SpecialElite.json", Enum.FontWeight.Regular, Enum.FontStyle.Italic)
Fly.Size = UDim2.new(0, 166, 0, 21)
Fly.BorderColor3 = Color3.fromRGB(0, 0, 0)
Fly.Text = "Fly"
Fly.Name = "Fly"
Fly.Position = UDim2.new(0, 0, 0.24916, 0)
Fly.Parent = Main

-- StarterGui.spart.Main.Speed
local Speed = Instance.new("TextBox")
Speed.CursorPosition = -1
Speed.Name = "Speed"
Speed.PlaceholderColor3 = Color3.fromRGB(71, 71, 71)
Speed.BorderSizePixel = 3
Speed.TextWrapped = true
Speed.TextSize = 14
Speed.TextColor3 = Color3.fromRGB(82, 82, 82)
Speed.TextScaled = true
Speed.BackgroundColor3 = Color3.fromRGB(204, 204, 204)
Speed.FontFace = Font.new("rbxasset://fonts/families/SpecialElite.json", Enum.FontWeight.Regular, Enum.FontStyle.Normal)
Speed.PlaceholderText = "Enter speed..."
Speed.Size = UDim2.new(0, 166, 0, 30)
Speed.Position = UDim2.new(0, 0, 0.40344, 0)
Speed.BorderColor3 = Color3.fromRGB(0, 0, 0)
Speed.Text = ""
Speed.Parent = Main

-- StarterGui.spart.Main.Minus
local Minus = Instance.new("TextButton")
Minus.TextWrapped = true
Minus.BorderSizePixel = 3
Minus.TextSize = 14
Minus.TextScaled = true
Minus.TextColor3 = Color3.fromRGB(255, 0, 0)
Minus.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
Minus.FontFace = Font.new("rbxasset://fonts/families/SpecialElite.json", Enum.FontWeight.Regular, Enum.FontStyle.Italic)
Minus.Size = UDim2.new(0, 166, 0, 25)
Minus.BorderColor3 = Color3.fromRGB(0, 0, 0)
Minus.Text = "-"
Minus.Name = "Minus"
Minus.Position = UDim2.new(0, 0, 0.62799, 0)
Minus.Parent = Main

-- StarterGui.spart.Main.Plus
local Plus = Instance.new("TextButton")
Plus.TextWrapped = true
Plus.BorderSizePixel = 3
Plus.TextSize = 14
Plus.TextScaled = true
Plus.TextColor3 = Color3.fromRGB(47, 140, 0)
Plus.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
Plus.FontFace = Font.new("rbxasset://fonts/families/SpecialElite.json", Enum.FontWeight.Regular, Enum.FontStyle.Italic)
Plus.Size = UDim2.new(0, 166, 0, 25)
Plus.BorderColor3 = Color3.fromRGB(0, 0, 0)
Plus.Text = "+"
Plus.Name = "Plus"
Plus.Position = UDim2.new(0, 0, 0.81361, 0)
Plus.Parent = Main

-- StarterGui.spart.Main.ImageLabel
local ImageLabel = Instance.new("ImageLabel")
ImageLabel.BorderSizePixel = 0
ImageLabel.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
ImageLabel.ImageTransparency = 0.63
ImageLabel.Image = "rbxassetid://72977591660656"
ImageLabel.Size = UDim2.new(0, 189, 0, 157)
ImageLabel.BorderColor3 = Color3.fromRGB(0, 0, 0)
ImageLabel.BackgroundTransparency = 1
ImageLabel.Position = UDim2.new(-0.07784, 0, -0.07299, 0)
ImageLabel.Parent = Main

-- StarterGui.spart.Main.ShadowImage
local ShadowImage = Instance.new("ImageLabel")
ShadowImage.ZIndex = 0
ShadowImage.ImageColor3 = Color3.fromRGB(0, 0, 0)
ShadowImage.AnchorPoint = Vector2.new(0.5, 0.5)
ShadowImage.Image = "rbxassetid://16389697796"
ShadowImage.Size = UDim2.new(1.5, 0, 1.5, 0)
ShadowImage.BackgroundTransparency = 1
ShadowImage.Name = "ShadowImage"
ShadowImage.Position = UDim2.new(0.5, 0, 0.5, 0)
ShadowImage.Parent = Main

-- StarterGui.spart.OpenClose
local OpenClose = Instance.new("ImageButton")
OpenClose.BorderSizePixel = 0
OpenClose.BackgroundTransparency = 1
OpenClose.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
OpenClose.Image = "rbxassetid://109080784188677"
OpenClose.Size = UDim2.new(0, 69, 0, 69)
OpenClose.BorderColor3 = Color3.fromRGB(0, 0, 0)
OpenClose.Name = "OpenClose"
OpenClose.Position = UDim2.new(0, 0, 0.35402, 0)
OpenClose.Parent = ScreenGui

-- Sounds
local soundClick = Instance.new("Sound")
soundClick.SoundId = "rbxassetid://89396494940156"
soundClick.Volume = 0.5
soundClick.Parent = OpenClose

local soundStop = Instance.new("Sound")
soundStop.SoundId = "rbxassetid://138034732905805"
soundStop.Volume = 0.7
soundStop.Parent = OpenClose

local soundNope = Instance.new("Sound")
soundNope.SoundId = "rbxassetid://133683138108720"
soundNope.Volume = 0.5
soundNope.Parent = OpenClose

-- ========== FLIGHT FUNCTIONS (GENIUS FLY SCRIPT) ==========

local player = game:GetService("Players").LocalPlayer
local uis = game:GetService("UserInputService")
local runService = game:GetService("RunService")

local flying = false
local flySpeed = 50
local toggleKey = Enum.KeyCode.F

local bodyVelocity
local bodyGyro
local flyConnection

local function toggleFly()
	flying = not flying
	
	local character = player.Character
	if not character then return end
	
	local humanoid = character:FindFirstChild("Humanoid")
	local rootPart = character:FindFirstChild("HumanoidRootPart")
	
	if not humanoid or not rootPart then return end
	
	if flying then
		humanoid.PlatformStand = true
		
		bodyVelocity = Instance.new("BodyVelocity")
		bodyVelocity.Velocity = Vector3.new(0,0,0)
		bodyVelocity.MaxForce = Vector3.new(4000, 4000, 4000)
		bodyVelocity.Parent = rootPart
		
		bodyGyro = Instance.new("BodyGyro")
		bodyGyro.MaxTorque = Vector3.new(4000, 4000, 4000)
		bodyGyro.P = 1000
		bodyGyro.D = 50
		bodyGyro.CFrame = rootPart.CFrame
		bodyGyro.Parent = rootPart
		
		flyConnection = runService.Heartbeat:Connect(function()
			if not flying or not character or not rootPart then return end
			
			local moveDirection = Vector3.new(0,0,0)
			local camera = workspace.CurrentCamera
			
			if uis:IsKeyDown(Enum.KeyCode.W) then
				moveDirection = moveDirection + camera.CFrame.LookVector
			end
			if uis:IsKeyDown(Enum.KeyCode.S) then
				moveDirection = moveDirection - camera.CFrame.LookVector
			end
			if uis:IsKeyDown(Enum.KeyCode.A) then
				moveDirection = moveDirection - camera.CFrame.RightVector
			end
			if uis:IsKeyDown(Enum.KeyCode.D) then
				moveDirection = moveDirection + camera.CFrame.RightVector
			end
			if uis:IsKeyDown(Enum.KeyCode.Space) then
				moveDirection = moveDirection + Vector3.new(0,1,0)
			end
			if uis:IsKeyDown(Enum.KeyCode.LeftControl) then
				moveDirection = moveDirection + Vector3.new(0,-1,0)
			end
			
			if moveDirection.Magnitude > 0 then
				moveDirection = moveDirection.Unit * flySpeed
			end
			
			bodyVelocity.Velocity = moveDirection
			bodyGyro.CFrame = camera.CFrame
		end)
		
		print("✈️ Flight enabled")
	else
		if humanoid then
			humanoid.PlatformStand = false
		end
		
		if bodyVelocity then
			bodyVelocity:Destroy()
			bodyVelocity = nil
		end
		
		if bodyGyro then
			bodyGyro:Destroy()
			bodyGyro = nil
		end
		
		if flyConnection then
			flyConnection:Disconnect()
			flyConnection = nil
		end
		
		print("🛬 Flight disabled")
	end
end

-- Fly button
Fly.MouseButton1Click:Connect(toggleFly)

-- Plus button (increase speed)
Plus.MouseButton1Click:Connect(function()
	flySpeed = flySpeed + 10
	if flySpeed > 200 then flySpeed = 200 end
	print("🚀 Flight speed:", flySpeed)
	Speed.Text = tostring(flySpeed)
end)

-- Minus button (decrease speed)
Minus.MouseButton1Click:Connect(function()
	flySpeed = flySpeed - 10
	if flySpeed < 10 then flySpeed = 10 end
	print("🐢 Flight speed:", flySpeed)
	Speed.Text = tostring(flySpeed)
end)

-- Speed TextBox (manual input)
Speed.FocusLost:Connect(function()
	local newSpeed = tonumber(Speed.Text)
	if newSpeed then
		flySpeed = math.clamp(newSpeed, 10, 200)
		Speed.Text = tostring(flySpeed)
		print("🎮 Speed set to:", flySpeed)
	else
		Speed.Text = tostring(flySpeed)
	end
end)

-- F key toggle (like in your script)
uis.InputBegan:Connect(function(input)
	if input.KeyCode == toggleKey then
		toggleFly()
	end
end)

-- Handle character respawn
player.CharacterAdded:Connect(function()
	if flying then
		task.wait(0.5)
		toggleFly()
	end
end)

-- ========== TEXT ANIMATION (FLY LABEL) ==========

local textLabel = TextLabel

local quotes = {
	"I believe I can fly...",
	"I'm flying! Watch me!",
	"Fly like an eagle",
	"Ground is overrated",
	"Who needs stairs?",
	"Bird mode activated",
	"Fly hack go brrr",
	"Look ma, I'm flying!",
	"Gravity? Never heard of her",
	"Fly me to the moon",
	"Up, up and away!",
	"Fly hack loaded",
	"Airplane mode: ON",
	"Powered by Tenmaski",
	"Tenmaski: the flying legend",
}

local settings = {
	typingSpeed = 0.07,
	deleteSpeed = 0.03,
	pauseBetween = 2,
	cursor = "█",
	cursorBlinkSpeed = 0.2,
}

local cursorVisible = true
local usedQuotes = {}

spawn(function()
	while true do
		cursorVisible = not cursorVisible
		task.wait(settings.cursorBlinkSpeed)
	end
end)

local function getUniqueQuote()
	if #usedQuotes >= #quotes then
		usedQuotes = {}
	end
	
	local availableQuotes = {}
	for i, quote in ipairs(quotes) do
		local used = false
		for _, usedQuote in ipairs(usedQuotes) do
			if usedQuote == quote then
				used = true
				break
			end
		end
		if not used then
			table.insert(availableQuotes, quote)
		end
	end
	
	local randomQuote = availableQuotes[math.random(1, #availableQuotes)]
	table.insert(usedQuotes, randomQuote)
	return randomQuote
end

local function animateQuote(quoteText)
	for i = 1, #quoteText do
		local displayText = quoteText:sub(1, i)
		textLabel.Text = displayText .. (cursorVisible and settings.cursor or "")
		task.wait(settings.typingSpeed)
	end
	
	task.wait(settings.pauseBetween)
	
	for i = #quoteText, 1, -1 do
		local displayText = quoteText:sub(1, i - 1)
		textLabel.Text = displayText .. (cursorVisible and settings.cursor or "")
		task.wait(settings.deleteSpeed)
	end
end

spawn(function()
	while true do
		local currentQuote = getUniqueQuote()
		animateQuote(currentQuote)
		task.wait(settings.pauseBetween / 2)
	end
end)

-- ========== OPENCLOSE BUTTON (WITH ANTI-SPAM) ==========

local tweenService = game:GetService("TweenService")
local originalSize = OpenClose.Size
local hoverSize = UDim2.new(originalSize.X.Scale * 1.2, originalSize.X.Offset * 1.2, originalSize.Y.Scale * 1.2, originalSize.Y.Offset * 1.2)

local isOpen = false
local clickCount = 0
local fastClickCount = 0
local maxNormalClicks = 3
local spamThreshold = 7
local blockDuration = 25
local isBlocked = false
local isOnCooldown = false
local lastClickTime = 0
local welcomeShown = false

local originalPosition = Main.Position
local originalFrameSize = Main.Size

Main.Visible = false
Main.Position = UDim2.new(0.5, 0, 0.5, 0)
Main.Size = UDim2.new(0, 0, 0, 0)

local function showMainFrame()
	if isBlocked or isOnCooldown then return end
	
	Main.Visible = true
	
	for i = 1, 30 do
		local progress = i / 30
		Main.Size = UDim2.new(0, 167 * progress, 0, 137 * progress)
		Main.Rotation = (1 - progress) * 360
		task.wait(0.01)
	end
	
	Main.Position = originalPosition
	Main.Size = originalFrameSize
	Main.Rotation = 0
	isOpen = true
	
	if not welcomeShown then
		welcomeShown = true
		game:GetService("StarterGui"):SetCore("SendNotification", {
			Title = "✨ TENMASHI HUB ✨",
			Text = "Welcome back, master!\nEnjoy your flight! 🚀",
			Icon = "rbxassetid://109080784188677",
			Duration = 5
		})
	end
end

local function hideMainFrame()
	if not isOpen then return end
	
	for i = 1, 20 do
		local progress = i / 20
		Main.Size = UDim2.new(0, 167 * (1 - progress), 0, 137 * (1 - progress))
		Main.Rotation = progress * -360
		task.wait(0.01)
	end
	
	Main.Visible = false
	Main.Rotation = 0
	isOpen = false
end

local function blockForSpam()
	isBlocked = true
	isOnCooldown = true
	
	for i = 1, 2 do
		soundStop:Play()
		task.wait(0.2)
	end
	
	if isOpen then
		for i = 1, 40 do
			local progress = i / 40
			Main.Size = UDim2.new(0, 167 * (1 - progress), 0, 137 * (1 - progress))
			Main.Rotation = progress * 720
			Main.BackgroundTransparency = progress
			task.wait(0.03)
		end
		Main.Visible = false
		Main.Rotation = 0
		Main.BackgroundTransparency = 0
		isOpen = false
	end
	
	for i = 1, 3 do
		local blockTween = tweenService:Create(OpenClose, TweenInfo.new(0.15, Enum.EasingStyle.Quad, Enum.EasingDirection.In), {
			Rotation = 10,
			Position = UDim2.new(OpenClose.Position.X.Scale, OpenClose.Position.X.Offset + 5, OpenClose.Position.Y.Scale, OpenClose.Position.Y.Offset)
		})
		blockTween:Play()
		task.wait(0.1)
		
		local blockTween2 = tweenService:Create(OpenClose, TweenInfo.new(0.15, Enum.EasingStyle.Quad, Enum.EasingDirection.In), {
			Rotation = -10,
			Position = UDim2.new(OpenClose.Position.X.Scale, OpenClose.Position.X.Offset - 5, OpenClose.Position.Y.Scale, OpenClose.Position.Y.Offset)
		})
		blockTween2:Play()
		task.wait(0.1)
	end
	
	local blockTween3 = tweenService:Create(OpenClose, TweenInfo.new(0.2, Enum.EasingStyle.Quad, Enum.EasingDirection.In), {
		Rotation = 0,
		Position = OpenClose.Position
	})
	blockTween3:Play()
	
	OpenClose.ImageTransparency = 0.5
	
	game:GetService("StarterGui"):SetCore("SendNotification", {
		Title = "🚫 ANTI-SPAM 🚫",
		Text = "Too fast!\nWait 25 seconds...",
		Icon = "rbxassetid://109080784188677",
		Duration = 3
	})
	
	local startTime = tick()
	while tick() - startTime < blockDuration do
		OpenClose.ImageTransparency = 0.5 + (math.sin(tick() * 5) * 0.2)
		task.wait(0.1)
	end
	
	isBlocked = false
	isOnCooldown = false
	clickCount = 0
	fastClickCount = 0
	OpenClose.ImageTransparency = 0
	
	game:GetService("StarterGui"):SetCore("SendNotification", {
		Title = "✅ UNLOCKED",
		Text = "You can use it again!",
		Duration = 2
	})
end

OpenClose.MouseEnter:Connect(function()
	if not isBlocked and not isOnCooldown then
		local hoverTween = tweenService:Create(OpenClose, TweenInfo.new(0.2, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {
			Size = hoverSize
		})
		hoverTween:Play()
	end
end)

OpenClose.MouseLeave:Connect(function()
	if not isBlocked and not isOnCooldown then
		local leaveTween = tweenService:Create(OpenClose, TweenInfo.new(0.2, Enum.EasingStyle.Back, Enum.EasingDirection.In), {
			Size = originalSize
		})
		leaveTween:Play()
	end
end)

OpenClose.MouseButton1Click:Connect(function()
	local currentTime = tick()
	
	if isBlocked or isOnCooldown then
		soundNope:Play()
		
		local nopeTween = tweenService:Create(OpenClose, TweenInfo.new(0.1, Enum.EasingStyle.Quad, Enum.EasingDirection.In), {
			Rotation = 5
		})
		nopeTween:Play()
		task.wait(0.1)
		local nopeTween2 = tweenService:Create(OpenClose, TweenInfo.new(0.1, Enum.EasingStyle.Quad, Enum.EasingDirection.In), {
			Rotation = -5
		})
		nopeTween2:Play()
		task.wait(0.1)
		local nopeTween3 = tweenService:Create(OpenClose, TweenInfo.new(0.1, Enum.EasingStyle.Quad, Enum.EasingDirection.In), {
			Rotation = 0
		})
		nopeTween3:Play()
		
		return
	end
	
	if currentTime - lastClickTime < 0.3 then
		fastClickCount = fastClickCount + 1
	else
		fastClickCount = 1
	end
	
	lastClickTime = currentTime
	
	if fastClickCount >= spamThreshold then
		blockForSpam()
		return
	end
	
	clickCount = clickCount + 1
	
	if clickCount <= maxNormalClicks then
		soundClick:Play()
	end
	
	local spinTween = tweenService:Create(OpenClose, TweenInfo.new(0.4, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {
		Rotation = 360
	})
	spinTween:Play()
	
	local clickTween = tweenService:Create(OpenClose, TweenInfo.new(0.1, Enum.EasingStyle.Quad, Enum.EasingDirection.In), {
		Size = UDim2.new(originalSize.X.Scale * 0.9, originalSize.X.Offset * 0.9, originalSize.Y.Scale * 0.9, originalSize.Y.Offset * 0.9)
	})
	clickTween:Play()
	
	clickTween.Completed:Connect(function()
		local returnTween = tweenService:Create(OpenClose, TweenInfo.new(0.1, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {
			Size = originalSize
		})
		returnTween:Play()
	end)
	
	spinTween.Completed:Connect(function()
		local resetTween = tweenService:Create(OpenClose, TweenInfo.new(0.1, Enum.EasingStyle.Linear, Enum.EasingDirection.In), {
			Rotation = 0
		})
		resetTween:Play()
		
		if not isBlocked and not isOnCooldown then
			if isOpen then
				hideMainFrame()
			else
				showMainFrame()
			end
		end
	end)
end)

-- Initialize speed in TextBox
Speed.Text = tostring(flySpeed)

return ScreenGui

Features & Information

its shit didnt working lol

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts