
KeylessUniversal

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 = falseNo comments yet for this script.



