Tbb remaster script
Key Required

Tbb remaster script

TBB : B Remastered (Early Stages)ClearoofClearoof 1.8K views 464 executesUpdated Mar 12, 2026
5.0/ 5(1 votes)
10100% Positive
Lua Script•269 lines (13791 chars)
local Players=game:GetService("Players")
local UserInputService=game:GetService("UserInputService")
local RunService=game:GetService("RunService")
local HapticService=game:GetService("HapticService")
local ReplicatedStorage=game:GetService("ReplicatedStorage")
local player=Players.LocalPlayer
local playerGui=player:WaitForChild("PlayerGui")
local old=playerGui:FindFirstChild("AutoChatGui")
if old then old:Destroy()end

local C={
    panel=Color3.fromRGB(20,10,10),
    topBar=Color3.fromRGB(120,15,15),
    border=Color3.fromRGB(180,30,30),
    btn=Color3.fromRGB(140,20,20),
    btnGreen=Color3.fromRGB(30,120,50),
    text=Color3.fromRGB(255,220,220),
    textDim=Color3.fromRGB(180,120,120),
    modOn=Color3.fromRGB(30,140,60),
    modOff=Color3.fromRGB(100,15,15),
}

local modActive=false
local modConnection=nil
local isShiftLockEnabled=false
local slSpawned=false
local slCircleRef=nil
local userGameSettings=nil
local OFFSET_VAL=1.75
local camera=workspace.CurrentCamera
local tpwalkSpeed=1.5
local minimized=false

local sg=Instance.new("ScreenGui",playerGui)
sg.Name="AutoChatGui" sg.ResetOnSpawn=false sg.IgnoreGuiInset=true sg.ZIndexBehavior=Enum.ZIndexBehavior.Sibling

local Crosshair=Instance.new("ImageLabel",sg)
Crosshair.AnchorPoint=Vector2.new(0.5,0.5) Crosshair.Position=UDim2.new(0.5,0,0.5,-29) Crosshair.Size=UDim2.new(0.04,0,0.04,0) Crosshair.BackgroundTransparency=1 Crosshair.Image="rbxasset://textures/MouseLockedCursor.png" Crosshair.Visible=false Crosshair.ZIndex=10
Instance.new("UIAspectRatioConstraint",Crosshair).AspectRatio=1

local panel=Instance.new("Frame",sg)
panel.Size=UDim2.new(0,220,0,240) panel.Position=UDim2.new(0.5,-110,0,60) panel.BackgroundColor3=C.panel panel.BorderSizePixel=0
Instance.new("UICorner",panel).CornerRadius=UDim.new(0,14)
Instance.new("UIStroke",panel).Color=C.border

local ptb=Instance.new("Frame",panel)
ptb.Size=UDim2.new(1,0,0,34) ptb.BackgroundColor3=C.topBar ptb.BorderSizePixel=0
Instance.new("UICorner",ptb).CornerRadius=UDim.new(0,14)
local ptbFix=Instance.new("Frame",ptb) ptbFix.Size=UDim2.new(1,0,0.5,0) ptbFix.Position=UDim2.new(0,0,0.5,0) ptbFix.BackgroundColor3=C.topBar ptbFix.BorderSizePixel=0
local dot=Instance.new("Frame",ptb) dot.Size=UDim2.new(0,6,0,6) dot.Position=UDim2.new(0,10,0.5,-3) dot.BackgroundColor3=Color3.fromRGB(255,100,100) dot.BorderSizePixel=0
Instance.new("UICorner",dot).CornerRadius=UDim.new(1,0)
local ptl=Instance.new("TextLabel",ptb) ptl.Text="TBB REMASTER" ptl.Size=UDim2.new(1,-140,1,0) ptl.Position=UDim2.new(0,22,0,0) ptl.BackgroundTransparency=1 ptl.TextColor3=C.text ptl.Font=Enum.Font.GothamBold ptl.TextSize=10 ptl.TextXAlignment=Enum.TextXAlignment.Left

local speedBox=Instance.new("TextBox",ptb)
speedBox.Size=UDim2.new(0,28,0,22) speedBox.Position=UDim2.new(1,-134,0.5,-11) speedBox.BackgroundColor3=Color3.fromRGB(35,10,10) speedBox.Text="1.5" speedBox.TextColor3=C.text speedBox.Font=Enum.Font.GothamBold speedBox.TextSize=9 speedBox.BorderSizePixel=0 speedBox.ClearTextOnFocus=false
Instance.new("UICorner",speedBox).CornerRadius=UDim.new(0,4)
Instance.new("UIStroke",speedBox).Color=C.border

local modBtn=Instance.new("TextButton",ptb)
modBtn.Size=UDim2.new(0,42,0,22) modBtn.Position=UDim2.new(1,-100,0.5,-11) modBtn.BackgroundColor3=C.modOff modBtn.Text="MOD" modBtn.TextColor3=C.text modBtn.Font=Enum.Font.GothamBold modBtn.TextSize=9 modBtn.BorderSizePixel=0
Instance.new("UICorner",modBtn).CornerRadius=UDim.new(0,5)
Instance.new("UIStroke",modBtn).Color=C.border

local minimizeBtn=Instance.new("TextButton",ptb)
minimizeBtn.Size=UDim2.new(0,22,0,22) minimizeBtn.Position=UDim2.new(1,-52,0.5,-11) minimizeBtn.BackgroundColor3=Color3.fromRGB(80,60,10) minimizeBtn.Text="-" minimizeBtn.TextColor3=Color3.fromRGB(255,220,100) minimizeBtn.Font=Enum.Font.GothamBold minimizeBtn.TextSize=14 minimizeBtn.BorderSizePixel=0
Instance.new("UICorner",minimizeBtn).CornerRadius=UDim.new(0,5)

local closeBtn=Instance.new("TextButton",ptb)
closeBtn.Size=UDim2.new(0,22,0,22) closeBtn.Position=UDim2.new(1,-26,0.5,-11) closeBtn.BackgroundColor3=Color3.fromRGB(80,10,10) closeBtn.Text="X" closeBtn.TextColor3=Color3.fromRGB(255,120,120) closeBtn.Font=Enum.Font.GothamBold closeBtn.TextSize=10 closeBtn.BorderSizePixel=0
Instance.new("UICorner",closeBtn).CornerRadius=UDim.new(0,5)

speedBox.FocusLost:Connect(function()
    local val=tonumber(speedBox.Text)
    if val then
        val=math.clamp(val,1,10)
        tpwalkSpeed=val
        speedBox.Text=tostring(val)
    else
        speedBox.Text=tostring(tpwalkSpeed)
    end
end)

local modStatus=Instance.new("TextLabel",panel)
modStatus.Text="MOD: OFF" modStatus.Size=UDim2.new(1,-16,0,16) modStatus.Position=UDim2.new(0,8,0,38) modStatus.BackgroundTransparency=1 modStatus.TextColor3=C.textDim modStatus.Font=Enum.Font.GothamBold modStatus.TextSize=10 modStatus.TextXAlignment=Enum.TextXAlignment.Left

local scroll=Instance.new("ScrollingFrame",panel)
scroll.Size=UDim2.new(1,-12,1,-60) scroll.Position=UDim2.new(0,6,0,56) scroll.BackgroundTransparency=1 scroll.BorderSizePixel=0 scroll.ScrollBarThickness=3 scroll.ScrollBarImageColor3=C.border scroll.CanvasSize=UDim2.new(0,0,0,0) scroll.AutomaticCanvasSize=Enum.AutomaticSize.Y
local layout=Instance.new("UIListLayout",scroll) layout.Padding=UDim.new(0,6) layout.SortOrder=Enum.SortOrder.LayoutOrder
Instance.new("UIPadding",scroll).PaddingTop=UDim.new(0,4)

minimizeBtn.MouseButton1Click:Connect(function()
    minimized=not minimized
    if minimized then
        scroll.Visible=false
        modStatus.Visible=false
        panel.Size=UDim2.new(0,220,0,34)
        minimizeBtn.Text="+"
    else
        scroll.Visible=true
        modStatus.Visible=true
        panel.Size=UDim2.new(0,220,0,240)
        minimizeBtn.Text="-"
    end
end)

local function makeBtn(label,order,callback)
    local btn=Instance.new("TextButton",scroll)
    btn.Size=UDim2.new(1,-6,0,36) btn.BackgroundColor3=C.btn btn.Text=label btn.TextColor3=C.text btn.Font=Enum.Font.GothamBold btn.TextSize=12 btn.BorderSizePixel=0 btn.LayoutOrder=order
    Instance.new("UICorner",btn).CornerRadius=UDim.new(0,8)
    Instance.new("UIStroke",btn).Color=C.border
    btn.MouseButton1Click:Connect(function() callback(btn) end)
    return btn
end

local CHARS={
    {label="krip",         remote="Krip",        arg="Switch"},
    {label="fatboy",        remote="fatboy",      arg="Switch"},
    {label="doombringer",   remote="DoomBringer", arg="Switch"},
    {label="Mrdoombringer", remote="DoomBringer", arg="MrDoomBringer"},
    {label="turking",       remote="Turking",     arg="Switch"},
    {label="exec",          remote="Exec",        arg="Switch"},
}

for i,data in ipairs(CHARS) do
    makeBtn(data.label,i,function(btn)
        local ok=pcall(function()
            local events=ReplicatedStorage:WaitForChild("CharacterSwitchEvents")
            events:WaitForChild(data.remote):FireServer(data.arg)
        end)
        btn.BackgroundColor3=ok and C.btnGreen or Color3.fromRGB(100,20,20)
        task.delay(0.3,function() btn.BackgroundColor3=C.btn end)
    end)
end

makeBtn("Shiftlock",7,function(btn)
    if slSpawned then return end
    slSpawned=true
    btn.Text="Spawned!" btn.BackgroundColor3=C.btnGreen
    task.wait(1.2)
    btn.Text="Shiftlock" btn.BackgroundColor3=C.btn
    local slCircle=Instance.new("ImageButton",sg)
    slCircle.AnchorPoint=Vector2.new(0.5,0.5) slCircle.Position=UDim2.new(0.85,0,0.8,0) slCircle.Size=UDim2.new(0.075,0,0.075,0) slCircle.BackgroundColor3=Color3.fromRGB(12,8,8) slCircle.BackgroundTransparency=0.1 slCircle.BorderSizePixel=0 slCircle.Image="" slCircle.ZIndex=10
    Instance.new("UIAspectRatioConstraint",slCircle).AspectRatio=1
    Instance.new("UICorner",slCircle).CornerRadius=UDim.new(1,0)
    local slStroke=Instance.new("UIStroke",slCircle) slStroke.Color=C.border slStroke.Thickness=2
    slCircleRef=slCircle
    local slIcon=Instance.new("ImageLabel",slCircle)
    slIcon.BackgroundTransparency=1 slIcon.Position=UDim2.new(0.15,0,0.15,0) slIcon.Size=UDim2.new(0.7,0,0.7,0) slIcon.Image="rbxasset://textures/ui/mouseLock_off.png" slIcon.ScaleType=Enum.ScaleType.Fit slIcon.ImageColor3=Color3.fromRGB(220,50,50)
    slCircle.MouseButton1Click:Connect(function()
        isShiftLockEnabled=not isShiftLockEnabled
        Crosshair.Visible=isShiftLockEnabled
        RunService:UnbindFromRenderStep("FinalNailSync")
        if isShiftLockEnabled then
            slIcon.ImageColor3=Color3.fromRGB(80,220,100)
            slStroke.Color=Color3.fromRGB(80,220,100)
            RunService:BindToRenderStep("FinalNailSync",Enum.RenderPriority.Camera.Value+1,function()
                if not isShiftLockEnabled then RunService:UnbindFromRenderStep("FinalNailSync") return end
                local char=player.Character
                local hrp=char and char:FindFirstChild("HumanoidRootPart")
                if not hrp then return end
                if not userGameSettings then pcall(function() userGameSettings=UserSettings():GetService("UserGameSettings") end) end
                if userGameSettings then pcall(function() userGameSettings.RotationType=Enum.RotationType.CameraRelative end) end
                local dist=(camera.Focus.Position-camera.CFrame.Position).Magnitude
                if dist>0.90 then
                    local camPos=camera.CFrame.Position
                    local safeY=math.max(camPos.Y,hrp.Position.Y-2)
                    local newCF=CFrame.new(Vector3.new(camPos.X,safeY,camPos.Z),camera.Focus.Position)*CFrame.new(OFFSET_VAL,0,0)
                    camera.CFrame=newCF camera.Focus=newCF*CFrame.new(0,0,-dist)
                end
            end)
        else
            slIcon.ImageColor3=Color3.fromRGB(220,50,50)
            slStroke.Color=Color3.fromRGB(180,30,30)
            if userGameSettings then pcall(function() userGameSettings.RotationType=Enum.RotationType.MovementRelative end) end
            UserInputService.MouseBehavior=Enum.MouseBehavior.Default
        end
    end)
    local slDragging,slDragStart,slStartPos=false,nil,nil
    slCircle.InputBegan:Connect(function(i)
        if i.UserInputType==Enum.UserInputType.Touch or i.UserInputType==Enum.UserInputType.MouseButton1 then
            slDragging=true slDragStart=i.Position slStartPos=slCircle.Position
        end
    end)
    slCircle.InputChanged:Connect(function(i)
        if slDragging and (i.UserInputType==Enum.UserInputType.Touch or i.UserInputType==Enum.UserInputType.MouseMovement) then
            local d=i.Position-slDragStart
            slCircle.Position=UDim2.new(slStartPos.X.Scale,slStartPos.X.Offset+d.X,slStartPos.Y.Scale,slStartPos.Y.Offset+d.Y)
        end
    end)
    UserInputService.InputEnded:Connect(function(i)
        if i.UserInputType==Enum.UserInputType.Touch or i.UserInputType==Enum.UserInputType.MouseButton1 then slDragging=false end
    end)
end)

local function startTpwalk()
    if modConnection then modConnection:Disconnect() modConnection=nil end
    modConnection=RunService.Heartbeat:Connect(function()
        local char=player.Character
        if not char then return end
        local hrp=char:FindFirstChild("HumanoidRootPart")
        local hu=char:FindFirstChild("Humanoid")
        if not hrp or not hu then return end
        if hu.MoveDirection.Magnitude>0 then
            hrp.CFrame=hrp.CFrame+hu.MoveDirection*tpwalkSpeed
        end
    end)
end

local function stopTpwalk()
    if modConnection then modConnection:Disconnect() modConnection=nil end
end

closeBtn.MouseButton1Click:Connect(function()
    modActive=false stopTpwalk()
    isShiftLockEnabled=false
    Crosshair.Visible=false
    RunService:UnbindFromRenderStep("FinalNailSync")
    if userGameSettings then pcall(function() userGameSettings.RotationType=Enum.RotationType.MovementRelative end) end
    if slCircleRef then slCircleRef:Destroy() slCircleRef=nil end
    sg:Destroy()
end)

modBtn.MouseButton1Click:Connect(function()
    modActive=not modActive
    if modActive then
        modBtn.BackgroundColor3=C.modOn
        modStatus.Text="MOD: ON — spd "..tpwalkSpeed
        modStatus.TextColor3=Color3.fromRGB(80,220,100)
        startTpwalk()
    else
        modBtn.BackgroundColor3=C.modOff
        modStatus.Text="MOD: OFF"
        modStatus.TextColor3=C.textDim
        stopTpwalk()
    end
end)

player.CharacterAdded:Connect(function()
    RunService:UnbindFromRenderStep("FinalNailSync")
    if isShiftLockEnabled then
        task.wait(0.5)
        RunService:BindToRenderStep("FinalNailSync",Enum.RenderPriority.Camera.Value+1,function()
            local char=player.Character
            local hrp=char and char:FindFirstChild("HumanoidRootPart")
            if not hrp then return end
            local dist=(camera.Focus.Position-camera.CFrame.Position).Magnitude
            if dist>0.90 then
                local camPos=camera.CFrame.Position
                local safeY=math.max(camPos.Y,hrp.Position.Y-2)
                local newCF=CFrame.new(Vector3.new(camPos.X,safeY,camPos.Z),camera.Focus.Position)*CFrame.new(OFFSET_VAL,0,0)
                camera.CFrame=newCF camera.Focus=newCF*CFrame.new(0,0,-dist)
            end
        end)
    end
end)

local dragging,dragStart,startPos=false,nil,nil
ptb.InputBegan:Connect(function(i)
    if i.UserInputType==Enum.UserInputType.Touch then
        dragging=true dragStart=i.Position startPos=panel.Position
        i.Changed:Connect(function()if i.UserInputState==Enum.UserInputState.End then dragging=false end end)
    end
end)
UserInputService.InputChanged:Connect(function(i)
    if dragging and i.UserInputType==Enum.UserInputType.Touch then
        local d=i.Position-dragStart
        panel.Position=UDim2.new(startPos.X.Scale,startPos.X.Offset+d.X,startPos.Y.Scale,startPos.Y.Offset+d.Y)
    end
end)

Features & Information

- char selection just like tbb battle. Wow - you select character without even touching the game selection button. How lazy -advandates Shiftlock. Modification. And that's all
#Tbb remaster#tbb#TBB remaster#tbb remastered

Community Comments (6)

awda

sdada

vowahik3847vowahik3847Mar 14, 2026

can u add evilguy character in here his command is /evilguy btw

vowahik3847vowahik3847Mar 14, 2026

@Clearoof thanks ur scripts are the best ngl

Replying to @vowahik3847
ClearoofClearoofMar 14, 2026

@vowahik3847 hey uh sorry to ask because trying to make a evilguy button. ( Admin characters only) Is almost impossible. You need a server badge aka rank permission to have evilguy. Is almost impossible since is a very serverside game. I'm sorry I can't do your request

Replying to @Clearoof
vowahik3847vowahik3847Mar 14, 2026

@Clearoof oh its okay