jecheatpaspromisje Admin menu
Key RequiredUniversal

jecheatpaspromisje Admin menu

Universal Scriptloulouyuna49loulouyuna49 420 views 129 executesUpdated Jan 11, 2026
0.0/ 5(2 votes)
020% Positive
Lua Script•995 lines (35451 chars)
local player = game.Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")

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
local mainFrame = Instance.new("Frame")
mainFrame.Size = UDim2.new(0, 500, 0, 650)
mainFrame.Position = UDim2.new(0.5, -250, 0.5, -325)
mainFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 35)
mainFrame.BorderSizePixel = 0
mainFrame.Visible = false
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 = "🌍 TELEPORTATION MENU"
mainTitle.TextColor3 = Color3.fromRGB(100, 200, 255)
mainTitle.TextSize = 20
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, 50)
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, 40)
searchFrame.Position = UDim2.new(0.05, 0, 0, 120)
searchFrame.BackgroundColor3 = Color3.fromRGB(35, 35, 50)
searchFrame.BorderSizePixel = 0
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, -10)
searchBox.Position = UDim2.new(0, 10, 0, 5)
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 = 14
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, 50)
modeFrame.Position = UDim2.new(0.05, 0, 0, 170)
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.4, 0, 1, 0)
modeLabel.Position = UDim2.new(0, 10, 0, 0)
modeLabel.BackgroundTransparency = 1
modeLabel.Font = Enum.Font.GothamBold
modeLabel.Text = "Mode TP:"
modeLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
modeLabel.TextSize = 14
modeLabel.TextXAlignment = Enum.TextXAlignment.Left
modeLabel.Parent = modeFrame

local instantButton = Instance.new("TextButton")
instantButton.Size = UDim2.new(0.25, 0, 0, 35)
instantButton.Position = UDim2.new(0.4, 0, 0.5, -17.5)
instantButton.BackgroundColor3 = Color3.fromRGB(0, 200, 100)
instantButton.BorderSizePixel = 0
instantButton.Font = Enum.Font.GothamBold
instantButton.Text = "⚡ Instant"
instantButton.TextColor3 = Color3.fromRGB(255, 255, 255)
instantButton.TextSize = 13
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.25, 0, 0, 35)
walkButton.Position = UDim2.new(0.7, 0, 0.5, -17.5)
walkButton.BackgroundColor3 = Color3.fromRGB(50, 50, 70)
walkButton.BorderSizePixel = 0
walkButton.Font = Enum.Font.GothamBold
walkButton.Text = "🚶 Marche"
walkButton.TextColor3 = Color3.fromRGB(200, 200, 200)
walkButton.TextSize = 13
walkButton.Parent = modeFrame

local walkCorner = Instance.new("UICorner")
walkCorner.CornerRadius = UDim.new(0, 8)
walkCorner.Parent = walkButton

-- ScrollingFrame pour les joueurs
local playersScroll = Instance.new("ScrollingFrame")
playersScroll.Size = UDim2.new(0.9, 0, 0, 300)
playersScroll.Position = UDim2.new(0.05, 0, 0, 230)
playersScroll.BackgroundColor3 = Color3.fromRGB(30, 30, 45)
playersScroll.BorderSizePixel = 0
playersScroll.ScrollBarThickness = 8
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, 5)
playersLayout.Parent = playersScroll

-- ScrollingFrame pour les parts
local partsScroll = Instance.new("ScrollingFrame")
partsScroll.Size = UDim2.new(0.9, 0, 0, 300)
partsScroll.Position = UDim2.new(0.05, 0, 0, 230)
partsScroll.BackgroundColor3 = Color3.fromRGB(30, 30, 45)
partsScroll.BorderSizePixel = 0
partsScroll.ScrollBarThickness = 8
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, 5)
partsLayout.Parent = partsScroll

-- ScrollingFrame pour le PlayerGui
local guiScroll = Instance.new("ScrollingFrame")
guiScroll.Size = UDim2.new(0.9, 0, 0, 300)
guiScroll.Position = UDim2.new(0.05, 0, 0, 230)
guiScroll.BackgroundColor3 = Color3.fromRGB(30, 30, 45)
guiScroll.BorderSizePixel = 0
guiScroll.ScrollBarThickness = 8
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, 5)
guiLayout.Parent = guiScroll

-- Crédit
local creditLabel = Instance.new("TextLabel")
creditLabel.Size = UDim2.new(1, 0, 0, 20)
creditLabel.Position = UDim2.new(0, 0, 1, -25)
creditLabel.BackgroundTransparency = 1
creditLabel.Font = Enum.Font.GothamBold
creditLabel.Text = "Éditeur: jecheatpaspromisje"
creditLabel.TextColor3 = Color3.fromRGB(100, 200, 255)
creditLabel.TextSize = 12
creditLabel.Parent = mainFrame

-- Bouton de refresh
local refreshButton = Instance.new("TextButton")
refreshButton.Size = UDim2.new(0.9, 0, 0, 40)
refreshButton.Position = UDim2.new(0.05, 0, 0, 590)
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 = 16
refreshButton.Parent = mainFrame

local refreshCorner = Instance.new("UICorner")
refreshCorner.CornerRadius = UDim.new(0, 10)
refreshCorner.Parent = refreshButton

-- Bouton STOP pour mode marche
local stopWalkButton = Instance.new("TextButton")
stopWalkButton.Size = UDim2.new(0.9, 0, 0, 40)
stopWalkButton.Position = UDim2.new(0.05, 0, 0, 590)
stopWalkButton.BackgroundColor3 = Color3.fromRGB(200, 50, 50)
stopWalkButton.BorderSizePixel = 0
stopWalkButton.Font = Enum.Font.GothamBold
stopWalkButton.Text = "⏹ ARRÊTER LA MARCHE"
stopWalkButton.TextColor3 = Color3.fromRGB(255, 255, 255)
stopWalkButton.TextSize = 16
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 steps = math.ceil(distance / 10) -- 10 studs par step
            
            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
            
            -- Position finale
            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, 80)
    button.BackgroundColor3 = Color3.fromRGB(40, 40, 60)
    button.BorderSizePixel = 0
    button.Font = Enum.Font.Gotham
    button.TextColor3 = Color3.fromRGB(255, 255, 255)
    button.TextSize = 15
    button.TextXAlignment = Enum.TextXAlignment.Left
    button.TextYAlignment = Enum.TextYAlignment.Top
    button.TextTruncate = Enum.TextTruncate.AtEnd
    
    -- Texte du joueur avec stats
    local playerText = "👤 " .. targetPlayer.Name
    
    -- Récupérer l'équipe
    if targetPlayer.Team then
        local teamColor = targetPlayer.Team.TeamColor.Color
        button.BorderSizePixel = 3
        button.BorderColor3 = teamColor
        playerText = playerText .. "\n🎯 " .. targetPlayer.Team.Name
    end
    
    -- Récupérer les leaderstats
    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, 10)
    padding.PaddingTop = UDim.new(0, 5)
    padding.Parent = button
    
    local corner = Instance.new("UICorner")
    corner.CornerRadius = UDim.new(0, 8)
    corner.Parent = button
    
    -- Bouton spectateur
    local spectateButton = Instance.new("TextButton")
    spectateButton.Size = UDim2.new(0, 35, 0, 35)
    spectateButton.Position = UDim2.new(1, -40, 1, -40)
    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 = 18
    spectateButton.Parent = button
    
    local spectateCorner = Instance.new("UICorner")
    spectateCorner.CornerRadius = UDim.new(0, 8)
    spectateCorner.Parent = spectateButton
    
    -- Téléportation normale
    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)
    
    -- Mode spectateur
    spectateButton.MouseButton1Click:Connect(function()
        if spectatorMode and spectatedPlayer == targetPlayer then
            -- Arrêter le spectateur
            spectatorMode = false
            spectatedPlayer = nil
            spectateButton.BackgroundColor3 = Color3.fromRGB(255, 150, 0)
            spectateButton.Text = "👁️"
        else
            -- Démarrer le spectateur
            spectatorMode = true
            spectatedPlayer = targetPlayer
            spectateButton.BackgroundColor3 = Color3.fromRGB(0, 255, 100)
            spectateButton.Text = "⏹"
            
            -- Boucle de suivi
            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
                
                -- Reset du bouton si on sort de la boucle
                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, 70)
    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 = 15
    button.TextXAlignment = Enum.TextXAlignment.Left
    button.TextTruncate = Enum.TextTruncate.AtEnd
    button.Parent = frame
    
    local padding = Instance.new("UIPadding")
    padding.PaddingLeft = UDim.new(0, 15)
    padding.Parent = button
    
    -- Bouton paramètres
    local settingsButton = Instance.new("TextButton")
    settingsButton.Size = UDim2.new(0, 60, 0, 30)
    settingsButton.Position = UDim2.new(1, -65, 0, 5)
    settingsButton.BackgroundColor3 = Color3.fromRGB(60, 60, 90)
    settingsButton.BorderSizePixel = 0
    settingsButton.Font = Enum.Font.GothamBold
    settingsButton.Text = "⚙️"
    settingsButton.TextColor3 = Color3.fromRGB(255, 255, 255)
    settingsButton.TextSize = 18
    settingsButton.Parent = frame
    
    local settingsCorner = Instance.new("UICorner")
    settingsCorner.CornerRadius = UDim.new(0, 6)
    settingsCorner.Parent = settingsButton
    
    -- Couleur et CanCollide
    local colorLabel = Instance.new("TextLabel")
    colorLabel.Size = UDim2.new(0.3, 0, 0, 20)
    colorLabel.Position = UDim2.new(0, 10, 1, -25)
    colorLabel.BackgroundTransparency = 1
    colorLabel.Font = Enum.Font.Gotham
    colorLabel.Text = "Couleur: "
    colorLabel.TextColor3 = Color3.fromRGB(200, 200, 200)
    colorLabel.TextSize = 11
    colorLabel.TextXAlignment = Enum.TextXAlignment.Left
    colorLabel.Parent = frame
    
    local colorBox = Instance.new("Frame")
    colorBox.Size = UDim2.new(0, 15, 0, 15)
    colorBox.Position = UDim2.new(0, 60, 1, -23)
    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, 20, 0, 20)
    collideCheck.Position = UDim2.new(0.5, 0, 1, -25)
    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 = 14
    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, 80, 0, 20)
    collideLabel.Position = UDim2.new(0.5, 25, 1, -25)
    collideLabel.BackgroundTransparency = 1
    collideLabel.Font = Enum.Font.Gotham
    collideLabel.Text = "CanCollide"
    collideLabel.TextColor3 = Color3.fromRGB(200, 200, 200)
    collideLabel.TextSize = 11
    collideLabel.TextXAlignment = Enum.TextXAlignment.Left
    collideLabel.Parent = frame
    
    -- Events
    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)
    
    settingsButton.MouseButton1Click:Connect(function()
        -- Afficher plus d'infos (à implémenter si besoin)
        settingsButton.BackgroundColor3 = Color3.fromRGB(0, 200, 100)
        task.wait(0.2)
        settingsButton.BackgroundColor3 = Color3.fromRGB(60, 60, 90)
    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()
    -- Nettoyer la liste
    for _, child in pairs(playersScroll:GetChildren()) do
        if child:IsA("TextButton") then
            child:Destroy()
        end
    end
    
    -- Trouver tous les joueurs dans le workspace (avec Humanoid)
    local playerCount = 0
    for _, obj in pairs(workspace:GetDescendants()) do
        if obj:IsA("Humanoid") and obj.Parent then
            local model = obj.Parent
            -- Vérifier que c'est bien un personnage de joueur
            local targetPlayer = game.Players:GetPlayerFromCharacter(model)
            if targetPlayer and targetPlayer ~= player then
                createPlayerButton(targetPlayer)
                playerCount = playerCount + 1
            end
        end
    end
    
    -- Ajuster la taille du canvas
    playersScroll.CanvasSize = UDim2.new(0, 0, 0, playerCount * 85)
end

local function refreshParts()
    -- Nettoyer la liste
    for _, child in pairs(partsScroll:GetChildren()) do
        if child:IsA("Frame") then
            child:Destroy()
        end
    end
    
    local searchText = searchBox.Text:lower()
    
    -- Trouver toutes les parts dans le workspace
    local partCount = 0
    for _, obj in pairs(workspace:GetDescendants()) do
        if obj:IsA("BasePart") and obj.Name ~= "Terrain" then
            -- Ignorer les parts des personnages
            local isPlayerPart = false
            local parent = obj.Parent
            while parent do
                if parent:FindFirstChild("Humanoid") then
                    isPlayerPart = true
                    break
                end
                parent = parent.Parent
            end
            
            -- Filtre de recherche
            local matchesSearch = searchText == "" or obj.Name:lower():find(searchText, 1, true)
            
            if not isPlayerPart and matchesSearch then
                createPartButton(obj)
                partCount = partCount + 1
            end
        end
    end
    
    -- Ajuster la taille du canvas
    partsScroll.CanvasSize = UDim2.new(0, 0, 0, partCount * 75)
end

local function createGuiItem(guiObject, depth)
    local frame = Instance.new("Frame")
    frame.Size = UDim2.new(1, -10, 0, 35)
    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 * 20
    
    -- Indicateur de hiérarchie
    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 = 10
        indicator.TextXAlignment = Enum.TextXAlignment.Left
        indicator.Parent = frame
    end
    
    local label = Instance.new("TextLabel")
    label.Size = UDim2.new(0.6, -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 = 12
    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
    
    -- Checkbox Enabled
    if guiObject:IsA("GuiObject") and guiObject:FindFirstChild("Enabled") ~= nil or guiObject.ClassName == "ScreenGui" then
        -- Ne pas permettre de désactiver notre propre GUI
        local isOurGui = guiObject == screenGui or guiObject:IsDescendantOf(screenGui)
        
        local enabledCheck = Instance.new("TextButton")
        enabledCheck.Size = UDim2.new(0, 20, 0, 20)
        enabledCheck.Position = UDim2.new(0.65, 0, 0.5, -10)
        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 = 12
        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, 30, 1, 0)
        enabledLabel.Position = UDim2.new(0.65, -35, 0, 0)
        enabledLabel.BackgroundTransparency = 1
        enabledLabel.Font = Enum.Font.Gotham
        enabledLabel.Text = "E"
        enabledLabel.TextColor3 = Color3.fromRGB(150, 150, 150)
        enabledLabel.TextSize = 10
        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
    
    -- Checkbox Visible
    if guiObject:IsA("GuiObject") then
        -- Ne pas permettre de cacher notre propre GUI
        local isOurGui = guiObject == screenGui or guiObject:IsDescendantOf(screenGui)
        
        local visibleCheck = Instance.new("TextButton")
        visibleCheck.Size = UDim2.new(0, 20, 0, 20)
        visibleCheck.Position = UDim2.new(0.85, 0, 0.5, -10)
        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 = 12
        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, 30, 1, 0)
        visibleLabel.Position = UDim2.new(0.85, -35, 0, 0)
        visibleLabel.BackgroundTransparency = 1
        visibleLabel.Font = Enum.Font.Gotham
        visibleLabel.Text = "V"
        visibleLabel.TextColor3 = Color3.fromRGB(150, 150, 150)
        visibleLabel.TextSize = 10
        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()
    -- Nettoyer la liste
    for _, child in pairs(guiScroll:GetChildren()) do
        if child:IsA("Frame") then
            child:Destroy()
        end
    end
    
    local itemCount = 0
    
    -- Fonction récursive pour parcourir la hiérarchie
    local function addGuiHierarchy(guiObject, depth)
        createGuiItem(guiObject, depth)
        itemCount = itemCount + 1
        
        -- Parcourir les enfants directs uniquement
        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
    
    -- Parcourir PlayerGui (sauf notre propre GUI)
    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 * 40)
end

-- Events des tabs
playersTab.MouseButton1Click:Connect(function()
    playersScroll.Visible = true
    partsScroll.Visible = false
    guiScroll.Visible = false
    searchFrame.Visible = false
    modeFrame.Visible = true
    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)
    refreshPlayers()
end)

partsTab.MouseButton1Click:Connect(function()
    playersScroll.Visible = false
    partsScroll.Visible = true
    guiScroll.Visible = false
    searchFrame.Visible = true
    modeFrame.Visible = true
    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)
    refreshParts()
end)

guiTab.MouseButton1Click:Connect(function()
    playersScroll.Visible = false
    partsScroll.Visible = false
    guiScroll.Visible = true
    searchFrame.Visible = false
    modeFrame.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)
    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)
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)
end)

-- Arrêter la marche
stopWalkButton.MouseButton1Click:Connect(function()
    walkTeleporting = false
    stopWalkButton.Visible = false
    refreshButton.Visible = true
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)

-- Charger les joueurs au démarrage
refreshPlayers()
searchFrame.Visible = false

Features & Information

changement gui plus precis changement spec mode

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts