local player = game.Players.LocalPlayer local playerGui = player:WaitForChild("PlayerGui") -- Variables globales local teleportMode = "instant" local walkTeleporting = false local spectatorMode = false local spectatedPlayer = nil local walkSpeed = 50 local partsPerPage = 150 local currentPartsPage = 1 local allParts = {} local screenGui = Instance.new("ScreenGui") screenGui.Name = "TeleportMenuGui" screenGui.ResetOnSpawn = false screenGui.Parent = playerGui -- Bouton d'ouverture local toggleButton = Instance.new("TextButton") toggleButton.Size = UDim2.new(0, 200, 0, 50) toggleButton.Position = UDim2.new(0.5, -100, 0, 10) toggleButton.BackgroundColor3 = Color3.fromRGB(40, 40, 60) toggleButton.BorderSizePixel = 0 toggleButton.Font = Enum.Font.GothamBold toggleButton.Text = "🌍 TELEPORT MENU" toggleButton.TextColor3 = Color3.fromRGB(255, 255, 255) toggleButton.TextSize = 16 toggleButton.Parent = screenGui local toggleCorner = Instance.new("UICorner") toggleCorner.CornerRadius = UDim.new(0, 10) toggleCorner.Parent = toggleButton -- Frame principale (déplaçable) local mainFrame = Instance.new("Frame") mainFrame.Size = UDim2.new(0, 450, 0, 600) mainFrame.Position = UDim2.new(0.5, -225, 0.5, -300) mainFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 35) mainFrame.BorderSizePixel = 0 mainFrame.Visible = false mainFrame.Active = true mainFrame.Draggable = true mainFrame.Parent = screenGui local mainCorner = Instance.new("UICorner") mainCorner.CornerRadius = UDim.new(0, 15) mainCorner.Parent = mainFrame -- Titre local mainTitle = Instance.new("TextLabel") mainTitle.Size = UDim2.new(1, -50, 0, 50) mainTitle.Position = UDim2.new(0, 0, 0, 0) mainTitle.BackgroundColor3 = Color3.fromRGB(35, 35, 50) mainTitle.BorderSizePixel = 0 mainTitle.Font = Enum.Font.GothamBold mainTitle.Text = "↔️ TELEPORT MENU" mainTitle.TextColor3 = Color3.fromRGB(100, 200, 255) mainTitle.TextSize = 16 mainTitle.Parent = mainFrame local titleCorner = Instance.new("UICorner") titleCorner.CornerRadius = UDim.new(0, 15) titleCorner.Parent = mainTitle -- Bouton fermeture local closeButton = Instance.new("TextButton") closeButton.Size = UDim2.new(0, 50, 0, 50) closeButton.Position = UDim2.new(1, -50, 0, 0) closeButton.BackgroundColor3 = Color3.fromRGB(200, 50, 50) closeButton.BorderSizePixel = 0 closeButton.Font = Enum.Font.GothamBold closeButton.Text = "✕" closeButton.TextColor3 = Color3.fromRGB(255, 255, 255) closeButton.TextSize = 24 closeButton.Parent = mainFrame local closeCorner = Instance.new("UICorner") closeCorner.CornerRadius = UDim.new(0, 15) closeCorner.Parent = closeButton -- Tabs local tabFrame = Instance.new("Frame") tabFrame.Size = UDim2.new(0.9, 0, 0, 45) tabFrame.Position = UDim2.new(0.05, 0, 0, 60) tabFrame.BackgroundTransparency = 1 tabFrame.Parent = mainFrame local playersTab = Instance.new("TextButton") playersTab.Size = UDim2.new(0.31, 0, 1, 0) playersTab.Position = UDim2.new(0, 0, 0, 0) playersTab.BackgroundColor3 = Color3.fromRGB(0, 150, 255) playersTab.BorderSizePixel = 0 playersTab.Font = Enum.Font.GothamBold playersTab.Text = "👥" playersTab.TextColor3 = Color3.fromRGB(255, 255, 255) playersTab.TextSize = 20 playersTab.Parent = tabFrame local playersTabCorner = Instance.new("UICorner") playersTabCorner.CornerRadius = UDim.new(0, 10) playersTabCorner.Parent = playersTab local partsTab = Instance.new("TextButton") partsTab.Size = UDim2.new(0.31, 0, 1, 0) partsTab.Position = UDim2.new(0.345, 0, 0, 0) partsTab.BackgroundColor3 = Color3.fromRGB(50, 50, 70) partsTab.BorderSizePixel = 0 partsTab.Font = Enum.Font.GothamBold partsTab.Text = "🧱" partsTab.TextColor3 = Color3.fromRGB(200, 200, 200) partsTab.TextSize = 20 partsTab.Parent = tabFrame local partsTabCorner = Instance.new("UICorner") partsTabCorner.CornerRadius = UDim.new(0, 10) partsTabCorner.Parent = partsTab local guiTab = Instance.new("TextButton") guiTab.Size = UDim2.new(0.31, 0, 1, 0) guiTab.Position = UDim2.new(0.69, 0, 0, 0) guiTab.BackgroundColor3 = Color3.fromRGB(50, 50, 70) guiTab.BorderSizePixel = 0 guiTab.Font = Enum.Font.GothamBold guiTab.Text = "📱" guiTab.TextColor3 = Color3.fromRGB(200, 200, 200) guiTab.TextSize = 20 guiTab.Parent = tabFrame local guiTabCorner = Instance.new("UICorner") guiTabCorner.CornerRadius = UDim.new(0, 10) guiTabCorner.Parent = guiTab -- Barre de recherche local searchFrame = Instance.new("Frame") searchFrame.Size = UDim2.new(0.9, 0, 0, 35) searchFrame.Position = UDim2.new(0.05, 0, 0, 115) searchFrame.BackgroundColor3 = Color3.fromRGB(35, 35, 50) searchFrame.BorderSizePixel = 0 searchFrame.Visible = false searchFrame.Parent = mainFrame local searchCorner = Instance.new("UICorner") searchCorner.CornerRadius = UDim.new(0, 10) searchCorner.Parent = searchFrame local searchBox = Instance.new("TextBox") searchBox.Size = UDim2.new(1, -20, 1, -8) searchBox.Position = UDim2.new(0, 10, 0, 4) searchBox.BackgroundTransparency = 1 searchBox.Font = Enum.Font.Gotham searchBox.PlaceholderText = "🔍 Rechercher..." searchBox.PlaceholderColor3 = Color3.fromRGB(150, 150, 150) searchBox.Text = "" searchBox.TextColor3 = Color3.fromRGB(255, 255, 255) searchBox.TextSize = 13 searchBox.TextXAlignment = Enum.TextXAlignment.Left searchBox.ClearTextOnFocus = false searchBox.Parent = searchFrame -- Frame mode de téléportation local modeFrame = Instance.new("Frame") modeFrame.Size = UDim2.new(0.9, 0, 0, 45) modeFrame.Position = UDim2.new(0.05, 0, 0, 160) modeFrame.BackgroundColor3 = Color3.fromRGB(30, 30, 45) modeFrame.BorderSizePixel = 0 modeFrame.Parent = mainFrame local modeCorner = Instance.new("UICorner") modeCorner.CornerRadius = UDim.new(0, 10) modeCorner.Parent = modeFrame local modeLabel = Instance.new("TextLabel") modeLabel.Size = UDim2.new(0.3, 0, 1, 0) modeLabel.Position = UDim2.new(0, 8, 0, 0) modeLabel.BackgroundTransparency = 1 modeLabel.Font = Enum.Font.GothamBold modeLabel.Text = "Mode:" modeLabel.TextColor3 = Color3.fromRGB(255, 255, 255) modeLabel.TextSize = 12 modeLabel.TextXAlignment = Enum.TextXAlignment.Left modeLabel.Parent = modeFrame local instantButton = Instance.new("TextButton") instantButton.Size = UDim2.new(0.3, 0, 0, 32) instantButton.Position = UDim2.new(0.33, 0, 0.5, -16) instantButton.BackgroundColor3 = Color3.fromRGB(0, 200, 100) instantButton.BorderSizePixel = 0 instantButton.Font = Enum.Font.GothamBold instantButton.Text = "⚡" instantButton.TextColor3 = Color3.fromRGB(255, 255, 255) instantButton.TextSize = 18 instantButton.Parent = modeFrame local instantCorner = Instance.new("UICorner") instantCorner.CornerRadius = UDim.new(0, 8) instantCorner.Parent = instantButton local walkButton = Instance.new("TextButton") walkButton.Size = UDim2.new(0.3, 0, 0, 32) walkButton.Position = UDim2.new(0.66, 0, 0.5, -16) walkButton.BackgroundColor3 = Color3.fromRGB(50, 50, 70) walkButton.BorderSizePixel = 0 walkButton.Font = Enum.Font.GothamBold walkButton.Text = "🚶" walkButton.TextColor3 = Color3.fromRGB(200, 200, 200) walkButton.TextSize = 18 walkButton.Parent = modeFrame local walkCorner = Instance.new("UICorner") walkCorner.CornerRadius = UDim.new(0, 8) walkCorner.Parent = walkButton -- Frame vitesse de marche local speedFrame = Instance.new("Frame") speedFrame.Size = UDim2.new(0.9, 0, 0, 50) speedFrame.Position = UDim2.new(0.05, 0, 0, 215) speedFrame.BackgroundColor3 = Color3.fromRGB(30, 30, 45) speedFrame.BorderSizePixel = 0 speedFrame.Visible = false speedFrame.Parent = mainFrame local speedCorner = Instance.new("UICorner") speedCorner.CornerRadius = UDim.new(0, 10) speedCorner.Parent = speedFrame local speedLabel = Instance.new("TextLabel") speedLabel.Size = UDim2.new(1, -10, 0, 20) speedLabel.Position = UDim2.new(0, 5, 0, 5) speedLabel.BackgroundTransparency = 1 speedLabel.Font = Enum.Font.GothamBold speedLabel.Text = "Vitesse: " .. walkSpeed .. " studs/s" speedLabel.TextColor3 = Color3.fromRGB(255, 255, 255) speedLabel.TextSize = 12 speedLabel.TextXAlignment = Enum.TextXAlignment.Center speedLabel.Parent = speedFrame local speedSlider = Instance.new("Frame") speedSlider.Size = UDim2.new(0.9, 0, 0, 6) speedSlider.Position = UDim2.new(0.05, 0, 0, 30) speedSlider.BackgroundColor3 = Color3.fromRGB(50, 50, 70) speedSlider.BorderSizePixel = 0 speedSlider.Parent = speedFrame local sliderCorner = Instance.new("UICorner") sliderCorner.CornerRadius = UDim.new(1, 0) sliderCorner.Parent = speedSlider local speedFill = Instance.new("Frame") speedFill.Size = UDim2.new(0.5, 0, 1, 0) speedFill.BackgroundColor3 = Color3.fromRGB(0, 200, 100) speedFill.BorderSizePixel = 0 speedFill.Parent = speedSlider local fillCorner = Instance.new("UICorner") fillCorner.CornerRadius = UDim.new(1, 0) fillCorner.Parent = speedFill local speedKnob = Instance.new("TextButton") speedKnob.Size = UDim2.new(0, 18, 0, 18) speedKnob.Position = UDim2.new(0.5, -9, 0.5, -9) speedKnob.BackgroundColor3 = Color3.fromRGB(255, 255, 255) speedKnob.BorderSizePixel = 0 speedKnob.Text = "" speedKnob.Parent = speedSlider local knobCorner = Instance.new("UICorner") knobCorner.CornerRadius = UDim.new(1, 0) knobCorner.Parent = speedKnob -- ScrollingFrame pour les joueurs local playersScroll = Instance.new("ScrollingFrame") playersScroll.Size = UDim2.new(0.9, 0, 0, 280) playersScroll.Position = UDim2.new(0.05, 0, 0, 215) playersScroll.BackgroundColor3 = Color3.fromRGB(30, 30, 45) playersScroll.BorderSizePixel = 0 playersScroll.ScrollBarThickness = 6 playersScroll.CanvasSize = UDim2.new(0, 0, 0, 0) playersScroll.Visible = true playersScroll.Parent = mainFrame local playersScrollCorner = Instance.new("UICorner") playersScrollCorner.CornerRadius = UDim.new(0, 12) playersScrollCorner.Parent = playersScroll local playersLayout = Instance.new("UIListLayout") playersLayout.SortOrder = Enum.SortOrder.Name playersLayout.Padding = UDim.new(0, 4) playersLayout.Parent = playersScroll -- ScrollingFrame pour les parts local partsScroll = Instance.new("ScrollingFrame") partsScroll.Size = UDim2.new(0.9, 0, 0, 230) partsScroll.Position = UDim2.new(0.05, 0, 0, 215) partsScroll.BackgroundColor3 = Color3.fromRGB(30, 30, 45) partsScroll.BorderSizePixel = 0 partsScroll.ScrollBarThickness = 6 partsScroll.CanvasSize = UDim2.new(0, 0, 0, 0) partsScroll.Visible = false partsScroll.Parent = mainFrame local partsScrollCorner = Instance.new("UICorner") partsScrollCorner.CornerRadius = UDim.new(0, 12) partsScrollCorner.Parent = partsScroll local partsLayout = Instance.new("UIListLayout") partsLayout.SortOrder = Enum.SortOrder.Name partsLayout.Padding = UDim.new(0, 4) partsLayout.Parent = partsScroll -- Bouton "Charger plus" local loadMoreButton = Instance.new("TextButton") loadMoreButton.Size = UDim2.new(0.9, 0, 0, 35) loadMoreButton.Position = UDim2.new(0.05, 0, 0, 455) loadMoreButton.BackgroundColor3 = Color3.fromRGB(100, 100, 150) loadMoreButton.BorderSizePixel = 0 loadMoreButton.Font = Enum.Font.GothamBold loadMoreButton.Text = "⬇️ CHARGER PLUS" loadMoreButton.TextColor3 = Color3.fromRGB(255, 255, 255) loadMoreButton.TextSize = 14 loadMoreButton.Visible = false loadMoreButton.Parent = mainFrame local loadMoreCorner = Instance.new("UICorner") loadMoreCorner.CornerRadius = UDim.new(0, 10) loadMoreCorner.Parent = loadMoreButton -- ScrollingFrame pour le PlayerGui local guiScroll = Instance.new("ScrollingFrame") guiScroll.Size = UDim2.new(0.9, 0, 0, 280) guiScroll.Position = UDim2.new(0.05, 0, 0, 215) guiScroll.BackgroundColor3 = Color3.fromRGB(30, 30, 45) guiScroll.BorderSizePixel = 0 guiScroll.ScrollBarThickness = 6 guiScroll.CanvasSize = UDim2.new(0, 0, 0, 0) guiScroll.Visible = false guiScroll.Parent = mainFrame local guiScrollCorner = Instance.new("UICorner") guiScrollCorner.CornerRadius = UDim.new(0, 12) guiScrollCorner.Parent = guiScroll local guiLayout = Instance.new("UIListLayout") guiLayout.SortOrder = Enum.SortOrder.Name guiLayout.Padding = UDim.new(0, 4) guiLayout.Parent = guiScroll -- Crédit local creditLabel = Instance.new("TextLabel") creditLabel.Size = UDim2.new(1, 0, 0, 18) creditLabel.Position = UDim2.new(0, 0, 1, -22) creditLabel.BackgroundTransparency = 1 creditLabel.Font = Enum.Font.GothamBold creditLabel.Text = "Éditeur: jecheatpaspromisje" creditLabel.TextColor3 = Color3.fromRGB(100, 200, 255) creditLabel.TextSize = 11 creditLabel.Parent = mainFrame -- Bouton de refresh local refreshButton = Instance.new("TextButton") refreshButton.Size = UDim2.new(0.9, 0, 0, 35) refreshButton.Position = UDim2.new(0.05, 0, 0, 505) refreshButton.BackgroundColor3 = Color3.fromRGB(0, 180, 100) refreshButton.BorderSizePixel = 0 refreshButton.Font = Enum.Font.GothamBold refreshButton.Text = "🔄 ACTUALISER" refreshButton.TextColor3 = Color3.fromRGB(255, 255, 255) refreshButton.TextSize = 14 refreshButton.Parent = mainFrame local refreshCorner = Instance.new("UICorner") refreshCorner.CornerRadius = UDim.new(0, 10) refreshCorner.Parent = refreshButton -- Bouton STOP local stopWalkButton = Instance.new("TextButton") stopWalkButton.Size = UDim2.new(0.9, 0, 0, 35) stopWalkButton.Position = UDim2.new(0.05, 0, 0, 550) stopWalkButton.BackgroundColor3 = Color3.fromRGB(200, 50, 50) stopWalkButton.BorderSizePixel = 0 stopWalkButton.Font = Enum.Font.GothamBold stopWalkButton.Text = "⏹ ARRÊTER" stopWalkButton.TextColor3 = Color3.fromRGB(255, 255, 255) stopWalkButton.TextSize = 14 stopWalkButton.Visible = false stopWalkButton.Parent = mainFrame local stopWalkCorner = Instance.new("UICorner") stopWalkCorner.CornerRadius = UDim.new(0, 10) stopWalkCorner.Parent = stopWalkButton -- FONCTIONS local function getCharacter() return player.Character or player.CharacterAdded:Wait() end local function teleportTo(position) local char = getCharacter() local hrp = char:FindFirstChild("HumanoidRootPart") if hrp then hrp.CFrame = position end end local function walkTeleportTo(targetPosition) walkTeleporting = true stopWalkButton.Visible = true refreshButton.Visible = false task.spawn(function() local char = getCharacter() local hrp = char:FindFirstChild("HumanoidRootPart") if hrp then local startPos = hrp.Position local endPos = targetPosition.Position local distance = (endPos - startPos).Magnitude local duration = distance / walkSpeed local steps = math.ceil(duration / 0.05) for i = 1, steps do if not walkTeleporting then break end local alpha = i / steps local newPos = startPos:Lerp(endPos, alpha) hrp.CFrame = CFrame.new(newPos) * CFrame.Angles(0, targetPosition.Rotation.Y, 0) task.wait(0.05) end if walkTeleporting then hrp.CFrame = targetPosition end end walkTeleporting = false stopWalkButton.Visible = false refreshButton.Visible = true end) end local function createPlayerButton(targetPlayer) local button = Instance.new("TextButton") button.Size = UDim2.new(1, -10, 0, 70) button.BackgroundColor3 = Color3.fromRGB(40, 40, 60) button.BorderSizePixel = 0 button.Font = Enum.Font.Gotham button.TextColor3 = Color3.fromRGB(255, 255, 255) button.TextSize = 13 button.TextXAlignment = Enum.TextXAlignment.Left button.TextYAlignment = Enum.TextYAlignment.Top button.TextTruncate = Enum.TextTruncate.AtEnd local playerText = "👤 " .. targetPlayer.Name if targetPlayer.Team then local teamColor = targetPlayer.Team.TeamColor.Color button.BorderSizePixel = 2 button.BorderColor3 = teamColor playerText = playerText .. "\n🎯 " .. targetPlayer.Team.Name end local leaderstats = targetPlayer:FindFirstChild("leaderstats") if leaderstats then for _, stat in pairs(leaderstats:GetChildren()) do playerText = playerText .. "\n📊 " .. stat.Name .. ": " .. tostring(stat.Value) end end button.Text = playerText local padding = Instance.new("UIPadding") padding.PaddingLeft = UDim.new(0, 8) padding.PaddingTop = UDim.new(0, 4) padding.Parent = button local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, 8) corner.Parent = button local spectateButton = Instance.new("TextButton") spectateButton.Size = UDim2.new(0, 30, 0, 30) spectateButton.Position = UDim2.new(1, -35, 1, -35) spectateButton.BackgroundColor3 = Color3.fromRGB(255, 150, 0) spectateButton.BorderSizePixel = 0 spectateButton.Font = Enum.Font.GothamBold spectateButton.Text = "👁️" spectateButton.TextColor3 = Color3.fromRGB(255, 255, 255) spectateButton.TextSize = 16 spectateButton.Parent = button local spectateCorner = Instance.new("UICorner") spectateCorner.CornerRadius = UDim.new(0, 8) spectateCorner.Parent = spectateButton button.MouseButton1Click:Connect(function() if targetPlayer.Character then local hrp = targetPlayer.Character:FindFirstChild("HumanoidRootPart") if hrp then local targetCFrame = hrp.CFrame * CFrame.new(0, 0, 3) if teleportMode == "instant" then teleportTo(targetCFrame) else walkTeleportTo(targetCFrame) end button.BackgroundColor3 = Color3.fromRGB(0, 200, 100) task.wait(0.3) button.BackgroundColor3 = Color3.fromRGB(40, 40, 60) end end end) spectateButton.MouseButton1Click:Connect(function() if spectatorMode and spectatedPlayer == targetPlayer then spectatorMode = false spectatedPlayer = nil spectateButton.BackgroundColor3 = Color3.fromRGB(255, 150, 0) spectateButton.Text = "👁️" else spectatorMode = true spectatedPlayer = targetPlayer spectateButton.BackgroundColor3 = Color3.fromRGB(0, 255, 100) spectateButton.Text = "⏹" task.spawn(function() while spectatorMode and spectatedPlayer == targetPlayer do if targetPlayer.Character then local hrp = targetPlayer.Character:FindFirstChild("HumanoidRootPart") if hrp then local char = getCharacter() local myHrp = char:FindFirstChild("HumanoidRootPart") if myHrp then myHrp.CFrame = hrp.CFrame * CFrame.new(0, 3, 5) end end end task.wait(0.1) end if spectatedPlayer == targetPlayer then spectateButton.BackgroundColor3 = Color3.fromRGB(255, 150, 0) spectateButton.Text = "👁️" end end) end end) button.MouseEnter:Connect(function() button.BackgroundColor3 = Color3.fromRGB(60, 60, 90) end) button.MouseLeave:Connect(function() button.BackgroundColor3 = Color3.fromRGB(40, 40, 60) end) spectateButton.MouseEnter:Connect(function() if spectatorMode and spectatedPlayer == targetPlayer then spectateButton.BackgroundColor3 = Color3.fromRGB(255, 80, 80) else spectateButton.BackgroundColor3 = Color3.fromRGB(255, 180, 50) end end) spectateButton.MouseLeave:Connect(function() if spectatorMode and spectatedPlayer == targetPlayer then spectateButton.BackgroundColor3 = Color3.fromRGB(0, 255, 100) else spectateButton.BackgroundColor3 = Color3.fromRGB(255, 150, 0) end end) button.Parent = playersScroll end local function createPartButton(part) local frame = Instance.new("Frame") frame.Size = UDim2.new(1, -10, 0, 60) frame.BackgroundColor3 = Color3.fromRGB(40, 40, 60) frame.BorderSizePixel = 0 frame.Parent = partsScroll local frameCorner = Instance.new("UICorner") frameCorner.CornerRadius = UDim.new(0, 8) frameCorner.Parent = frame local button = Instance.new("TextButton") button.Size = UDim2.new(0.7, 0, 1, 0) button.Position = UDim2.new(0, 0, 0, 0) button.BackgroundTransparency = 1 button.Font = Enum.Font.Gotham button.Text = "🧱 " .. part.Name button.TextColor3 = Color3.fromRGB(255, 255, 255) button.TextSize = 13 button.TextXAlignment = Enum.TextXAlignment.Left button.TextTruncate = Enum.TextTruncate.AtEnd button.Parent = frame local padding = Instance.new("UIPadding") padding.PaddingLeft = UDim.new(0, 10) padding.Parent = button local colorBox = Instance.new("Frame") colorBox.Size = UDim2.new(0, 12, 0, 12) colorBox.Position = UDim2.new(0, 10, 1, -18) colorBox.BackgroundColor3 = part.Color colorBox.BorderSizePixel = 1 colorBox.BorderColor3 = Color3.fromRGB(255, 255, 255) colorBox.Parent = frame local colorBoxCorner = Instance.new("UICorner") colorBoxCorner.CornerRadius = UDim.new(0, 3) colorBoxCorner.Parent = colorBox local collideCheck = Instance.new("TextButton") collideCheck.Size = UDim2.new(0, 18, 0, 18) collideCheck.Position = UDim2.new(0.4, 0, 1, -22) collideCheck.BackgroundColor3 = part.CanCollide and Color3.fromRGB(0, 200, 100) or Color3.fromRGB(100, 100, 100) collideCheck.BorderSizePixel = 0 collideCheck.Font = Enum.Font.GothamBold collideCheck.Text = part.CanCollide and "✓" or "" collideCheck.TextColor3 = Color3.fromRGB(255, 255, 255) collideCheck.TextSize = 12 collideCheck.Parent = frame local collideCorner = Instance.new("UICorner") collideCorner.CornerRadius = UDim.new(0, 4) collideCorner.Parent = collideCheck local collideLabel = Instance.new("TextLabel") collideLabel.Size = UDim2.new(0, 60, 0, 18) collideLabel.Position = UDim2.new(0.4, 22, 1, -22) collideLabel.BackgroundTransparency = 1 collideLabel.Font = Enum.Font.Gotham collideLabel.Text = "Collide" collideLabel.TextColor3 = Color3.fromRGB(200, 200, 200) collideLabel.TextSize = 10 collideLabel.TextXAlignment = Enum.TextXAlignment.Left collideLabel.Parent = frame button.MouseButton1Click:Connect(function() if part:IsA("BasePart") then local targetCFrame = part.CFrame * CFrame.new(0, 5, 0) if teleportMode == "instant" then teleportTo(targetCFrame) else walkTeleportTo(targetCFrame) end frame.BackgroundColor3 = Color3.fromRGB(0, 200, 100) task.wait(0.3) frame.BackgroundColor3 = Color3.fromRGB(40, 40, 60) end end) collideCheck.MouseButton1Click:Connect(function() part.CanCollide = not part.CanCollide collideCheck.BackgroundColor3 = part.CanCollide and Color3.fromRGB(0, 200, 100) or Color3.fromRGB(100, 100, 100) collideCheck.Text = part.CanCollide and "✓" or "" end) button.MouseEnter:Connect(function() frame.BackgroundColor3 = Color3.fromRGB(60, 60, 90) end) button.MouseLeave:Connect(function() frame.BackgroundColor3 = Color3.fromRGB(40, 40, 60) end) end local function refreshPlayers() for _, child in pairs(playersScroll:GetChildren()) do if child:IsA("TextButton") then child:Destroy() end end local playerCount = 0 for _, obj in pairs(workspace:GetDescendants()) do if obj:IsA("Humanoid") and obj.Parent then local model = obj.Parent local targetPlayer = game.Players:GetPlayerFromCharacter(model) if targetPlayer and targetPlayer ~= player then createPlayerButton(targetPlayer) playerCount = playerCount + 1 end end end playersScroll.CanvasSize = UDim2.new(0, 0, 0, playerCount * 74) end local function collectAllParts() allParts = {} local searchText = searchBox.Text:lower() for _, obj in pairs(workspace:GetDescendants()) do if obj:IsA("BasePart") and obj.Name ~= "Terrain" then local isPlayerPart = false local parent = obj.Parent while parent do if parent:FindFirstChild("Humanoid") then isPlayerPart = true break end parent = parent.Parent end local matchesSearch = searchText == "" or obj.Name:lower():find(searchText, 1, true) if not isPlayerPart and matchesSearch then table.insert(allParts, obj) end end end end local function refreshParts() for _, child in pairs(partsScroll:GetChildren()) do if child:IsA("Frame") then child:Destroy() end end collectAllParts() currentPartsPage = 1 local maxParts = math.min(#allParts, partsPerPage) for i = 1, maxParts do createPartButton(allParts[i]) end partsScroll.CanvasSize = UDim2.new(0, 0, 0, maxParts * 64) if #allParts > partsPerPage then loadMoreButton.Visible = true loadMoreButton.Text = "⬇️ CHARGER PLUS (" .. (#allParts - partsPerPage) .. " restantes)" else loadMoreButton.Visible = false end end local function loadMoreParts() local startIndex = currentPartsPage * partsPerPage + 1 local endIndex = math.min(#allParts, startIndex + partsPerPage - 1) for i = startIndex, endIndex do createPartButton(allParts[i]) end currentPartsPage = currentPartsPage + 1 local totalLoaded = math.min(currentPartsPage * partsPerPage, #allParts) partsScroll.CanvasSize = UDim2.new(0, 0, 0, totalLoaded * 64) if totalLoaded >= #allParts then loadMoreButton.Visible = false else loadMoreButton.Text = "⬇️ CHARGER PLUS (" .. (#allParts - totalLoaded) .. " restantes)" end end local function createGuiItem(guiObject, depth) local frame = Instance.new("Frame") frame.Size = UDim2.new(1, -10, 0, 32) frame.BackgroundColor3 = Color3.fromRGB(40, 40, 60) frame.BorderSizePixel = 0 frame.Parent = guiScroll local frameCorner = Instance.new("UICorner") frameCorner.CornerRadius = UDim.new(0, 6) frameCorner.Parent = frame local indent = depth * 15 if depth > 0 then local indicator = Instance.new("TextLabel") indicator.Size = UDim2.new(0, indent, 1, 0) indicator.Position = UDim2.new(0, 0, 0, 0) indicator.BackgroundTransparency = 1 indicator.Font = Enum.Font.Gotham indicator.Text = string.rep(" └ ", depth) indicator.TextColor3 = Color3.fromRGB(100, 100, 150) indicator.TextSize = 9 indicator.TextXAlignment = Enum.TextXAlignment.Left indicator.Parent = frame end local label = Instance.new("TextLabel") label.Size = UDim2.new(0.55, -indent, 1, 0) label.Position = UDim2.new(0, indent, 0, 0) label.BackgroundTransparency = 1 label.Font = Enum.Font.Gotham label.Text = guiObject.Name label.TextColor3 = Color3.fromRGB(255, 255, 255) label.TextSize = 11 label.TextXAlignment = Enum.TextXAlignment.Left label.TextTruncate = Enum.TextTruncate.AtEnd label.Parent = frame local padding = Instance.new("UIPadding") padding.PaddingLeft = UDim.new(0, 5) padding.Parent = label if guiObject:IsA("GuiObject") and guiObject:FindFirstChild("Enabled") ~= nil or guiObject.ClassName == "ScreenGui" then local isOurGui = guiObject == screenGui or guiObject:IsDescendantOf(screenGui) local enabledCheck = Instance.new("TextButton") enabledCheck.Size = UDim2.new(0, 18, 0, 18) enabledCheck.Position = UDim2.new(0.65, 0, 0.5, -9) local isEnabled = guiObject.Enabled enabledCheck.BackgroundColor3 = isEnabled and Color3.fromRGB(0, 200, 100) or Color3.fromRGB(100, 100, 100) enabledCheck.BorderSizePixel = 0 enabledCheck.Font = Enum.Font.GothamBold enabledCheck.Text = isEnabled and "✓" or "" enabledCheck.TextColor3 = Color3.fromRGB(255, 255, 255) enabledCheck.TextSize = 11 enabledCheck.Parent = frame local enabledCorner = Instance.new("UICorner") enabledCorner.CornerRadius = UDim.new(0, 4) enabledCorner.Parent = enabledCheck local enabledLabel = Instance.new("TextLabel") enabledLabel.Size = UDim2.new(0, 25, 1, 0) enabledLabel.Position = UDim2.new(0.65, -30, 0, 0) enabledLabel.BackgroundTransparency = 1 enabledLabel.Font = Enum.Font.Gotham enabledLabel.Text = "E" enabledLabel.TextColor3 = Color3.fromRGB(150, 150, 150) enabledLabel.TextSize = 9 enabledLabel.Parent = frame if not isOurGui then enabledCheck.MouseButton1Click:Connect(function() guiObject.Enabled = not guiObject.Enabled enabledCheck.BackgroundColor3 = guiObject.Enabled and Color3.fromRGB(0, 200, 100) or Color3.fromRGB(100, 100, 100) enabledCheck.Text = guiObject.Enabled and "✓" or "" end) else enabledCheck.BackgroundColor3 = Color3.fromRGB(60, 60, 60) end end if guiObject:IsA("GuiObject") then local isOurGui = guiObject == screenGui or guiObject:IsDescendantOf(screenGui) local visibleCheck = Instance.new("TextButton") visibleCheck.Size = UDim2.new(0, 18, 0, 18) visibleCheck.Position = UDim2.new(0.85, 0, 0.5, -9) local isVisible = guiObject.Visible visibleCheck.BackgroundColor3 = isVisible and Color3.fromRGB(0, 200, 100) or Color3.fromRGB(100, 100, 100) visibleCheck.BorderSizePixel = 0 visibleCheck.Font = Enum.Font.GothamBold visibleCheck.Text = isVisible and "✓" or "" visibleCheck.TextColor3 = Color3.fromRGB(255, 255, 255) visibleCheck.TextSize = 11 visibleCheck.Parent = frame local visibleCorner = Instance.new("UICorner") visibleCorner.CornerRadius = UDim.new(0, 4) visibleCorner.Parent = visibleCheck local visibleLabel = Instance.new("TextLabel") visibleLabel.Size = UDim2.new(0, 25, 1, 0) visibleLabel.Position = UDim2.new(0.85, -30, 0, 0) visibleLabel.BackgroundTransparency = 1 visibleLabel.Font = Enum.Font.Gotham visibleLabel.Text = "V" visibleLabel.TextColor3 = Color3.fromRGB(150, 150, 150) visibleLabel.TextSize = 9 visibleLabel.Parent = frame if not isOurGui then visibleCheck.MouseButton1Click:Connect(function() guiObject.Visible = not guiObject.Visible visibleCheck.BackgroundColor3 = guiObject.Visible and Color3.fromRGB(0, 200, 100) or Color3.fromRGB(100, 100, 100) visibleCheck.Text = guiObject.Visible and "✓" or "" end) else visibleCheck.BackgroundColor3 = Color3.fromRGB(60, 60, 60) end end end local function refreshGui() for _, child in pairs(guiScroll:GetChildren()) do if child:IsA("Frame") then child:Destroy() end end local itemCount = 0 local function addGuiHierarchy(guiObject, depth) createGuiItem(guiObject, depth) itemCount = itemCount + 1 for _, child in pairs(guiObject:GetChildren()) do if child:IsA("GuiObject") or child:IsA("UIListLayout") or child:IsA("UIPadding") or child:IsA("UICorner") then addGuiHierarchy(child, depth + 1) end end end for _, gui in pairs(playerGui:GetChildren()) do if (gui:IsA("ScreenGui") or gui:IsA("GuiBase2d")) and gui ~= screenGui then addGuiHierarchy(gui, 0) end end guiScroll.CanvasSize = UDim2.new(0, 0, 0, itemCount * 36) end -- Gestion du slider de vitesse local draggingSpeed = false speedKnob.MouseButton1Down:Connect(function() draggingSpeed = true end) game:GetService("UserInputService").InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then draggingSpeed = false end end) game:GetService("UserInputService").InputChanged:Connect(function(input) if draggingSpeed and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then local sliderPos = speedSlider.AbsolutePosition.X local sliderSize = speedSlider.AbsoluteSize.X local mousePos = input.Position.X local relativePos = math.clamp((mousePos - sliderPos) / sliderSize, 0, 1) walkSpeed = math.floor(10 + (relativePos * 190)) speedLabel.Text = "Vitesse: " .. walkSpeed .. " studs/s" speedFill.Size = UDim2.new(relativePos, 0, 1, 0) speedKnob.Position = UDim2.new(relativePos, -9, 0.5, -9) end end) -- Events des tabs playersTab.MouseButton1Click:Connect(function() playersScroll.Visible = true partsScroll.Visible = false guiScroll.Visible = false searchFrame.Visible = false modeFrame.Visible = true speedFrame.Visible = false loadMoreButton.Visible = false playersTab.BackgroundColor3 = Color3.fromRGB(0, 150, 255) playersTab.TextColor3 = Color3.fromRGB(255, 255, 255) partsTab.BackgroundColor3 = Color3.fromRGB(50, 50, 70) partsTab.TextColor3 = Color3.fromRGB(200, 200, 200) guiTab.BackgroundColor3 = Color3.fromRGB(50, 50, 70) guiTab.TextColor3 = Color3.fromRGB(200, 200, 200) playersScroll.Size = UDim2.new(0.9, 0, 0, 280) playersScroll.Position = UDim2.new(0.05, 0, 0, 215) refreshPlayers() end) partsTab.MouseButton1Click:Connect(function() playersScroll.Visible = false partsScroll.Visible = true guiScroll.Visible = false searchFrame.Visible = true modeFrame.Visible = true speedFrame.Visible = false partsTab.BackgroundColor3 = Color3.fromRGB(0, 150, 255) partsTab.TextColor3 = Color3.fromRGB(255, 255, 255) playersTab.BackgroundColor3 = Color3.fromRGB(50, 50, 70) playersTab.TextColor3 = Color3.fromRGB(200, 200, 200) guiTab.BackgroundColor3 = Color3.fromRGB(50, 50, 70) guiTab.TextColor3 = Color3.fromRGB(200, 200, 200) partsScroll.Size = UDim2.new(0.9, 0, 0, 230) partsScroll.Position = UDim2.new(0.05, 0, 0, 215) refreshParts() end) guiTab.MouseButton1Click:Connect(function() playersScroll.Visible = false partsScroll.Visible = false guiScroll.Visible = true searchFrame.Visible = false modeFrame.Visible = false speedFrame.Visible = false loadMoreButton.Visible = false guiTab.BackgroundColor3 = Color3.fromRGB(0, 150, 255) guiTab.TextColor3 = Color3.fromRGB(255, 255, 255) playersTab.BackgroundColor3 = Color3.fromRGB(50, 50, 70) playersTab.TextColor3 = Color3.fromRGB(200, 200, 200) partsTab.BackgroundColor3 = Color3.fromRGB(50, 50, 70) partsTab.TextColor3 = Color3.fromRGB(200, 200, 200) guiScroll.Size = UDim2.new(0.9, 0, 0, 280) guiScroll.Position = UDim2.new(0.05, 0, 0, 215) refreshGui() end) -- Mode de téléportation instantButton.MouseButton1Click:Connect(function() teleportMode = "instant" instantButton.BackgroundColor3 = Color3.fromRGB(0, 200, 100) instantButton.TextColor3 = Color3.fromRGB(255, 255, 255) walkButton.BackgroundColor3 = Color3.fromRGB(50, 50, 70) walkButton.TextColor3 = Color3.fromRGB(200, 200, 200) speedFrame.Visible = false if playersScroll.Visible then playersScroll.Size = UDim2.new(0.9, 0, 0, 280) playersScroll.Position = UDim2.new(0.05, 0, 0, 215) elseif partsScroll.Visible then partsScroll.Size = UDim2.new(0.9, 0, 0, 230) partsScroll.Position = UDim2.new(0.05, 0, 0, 215) end end) walkButton.MouseButton1Click:Connect(function() teleportMode = "walk" walkButton.BackgroundColor3 = Color3.fromRGB(0, 200, 100) walkButton.TextColor3 = Color3.fromRGB(255, 255, 255) instantButton.BackgroundColor3 = Color3.fromRGB(50, 50, 70) instantButton.TextColor3 = Color3.fromRGB(200, 200, 200) speedFrame.Visible = true if playersScroll.Visible then playersScroll.Size = UDim2.new(0.9, 0, 0, 215) playersScroll.Position = UDim2.new(0.05, 0, 0, 275) elseif partsScroll.Visible then partsScroll.Size = UDim2.new(0.9, 0, 0, 165) partsScroll.Position = UDim2.new(0.05, 0, 0, 275) end end) -- Arrêter la marche stopWalkButton.MouseButton1Click:Connect(function() walkTeleporting = false stopWalkButton.Visible = false refreshButton.Visible = true end) -- Charger plus de parts loadMoreButton.MouseButton1Click:Connect(function() loadMoreParts() loadMoreButton.BackgroundColor3 = Color3.fromRGB(0, 200, 100) task.wait(0.2) loadMoreButton.BackgroundColor3 = Color3.fromRGB(100, 100, 150) end) -- Recherche searchBox:GetPropertyChangedSignal("Text"):Connect(function() if partsScroll.Visible then refreshParts() end end) -- Bouton refresh refreshButton.MouseButton1Click:Connect(function() if playersScroll.Visible then refreshPlayers() elseif partsScroll.Visible then refreshParts() elseif guiScroll.Visible then refreshGui() end refreshButton.BackgroundColor3 = Color3.fromRGB(0, 255, 150) task.wait(0.2) refreshButton.BackgroundColor3 = Color3.fromRGB(0, 180, 100) end) -- Toggle menu toggleButton.MouseButton1Click:Connect(function() mainFrame.Visible = true toggleButton.Visible = false refreshPlayers() end) closeButton.MouseButton1Click:Connect(function() mainFrame.Visible = false toggleButton.Visible = true end) -- Effets hover toggleButton.MouseEnter:Connect(function() toggleButton.BackgroundColor3 = Color3.fromRGB(60, 60, 90) end) toggleButton.MouseLeave:Connect(function() toggleButton.BackgroundColor3 = Color3.fromRGB(40, 40, 60) end) closeButton.MouseEnter:Connect(function() closeButton.BackgroundColor3 = Color3.fromRGB(255, 70, 70) end) closeButton.MouseLeave:Connect(function() closeButton.BackgroundColor3 = Color3.fromRGB(200, 50, 50) end) refreshButton.MouseEnter:Connect(function() refreshButton.BackgroundColor3 = Color3.fromRGB(0, 220, 120) end) refreshButton.MouseLeave:Connect(function() refreshButton.BackgroundColor3 = Color3.fromRGB(0, 180, 100) end) stopWalkButton.MouseEnter:Connect(function() stopWalkButton.BackgroundColor3 = Color3.fromRGB(255, 80, 80) end) stopWalkButton.MouseLeave:Connect(function() stopWalkButton.BackgroundColor3 = Color3.fromRGB(200, 50, 50) end) loadMoreButton.MouseEnter:Connect(function() loadMoreButton.BackgroundColor3 = Color3.fromRGB(120, 120, 180) end) loadMoreButton.MouseLeave:Connect(function() loadMoreButton.BackgroundColor3 = Color3.fromRGB(100, 100, 150) end) -- Charger les joueurs au démarrage refreshPlayers() searchFrame.Visible = false