Auto Parkour
Key RequiredUniversal

Auto Parkour

Universal ScriptBdodndhzdBdodndhzd 1.1K views 63 executesUpdated Feb 10, 2026
Unrated
00
Lua Script•505 lines (16857 chars)
--[[
	WARNING: Heads up! This script has not been verified by ScriptBlox. Use at your own risk!
]]
-- ============================================================
-- 🚀 AUTO PARKOUR COM TELEPORTE PARA O FINAL
-- Minimiza o painel e teleporta direto para o final da fase
-- ============================================================

print("🚀 INICIANDO AUTO TELEPORT PARKOUR...")

-- ============================================================
-- 1. CONFIGURAÇÃO INICIAL
-- ============================================================

local Players = game:GetService("Players")
local Workspace = game:GetService("Workspace")
local UserInputService = game:GetService("UserInputService")
local TweenService = game:GetService("TweenService")

local player = Players.LocalPlayer
local isTeleporting = false
local isMinimized = false

-- ============================================================
-- 2. CRIAR PAINEL PRINCIPAL
-- ============================================================

local screenGui = Instance.new("ScreenGui")
screenGui.Name = "TeleportParkourGUI"
screenGui.ResetOnSpawn = false
screenGui.DisplayOrder = 9999
screenGui.Parent = game:GetService("CoreGui") -- Tente esta PRIMEIRO

print("✅ GUI criado")

-- Frame principal
local mainFrame = Instance.new("Frame")
mainFrame.Name = "MainPanel"
mainFrame.Size = UDim2.new(0, 380, 0, 220) -- Painel menor
mainFrame.Position = UDim2.new(0, 20, 0, 100)
mainFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 40)
mainFrame.BorderSizePixel = 3
mainFrame.BorderColor3 = Color3.fromRGB(0, 150, 255)
mainFrame.Parent = screenGui

-- ============================================================
-- 3. BOTÃO PRINCIPAL DE TELEPORTE
-- ============================================================

local title = Instance.new("TextLabel")
title.Text = "⚡ TELEPORTE RÁPIDO ⚡"
title.Size = UDim2.new(1, 0, 0, 40)
title.BackgroundColor3 = Color3.fromRGB(0, 100, 200)
title.TextColor3 = Color3.new(1, 1, 1)
title.Font = Enum.Font.GothamBlack
title.TextSize = 18
title.Parent = mainFrame

-- BOTÃO PRINCIPAL (TELEPORTE)
local teleportButton = Instance.new("TextButton")
teleportButton.Name = "TeleportButton"
teleportButton.Text = "🚀 TELEPORTAR PARA O FINAL"
teleportButton.Size = UDim2.new(1, -40, 0, 60)
teleportButton.Position = UDim2.new(0, 20, 0, 50)
teleportButton.BackgroundColor3 = Color3.fromRGB(0, 180, 80) -- Verde
teleportButton.TextColor3 = Color3.new(1, 1, 1)
teleportButton.Font = Enum.Font.GothamBold
teleportButton.TextSize = 18
teleportButton.Parent = mainFrame

print("✅ Botão de teleporte criado")

-- Botão Minimizar
local minimizeButton = Instance.new("TextButton")
minimizeButton.Text = "📦 MINIMIZAR"
minimizeButton.Size = UDim2.new(0, 150, 0, 35)
minimizeButton.Position = UDim2.new(0, 20, 0, 120)
minimizeButton.BackgroundColor3 = Color3.fromRGB(80, 80, 180)
minimizeButton.TextColor3 = Color3.new(1, 1, 1)
minimizeButton.Font = Enum.Font.Gotham
minimizeButton.TextSize = 14
minimizeButton.Parent = mainFrame

-- Status
local statusLabel = Instance.new("TextLabel")
statusLabel.Text = "✅ Pronto para teleportar"
statusLabel.Size = UDim2.new(1, -20, 0, 25)
statusLabel.Position = UDim2.new(0, 10, 0, 165)
statusLabel.BackgroundTransparency = 1
statusLabel.TextColor3 = Color3.fromRGB(100, 255, 100)
statusLabel.Font = Enum.Font.Gotham
statusLabel.TextSize = 12
statusLabel.TextXAlignment = Enum.TextXAlignment.Left
statusLabel.Parent = mainFrame

-- ============================================================
-- 4. FUNÇÃO PARA ENCONTRAR O FINAL DA FASE
-- ============================================================

local function findEndOfMap()
    print("🔍 Procurando final da fase...")
    
    -- Diferentes métodos para encontrar o final
    local endPositions = {}
    
    -- Método 1: Procurar por partes com nomes comuns
    local commonEndNames = {
        "End", "Finish", "Final", "Win", "Victory", 
        "Goal", "Checkpoint", "Flag", "Platform",
        "Top", "Summit", "Peak", "Winner"
    }
    
    for _, name in ipairs(commonEndNames) do
        for _, obj in pairs(Workspace:GetDescendants()) do
            if obj:IsA("BasePart") and string.find(obj.Name:lower(), name:lower()) then
                table.insert(endPositions, obj.Position)
                print("✅ Encontrado: " .. obj.Name .. " em " .. tostring(obj.Position))
            end
        end
    end
    
    -- Método 2: Procurar pela parte mais alta do mapa
    local highestPart = nil
    local highestY = -math.huge
    
    for _, obj in pairs(Workspace:GetChildren()) do
        if obj:IsA("Model") or obj:IsA("BasePart") then
            local position = obj:GetPivot().Position
            if position.Y > highestY then
                highestY = position.Y
                highestPart = position
            end
        end
    end
    
    if highestPart then
        table.insert(endPositions, highestPart)
        print("✅ Ponto mais alto: Y = " .. highestY)
    end
    
    -- Método 3: Procurar por plataformas especiais
    for _, obj in pairs(Workspace:GetDescendants()) do
        if obj:IsA("BasePart") then
            -- Plataformas grandes (provavelmente finais)
            if obj.Size.X > 20 and obj.Size.Z > 20 then
                table.insert(endPositions, obj.Position)
            end
            
            -- Partes coloridas (vermelho, verde, dourado)
            if obj.BrickColor == BrickColor.new("Bright red") or
               obj.BrickColor == BrickColor.new("Bright green") or
               obj.BrickColor == BrickColor.new("Bright yellow") then
                table.insert(endPositions, obj.Position)
            end
        end
    end
    
    -- Escolher a melhor posição
    if #endPositions > 0 then
        -- Priorizar posições altas
        table.sort(endPositions, function(a, b)
            return a.Y > b.Y
        end)
        
        local bestPosition = endPositions[1] + Vector3.new(0, 5, 0) -- 5 unidades acima
        print("🎯 Melhor posição encontrada: " .. tostring(bestPosition))
        return bestPosition
    end
    
    -- Método 4: Se não encontrou, usar posição fixa alta
    print("⚠️ Nenhum final encontrado, usando posição padrão")
    return Vector3.new(0, 500, 0) -- Posição alta padrão
end

-- ============================================================
-- 5. FUNÇÃO DE TELEPORTE PARA O FINAL
-- ============================================================

local function teleportToEnd()
    if isTeleporting then return end
    isTeleporting = true
    
    print("🚀 Iniciando teleporte para o final...")
    teleportButton.Text = "⏳ TELEPORTANDO..."
    teleportButton.BackgroundColor3 = Color3.fromRGB(255, 150, 0)
    statusLabel.Text = "🔍 Localizando final da fase..."
    
    -- Obter personagem
    local character = player.Character
    if not character then
        character = player.CharacterAdded:Wait()
    end
    
    -- Garantir que o personagem existe
    local humanoidRootPart = character:WaitForChild("HumanoidRootPart")
    local humanoid = character:WaitForChild("Humanoid")
    
    -- Encontrar posição final
    local endPosition = findEndOfMap()
    
    -- Animar antes do teleporte
    statusLabel.Text = "🎯 Posição encontrada! Teleportando..."
    
    -- Efeito visual (opcional)
    local originalColor = teleportButton.BackgroundColor3
    for i = 1, 3 do
        teleportButton.BackgroundColor3 = Color3.fromRGB(255, 255, 0)
        task.wait(0.1)
        teleportButton.BackgroundColor3 = Color3.fromRGB(255, 150, 0)
        task.wait(0.1)
    end
    
    -- Realizar teleporte
    if humanoidRootPart then
        -- Teleportar para o final
        humanoidRootPart.CFrame = CFrame.new(endPosition)
        print("✅ Teleportado para: " .. tostring(endPosition))
        
        -- Garantir que não caia
        task.wait(0.1)
        humanoid.PlatformStand = false
        
        statusLabel.Text = "✅ Teleportado com sucesso!"
    end
    
    -- Restaurar botão
    task.wait(1)
    teleportButton.Text = "🚀 TELEPORTAR PARA O FINAL"
    teleportButton.BackgroundColor3 = Color3.fromRGB(0, 180, 80)
    isTeleporting = false
    
    print("✅ Teleporte concluído!")
end

-- ============================================================
-- 6. FUNCIONALIDADE DE MINIMIZAR
-- ============================================================

local function toggleMinimize()
    isMinimized = not isMinimized
    
    if isMinimized then
        -- Minimizar: mostrar apenas o título
        local tween = TweenService:Create(mainFrame, TweenInfo.new(0.3), {
            Size = UDim2.new(0, 380, 0, 40)
        })
        tween:Play()
        
        minimizeButton.Text = "📂 MAXIMIZAR"
        title.Text = "⚡ TELEPORT [MIN] ⚡"
        
        -- Esconder conteúdo
        teleportButton.Visible = false
        minimizeButton.Position = UDim2.new(0, 120, 0, 0)
        minimizeButton.Size = UDim2.new(0, 140, 0, 40)
        statusLabel.Visible = false
        
        print("📦 Painel minimizado")
    else
        -- Maximizar: mostrar tudo
        local tween = TweenService:Create(mainFrame, TweenInfo.new(0.3), {
            Size = UDim2.new(0, 380, 0, 220)
        })
        tween:Play()
        
        minimizeButton.Text = "📦 MINIMIZAR"
        title.Text = "⚡ TELEPORTE RÁPIDO ⚡"
        
        -- Mostrar conteúdo
        teleportButton.Visible = true
        minimizeButton.Position = UDim2.new(0, 20, 0, 120)
        minimizeButton.Size = UDim2.new(0, 150, 0, 35)
        statusLabel.Visible = true
        
        print("📂 Painel maximizado")
    end
end

-- ============================================================
-- 7. CONEXÕES DE EVENTOS
-- ============================================================

-- Botão de teleporte
teleportButton.MouseButton1Click:Connect(teleportToEnd)

-- Botão minimizar
minimizeButton.MouseButton1Click:Connect(toggleMinimize)

-- Tecla T para teleporte rápido (atalho)
UserInputService.InputBegan:Connect(function(input)
    if input.KeyCode == Enum.KeyCode.T then
        teleportToEnd()
    end
end)

-- ============================================================
-- 8. SISTEMA DE DETECÇÃO DE JOGOS (OPCIONAL)
-- ============================================================

local supportedGames = {
    "Torre de Scrap 4",
    "Tower of Hell",
    "Tower Slap 4", 
    "Obby King",
    "Speed Run 4",
    "Parkour Paradise",
    "The Maze",
    "Jump Challenge",
    "Climbing Tower",
    "Obstacle Course",
    "Sky High Obby",
    "Ultimate Challenge",
    "Epic Minigames",
    "Adventure Forward",
    "Race Clicker"
}

print("🎮 Modo Teleporte ativado para 15 jogos")

-- ============================================================
-- 9. VERIFICAÇÃO FINAL
-- ============================================================

-- Animar o botão
task.spawn(function()
    for i = 1, 3 do
        teleportButton.BackgroundColor3 = Color3.fromRGB(0, 220, 100)
        task.wait(0.5)
        teleportButton.BackgroundColor3 = Color3.fromRGB(0, 180, 80)
        task.wait(0.5)
    end
end)

-- Verificar se está visível
task.wait(1)

print("==================================================")
print("✅ AUTO TELEPORT PARKOUR INICIADO!")
print("==================================================")
print("📍 LOCALIZAÇÃO: Canto superior esquerdo")
print("🎯 BOTÃO PRINCIPAL: 'TELEPORTAR PARA O FINAL'")
print("📦 CONTROLE: Botão MINIMIZAR para esconder")
print("⚡ ATALHO: Tecla T para teleporte rápido")
print("==================================================")
print("🎮 JOGOS SUPORTADOS: 15 jogos de parkour/obby")
print("==================================================")

-- Verificar posição
if mainFrame.AbsolutePosition.X > 0 then
    print("✅ Painel visível na posição correta")
else
    print("⚠️ Ajustando posição do painel...")
    mainFrame.Position = UDim2.new(0, 50, 0, 50)
end

-- ============================================================
-- 10. FUNÇÃO AVANÇADA DE TELEPORTE (COM FALLBACK)
-- ============================================================

local function advancedTeleport()
    print("🔧 Usando teleporte avançado...")
    
    local character = player.Character
    if not character then return end
    
    local root = character:FindFirstChild("HumanoidRootPart")
    if not root then return end
    
    -- Tentar vários métodos de teleporte
    local teleportMethods = {
        function()
            -- Método 1: Procurar por botão de vitória
            for _, obj in pairs(Workspace:GetDescendants()) do
                if obj:IsA("BasePart") and (obj.Name:lower():find("win") or obj.Name:lower():find("end")) then
                    root.CFrame = obj.CFrame + Vector3.new(0, 5, 0)
                    return true
                end
            end
            return false
        end,
        
        function()
            -- Método 2: Procurar por plataforma final
            local candidates = {}
            for _, obj in pairs(Workspace:GetDescendants()) do
                if obj:IsA("BasePart") and obj.Size.Y < 5 and obj.Size.X > 10 and obj.Size.Z > 10 then
                    table.insert(candidates, obj)
                end
            end
            
            -- Escolher a mais alta
            table.sort(candidates, function(a, b)
                return a.Position.Y > b.Position.Y
            end)
            
            if #candidates > 0 then
                root.CFrame = candidates[1].CFrame + Vector3.new(0, 5, 0)
                return true
            end
            return false
        end,
        
        function()
            -- Método 3: Teleporte para cima
            local rayOrigin = root.Position
            local rayDirection = Vector3.new(0, 1000, 0) -- Para cima
            local raycastParams = RaycastParams.new()
            raycastParams.FilterDescendantsInstances = {character}
            raycastParams.FilterType = Enum.RaycastFilterType.Blacklist
            
            local result = Workspace:Raycast(rayOrigin, rayDirection, raycastParams)
            if result then
                root.CFrame = CFrame.new(result.Position + Vector3.new(0, 5, 0))
                return true
            end
            return false
        end
    }
    
    -- Tentar cada método
    for i, method in ipairs(teleportMethods) do
        print("   Tentando método " .. i .. "...")
        if method() then
            print("   ✅ Sucesso com método " .. i)
            return true
        end
    end
    
    -- Método final: teleporte para posição alta fixa
    print("   Usando teleporte fixo...")
    root.CFrame = CFrame.new(0, 500, 0)
    return true
end

-- Conectar função avançada ao botão
teleportButton.MouseButton1Click:Connect(function()
    if not isTeleporting then
        isTeleporting = true
        teleportButton.Text = "⏳ LOCALIZANDO..."
        teleportButton.BackgroundColor3 = Color3.fromRGB(255, 150, 0)
        
        task.spawn(function()
            advancedTeleport()
            
            task.wait(0.5)
            teleportButton.Text = "🚀 TELEPORTAR PARA O FINAL"
            teleportButton.BackgroundColor3 = Color3.fromRGB(0, 180, 80)
            statusLabel.Text = "✅ Teleporte concluído!"
            isTeleporting = false
        end)
    end
end)

-- ============================================================
-- 11. ARRASTAR O PAINEL
-- ============================================================

local dragging = false
local dragStart = nil
local startPos = nil

title.InputBegan:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseButton1 then
        dragging = true
        dragStart = input.Position
        startPos = mainFrame.Position
        input.Changed:Connect(function()
            if input.UserInputState == Enum.UserInputState.End then
                dragging = false
            end
        end)
    end
end)

title.InputChanged:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseMovement and dragging then
        local delta = input.Position - dragStart
        mainFrame.Position = UDim2.new(
            startPos.X.Scale, startPos.X.Offset + delta.X,
            startPos.Y.Scale, startPos.Y.Offset + delta.Y
        )
    end
end)

print("✅ Sistema de arrastar ativado")

-- ============================================================
-- 12. MENSAGEM FINAL
-- ============================================================

print("\n" .. string.rep("=", 50))
print("🚀 SISTEMA PRONTO PARA USO!")
print(string.rep("=", 50))
print("INSTRUÇÕES:")
print("1. Clique em 'TELEPORTAR PARA O FINAL' para vencer")
print("2. Clique em 'MINIMIZAR' para esconder o painel")
print("3. Pressione T para teleporte rápido")
print("4. Arraste pelo título para mover o painel")
print(string.rep("=", 50) .. "\n")

return {
    Teleport = teleportToEnd,
    Minimize = toggleMinimize,
    GUI = screenGui
}

Features & Information

Ele se teleporta para o parkour automaticamente

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts