jecheatpaspromisje Admin menu V2
Key RequiredUniversal

jecheatpaspromisje Admin menu V2

Universal Scriptloulouyuna49loulouyuna49 706 views 234 executesUpdated Jan 11, 2026
5.0/ 5(2 votes)
20100% Positive
Lua Script•1126 lines (36195 chars)
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

Features & Information

charge part / teleport part /// deplace ui

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts