local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local RunService = game:GetService("RunService")
local LocalPlayer = Players.LocalPlayer
local BackpackRemote = ReplicatedStorage:FindFirstChild("BackpackRemote")
local InventoryRemote = ReplicatedStorage:FindFirstChild("Inventory")
local BuyItemRemote = ReplicatedStorage:FindFirstChild("BuyItemRemote")
local ListWeaponRemote = ReplicatedStorage:FindFirstChild("ListWeaponRemote")
local MarketItems = ReplicatedStorage:FindFirstChild("MarketItems")
local dropRemote = ReplicatedStorage:WaitForChild("DropItemRemote", 5)
local safeActive = false
local autoDropEnabled = false
local Blacklist = {
["Fists"] = true, ["Fist"] = true, ["Phone"] = true,
["Car Keys"] = true, ["Bandage"] = true, ["762s"] = true,
["556s"] = true, ["Extended"] = true, ["T shirt"] = true,
["Combat"] = true, ["Weight"] = true,
}
local function SilentBypassTeleport(targetCFrame)
local char = LocalPlayer.Character
local root = char and char:FindFirstChild("HumanoidRootPart")
local hum = char and char:FindFirstChildOfClass("Humanoid")
if not root then return end
if hum then hum:ChangeState(0) end
local sWait = tick()
repeat task.wait() until not LocalPlayer:GetAttribute("LastACPos") or (tick() - sWait > 1)
root.CFrame = targetCFrame
root.AssemblyLinearVelocity = Vector3.zero
root.AssemblyAngularVelocity = Vector3.zero
task.wait(0.5)
if hum then hum:ChangeState(Enum.HumanoidStateType.GettingUp) end
end
local function FirePromptsInArea(range, nameFilter)
local char = LocalPlayer.Character
local root = char and char:FindFirstChild("HumanoidRootPart")
if not root then return end
for _, v in pairs(workspace:GetDescendants()) do
if v:IsA("ProximityPrompt") then
local pPos = (v.Parent:IsA("Model") and v.Parent:GetPivot().Position)
or (v.Parent:IsA("BasePart") and v.Parent.Position)
if pPos then
local dist = (pPos - root.Position).Magnitude
if dist < range then
if not nameFilter
or v.Parent.Name:lower():find(nameFilter:lower())
or v.Name:lower():find(nameFilter:lower()) then
fireproximityprompt(v)
end
end
end
end
end
end
local function GetLockedTools()
local tools = {}
for _, tool in pairs(LocalPlayer.Backpack:GetChildren()) do
if tool:IsA("Tool") and not Blacklist[tool.Name] then
table.insert(tools, { Name = tool.Name, Id = tool })
end
end
return tools
end
local function SafeDupeOnce(itemData, returnCFrame)
local toolName = itemData.Name
local SafeFolder = workspace:FindFirstChild("HomeDoorSS")
and workspace.HomeDoorSS:FindFirstChild("HomeDoor")
and workspace.HomeDoorSS.HomeDoor:FindFirstChild("Safe")
if not SafeFolder then return end
local safePart = SafeFolder:FindFirstChild("Union")
or SafeFolder:FindFirstChildWhichIsA("BasePart")
if not safePart then return end
SilentBypassTeleport(safePart.CFrame * CFrame.new(0, 2, 0))
task.wait(0.3)
task.spawn(function() BackpackRemote:InvokeServer("Store", toolName) end)
task.spawn(function() InventoryRemote:FireServer("Change", toolName, "Backpack", SafeFolder) end)
task.wait(0.6)
SilentBypassTeleport(returnCFrame)
task.wait(1.2)
BackpackRemote:InvokeServer("Grab", toolName)
task.wait(0.5)
end
local Rayfield = loadstring(game:HttpGet("https://[Log in to view URL]"))()
local Window = Rayfield:CreateWindow({
Name = "Safe Dupe Hub",
LoadingTitle = "Safe Dupe Hub",
LoadingSubtitle = "Safe Dupe | Safe TP | Auto Drop",
Theme = "Default",
DisableRayfieldPrompts = false,
DisableBuildWarnings = false,
ConfigurationSaving = {
Enabled = true,
FolderName = "SafeDupeHub",
FileName = "Config",
},
KeySystem = false,
})
local function Notify(title, content, duration)
Rayfield:Notify({ Title = title, Content = content, Duration = duration or 3 })
end
local MainTab = Window:CreateTab("Dupe & Utils", "package")
MainTab:CreateSection("Safe Dupe")
MainTab:CreateLabel("Need 0 items equipped. Max 3 in backpack. Start in a safe zone. Script rents a home, opens the safe, and cycles your items.")
MainTab:CreateButton({
Name = "Start / Stop Safe Dupe",
Info = "Toggles the safe dupe. Press again to stop.",
Callback = function()
if safeActive then
safeActive = false
Notify("Safe Dupe", "Stopped.", 3)
return
end
local lockedItems = GetLockedTools()
if #lockedItems == 0 then
return Notify("Safe Dupe", "No tools in backpack!", 4)
end
local char = LocalPlayer.Character
local root = char and char:FindFirstChild("HumanoidRootPart")
if not root then
return Notify("Safe Dupe", "No character found!", 4)
end
safeActive = true
local OriginalLocation = root.CFrame
task.spawn(function()
Notify("Safe Dupe", "Renting home...", 3)
SilentBypassTeleport(CFrame.new(-1443, 256, 2137))
task.wait(0.7)
FirePromptsInArea(15)
Notify("Safe Dupe", "Opening safe...", 3)
SilentBypassTeleport(CFrame.new(-1473, 256, 2134))
task.wait(0.7)
FirePromptsInArea(15, "Safe")
Notify("Safe Dupe", "Returning to start...", 2)
SilentBypassTeleport(OriginalLocation)
task.wait(0.5)
for i = 1, 15 do
if not safeActive then break end
local itemIndex = ((i - 1) % #lockedItems) + 1
local itemName = lockedItems[itemIndex].Name
Notify("Safe Dupe", string.format("Auto Duping Safe Item", i, itemName), 2)
SafeDupeOnce(lockedItems[itemIndex], OriginalLocation)
task.wait(0.2)
end
safeActive = false
Notify("Safe Dupe", "Done!", 4)
end)
end,
})
MainTab:CreateSection("Safe Teleport")
MainTab:CreateLabel("Teleports directly to the safe and fires its prompts to open it.")
MainTab:CreateButton({
Name = "Teleport To Safe",
Info = "TP to safe location and open it",
Callback = function()
Notify("Safe TP", "Teleporting to safe...", 2)
SilentBypassTeleport(CFrame.new(-1473, 256, 2134))
task.wait(0.8)
FirePromptsInArea(15, "Safe")
Notify("Safe TP", "Safe opened!", 3)
end,
})
MainTab:CreateSection("Auto Drop Items")
MainTab:CreateLabel("Automatically equips and drops every non-blacklisted item in your backpack on loop.")
MainTab:CreateToggle({
Name = "Auto Drop Items",
CurrentValue = false,
Flag = "AutoDropEnabled",
Callback = function(State)
autoDropEnabled = State
if not State then
Notify("Auto Drop", "Stopped.", 2)
return
end
Notify("Auto Drop", "Dropping items...", 2)
task.spawn(function()
while autoDropEnabled do
local backpack = LocalPlayer:FindFirstChild("Backpack")
local character = LocalPlayer.Character
if not backpack or not character then task.wait(0.5) continue end
local humanoid = character:FindFirstChildOfClass("Humanoid")
local foundAny = false
for _, item in ipairs(backpack:GetChildren()) do
if not autoDropEnabled then break end
if item:IsA("Tool") and not Blacklist[item.Name] then
foundAny = true
if humanoid then
humanoid:EquipTool(item)
local dropStart = tick()
repeat
if dropRemote then
pcall(function() dropRemote:FireServer(item.Name) end)
pcall(function() dropRemote:FireServer(item) end)
pcall(function() dropRemote:FireServer() end)
end
task.wait(0.2)
until not item:IsDescendantOf(character)
or not autoDropEnabled
or (tick() - dropStart > 3)
task.wait(0.1)
end
end
end
if not foundAny then
task.wait(1)
else
task.wait(0.1)
end
end
end)
end,
})
To embed this project on your website, copy the following code and paste it into your website's HTML: