
KeylessUniversal

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()



bots on scriptblox, just, wow
i reported it but it just didnt go through i guess