chapter 2 auto win V1 EASY2USE SAFE AND FREE
Key Required

chapter 2 auto win V1 EASY2USE SAFE AND FREE

Color or Die 🎨hollowtale03589hollowtale03589 995 views 1K executesUpdated Mar 28, 2026
5.0/ 5(1 votes)
10100% Positive
Lua Script•667 lines (23281 chars)
local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local player = Players.LocalPlayer

-- CONFIG
local COUNTDOWN_TIME = 5
local SKIP_KEY = Enum.KeyCode.X
local TOTAL_TELEPORTS = 44

-- TELEPORT POSITIONS (A2)
local teleportSpots = {
    Vector3.new(150.80, 3.51, -593.91),
    Vector3.new(238.72, 29.21, -668.57),
    Vector3.new(230.43, 6.66, -473.82),
    Vector3.new(151.40, 6.66, -483.53),
    Vector3.new(337.02, 6.66, -542.40),
    Vector3.new(141.98, 3.51, -436.25),
    Vector3.new(190.91, 3.51, -443.39),
    Vector3.new(162.28, 6.76, -410.59), 
    Vector3.new(277.98, 3.82, -642.71),
    Vector3.new(273.40, 3.97, -658.00),
    Vector3.new(246.12, 3.51, -539.64),
    Vector3.new(229.53, 6.66, -532.19),
    Vector3.new(229.92, 6.66, -535.13),
    Vector3.new(244.87, 3.51, -714.41),
    Vector3.new(289.80, 6.66, -714.90),
    Vector3.new(322.43, 3.51, -412.83),
    Vector3.new(-813.45, 82.18, -877.43),
    Vector3.new(-814.50, 82.18, -882.40),
    Vector3.new(321.84, 3.51, -733.34),
    Vector3.new(324.15, 6.66, -765.32),
    Vector3.new(235.29, 3.74, -594.78),
    Vector3.new(-1219.15, 53.83, -1157.76),
    Vector3.new(-1225.69, 53.83, -1163.33),
    Vector3.new(-810.50, 82.18, -868.40),
    Vector3.new(-787.64, 85.67, -868.71),
    Vector3.new(149.73, 3.51, -637.32),
    Vector3.new(153.38, 6.66, -658.18),
    Vector3.new(153.64, 6.66, -654.08),
    Vector3.new(306.84, 3.51, -474.54),
    Vector3.new(342.06, 6.66, -489.49),
    Vector3.new(264.71, 3.51, -564.82),
    Vector3.new(272.08, 6.66, -585.19),
    Vector3.new(268.21, 6.66, -584.36),
    Vector3.new(162.10, 3.51, -524.08),
    Vector3.new(-1190.39, 115.08, -584.11),
    Vector3.new(298.53, 4.57, -751.34),
    Vector3.new(229.89, -33.09, -738.56),
    Vector3.new(229.80, -37.49, -747.52),
    Vector3.new(189.83, 3.51, -421.30),
    Vector3.new(174.11, 6.76, -401.84),
    Vector3.new(370.96, 3.51, -642.68),
    Vector3.new(384.93, 6.66, -643.34),
    Vector3.new(129.00, 40.55, -2389.04),
    Vector3.new(-18.19, 3.51, -542.95)
}

-- TELEPORT NAMES (A2)
local teleportNames = {
    "BRUSH1","BRUSH2","BRUSH3","BRUSH4","BRUSH5","BRUSH6",
    "REDOOR","SCREWDRIVER","VENT","ORANGEBUCKET","ORANGEDOOR","BRUSH7",
    "YELLOWBUCKET","YELLOWDOOR","DYNAMITE","BRICKWALL","BRUSH8","GREENBUCKET",
    "GREENDOOR","PICKAXE","DIRT","BRUSH9","TEALBUCKET","TEALDOOR",
    "BLUEBUCKET","BLUEDOOR","BRUSH10","TORCH","SPIDERWEB","PURPLEBUCKET",
    "PURPLEDOOR","BRUSH11","CARD","STAFFDOOR","CROWBAR","TRAPDOOR",
    "BRUSH12","PINKBUCKET","PINKDOOR","KEY","KEYDOOR","BRUSH13",
    "WHITEBUCKET","WHITEDOOR"
}

-- COLORS
local colors = {
    outline = Color3.fromRGB(150,150,150),
    background = Color3.fromRGB(30,30,30),
    incomplete = Color3.fromRGB(255,0,0),
    stripeCycle = {
        Color3.fromRGB(255,0,0),
        Color3.fromRGB(0,0,255),
        Color3.fromRGB(255,165,0),
        Color3.fromRGB(0,255,0),
        Color3.fromRGB(255,255,0)
    },
    percentText = Color3.fromRGB(0,255,255),
    globalText = Color3.fromRGB(0,255,0)
}

-- STATE
local skip = false
local stopped = false
local running = false
local paused = false
local currentIndex = 1
local lastProgressPercent = -1

-- GOD MODE state
local godMode = false
local godConnection = nil
local originalMaxHealth = nil

-- HELPERS
local function getCharacter()
    local char = player.Character or player.CharacterAdded:Wait()
    local hrp = char:FindFirstChild("HumanoidRootPart") or char:WaitForChild("HumanoidRootPart")
    local hum = char:FindFirstChildOfClass("Humanoid") or char:WaitForChild("Humanoid")
    return char, hrp, hum
end

local function enableGod(hum)
    if not hum then return end
    if not originalMaxHealth then originalMaxHealth = hum.MaxHealth or 100 end
    pcall(function()
        hum.MaxHealth = 1e9
        hum.Health = hum.MaxHealth
    end)
    if godConnection then pcall(function() godConnection:Disconnect() end) end
    godConnection = hum.HealthChanged:Connect(function(newHealth)
        if godMode and hum and hum.Parent then
            if newHealth < hum.MaxHealth then
                pcall(function() hum.Health = hum.MaxHealth end)
            end
        end
    end)
end

local function disableGod(hum)
    if not hum then return end
    if godConnection then pcall(function() godConnection:Disconnect() end) end
    if originalMaxHealth then
        pcall(function()
            hum.MaxHealth = originalMaxHealth
            if hum.Health > originalMaxHealth then hum.Health = originalMaxHealth end
        end)
        originalMaxHealth = nil
    else
        pcall(function()
            hum.MaxHealth = 100
            if hum.Health > 100 then hum.Health = 100 end
        end)
    end
end

-- Reapply god mode on respawn if active
player.CharacterAdded:Connect(function(char)
    task.wait(0.1)
    if godMode then
        local hum = char:FindFirstChildOfClass("Humanoid")
        if hum then enableGod(hum) end
    end
end)

-- GUI CREATION
local playerGui = player:WaitForChild("PlayerGui")
local gui = Instance.new("ScreenGui")
gui.Name = "TeleportUI"
gui.ResetOnSpawn = false
gui.Parent = playerGui

-- PROGRESS BAR moved to TOP of screen
local progressContainer = Instance.new("Frame", gui)
progressContainer.Name = "ProgressContainer"
progressContainer.AnchorPoint = Vector2.new(0.5,0)
progressContainer.Position = UDim2.new(0.5,0,0,12) -- top of screen
progressContainer.Size = UDim2.new(0,520,0,36)
progressContainer.BackgroundTransparency = 1

local progressOutline = Instance.new("Frame", progressContainer)
progressOutline.Name = "ProgressOutline"
progressOutline.Size = UDim2.new(1,0,1,0)
progressOutline.BackgroundColor3 = colors.outline
progressOutline.BorderSizePixel = 0

local progressBackground = Instance.new("Frame", progressOutline)
progressBackground.Name = "ProgressBackground"
progressBackground.Size = UDim2.new(1,-6,1,-6)
progressBackground.Position = UDim2.new(0,3,0,3)
progressBackground.BackgroundColor3 = colors.background
progressBackground.BorderSizePixel = 0

local completedFrame = Instance.new("Frame", progressBackground)
completedFrame.Name = "Completed"
completedFrame.Size = UDim2.new(0,0,1,0)
completedFrame.Position = UDim2.new(0,0,0,0)
completedFrame.BackgroundTransparency = 1

local stripeFrames = {}
for i = 1, 5 do
    local s = Instance.new("Frame", completedFrame)
    s.Name = "Stripe"..i
    s.Size = UDim2.new(0.2,0,1,0)
    s.Position = UDim2.new((i-1)*0.2,0,0,0)
    s.BorderSizePixel = 0
    s.BackgroundColor3 = colors.stripeCycle[((i-1) % #colors.stripeCycle) + 1]
    stripeFrames[i] = s
end

local incompleteFrame = Instance.new("Frame", progressBackground)
incompleteFrame.Name = "Incomplete"
incompleteFrame.Size = UDim2.new(1,0,1,0)
incompleteFrame.Position = UDim2.new(0,0,0,0)
incompleteFrame.BackgroundColor3 = colors.incomplete
incompleteFrame.BorderSizePixel = 0

local percentLabel = Instance.new("TextLabel", progressBackground)
percentLabel.Size = UDim2.new(0,120,1,0)
percentLabel.Position = UDim2.new(0.5,-60,0,0)
percentLabel.BackgroundTransparency = 1
percentLabel.Font = Enum.Font.SourceSansBold
percentLabel.TextSize = 16
percentLabel.TextColor3 = colors.percentText
percentLabel.Text = "0%"
percentLabel.TextXAlignment = Enum.TextXAlignment.Center
percentLabel.TextYAlignment = Enum.TextYAlignment.Center

local fractionLabel = Instance.new("TextLabel", progressBackground)
fractionLabel.Size = UDim2.new(0,80,1,0)
fractionLabel.Position = UDim2.new(1,-84,0,0)
fractionLabel.BackgroundTransparency = 1
fractionLabel.Font = Enum.Font.SourceSans
fractionLabel.TextSize = 14
fractionLabel.TextColor3 = Color3.fromRGB(255,255,255)
fractionLabel.Text = "0/" .. tostring(TOTAL_TELEPORTS)
fractionLabel.TextXAlignment = Enum.TextXAlignment.Right

-- MAIN PANEL (bottom center)
local panel = Instance.new("Frame", gui)
panel.Name = "ControlPanel"
panel.BackgroundColor3 = Color3.fromRGB(255,0,0)
panel.AnchorPoint = Vector2.new(0.5,1)
panel.Position = UDim2.new(0.5,0,1,-80) -- bottom center
panel.Size = UDim2.new(0,520,0,140)

local title = Instance.new("TextLabel", panel)
title.Size = UDim2.new(1,0,0,28)
title.Position = UDim2.new(0,0,0,6)
title.BackgroundTransparency = 1
title.Font = Enum.Font.SourceSansBold
title.TextSize = 20
title.Text = "COLOR OR DIE AUTO WIN"
title.TextColor3 = Color3.fromRGB(0,0,0)
title.TextXAlignment = Enum.TextXAlignment.Center

local bigNum = Instance.new("TextLabel", panel)
bigNum.Name = "BigNum"
bigNum.Size = UDim2.new(0,80,0,60)
bigNum.Position = UDim2.new(0,12,0,36)
bigNum.BackgroundTransparency = 1
bigNum.Font = Enum.Font.SourceSansBold
bigNum.TextSize = 44
bigNum.TextColor3 = Color3.fromRGB(0,0,0)
bigNum.Text = "0"
bigNum.TextXAlignment = Enum.TextXAlignment.Center
bigNum.TextYAlignment = Enum.TextYAlignment.Center

local milliLabel = Instance.new("TextLabel", panel)
milliLabel.Name = "MilliLabel"
milliLabel.Size = UDim2.new(0,100,0,20)
milliLabel.Position = UDim2.new(0,12,0,98)
milliLabel.BackgroundTransparency = 1
milliLabel.Font = Enum.Font.SourceSansBold
milliLabel.TextSize = 18
milliLabel.TextColor3 = Color3.fromRGB(0,170,255)
milliLabel.Text = ".000"
milliLabel.TextXAlignment = Enum.TextXAlignment.Center

local indexLabel = Instance.new("TextLabel", panel)
indexLabel.Name = "IndexLabel"
indexLabel.BackgroundTransparency = 1
indexLabel.Size = UDim2.new(0,160,0,24)
indexLabel.Position = UDim2.new(0,110,0,40)
indexLabel.Font = Enum.Font.SourceSansBold
indexLabel.TextSize = 18
indexLabel.TextColor3 = Color3.fromRGB(255,255,0)
indexLabel.TextXAlignment = Enum.TextXAlignment.Left
indexLabel.Text = "Teleport: 1"

local nameLabel = Instance.new("TextLabel", panel)
nameLabel.Name = "NameLabel"
nameLabel.BackgroundTransparency = 1
nameLabel.Size = UDim2.new(0,260,0,24)
nameLabel.Position = UDim2.new(0,110,0,68)
nameLabel.Font = Enum.Font.SourceSansBold
nameLabel.TextSize = 18
nameLabel.TextColor3 = colors.globalText
nameLabel.TextXAlignment = Enum.TextXAlignment.Left
nameLabel.Text = teleportNames[1] or ""

local credit = Instance.new("TextLabel", panel)
credit.Size = UDim2.new(0,180,0,18)
credit.Position = UDim2.new(1,-200,1,-22)
credit.BackgroundTransparency = 1
credit.Font = Enum.Font.SourceSans
credit.TextSize = 12
credit.TextColor3 = Color3.fromRGB(0,0,0)
credit.Text = "Made by hollowtale"

-- Buttons helper
local function makeButton(parent, text, pos, size, bg, fg)
    local b = Instance.new("TextButton", parent)
    b.Size = size or UDim2.new(0,110,0,28)
    b.Position = pos
    b.Font = Enum.Font.SourceSansBold
    b.TextSize = 14
    b.Text = text
    b.TextColor3 = fg or Color3.fromRGB(0,0,0)
    b.BackgroundColor3 = bg or Color3.fromRGB(255,255,255)
    b.AutoButtonColor = true
    return b
end

-- Row 1 buttons (inside panel)
local resetBtn = makeButton(panel, "RESET", UDim2.new(0,12,0,96), UDim2.new(0,90,0,28), Color3.fromRGB(255,80,80))
local pauseBtn = makeButton(panel, "PAUSE", UDim2.new(0,112,0,96), UDim2.new(0,90,0,28), Color3.fromRGB(200,200,200))
local unpauseBtn = makeButton(panel, "UNPAUSE", UDim2.new(0,212,0,96), UDim2.new(0,90,0,28), Color3.fromRGB(200,200,200))
local stopBtn = makeButton(panel, "STOP", UDim2.new(0,312,0,96), UDim2.new(0,90,0,28), Color3.fromRGB(255,140,0))

-- Row 2 buttons (inside panel)
local startBtn = makeButton(panel, "START/RESTART", UDim2.new(0,12,0,126), UDim2.new(0,150,0,28), Color3.fromRGB(120,255,120))
local killBtn = makeButton(panel, "KILL SCRIPT", UDim2.new(0,172,0,126), UDim2.new(0,130,0,28), Color3.fromRGB(40,40,40), Color3.fromRGB(255,255,255))
local toggleBtn = makeButton(panel, "Open/Close", UDim2.new(0,312,0,126), UDim2.new(0,130,0,28), Color3.fromRGB(200,200,200))

-- GOD MODE (bottom-left near panel)
local godBtn = Instance.new("TextButton", gui)
godBtn.Name = "GodModeButton"
godBtn.Size = UDim2.new(0,100,0,40)
godBtn.AnchorPoint = Vector2.new(0,1)
godBtn.Position = UDim2.new(0,8,1,-80) -- left of panel bottom
godBtn.Font = Enum.Font.SourceSansBold
godBtn.TextSize = 16
godBtn.Text = "GOD MODE: OFF"
godBtn.TextColor3 = Color3.fromRGB(0,0,0)
godBtn.BackgroundColor3 = Color3.fromRGB(255,230,0)

-- Warning label above GOD MODE (moved above the yellow box)
local godWarning = Instance.new("TextLabel", gui)
godWarning.Name = "GodWarning"
godWarning.Size = UDim2.new(0,300,0,18)
godWarning.AnchorPoint = Vector2.new(0,1)
godWarning.Position = UDim2.new(0,8,1,-124) -- above godBtn
godWarning.BackgroundTransparency = 1
godWarning.Font = Enum.Font.SourceSansBold
godWarning.TextSize = 14
godWarning.TextColor3 = Color3.fromRGB(0,0,0)
godWarning.Text = "Reset will not work if God Mode is On"
godWarning.TextXAlignment = Enum.TextXAlignment.Left

-- Note under GOD MODE (same size as warning)
local godNote = Instance.new("TextLabel", gui)
godNote.Name = "GodNote"
godNote.Size = UDim2.new(0,300,0,18)
godNote.AnchorPoint = Vector2.new(0,1)
godNote.Position = UDim2.new(0,8,1,-56) -- below godBtn
godNote.BackgroundTransparency = 1
godNote.Font = Enum.Font.SourceSansBold
godNote.TextSize = 14
godNote.TextColor3 = Color3.fromRGB(0,0,0)
godNote.Text = "if you go invisible when monster kills you its fine"
godNote.TextXAlignment = Enum.TextXAlignment.Left

-- Hint and Chapter (bigger, centered near bottom)
local hint = Instance.new("TextLabel", gui)
hint.Name = "HintText"
hint.Size = UDim2.new(0,520,0,22)
hint.AnchorPoint = Vector2.new(0.5,0)
hint.Position = UDim2.new(0.5,0,1,-40) -- centered, 40px above bottom
hint.BackgroundTransparency = 1
hint.Font = Enum.Font.SourceSans
hint.TextSize = 16
hint.TextColor3 = Color3.fromRGB(0,0,0)
hint.Text = "Click X to skip countdown (teleport index and name shown). Made by hollowtale"
hint.TextXAlignment = Enum.TextXAlignment.Center

local chapter = Instance.new("TextLabel", gui)
chapter.Name = "ChapterLabel"
chapter.Size = UDim2.new(0,160,0,22)
chapter.AnchorPoint = Vector2.new(0.5,0)
chapter.Position = UDim2.new(0.5,0,1,-18) -- centered, 18px above bottom
chapter.BackgroundTransparency = 1
chapter.Font = Enum.Font.SourceSansBold
chapter.TextSize = 16
chapter.TextColor3 = Color3.fromRGB(0,0,0)
chapter.Text = "CHAPTER 1"
chapter.TextXAlignment = Enum.TextXAlignment.Center

-- STYLE: initialize stripe colors
for i=1,5 do
    stripeFrames[i].BackgroundColor3 = colors.stripeCycle[((i-1) % #colors.stripeCycle) + 1]
end

-- Input: skip key (no cooldown)
UserInputService.InputBegan:Connect(function(input, gp)
    if gp then return end
    if input.UserInputType == Enum.UserInputType.Keyboard and input.KeyCode == SKIP_KEY then
        skip = true
    end
end)

-- BUTTON BEHAVIORS

-- RESET: blocked while GOD MODE is ON. User must toggle GOD MODE off and press RESET again.
resetBtn.MouseButton1Click:Connect(function()
    local ok, char, hrp, hum = pcall(function() return getCharacter() end)
    if godMode then
        local notice = Instance.new("TextLabel", panel)
        notice.Size = UDim2.new(0,260,0,18)
        notice.Position = UDim2.new(0,12,0,70)
        notice.BackgroundTransparency = 1
        notice.Font = Enum.Font.SourceSansBold
        notice.TextSize = 14
        notice.TextColor3 = Color3.fromRGB(255,255,255)
        notice.Text = "Reset blocked: disable God Mode first"
        notice.TextXAlignment = Enum.TextXAlignment.Left
        task.delay(2, function()
            if notice and notice.Parent then notice:Destroy() end
        end)
        return
    end
    if ok and char and hum then
        pcall(function() hum.Health = 0 end)
    else
        pcall(function() player:LoadCharacter() end)
    end
end)

-- PAUSE / UNPAUSE
pauseBtn.MouseButton1Click:Connect(function() paused = true end)
unpauseBtn.MouseButton1Click:Connect(function() paused = false end)

-- STOP: reset the script state
stopBtn.MouseButton1Click:Connect(function()
    stopped = true
    running = false
    paused = false
    currentIndex = 1
    lastProgressPercent = -1
    indexLabel.Text = "Teleport: 1"
    nameLabel.Text = teleportNames[1] or ""
    percentLabel.Text = "0%"
    completedFrame.Size = UDim2.new(0,0,1,0)
    incompleteFrame.Size = UDim2.new(1,0,1,0)
    bigNum.Text = "0"
    milliLabel.Text = ".000"
end)

-- START/RESTART
startBtn.MouseButton1Click:Connect(function()
    if running then
        stopped = true
        running = false
        paused = false
        task.wait(0.06)
        currentIndex = 1
        lastProgressPercent = -1
        indexLabel.Text = "Teleport: 1"
        nameLabel.Text = teleportNames[1] or ""
        percentLabel.Text = "0%"
        completedFrame.Size = UDim2.new(0,0,1,0)
        incompleteFrame.Size = UDim2.new(1,0,1,0)
        bigNum.Text = "0"
        milliLabel.Text = ".000"
        task.wait(0.06)
        stopped = false
        StartSequence()
    else
        stopped = false
        paused = false
        currentIndex = 1
        lastProgressPercent = -1
        StartSequence()
    end
end)

-- KILL SCRIPT
killBtn.MouseButton1Click:Connect(function()
    stopped = true
    running = false
    paused = false
    if godMode then
        local ok, char, hrp, hum = pcall(function() return getCharacter() end)
        if ok and hum then pcall(function() disableGod(hum) end) end
        godMode = false
    end
    pcall(function() gui:Destroy() end)
end)

-- Open/Close: toggle GUI visibility
local guiHidden = false
toggleBtn.MouseButton1Click:Connect(function()
    guiHidden = not guiHidden
    panel.Visible = not guiHidden
    progressContainer.Visible = not guiHidden
    godBtn.Visible = not guiHidden
    godWarning.Visible = not guiHidden
    godNote.Visible = not guiHidden
    hint.Visible = not guiHidden
    chapter.Visible = not guiHidden
    if guiHidden then
        local reopen = Instance.new("TextButton", gui)
        reopen.Name = "ReopenButton"
        reopen.Size = UDim2.new(0,100,0,30)
        reopen.Position = UDim2.new(1,-110,1,-40)
        reopen.AnchorPoint = Vector2.new(0,0)
        reopen.Font = Enum.Font.SourceSansBold
        reopen.TextSize = 14
        reopen.Text = "Open GUI"
        reopen.Parent = gui
        reopen.MouseButton1Click:Connect(function()
            if reopen and reopen.Parent then reopen:Destroy() end
            panel.Visible = true
            progressContainer.Visible = true
            godBtn.Visible = true
            godWarning.Visible = true
            godNote.Visible = true
            hint.Visible = true
            chapter.Visible = true
            guiHidden = false
        end)
    else
        local existing = gui:FindFirstChild("ReopenButton")
        if existing then existing:Destroy() end
    end
end)

-- GOD MODE toggle
godBtn.MouseButton1Click:Connect(function()
    godMode = not godMode
    local ok, char, hrp, hum = pcall(function() return getCharacter() end)
    if godMode then
        godBtn.Text = "GOD MODE: ON"
        godBtn.BackgroundColor3 = Color3.fromRGB(255,200,0)
        if ok and hum then enableGod(hum) end
    else
        godBtn.Text = "GOD MODE: OFF"
        godBtn.BackgroundColor3 = Color3.fromRGB(255,230,0)
        if ok and hum then disableGod(hum) end
    end
end)

-- PROGRESS FUNCTIONS
local function rotateStripeCycle()
    local sc = colors.stripeCycle
    if #sc == 0 then return end
    local first = table.remove(sc,1)
    table.insert(sc, first)
    for i=1,5 do stripeFrames[i].BackgroundColor3 = sc[((i-1) % #sc) + 1] end
end

local function updateProgress(index)
    local totalWidth = progressBackground.AbsoluteSize.X
    if totalWidth <= 0 then
        task.wait()
        totalWidth = progressBackground.AbsoluteSize.X
        if totalWidth <= 0 then totalWidth = 520 end
    end

    local frac = math.clamp(index / TOTAL_TELEPORTS, 0, 1)
    local percent = math.floor(frac * 100)
    percentLabel.Text = tostring(percent) .. "%"
    fractionLabel.Text = tostring(index) .. "/" .. tostring(TOTAL_TELEPORTS)

    local completedWidth = math.floor(totalWidth * frac)
    completedFrame.Size = UDim2.new(0, completedWidth, 1, 0)

    local incompleteWidth = totalWidth - completedWidth
    incompleteFrame.Size = UDim2.new(0, incompleteWidth, 1, 0)
    incompleteFrame.Position = UDim2.new(0, completedWidth, 0, 0)
    incompleteFrame.BackgroundColor3 = colors.incomplete

    if percent > lastProgressPercent then rotateStripeCycle() end
    lastProgressPercent = percent
end

-- MAIN SEQUENCE
function StartSequence()
    if running then return end
    stopped = false
    running = true

    task.spawn(function()
        local char, hrp, hum = getCharacter()

        if godMode and hum then enableGod(hum) end

        for i = currentIndex, TOTAL_TELEPORTS do
            if stopped then break end
            currentIndex = i

            indexLabel.Text = "Teleport: " .. i
            nameLabel.Text = teleportNames[i] or ""

            updateProgress(i)

            skip = false
            local start = tick()
            local pauseAccum = 0
            local pauseStart = nil

            while true do
                if stopped then break end
                if paused then
                    if not pauseStart then pauseStart = tick() end
                    task.wait(0.1)
                    continue
                else
                    if pauseStart then
                        pauseAccum = pauseAccum + (tick() - pauseStart)
                        pauseStart = nil
                    end
                end
                if skip then break end

                local elapsed = tick() - start - pauseAccum
                local remaining = COUNTDOWN_TIME - elapsed
                if remaining <= 0 then remaining = 0 end

                local sec = math.floor(remaining)
                local ms = math.floor((remaining - sec) * 1000) -- milliseconds
                if ms < 0 then ms = 0 end

                pcall(function() bigNum.Text = tostring(sec) end)
                pcall(function() milliLabel.Text = "." .. string.format("%03d", ms) end)

                if remaining <= 0 then break end
                task.wait(0.01)
            end

            if stopped then break end

            pcall(function()
                if hrp and hrp.Parent then
                    hrp.CFrame = CFrame.new(teleportSpots[i])
                else
                    local _, newHrp = getCharacter()
                    if newHrp then newHrp.CFrame = CFrame.new(teleportSpots[i]) end
                end
            end)

            local postWait = 1
            local elapsed = 0
            while elapsed < postWait do
                if stopped then break end
                if paused then task.wait(0.1) else task.wait(0.1); elapsed = elapsed + 0.1 end
            end
        end

        running = false

        if not stopped then
            task.wait(5)
            stopped = true
            running = false
            paused = false
            currentIndex = 1
            lastProgressPercent = -1
            indexLabel.Text = "Teleport: 1"
            nameLabel.Text = teleportNames[1] or ""
            percentLabel.Text = "0%"
            completedFrame.Size = UDim2.new(0,0,1,0)
            incompleteFrame.Size = UDim2.new(1,0,1,0)
            bigNum.Text = "0"
            milliLabel.Text = ".000"
            pcall(function() player:LoadCharacter() end)
        end
    end)
end

-- AUTO-START
StartSequence()

Features & Information

color or die CHAPTER 2 auto win HOW TO USE: 1: get red bucket and open black door 2: load script 3: let script run and grab the items/use them when you get teleported 4: click X to skip timer OTHER SCRIPTS: CHAPTER 1 https://scriptblox.com/script/Color-or-Die-safe-autowin-chapter1-V2-easy-to-use-gui-150402 CHAPTER 3: https://scriptblox.com/script/Color-or-Die-CHAPTER-3-SAFE-2-USE-AUTOWIN-161493 CHAPTER 4: https://scriptblox.com/script/Color-or-Die-CHAPTER-4-SAFE-AND-EASY-2-USE-SCRIPT-GUI-162060
#free#safe#auto#easy

Community Comments (0)

No comments yet for this script.

More Scripts for Color or Die 🎨