
Keyless

local Player = game:GetService("Players").LocalPlayer
local RunService = game:GetService("RunService")
local Workspace = game:GetService("Workspace")
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "DualTeleporter"
ScreenGui.ResetOnSpawn = false
ScreenGui.Parent = Player:WaitForChild("PlayerGui")
local MainContainer = Instance.new("Frame")
MainContainer.Name = "MainContainer"
MainContainer.Size = UDim2.new(0, 620, 0, 450)
MainContainer.Position = UDim2.new(0, 50, 0, 50)
MainContainer.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
MainContainer.BorderSizePixel = 2
MainContainer.BorderColor3 = Color3.fromRGB(80, 80, 80)
MainContainer.Active = true
MainContainer.Draggable = true
MainContainer.Parent = ScreenGui
local TitleBar = Instance.new("Frame")
TitleBar.Name = "TitleBar"
TitleBar.Size = UDim2.new(1, 0, 0, 35)
TitleBar.BackgroundColor3 = Color3.fromRGB(25, 25, 25)
TitleBar.BorderSizePixel = 0
TitleBar.Parent = MainContainer
local Title = Instance.new("TextLabel")
Title.Name = "Title"
Title.Size = UDim2.new(1, -10, 1, 0)
Title.Position = UDim2.new(0, 10, 0, 0)
Title.BackgroundTransparency = 1
Title.Text = "Dual Teleporter"
Title.TextColor3 = Color3.fromRGB(255, 255, 255)
Title.Font = Enum.Font.GothamBold
Title.TextSize = 18
Title.TextXAlignment = Enum.TextXAlignment.Left
Title.Parent = TitleBar
local CloseButton = Instance.new("TextButton")
CloseButton.Name = "CloseButton"
CloseButton.Size = UDim2.new(0, 35, 0, 35)
CloseButton.Position = UDim2.new(1, -35, 0, 0)
CloseButton.BackgroundColor3 = Color3.fromRGB(200, 50, 50)
CloseButton.BorderSizePixel = 0
CloseButton.Text = "X"
CloseButton.TextColor3 = Color3.fromRGB(255, 255, 255)
CloseButton.Font = Enum.Font.GothamBold
CloseButton.TextSize = 16
CloseButton.Parent = TitleBar
CloseButton.MouseButton1Click:Connect(function()
ScreenGui:Destroy()
end)
local ContentFrame = Instance.new("Frame")
ContentFrame.Name = "ContentFrame"
ContentFrame.Size = UDim2.new(1, -10, 1, -45)
ContentFrame.Position = UDim2.new(0, 5, 0, 40)
ContentFrame.BackgroundTransparency = 1
ContentFrame.Parent = MainContainer
local NestsPanel = Instance.new("Frame")
NestsPanel.Name = "NestsPanel"
NestsPanel.Size = UDim2.new(0.49, -5, 1, 0)
NestsPanel.Position = UDim2.new(0, 0, 0, 0)
NestsPanel.BackgroundColor3 = Color3.fromRGB(45, 45, 45)
NestsPanel.BorderSizePixel = 2
NestsPanel.BorderColor3 = Color3.fromRGB(60, 120, 180)
NestsPanel.Parent = ContentFrame
local NestsTitle = Instance.new("TextLabel")
NestsTitle.Name = "NestsTitle"
NestsTitle.Size = UDim2.new(1, 0, 0, 30)
NestsTitle.Position = UDim2.new(0, 0, 0, 0)
NestsTitle.BackgroundColor3 = Color3.fromRGB(60, 120, 180)
NestsTitle.BorderSizePixel = 0
NestsTitle.Text = "Nests (0)"
NestsTitle.TextColor3 = Color3.fromRGB(255, 255, 255)
NestsTitle.Font = Enum.Font.GothamBold
NestsTitle.TextSize = 16
NestsTitle.Parent = NestsPanel
local WormsPanel = Instance.new("Frame")
WormsPanel.Name = "WormsPanel"
WormsPanel.Size = UDim2.new(0.49, -5, 1, 0)
WormsPanel.Position = UDim2.new(0.51, 0, 0, 0)
WormsPanel.BackgroundColor3 = Color3.fromRGB(45, 45, 45)
WormsPanel.BorderSizePixel = 2
WormsPanel.BorderColor3 = Color3.fromRGB(180, 80, 60)
WormsPanel.Parent = ContentFrame
local WormsTitle = Instance.new("TextLabel")
WormsTitle.Name = "WormsTitle"
WormsTitle.Size = UDim2.new(1, 0, 0, 30)
WormsTitle.Position = UDim2.new(0, 0, 0, 0)
WormsTitle.BackgroundColor3 = Color3.fromRGB(180, 80, 60)
WormsTitle.BorderSizePixel = 0
WormsTitle.Text = "Worms (0)"
WormsTitle.TextColor3 = Color3.fromRGB(255, 255, 255)
WormsTitle.Font = Enum.Font.GothamBold
WormsTitle.TextSize = 16
WormsTitle.Parent = WormsPanel
local function createScrollFrame(parent, offset)
local ScrollFrame = Instance.new("ScrollingFrame")
ScrollFrame.Name = "ScrollFrame"
ScrollFrame.Size = UDim2.new(1, -10, 1, -(offset + 5))
ScrollFrame.Position = UDim2.new(0, 5, 0, offset)
ScrollFrame.BackgroundColor3 = Color3.fromRGB(35, 35, 35)
ScrollFrame.BorderSizePixel = 0
ScrollFrame.ScrollBarThickness = 8
ScrollFrame.CanvasSize = UDim2.new(0, 0, 0, 0)
ScrollFrame.AutomaticCanvasSize = Enum.AutomaticSize.Y
ScrollFrame.Parent = parent
local UIListLayout = Instance.new("UIListLayout")
UIListLayout.Padding = UDim.new(0, 5)
UIListLayout.Parent = ScrollFrame
UIListLayout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function()
ScrollFrame.CanvasSize = UDim2.new(0, 0, 0, UIListLayout.AbsoluteContentSize.Y + 10)
end)
return ScrollFrame, UIListLayout
end
local NestsScrollFrame, NestsListLayout = createScrollFrame(NestsPanel, 35)
local WormsScrollFrame, WormsListLayout = createScrollFrame(WormsPanel, 35)
local function teleportToTarget(target)
local character = Player.Character
if character then
local humanoidRootPart = character:FindFirstChild("HumanoidRootPart")
if humanoidRootPart then
local targetCFrame
if target:IsA("BasePart") then
targetCFrame = target.CFrame + Vector3.new(0, 5, 0)
elseif target:IsA("Model") then
local primaryPart = target.PrimaryPart
if primaryPart then
targetCFrame = primaryPart.CFrame + Vector3.new(0, 5, 0)
else
local torso = target:FindFirstChild("Torso") or target:FindFirstChild("HumanoidRootPart")
if torso then
targetCFrame = torso.CFrame + Vector3.new(0, 5, 0)
else
for _, part in pairs(target:GetChildren()) do
if part:IsA("BasePart") then
targetCFrame = part.CFrame + Vector3.new(0, 5, 0)
break
end
end
end
end
end
if targetCFrame then
humanoidRootPart.CFrame = targetCFrame
return true
end
end
end
return false
end
local function createTeleporterButton(parent, target, buttonColor)
local Button = Instance.new("TextButton")
Button.Name = "TeleportButton_" .. target.Name
Button.Size = UDim2.new(1, -10, 0, 40)
Button.BackgroundColor3 = buttonColor
Button.BorderSizePixel = 0
Button.Text = target.Name
Button.TextColor3 = Color3.fromRGB(255, 255, 255)
Button.Font = Enum.Font.Gotham
Button.TextSize = 14
Button.Parent = parent
Button.MouseButton1Click:Connect(function()
if target and target.Parent then
local success = teleportToTarget(target)
if success then
local originalColor = Button.BackgroundColor3
Button.BackgroundColor3 = Color3.fromRGB(80, 200, 80)
task.wait(0.3)
Button.BackgroundColor3 = originalColor
end
else
Button.Text = target.Name .. " (Removed)"
Button.BackgroundColor3 = Color3.fromRGB(100, 50, 50)
Button.AutoButtonColor = false
end
end)
Button.MouseEnter:Connect(function()
if target and target.Parent then
local r, g, b = buttonColor.R * 255, buttonColor.G * 255, buttonColor.B * 255
Button.BackgroundColor3 = Color3.fromRGB(
math.min(r + 30, 255),
math.min(g + 30, 255),
math.min(b + 30, 255)
) / 255
end
end)
Button.MouseLeave:Connect(function()
if target and target.Parent then
Button.BackgroundColor3 = buttonColor
end
end)
return Button
end
local folderWatchers = {
Nests = {
folder = nil,
panel = NestsPanel,
scrollFrame = NestsScrollFrame,
title = NestsTitle,
buttonColor = Color3.fromRGB(70, 130, 200),
buttons = {},
connections = {}
},
Worms = {
folder = nil,
panel = WormsPanel,
scrollFrame = WormsScrollFrame,
title = WormsTitle,
buttonColor = Color3.fromRGB(200, 100, 80),
buttons = {},
connections = {}
}
}
local function findFolders()
local wormsFolder = Workspace:FindFirstChild("Enemies") or
Workspace:FindFirstChild("Worms") or
Workspace:FindFirstChild("enemies") or
Workspace:FindFirstChild("worms")
folderWatchers.Nests.folder = Workspace:FindFirstChild("Nests") or Workspace:FindFirstChild("nests")
folderWatchers.Worms.folder = wormsFolder
return folderWatchers.Nests.folder or folderWatchers.Worms.folder
end
local function clearPanel(panelData)
for _, button in pairs(panelData.buttons) do
if button and button.Parent then
button:Destroy()
end
end
panelData.buttons = {}
for _, conn in pairs(panelData.connections) do
conn:Disconnect()
end
panelData.connections = {}
end
local function refreshPanel(panelData)
clearPanel(panelData)
if not panelData.folder or not panelData.folder.Parent then
panelData.title.Text = panelData.title.Name .. " (Folder Missing)"
panelData.panel.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
return 0
end
panelData.panel.BackgroundColor3 = Color3.fromRGB(45, 45, 45)
local count = 0
for _, item in pairs(panelData.folder:GetChildren()) do
if item:IsA("Model") or item:IsA("BasePart") then
count = count + 1
panelData.buttons[item] = createTeleporterButton(panelData.scrollFrame, item, panelData.buttonColor)
end
end
panelData.title.Text = panelData.title.Name .. " (" .. count .. ")"
if panelData.folder then
table.insert(panelData.connections, panelData.folder.ChildAdded:Connect(function()
refreshPanel(panelData)
end))
table.insert(panelData.connections, panelData.folder.ChildRemoved:Connect(function()
refreshPanel(panelData)
end))
end
return count
end
local function refreshAllPanels()
local nestsCount = 0
local wormsCount = 0
findFolders()
nestsCount = refreshPanel(folderWatchers.Nests)
wormsCount = refreshPanel(folderWatchers.Worms)
Title.Text = "Dual Teleporter (Nests: " .. nestsCount .. " | Worms: " .. wormsCount .. ")"
return nestsCount + wormsCount
end
local ControlPanel = Instance.new("Frame")
ControlPanel.Name = "ControlPanel"
ControlPanel.Size = UDim2.new(1, -10, 0, 50)
ControlPanel.Position = UDim2.new(0, 5, 1, -55)
ControlPanel.BackgroundColor3 = Color3.fromRGB(50, 50, 50)
ControlPanel.BorderSizePixel = 1
ControlPanel.BorderColor3 = Color3.fromRGB(70, 70, 70)
ControlPanel.Parent = ContentFrame
local SearchButton = Instance.new("TextButton")
SearchButton.Name = "SearchButton"
SearchButton.Size = UDim2.new(0.3, -5, 0, 25)
SearchButton.Position = UDim2.new(0, 5, 0, 5)
SearchButton.BackgroundColor3 = Color3.fromRGB(80, 120, 200)
SearchButton.BorderSizePixel = 0
SearchButton.Text = "Find Folders"
SearchButton.TextColor3 = Color3.fromRGB(255, 255, 255)
SearchButton.Font = Enum.Font.Gotham
SearchButton.TextSize = 12
SearchButton.Parent = ControlPanel
local ManualRefreshButton = Instance.new("TextButton")
ManualRefreshButton.Name = "ManualRefresh"
ManualRefreshButton.Size = UDim2.new(0.3, -5, 0, 25)
ManualRefreshButton.Position = UDim2.new(0.33, 5, 0, 5)
ManualRefreshButton.BackgroundColor3 = Color3.fromRGB(80, 80, 150)
ManualRefreshButton.BorderSizePixel = 0
ManualRefreshButton.Text = "Refresh Now"
ManualRefreshButton.TextColor3 = Color3.fromRGB(255, 255, 255)
ManualRefreshButton.Font = Enum.Font.Gotham
ManualRefreshButton.TextSize = 12
ManualRefreshButton.Parent = ControlPanel
local ToggleGUIButton = Instance.new("TextButton")
ToggleGUIButton.Name = "ToggleGUI"
ToggleGUIButton.Size = UDim2.new(0.3, -5, 0, 25)
ToggleGUIButton.Position = UDim2.new(0.67, 0, 0, 5)
ToggleGUIButton.BackgroundColor3 = Color3.fromRGB(120, 80, 150)
ToggleGUIButton.BorderSizePixel = 0
ToggleGUIButton.Text = "Hide GUI (T)"
ToggleGUIButton.TextColor3 = Color3.fromRGB(255, 255, 255)
ToggleGUIButton.Font = Enum.Font.Gotham
ToggleGUIButton.TextSize = 12
ToggleGUIButton.Parent = ControlPanel
local StatusLabel = Instance.new("TextLabel")
StatusLabel.Name = "StatusLabel"
StatusLabel.Size = UDim2.new(1, -10, 0, 15)
StatusLabel.Position = UDim2.new(0, 5, 0.6, 0)
StatusLabel.BackgroundTransparency = 1
StatusLabel.Text = "Click 'Find Folders' to start"
StatusLabel.TextColor3 = Color3.fromRGB(180, 180, 180)
StatusLabel.Font = Enum.Font.Gotham
StatusLabel.TextSize = 11
StatusLabel.TextXAlignment = Enum.TextXAlignment.Center
StatusLabel.Parent = ControlPanel
SearchButton.MouseButton1Click:Connect(function()
StatusLabel.Text = "Searching for folders..."
SearchButton.BackgroundColor3 = Color3.fromRGB(100, 140, 220)
local totalItems = refreshAllPanels()
if totalItems > 0 then
StatusLabel.Text = "Found " .. totalItems .. " items"
else
StatusLabel.Text = "No items found. Check folder names."
end
task.wait(0.3)
SearchButton.BackgroundColor3 = Color3.fromRGB(80, 120, 200)
end)
ManualRefreshButton.MouseButton1Click:Connect(function()
StatusLabel.Text = "Refreshing..."
ManualRefreshButton.BackgroundColor3 = Color3.fromRGB(100, 100, 180)
local totalItems = refreshAllPanels()
StatusLabel.Text = "Refreshed: " .. totalItems .. " items"
task.wait(0.3)
ManualRefreshButton.BackgroundColor3 = Color3.fromRGB(80, 80, 150)
end)
local guiVisible = true
ToggleGUIButton.MouseButton1Click:Connect(function()
guiVisible = not guiVisible
MainContainer.Visible = guiVisible
ToggleGUIButton.Text = guiVisible and "Hide GUI (T)" or "Show GUI (T)"
end)
local autoRefreshEnabled = false
local refreshConnection
local lastRefreshTime = 0
local REFRESH_INTERVAL = 1.0
local function startAutoRefresh()
if refreshConnection then
refreshConnection:Disconnect()
end
autoRefreshEnabled = true
refreshConnection = RunService.Heartbeat:Connect(function()
local currentTime = tick()
if currentTime - lastRefreshTime >= REFRESH_INTERVAL then
lastRefreshTime = currentTime
refreshAllPanels()
StatusLabel.Text = "Auto-refresh: " .. os.date("%X")
end
end)
end
local AutoRefreshButton = Instance.new("TextButton")
AutoRefreshButton.Name = "AutoRefresh"
AutoRefreshButton.Size = UDim2.new(0.48, -5, 0, 20)
AutoRefreshButton.Position = UDim2.new(0, 5, 1, -25)
AutoRefreshButton.BackgroundColor3 = Color3.fromRGB(60, 100, 60)
AutoRefreshButton.BorderSizePixel = 0
AutoRefreshButton.Text = "Auto Refresh: OFF"
AutoRefreshButton.TextColor3 = Color3.fromRGB(255, 255, 255)
AutoRefreshButton.Font = Enum.Font.Gotham
AutoRefreshButton.TextSize = 11
AutoRefreshButton.Parent = MainContainer
AutoRefreshButton.MouseButton1Click:Connect(function()
autoRefreshEnabled = not autoRefreshEnabled
if autoRefreshEnabled then
AutoRefreshButton.BackgroundColor3 = Color3.fromRGB(60, 120, 60)
AutoRefreshButton.Text = "Auto Refresh: ON"
startAutoRefresh()
else
AutoRefreshButton.BackgroundColor3 = Color3.fromRGB(120, 60, 60)
AutoRefreshButton.Text = "Auto Refresh: OFF"
if refreshConnection then
refreshConnection:Disconnect()
refreshConnection = nil
end
StatusLabel.Text = "Auto-refresh disabled"
end
end)
local UserInputService = game:GetService("UserInputService")
local dragging
local dragInput
local dragStart
local startPos
local function update(input)
local delta = input.Position - dragStart
MainContainer.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
end
MainContainer.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
dragging = true
dragStart = input.Position
startPos = MainContainer.Position
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
dragging = false
end
end)
end
end)
MainContainer.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
dragInput = input
end
end)
UserInputService.InputChanged:Connect(function(input)
if input == dragInput and dragging then
update(input)
end
end)
UserInputService.InputBegan:Connect(function(input, gameProcessed)
if not gameProcessed and input.KeyCode == Enum.KeyCode.T then
guiVisible = not guiVisible
MainContainer.Visible = guiVisible
ToggleGUIButton.Text = guiVisible and "Hide GUI (T)" or "Show GUI (T)"
end
end)
ScreenGui.Destroying:Connect(function()
if refreshConnection then
refreshConnection:Disconnect()
end
end)
StatusLabel.Text = "Click 'Find Folders' to search for Nests and Worms"
Don’t work