-- Services
local Players = game:GetService("Players")
local Workspace = game:GetService("Workspace")
local UserInputService = game:GetService("UserInputService")
local TweenService = game:GetService("TweenService")
-- Configuration
local CONFIG = {
ChestFolder = "ChestFolder",
ChestException = "Highlight",
PointFolder = "PointFolder",
DefaultTime = 1,
Theme = {
Background = Color3.fromRGB(30, 32, 40),
SectionColor = Color3.fromRGB(40, 42, 55),
TextLight = Color3.fromRGB(240, 240, 240),
TextDim = Color3.fromRGB(150, 150, 160),
AccentChest = Color3.fromRGB(255, 160, 60), -- Orange
AccentPoint = Color3.fromRGB(60, 160, 255), -- Blue
Success = Color3.fromRGB(100, 255, 140),
Off = Color3.fromRGB(60, 60, 70)
}
}
-- Player Setup
local player = Players.LocalPlayer
local guiName = "ModernDevTools"
-- Cleanup old GUI
if player.PlayerGui:FindFirstChild(guiName) then
player.PlayerGui[guiName]:Destroy()
end
-- --- UI CONSTRUCTION --- --
local screenGui = Instance.new("ScreenGui")
screenGui.Name = guiName
screenGui.Parent = player.PlayerGui
screenGui.ResetOnSpawn = false
local mainFrame = Instance.new("Frame")
mainFrame.Size = UDim2.new(0, 260, 0, 360)
mainFrame.Position = UDim2.new(0.05, 0, 0.5, -180)
mainFrame.BackgroundColor3 = CONFIG.Theme.Background
mainFrame.BorderSizePixel = 0
mainFrame.Parent = screenGui
-- Add rounded corners
local corner = Instance.new("UICorner")
corner.CornerRadius = UDim.new(0, 12)
corner.Parent = mainFrame
-- Title Bar
local title = Instance.new("TextLabel")
title.Size = UDim2.new(1, -40, 0, 40)
title.Position = UDim2.new(0, 15, 0, 0)
title.BackgroundTransparency = 1
title.Text = "DEV TELEPORTER"
title.Font = Enum.Font.GothamBold
title.TextColor3 = CONFIG.Theme.TextLight
title.TextSize = 16
title.TextXAlignment = Enum.TextXAlignment.Left
title.Parent = mainFrame
local closeBtn = Instance.new("TextButton")
closeBtn.Size = UDim2.new(0, 30, 0, 30)
closeBtn.Position = UDim2.new(1, -35, 0, 5)
closeBtn.BackgroundTransparency = 1
closeBtn.Text = "X"
closeBtn.TextColor3 = CONFIG.Theme.TextDim
closeBtn.Font = Enum.Font.GothamBold
closeBtn.TextSize = 14
closeBtn.Parent = mainFrame
closeBtn.MouseButton1Click:Connect(function() screenGui:Destroy() end)
-- Container for sections
local listLayout = Instance.new("UIListLayout")
listLayout.Padding = UDim.new(0, 10)
listLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center
listLayout.Parent = mainFrame
local contentFrame = Instance.new("Frame")
contentFrame.Size = UDim2.new(1, 0, 1, -50)
contentFrame.Position = UDim2.new(0, 0, 0, 50)
contentFrame.BackgroundTransparency = 1
contentFrame.Parent = mainFrame
local contentList = Instance.new("UIListLayout")
contentList.Padding = UDim.new(0, 15)
contentList.HorizontalAlignment = Enum.HorizontalAlignment.Center
contentList.SortOrder = Enum.SortOrder.LayoutOrder
contentList.Parent = contentFrame
-- --- HELPER FUNCTIONS --- --
local function createSection(name, color, order)
local section = Instance.new("Frame")
section.Size = UDim2.new(0.9, 0, 0, 135)
section.BackgroundColor3 = CONFIG.Theme.SectionColor
section.LayoutOrder = order
section.Parent = contentFrame
local sCorner = Instance.new("UICorner")
sCorner.CornerRadius = UDim.new(0, 8)
sCorner.Parent = section
local header = Instance.new("TextLabel")
header.Size = UDim2.new(1, 0, 0, 25)
header.Position = UDim2.new(0, 0, 0, 5)
header.BackgroundTransparency = 1
header.Text = string.upper(name)
header.Font = Enum.Font.GothamBlack
header.TextColor3 = color
header.TextSize = 12
header.Parent = section
return section
end
local function createButton(parent, text, color, yPos)
local btn = Instance.new("TextButton")
btn.Size = UDim2.new(0.9, 0, 0, 35)
btn.Position = UDim2.new(0.05, 0, 0, yPos)
btn.BackgroundColor3 = color
btn.Text = text
btn.Font = Enum.Font.GothamBold
btn.TextColor3 = CONFIG.Theme.TextLight
btn.TextSize = 14
btn.AutoButtonColor = true
btn.Parent = parent
local bCorner = Instance.new("UICorner")
bCorner.CornerRadius = UDim.new(0, 6)
bCorner.Parent = btn
return btn
end
-- --- CHEST SECTION --- --
local chestSection = createSection("Chest Controls", CONFIG.Theme.AccentChest, 1)
local tpChestBtn = createButton(chestSection, "BRING ALL CHESTS", CONFIG.Theme.AccentChest, 35)
local chestLoopBtn = createButton(chestSection, "LOOP: OFF", CONFIG.Theme.Off, 80)
chestLoopBtn.Size = UDim2.new(0.55, 0, 0, 35)
chestLoopBtn.Position = UDim2.new(0.05, 0, 0, 80)
local chestTimeInput = Instance.new("TextBox")
chestTimeInput.Size = UDim2.new(0.3, 0, 0, 35)
chestTimeInput.Position = UDim2.new(0.65, 0, 0, 80)
chestTimeInput.BackgroundColor3 = Color3.fromRGB(20, 20, 25)
chestTimeInput.Text = tostring(CONFIG.DefaultTime)
chestTimeInput.PlaceholderText = "Sec"
chestTimeInput.TextColor3 = Color3.fromRGB(255, 255, 255)
chestTimeInput.Font = Enum.Font.Gotham
chestTimeInput.TextSize = 14
chestTimeInput.Parent = chestSection
local tCorner = Instance.new("UICorner"); tCorner.CornerRadius = UDim.new(0,6); tCorner.Parent = chestTimeInput
-- --- POINT SECTION --- --
local pointSection = createSection("Point Controls", CONFIG.Theme.AccentPoint, 2)
local tpPointBtn = createButton(pointSection, "BRING ALL POINTS", CONFIG.Theme.AccentPoint, 35)
local pointLoopBtn = createButton(pointSection, "LOOP: OFF", CONFIG.Theme.Off, 80)
pointLoopBtn.Size = UDim2.new(0.55, 0, 0, 35)
pointLoopBtn.Position = UDim2.new(0.05, 0, 0, 80)
local pointTimeInput = chestTimeInput:Clone()
pointTimeInput.Parent = pointSection
-- --- LOGIC --- --
local function teleportItems(folderName, exceptionName)
local folder = Workspace:FindFirstChild(folderName)
local char = player.Character
local hrp = char and char:FindFirstChild("HumanoidRootPart")
if not folder or not hrp then return end
for _, child in pairs(folder:GetChildren()) do
if child.Name ~= exceptionName and (child:IsA("Model") or child:IsA("BasePart")) then
if child:IsA("Model") then
child:PivotTo(hrp.CFrame)
else
child.CFrame = hrp.CFrame
end
end
end
end
-- Chest Logic
tpChestBtn.MouseButton1Click:Connect(function()
teleportItems(CONFIG.ChestFolder, CONFIG.ChestException)
end)
local chestLooping = false
chestLoopBtn.MouseButton1Click:Connect(function()
chestLooping = not chestLooping
if chestLooping then
chestLoopBtn.Text = "LOOP: ON"
chestLoopBtn.BackgroundColor3 = CONFIG.Theme.Success
task.spawn(function()
while chestLooping do
teleportItems(CONFIG.ChestFolder, CONFIG.ChestException)
local t = tonumber(chestTimeInput.Text) or CONFIG.DefaultTime
task.wait(t)
end
end)
else
chestLoopBtn.Text = "LOOP: OFF"
chestLoopBtn.BackgroundColor3 = CONFIG.Theme.Off
end
end)
-- Point Logic
tpPointBtn.MouseButton1Click:Connect(function()
teleportItems(CONFIG.PointFolder, nil)
end)
local pointLooping = false
pointLoopBtn.MouseButton1Click:Connect(function()
pointLooping = not pointLooping
if pointLooping then
pointLoopBtn.Text = "LOOP: ON"
pointLoopBtn.BackgroundColor3 = CONFIG.Theme.Success
task.spawn(function()
while pointLooping do
teleportItems(CONFIG.PointFolder, nil)
local t = tonumber(pointTimeInput.Text) or CONFIG.DefaultTime
task.wait(t)
end
end)
else
pointLoopBtn.Text = "LOOP: OFF"
pointLoopBtn.BackgroundColor3 = CONFIG.Theme.Off
end
end)
-- --- DRAGGABLE LOGIC --- --
local dragging, dragInput, dragStart, startPos
local function update(input)
local delta = input.Position - dragStart
mainFrame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
end
mainFrame.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
dragging = true
dragStart = input.Position
startPos = mainFrame.Position
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
dragging = false
end
end)
end
end)
mainFrame.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)
Comments
No comments yet
Be the first to share your thoughts!