Tsb BuilderFly V1 made by valker038 on rblx also buggy (repo
Key Required

Tsb BuilderFly V1 made by valker038 on rblx also buggy (repo

The Strongest BattlegroundsAgent_982Agent_982 74.3K views 2.8K executesUpdated Oct 26, 2024
3.8/ 5(4 votes)
3175% Positive
Lua Script•289 lines (8746 chars)
local player = game.Players.LocalPlayer
local screenGui = Instance.new("ScreenGui")
local flyButton = Instance.new("TextButton")
local upButton = Instance.new("TextButton")
local downButton = Instance.new("TextButton")
local uICorner = Instance.new("UICorner")

screenGui.Name = "ChildEmp"
screenGui.Parent = player:WaitForChild("PlayerGui")

flyButton.Name = "FlyButton"
flyButton.Text = "Fly"
flyButton.Size = UDim2.new(0, 100, 0, 50)
flyButton.Position = UDim2.new(0.9, -50, 0.5, -25)
flyButton.Parent = screenGui
flyButton.Visible = true

uICorner.Parent = flyButton

upButton.Name = "UpButton"
upButton.Text = "^"
upButton.Size = UDim2.new(0, 100, 0, 50)
upButton.Position = UDim2.new(0.8, -50, 0.4, -25)
upButton.Parent = screenGui
upButton.Visible = false
uICorner:Clone().Parent = upButton

downButton.Name = "DownButton"
downButton.Text = "v"
downButton.Size = UDim2.new(0, 100, 0, 50)
downButton.Position = UDim2.new(0.8, -50, 0.6, -25)
downButton.Parent = screenGui
downButton.Visible = false
uICorner:Clone().Parent = downButton

local loadingFrame = Instance.new("Frame")
loadingFrame.Size = UDim2.new(0, 300, 0, 100)
loadingFrame.Position = UDim2.new(0.5, -150, 0.5, -50)
loadingFrame.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
loadingFrame.BackgroundTransparency = 0.5
loadingFrame.Parent = screenGui

local loadingText = Instance.new("TextLabel")
loadingText.Size = UDim2.new(1, 0, 1, 0)
loadingText.Text = "Loading V1 Fly...."
loadingText.TextColor3 = Color3.fromRGB(255, 255, 255)
loadingText.TextScaled = true
loadingText.Parent = loadingFrame

local topText = Instance.new("TextLabel")
topText.Size = UDim2.new(1, 0, 0, 50)
topText.Position = UDim2.new(0, 0, 0, 0)
topText.BackgroundTransparency = 1
topText.Text = "made by valker038 Discord: https://discord.gg/7RjcmaUSsy"
topText.TextColor3 = Color3.fromRGB(255, 255, 255)
topText.TextScaled = true
topText.Parent = screenGui

wait(5)

loadingFrame:Destroy()
topText.TextTransparency = 0.4

local idleAnimationId = "rbxassetid://17124061663"
local forwardAnimationId = "rbxassetid://17124063826"
local leftAnimationId = "rbxassetid://17124105294"
local rightAnimationId = "rbxassetid://17124112547"
local backwardAnimationId = "rbxassetid://17124067635"

local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")

local idleAnimation = Instance.new("Animation")
idleAnimation.AnimationId = idleAnimationId
local idleAnimTrack = humanoid:LoadAnimation(idleAnimation)

local forwardAnimation = Instance.new("Animation")
forwardAnimation.AnimationId = forwardAnimationId
local forwardAnimTrack = humanoid:LoadAnimation(forwardAnimation)

local leftAnimation = Instance.new("Animation")
leftAnimation.AnimationId = leftAnimationId
local leftAnimTrack = humanoid:LoadAnimation(leftAnimation)

local rightAnimation = Instance.new("Animation")
rightAnimation.AnimationId = rightAnimationId
local rightAnimTrack = humanoid:LoadAnimation(rightAnimation)

local backwardAnimation = Instance.new("Animation")
backwardAnimation.AnimationId = backwardAnimationId
local backwardAnimTrack = humanoid:LoadAnimation(backwardAnimation)

local flying = false
local flightSpeed = 35
local bodyVelocity
local originalWalkSpeed
local originalJumpPower

local hooks = {
    walkspeed = 29,
    jumppower = 50
}

local originalIndex
local originalNewIndex

originalIndex = hookmetamethod(game, "__index", function(self, property)
    if not checkcaller() and self:IsA("Humanoid") and self:IsDescendantOf(player.Character) then
        local lowerProperty = property:lower()
        if hooks[lowerProperty] then
            return hooks[lowerProperty]
        end
    end
    return originalIndex(self, property)
end)

originalNewIndex = hookmetamethod(game, "__newindex", function(self, property, value)
    if not checkcaller() and self:IsA("Humanoid") and self:IsDescendantOf(player.Character) then
        local lowerProperty = property:lower()
        if hooks[lowerProperty] then
            hooks[lowerProperty] = value
            return
        end
    end
    return originalNewIndex(self, property, value)
end)

local function startFlying()
    local character = player.Character or player.CharacterAdded:Wait()
    local humanoid = character:WaitForChild("Humanoid")

    originalWalkSpeed = humanoid.WalkSpeed
    originalJumpPower = humanoid.JumpPower
    humanoid.PlatformStand = true

    bodyVelocity = Instance.new("BodyVelocity")
    bodyVelocity.MaxForce = Vector3.new(0, math.huge, 0)
    bodyVelocity.Velocity = Vector3.new(0, 0, 0)
    bodyVelocity.Parent = character.HumanoidRootPart

    humanoid.WalkSpeed = 40
    humanoid.JumpPower = 50

    -- Play idle animation when flying starts
    idleAnimTrack:Play()
end

local function stopFlying()
    if bodyVelocity then
        bodyVelocity:Destroy()
    end
    local character = player.Character or player.CharacterAdded:Wait()
    local humanoid = character:WaitForChild("Humanoid")
    humanoid.PlatformStand = false

    humanoid.WalkSpeed = originalWalkSpeed
    humanoid.JumpPower = originalJumpPower
    
    idleAnimTrack:Stop()
    forwardAnimTrack:Stop()
    leftAnimTrack:Stop()
    rightAnimTrack:Stop()
    backwardAnimTrack:Stop()
end

flyButton.MouseButton1Click:Connect(function()
    if not flying then
        startFlying()
        flying = true

        upButton.Visible = true
        downButton.Visible = true

        local movingUp = false
        local movingDown = false

        upButton.MouseButton1Down:Connect(function()
            movingUp = true
            while movingUp do
                bodyVelocity.Velocity = Vector3.new(0, flightSpeed, 0)
                wait(0.1)
                idleAnimTrack:Stop()
            end
            idleAnimTrack:Play()
        end)

        downButton.MouseButton1Down:Connect(function()
            movingDown = true
            while movingDown do
                bodyVelocity.Velocity = Vector3.new(0, -flightSpeed, 0)
                wait(0.1)
                idleAnimTrack:Stop()
            end
            idleAnimTrack:Play()
        end)

        upButton.MouseButton1Up:Connect(function()
            movingUp = false
            bodyVelocity.Velocity = Vector3.new(0, 0, 0)
            idleAnimTrack:Play() 
        end)

        downButton.MouseButton1Up:Connect(function()
            movingDown = false
            bodyVelocity.Velocity = Vector3.new(0, 0, 0)
            idleAnimTrack:Play()
        end)
    else
        stopFlying()
        flying = false

        upButton.Visible = false
        downButton.Visible = false
    end
end)

local function playMovementAnimation(direction)
    if direction == "forward" then
        forwardAnimTrack:Play()
        idleAnimTrack:Stop()
    elseif direction == "left" then
        leftAnimTrack:Play()
        idleAnimTrack:Stop()
    elseif direction == "right" then
        rightAnimTrack:Play()
        idleAnimTrack:Stop()
    elseif direction == "backward" then
        backwardAnimTrack:Play()
        idleAnimTrack:Stop()
    else
        idleAnimTrack:Play()
    end
end

game:GetService("RunService").RenderStepped:Connect(function()
    if flying then
        local moveDirection = Vector3.new()
        if player.Character and player.Character:FindFirstChild("HumanoidRootPart") then
            moveDirection = player.Character.HumanoidRootPart.Velocity
            if moveDirection.Z > 0 then
                playMovementAnimation("forward")
            elseif moveDirection.Z < 0 then
                playMovementAnimation("backward")
            elseif moveDirection.X > 0 then
                playMovementAnimation("right")
            elseif moveDirection.X < 0 then
                playMovementAnimation("left")
            else
                playMovementAnimation("idle")
            end
        end
    end
end)


-- Animation AntiChange Tool
local player = game.Players.LocalPlayer
local backpack = player:WaitForChild("Backpack")

local invisibleTool = Instance.new("Tool")
invisibleTool.Name = "Hold When Fly Active (made by valker038 on roblox)"
invisibleTool.RequiresHandle = true

local handle = Instance.new("Part")
handle.Name = "Handle"
handle.Size = Vector3.new(1, 1, 1)
handle.Transparency = 1
handle.Anchored = false
handle.CanCollide = false
handle.Parent = invisibleTool

local function onEquipped()
    invisibleTool.Parent = player.Character
    
    for _,v in pairs(player.Character:GetChildren()) do
        if v:IsA("Tool") then
            v.Handle.Transparency = 1
        end
    end
end

local function onUnequipped()
    invisibleTool.Parent = backpack
end

invisibleTool.Equipped:Connect(onEquipped)
invisibleTool.Unequipped:Connect(onUnequipped)

invisibleTool.Parent = backpack

Features & Information

Tsb builder mode fly v1 it’s buggy and made by valker038 and GoalToWolfLevel on roblox
#Tsb#The Strong#The Strongest#The Strongest Battle#The Strongest Battlegrounds

Community Comments (4)

realprojecthackrealprojecthackMar 28, 2025

It aint work cuh

Danmih32Danmih32Nov 28, 2025

Bro where do i start my scrpits

IjustwannaflyIjustwannaflyDec 29, 2025

*

DevishDevishOct 13, 2026

ay<yyyyy

More Scripts for The Strongest Battlegrounds