-- 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