-- SONIC EXE: RP REMAKE SCRIPT local player = game:GetService("Players").LocalPlayer local pGui = player:WaitForChild("PlayerGui") local TweenService = game:GetService("TweenService") -- Limpa execuções anteriores if pGui:FindFirstChild("SonicRemakeSystem") then pGui:FindFirstChild("SonicRemakeSystem"):Destroy() end -- 1. Interface Principal local screenGui = Instance.new("ScreenGui") screenGui.Name = "SonicRemakeSystem" screenGui.ResetOnSpawn = false screenGui.Parent = pGui -- BOTÃO PARA ABRIR E FECHAR local toggleBtn = Instance.new("TextButton") toggleBtn.Size = UDim2.new(0, 100, 0, 40) toggleBtn.Position = UDim2.new(0, 10, 0.4, 0) toggleBtn.BackgroundColor3 = Color3.fromRGB(150, 0, 0) toggleBtn.Text = "ABRIR/FECHAR" toggleBtn.TextColor3 = Color3.fromRGB(255, 255, 255) toggleBtn.Font = Enum.Font.SourceSansBold toggleBtn.TextSize = 14 toggleBtn.Parent = screenGui Instance.new("UICorner", toggleBtn).CornerRadius = UDim.new(0, 8) -- JANELA PRINCIPAL (LARGURA REDUZIDA PARA NÃO SAIR DA TELA) local mainFrame = Instance.new("Frame") mainFrame.Size = UDim2.new(0, 260, 0, 400) -- Largura de 260 (mais fina) mainFrame.Position = UDim2.new(0.5, -130, 0.5, -200) mainFrame.BackgroundColor3 = Color3.fromRGB(10, 10, 10) mainFrame.BorderSizePixel = 2 mainFrame.BorderColor3 = Color3.fromRGB(255, 0, 0) mainFrame.Active = true mainFrame.Draggable = true mainFrame.Visible = true mainFrame.Parent = screenGui -- ROLAGEM (PARA CABER TUDO DENTRO DA GUI) local scroll = Instance.new("ScrollingFrame") scroll.Size = UDim2.new(1, -10, 1, -10) scroll.Position = UDim2.new(0, 5, 0, 5) scroll.BackgroundTransparency = 1 scroll.CanvasSize = UDim2.new(0, 0, 0, 0) scroll.AutomaticCanvasSize = Enum.AutomaticSize.Y scroll.ScrollBarThickness = 4 scroll.Parent = mainFrame local layout = Instance.new("UIListLayout") layout.Parent = scroll layout.Padding = UDim.new(0, 8) layout.HorizontalAlignment = Enum.HorizontalAlignment.Center -- Lógica de fechar/abrir toggleBtn.MouseButton1Click:Connect(function() mainFrame.Visible = not mainFrame.Visible end) -- --- FUNÇÕES --- local function acharSpawn() local pastaGame = workspace:FindFirstChild("game") return (pastaGame and pastaGame:FindFirstChild("SpawnLocation")) or workspace:FindFirstChild("SpawnLocation", true) end local function puxarParaLobby() local char = player.Character local spawnAlvo = acharSpawn() if char and char:FindFirstChild("HumanoidRootPart") and spawnAlvo then local info = TweenInfo.new(0.4, Enum.EasingStyle.Quad, Enum.EasingDirection.Out) TweenService:Create(char.HumanoidRootPart, info, {CFrame = spawnAlvo.CFrame + Vector3.new(0, 7, 0)}):Play() end end local function criarBotao(nome, acao, cor) local btn = Instance.new("TextButton") btn.Size = UDim2.new(0.9, 0, 0, 55) -- Tamanho do botão continua bom btn.BackgroundColor3 = cor or Color3.fromRGB(30, 30, 30) btn.Text = nome btn.TextColor3 = Color3.fromRGB(255, 255, 255) btn.Font = Enum.Font.SourceSansBold btn.TextScaled = true btn.Parent = scroll Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 8) btn.MouseButton1Click:Connect(acao) end -- --- CONTEÚDO --- local titulo = Instance.new("TextLabel") titulo.Size = UDim2.new(0.9, 0, 0, 50) titulo.BackgroundTransparency = 1 titulo.Text = "SONIC EXE REMAKE" titulo.TextColor3 = Color3.fromRGB(255, 0, 0) titulo.Font = Enum.Font.SourceSansBold titulo.TextScaled = true titulo.Parent = scroll criarBotao("Puxar para o Lobby", puxarParaLobby, Color3.fromRGB(60, 0, 0)) local instrucao = Instance.new("TextLabel") instrucao.Size = UDim2.new(0.9, 0, 0, 40) instrucao.BackgroundTransparency = 1 instrucao.Text = "use o puxar para o lobby quando você for teleportar para um morph" instrucao.TextColor3 = Color3.fromRGB(200, 200, 200) instrucao.Font = Enum.Font.SourceSansItalic instrucao.TextScaled = true instrucao.Parent = scroll -- Tabelas para facilitar a criação local mapas = { {N = "Teleport To: Green Hill", P = "GH"}, {N = "Teleport To: Hide And Seek", P = "HAS"}, {N = "Teleport To: HAS Act 2", P = "HAS2"}, {N = "Teleport To: You Cant Run", P = "YCR"}, {N = "Teleport To: Kind And Fair", P = "KAF"}, {N = "Teleport To: Base", P = "Base"}, {N = "Teleport To: ...", P = "DotDotDot"}, {N = "Teleport To: Not Perfect", P = "NOTPERFECT"} } for _, m in pairs(mapas) do criarBotao(m.N, function() local target = workspace.game.ZoneTeleports.Teleports:FindFirstChild(m.P) if player.Character and target then player.Character.HumanoidRootPart.CFrame = target.CFrame + Vector3.new(0, 3, 0) end end) end local morphs = { {Nome = "Teleport To: Furnace Model", Alvo = "Furnace"}, {Nome = "Teleport To: Rewrite Model", Alvo = "Rewrite"} } for _, info in pairs(morphs) do criarBotao(info.Nome, function() local model = workspace:FindFirstChild(info.Alvo, true) if model and player.Character then local pos = model:IsA("Model") and (model.PrimaryPart and model.PrimaryPart.CFrame or model:FindFirstChildWhichIsA("BasePart").CFrame) or model.CFrame player.Character.HumanoidRootPart.CFrame = pos + Vector3.new(0, 3, 0) end end) end