Select and teleport to part
Key RequiredUniversal

Select and teleport to part

Universal Scriptscriptbunnyscriptbunny 621 views 89 executesUpdated Jan 13, 2026
Unrated
00
Lua Script•456 lines (16431 chars)
local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local TweenService = game:GetService("TweenService")

local player = Players.LocalPlayer
local mouse = player:GetMouse()
local character = player.Character or player.CharacterAdded:Wait()
local humanoidRootPart = character:WaitForChild("HumanoidRootPart")
local humanoid = character:WaitForChild("Humanoid")

local screenGui = Instance.new("ScreenGui")
screenGui.Parent = player:WaitForChild("PlayerGui")

local toggleFrame = Instance.new("Frame")
toggleFrame.Size = UDim2.new(0, 150, 0, 50)
toggleFrame.Position = UDim2.new(0, 10, 0, 10)
toggleFrame.BackgroundColor3 = Color3.fromRGB(35, 35, 40)
toggleFrame.BorderSizePixel = 0
toggleFrame.Parent = screenGui

local toggleCorner = Instance.new("UICorner")
toggleCorner.CornerRadius = UDim.new(0, 8)
toggleCorner.Parent = toggleFrame

local toggleButton = Instance.new("TextButton")
toggleButton.Size = UDim2.new(1, 0, 1, 0)
toggleButton.BackgroundColor3 = Color3.fromRGB(50, 50, 55)
toggleButton.TextColor3 = Color3.fromRGB(255, 255, 255)
toggleButton.TextSize = 14
toggleButton.Font = Enum.Font.GothamBold
toggleButton.Text = "Selection: OFF"
toggleButton.Parent = toggleFrame

local toggleBtnCorner = Instance.new("UICorner")
toggleBtnCorner.CornerRadius = UDim.new(0, 6)
toggleBtnCorner.Parent = toggleButton

local sideFrame = Instance.new("Frame")
sideFrame.Size = UDim2.new(0, 200, 0, 300)
sideFrame.Position = UDim2.new(1, -210, 0, 10)
sideFrame.BackgroundColor3 = Color3.fromRGB(35, 35, 40)
sideFrame.BorderSizePixel = 0
sideFrame.Parent = screenGui

local sideCorner = Instance.new("UICorner")
sideCorner.CornerRadius = UDim.new(0, 10)
sideCorner.Parent = sideFrame

local sideTitleBar = Instance.new("Frame")
sideTitleBar.Size = UDim2.new(1, 0, 0, 32)
sideTitleBar.BackgroundColor3 = Color3.fromRGB(50, 50, 55)
sideTitleBar.BorderSizePixel = 0
sideTitleBar.Parent = sideFrame

local sideTitleCorner = Instance.new("UICorner")
sideTitleCorner.CornerRadius = UDim.new(0, 10)
sideTitleCorner.Parent = sideTitleBar

local sideTitleFix = Instance.new("Frame")
sideTitleFix.Size = UDim2.new(1, 0, 0, 10)
sideTitleFix.Position = UDim2.new(0, 0, 1, -10)
sideTitleFix.BackgroundColor3 = Color3.fromRGB(50, 50, 55)
sideTitleFix.BorderSizePixel = 0
sideTitleFix.Parent = sideTitleBar

local sideTitle = Instance.new("TextLabel")
sideTitle.Size = UDim2.new(1, -40, 1, 0)
sideTitle.Position = UDim2.new(0, 10, 0, 0)
sideTitle.BackgroundTransparency = 1
sideTitle.TextColor3 = Color3.fromRGB(255, 255, 255)
sideTitle.Text = "📍 Selected Parts"
sideTitle.Font = Enum.Font.GothamBold
sideTitle.TextSize = 13
sideTitle.TextXAlignment = Enum.TextXAlignment.Left
sideTitle.Parent = sideTitleBar

local sideMinBtn = Instance.new("TextButton")
sideMinBtn.Size = UDim2.new(0, 26, 0, 26)
sideMinBtn.Position = UDim2.new(1, -30, 0, 3)
sideMinBtn.BackgroundColor3 = Color3.fromRGB(70, 70, 75)
sideMinBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
sideMinBtn.Text = "—"
sideMinBtn.Font = Enum.Font.GothamBold
sideMinBtn.TextSize = 16
sideMinBtn.Parent = sideTitleBar

local sideMinCorner = Instance.new("UICorner")
sideMinCorner.CornerRadius = UDim.new(0, 6)
sideMinCorner.Parent = sideMinBtn

local partList = Instance.new("ScrollingFrame")
partList.Size = UDim2.new(1, -10, 1, -42)
partList.Position = UDim2.new(0, 5, 0, 37)
partList.BackgroundTransparency = 1
partList.ScrollBarThickness = 4
partList.ScrollBarImageColor3 = Color3.fromRGB(100, 100, 100)
partList.CanvasSize = UDim2.new(0, 0, 0, 0)
partList.Parent = sideFrame

local partLayout = Instance.new("UIListLayout")
partLayout.Padding = UDim.new(0, 5)
partLayout.SortOrder = Enum.SortOrder.LayoutOrder
partLayout.Parent = partList

local notificationFrame = Instance.new("Frame")
notificationFrame.Size = UDim2.new(0, 250, 0, 100)
notificationFrame.Position = UDim2.new(1, -260, 1, -110)
notificationFrame.BackgroundColor3 = Color3.fromRGB(35, 35, 40)
notificationFrame.BorderSizePixel = 0
notificationFrame.Parent = screenGui

local notificationCorner = Instance.new("UICorner")
notificationCorner.CornerRadius = UDim.new(0, 10)
notificationCorner.Parent = notificationFrame

local notificationTitle = Instance.new("TextLabel")
notificationTitle.Size = UDim2.new(1, -30, 0, 20)
notificationTitle.Position = UDim2.new(0, 10, 0, 5)
notificationTitle.BackgroundTransparency = 1
notificationTitle.TextColor3 = Color3.fromRGB(255, 255, 255)
notificationTitle.Text = "Notifications"
notificationTitle.Font = Enum.Font.GothamBold
notificationTitle.TextSize = 12
notificationTitle.TextXAlignment = Enum.TextXAlignment.Left
notificationTitle.Parent = notificationFrame

local notificationXBtn = Instance.new("TextButton")
notificationXBtn.Size = UDim2.new(0, 20, 0, 20)
notificationXBtn.Position = UDim2.new(1, -25, 0, 5)
notificationXBtn.BackgroundColor3 = Color3.fromRGB(180, 60, 60)
notificationXBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
notificationXBtn.Text = "X"
notificationXBtn.Font = Enum.Font.GothamBold
notificationXBtn.TextSize = 12
notificationXBtn.Parent = notificationFrame

local notificationXCorner = Instance.new("UICorner")
notificationXCorner.CornerRadius = UDim.new(0, 4)
notificationXCorner.Parent = notificationXBtn

local notificationList = Instance.new("ScrollingFrame")
notificationList.Size = UDim2.new(1, -10, 1, -35)
notificationList.Position = UDim2.new(0, 5, 0, 30)
notificationList.BackgroundTransparency = 1
notificationList.ScrollBarThickness = 4
notificationList.ScrollBarImageColor3 = Color3.fromRGB(100, 100, 100)
notificationList.CanvasSize = UDim2.new(0, 0, 0, 0)
notificationList.Parent = notificationFrame

local notificationLayout = Instance.new("UIListLayout")
notificationLayout.Padding = UDim.new(0, 3)
notificationLayout.SortOrder = Enum.SortOrder.LayoutOrder
notificationLayout.Parent = notificationList

local function playSound(soundId, volume)
    local sound = Instance.new("Sound")
    sound.SoundId = soundId
    sound.Volume = volume or 0.5
    sound.Parent = workspace
    sound:Play()
    sound.Ended:Connect(function()
        sound:Destroy()
    end)
end

local selectionEnabled = false
local selectedParts = {}
local currentHighlight = nil
local sideMinimized = false
local activeEntries = {}
local scriptEnabled = true
local notificationHistory = {}

local function createHighlight(part)
    if not scriptEnabled then return end
    if currentHighlight then
        currentHighlight:Destroy()
    end
    if part and part:IsA("BasePart") then
        local highlight = Instance.new("Highlight")
        highlight.Adornee = part
        highlight.FillColor = Color3.fromRGB(0, 255, 0)
        highlight.OutlineColor = Color3.fromRGB(255, 255, 255)
        highlight.FillTransparency = 0.5
        highlight.OutlineTransparency = 0
        highlight.Parent = part
        currentHighlight = highlight
    end
end

local function removeHighlight()
    if currentHighlight then
        currentHighlight:Destroy()
        currentHighlight = nil
    end
end

local function isPartValid(part)
    return part and part:IsDescendantOf(game) and part:IsA("BasePart")
end

local function showNotification(message)
    if not scriptEnabled then return end
    local notificationLabel = Instance.new("TextLabel")
    notificationLabel.Size = UDim2.new(1, -5, 0, 20)
    notificationLabel.BackgroundTransparency = 1
    notificationLabel.TextColor3 = Color3.fromRGB(200, 200, 200)
    notificationLabel.Text = message
    notificationLabel.Font = Enum.Font.Gotham
    notificationLabel.TextSize = 10
    notificationLabel.TextXAlignment = Enum.TextXAlignment.Left
    notificationLabel.Parent = notificationList
    table.insert(notificationHistory, notificationLabel)

    notificationList.CanvasSize = UDim2.new(0, 0, 0, #notificationHistory * 23)

    task.delay(5, function()
        if notificationLabel and notificationLabel.Parent then
            local tween = TweenService:Create(notificationLabel, TweenInfo.new(1), {TextTransparency = 1})
            tween:Play()
            tween.Completed:Wait()
            notificationLabel:Destroy()
            table.remove(notificationHistory, table.find(notificationHistory, notificationLabel))
            notificationList.CanvasSize = UDim2.new(0, 0, 0, #notificationHistory * 23)
        end
    end)
end

local function updatePartList()
    if not scriptEnabled then return end
    local validParts = {}
    for _, part in ipairs(selectedParts) do
        if isPartValid(part) then
            table.insert(validParts, part)
        else
            showNotification("Part deselected: " .. part.Name .. " (deleted)")
        end
    end
    selectedParts = validParts

    for _, child in ipairs(partList:GetChildren()) do
        if child:IsA("Frame") then
            child:Destroy()
        end
    end
    activeEntries = {}

    local yOffset = 0
    for i, part in ipairs(selectedParts) do
        local partFrame = Instance.new("Frame")
        partFrame.Size = UDim2.new(1, -5, 0, 60)
        partFrame.BackgroundColor3 = Color3.fromRGB(50, 50, 55)
        partFrame.BorderSizePixel = 0
        partFrame.LayoutOrder = i
        partFrame.Parent = partList

        local partCorner = Instance.new("UICorner")
        partCorner.CornerRadius = UDim.new(0, 6)
        partCorner.Parent = partFrame

        local partName = Instance.new("TextLabel")
        partName.Size = UDim2.new(1, 0, 0, 20)
        partName.Position = UDim2.new(0, 8, 0, 5)
        partName.BackgroundTransparency = 1
        partName.TextColor3 = Color3.fromRGB(255, 255, 255)
        partName.Text = part.Name
        partName.Font = Enum.Font.GothamBold
        partName.TextSize = 11
        partName.TextXAlignment = Enum.TextXAlignment.Left
        partName.Parent = partFrame

        local posText = Instance.new("TextLabel")
        posText.Size = UDim2.new(1, 0, 0, 15)
        posText.Position = UDim2.new(0, 8, 0, 22)
        posText.BackgroundTransparency = 1
        posText.TextColor3 = Color3.fromRGB(150, 150, 150)
        posText.Text = string.format("%.1f, %.1f, %.1f", part.Position.X, part.Position.Y, part.Position.Z)
        posText.Font = Enum.Font.Code
        posText.TextSize = 10
        posText.TextXAlignment = Enum.TextXAlignment.Left
        posText.Parent = partFrame

        table.insert(activeEntries, {part = part, posText = posText})

        local teleportButton = Instance.new("TextButton")
        teleportButton.Size = UDim2.new(0, 35, 0, 20)
        teleportButton.Position = UDim2.new(0, 8, 1, -25)
        teleportButton.BackgroundColor3 = Color3.fromRGB(0, 160, 120)
        teleportButton.TextColor3 = Color3.fromRGB(255, 255, 255)
        teleportButton.Text = "Go"
        teleportButton.Font = Enum.Font.GothamBold
        teleportButton.TextSize = 10
        teleportButton.Parent = partFrame

        local teleportCorner = Instance.new("UICorner")
        teleportCorner.CornerRadius = UDim.new(0, 4)
        teleportCorner.Parent = teleportButton

        local deleteButton = Instance.new("TextButton")
        deleteButton.Size = UDim2.new(0, 22, 0, 22)
        deleteButton.Position = UDim2.new(1, -27, 0, 5)
        deleteButton.BackgroundColor3 = Color3.fromRGB(180, 60, 60)
        deleteButton.TextColor3 = Color3.fromRGB(255, 255, 255)
        deleteButton.Text = "✕"
        deleteButton.Font = Enum.Font.GothamBold
        deleteButton.TextSize = 12
        deleteButton.Parent = partFrame

        local deleteCorner = Instance.new("UICorner")
        deleteCorner.CornerRadius = UDim.new(0, 4)
        deleteCorner.Parent = deleteButton

        teleportButton.MouseButton1Click:Connect(function()
            if scriptEnabled and isPartValid(part) then
                playSound("rbxassetid://12221967", 0.3)
                humanoidRootPart.CFrame = CFrame.new(part.Position + Vector3.new(0, 5, 0))
            end
        end)

        deleteButton.MouseButton1Click:Connect(function()
            if scriptEnabled then
                playSound("rbxassetid://12221967", 0.3)
                showNotification("Part deselected: " .. part.Name)
                table.remove(selectedParts, i)
                updatePartList()
            end
        end)

        yOffset = yOffset + 65
    end
    partList.CanvasSize = UDim2.new(0, 0, 0, yOffset)
end

local function updatePositions()
    if not scriptEnabled then return end
    for _, entry in ipairs(activeEntries) do
        local part = entry.part
        local posText = entry.posText
        if isPartValid(part) then
            posText.Text = string.format("%.1f, %.1f, %.1f", part.Position.X, part.Position.Y, part.Position.Z)
        end
    end
end

toggleButton.MouseButton1Click:Connect(function()
    if not scriptEnabled then return end
    playSound("rbxassetid://12221967", 0.3)
    selectionEnabled = not selectionEnabled
    toggleButton.Text = selectionEnabled and "Selection: ON" or "Selection: OFF"
    showNotification(selectionEnabled and "Selection enabled" or "Selection disabled")
    if not selectionEnabled then
        removeHighlight()
    end
end)

sideMinBtn.MouseButton1Click:Connect(function()
    if not scriptEnabled then return end
    playSound("rbxassetid://12221967", 0.3)
    sideMinimized = not sideMinimized
    partList.Visible = not sideMinimized
    if sideMinimized then
        sideFrame.Size = UDim2.new(0, 200, 0, 32)
        sideMinBtn.Text = "+"
    else
        sideFrame.Size = UDim2.new(0, 200, 0, 300)
        sideMinBtn.Text = "—"
    end
end)

notificationXBtn.MouseButton1Click:Connect(function()
    scriptEnabled = false
    screenGui:Destroy()
end)

local toggleDragging = false
local toggleDragStart, toggleStartPos

toggleFrame.InputBegan:Connect(function(input)
    if scriptEnabled and (input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch) then
        toggleDragging = true
        toggleDragStart = input.Position
        toggleStartPos = toggleFrame.Position
    end
end)

toggleFrame.InputEnded:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
        toggleDragging = false
    end
end)

local sideDragging = false
local sideDragStart, sideStartPos

sideTitleBar.InputBegan:Connect(function(input)
    if scriptEnabled and (input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch) then
        sideDragging = true
        sideDragStart = input.Position
        sideStartPos = sideFrame.Position
    end
end)

sideTitleBar.InputEnded:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
        sideDragging = false
    end
end)

UserInputService.InputChanged:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
        if toggleDragging then
            local delta = input.Position - toggleDragStart
            toggleFrame.Position = UDim2.new(
                toggleStartPos.X.Scale, toggleStartPos.X.Offset + delta.X,
                toggleStartPos.Y.Scale, toggleStartPos.Y.Offset + delta.Y
            )
        end
        if sideDragging then
            local delta = input.Position - sideDragStart
            sideFrame.Position = UDim2.new(
                sideStartPos.X.Scale, sideStartPos.X.Offset + delta.X,
                sideStartPos.Y.Scale, sideStartPos.Y.Offset + delta.Y
            )
        end
    end
end)

mouse.Move:Connect(function()
    if scriptEnabled and selectionEnabled then
        local target = mouse.Target
        if target and target:IsA("BasePart") then
            createHighlight(target)
        else
            removeHighlight()
        end
    else
        removeHighlight()
    end
end)

mouse.Button1Down:Connect(function()
    if scriptEnabled and selectionEnabled then
        local target = mouse.Target
        if target and target:IsA("BasePart") and not table.find(selectedParts, target) then
            playSound("rbxassetid://12222005", 0.5)
            table.insert(selectedParts, target)
            updatePartList()
            showNotification("Part selected: " .. target.Name)
        end
    end
end)

RunService.RenderStepped:Connect(updatePositions)

updatePartList()

Features & Information

Lets you select a part then teleport to it. the X on the notifications closes EVERYTHING btw cuz i suck at coding
#part teleport#teleport

Community Comments (2)

roadblockscherriesroadblockscherriesJan 13, 2026

bots on scriptblox, just, wow

Replying to @roadblockscherries
scriptbunnyscriptbunnyJan 14, 2026

i reported it but it just didnt go through i guess

More Scripts for Universal Scripts