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