Drop Teleporter OP
Key Required

Drop Teleporter OP

Tycoon RNGvittellevittelle 4.1K views 119 executesUpdated Jun 15, 2025
1.7/ 5(3 votes)
1233% Positive
Lua Script•233 lines (7108 chars)
local Fluent = loadstring(game:HttpGet("https://github.com/dawid-scripts/Fluent/releases/latest/download/main.lua"))()
local SaveManager = loadstring(game:HttpGet("https://raw.githubusercontent.com/dawid-scripts/Fluent/master/Addons/SaveManager.lua"))()
local InterfaceManager = loadstring(game:HttpGet("https://raw.githubusercontent.com/dawid-scripts/Fluent/master/Addons/InterfaceManager.lua"))()

local Players = game:GetService("Players")
local Workspace = game:GetService("Workspace")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local RunService = game:GetService("RunService")
local LocalPlayer = Players.LocalPlayer

local Window = Fluent:CreateWindow({
    Title = "Drop Teleporter",
    SubTitle = "by Badxmatt",
    TabWidth = 160,
    Size = UDim2.fromOffset(580, 520),
    Acrylic = false,
    Theme = "Dark",
    MinimizeKey = Enum.KeyCode.RightControl
})

local Tabs = {
    Main = Window:AddTab({ Title = "Main", Icon = "package" }),
    Settings = Window:AddTab({ Title = "Settings", Icon = "settings" })
}

local Options = Fluent.Options

local autoTeleportEnabled = false
local savedPosition = nil
local dropToggles = {}
local currentDropSelections = {}

local function getCharacter()
    return LocalPlayer.Character
end

local function getHumanoidRootPart()
    local character = getCharacter()
    if character then
        return character:FindFirstChild("HumanoidRootPart")
    end
    return nil
end

local function teleportTo(position)
    local hrp = getHumanoidRootPart()
    if hrp then
        hrp.CFrame = CFrame.new(position)
    end
end

local function getDropNames()
    local names = {}
    if ReplicatedStorage:FindFirstChild("drops") then
        for _, dropModel in next, ReplicatedStorage.drops:GetChildren() do
            if dropModel:IsA("Model") then
                table.insert(names, dropModel.Name)
            end
        end
    end
    table.sort(names)
    return names
end

local function findClosestEnabledDrop()
    local hrp = getHumanoidRootPart()
    if not hrp then return nil end

    local closestDrop = nil
    local minDistance = math.huge
    local hrpPosition = hrp.Position

    for dropName, isEnabled in pairs(currentDropSelections) do
        if isEnabled then
            local dropInWorkspace = Workspace:FindFirstChild(dropName)
            if dropInWorkspace and dropInWorkspace:IsA("Model") and dropInWorkspace:FindFirstChild("Hitbox") then
                local hitbox = dropInWorkspace.Hitbox
                if hitbox and hitbox:IsA("BasePart") then
                    local distance = (hrpPosition - hitbox.Position).Magnitude
                    if distance < minDistance then
                        minDistance = distance
                        closestDrop = dropInWorkspace
                    end
                end
            end
        end
    end
    return closestDrop
end

local mainLoopConnection = nil

local function startMainLoop()
    if mainLoopConnection then
        mainLoopConnection:Disconnect()
        mainLoopConnection = nil
    end

    mainLoopConnection = RunService.Heartbeat:Connect(function()
        if not autoTeleportEnabled then
            if mainLoopConnection then
                mainLoopConnection:Disconnect()
                mainLoopConnection = nil
            end
            return
        end

        local targetDrop = findClosestEnabledDrop()
        if targetDrop and savedPosition then
            teleportTo(targetDrop.Hitbox.Position + Vector3.new(0, 3, 0))
            task.wait(Options.TeleportDelay.Value)

            if not autoTeleportEnabled then return end

            teleportTo(savedPosition)
            task.wait(Options.ReturnDelay.Value)
        else
            task.wait(1)
        end
    end)
end

do
    local section = Tabs.Main:AddSection("Teleportation")

    section:AddToggle("AutoTeleportEnabled", {
        Title = "Enable Auto Teleport",
        Description = "Saves your current position and starts the teleport loop.",
        Default = false,
        Callback = function(Value)
            autoTeleportEnabled = Value
            if Value then
                local hrp = getHumanoidRootPart()
                if hrp then
                    savedPosition = hrp.Position
                    Fluent:Notify({
                        Title = "Position Saved",
                        Content = "Your return position has been recorded.",
                        Duration = 3
                    })
                    startMainLoop()
                else
                    autoTeleportEnabled = false
                    Options.AutoTeleportEnabled:SetValue(false)
                    Fluent:Notify({
                        Title = "Error",
                        Content = "Could not find your character to save position.",
                        Duration = 5
                    })
                end
            else
                savedPosition = nil
            end
        end
    })

    section:AddSlider("TeleportDelay", {
        Title = "Delay After Teleport",
        Description = "Time to wait at the drop location.",
        Default = 0.5,
        Min = 0.1,
        Max = 5,
        Rounding = 1
    })

    section:AddSlider("ReturnDelay", {
        Title = "Delay After Return",
        Description = "Time to wait after returning to base.",
        Default = 1.0,
        Min = 0.1,
        Max = 5,
        Rounding = 1
    })

    local dropsSection = Tabs.Main:AddSection("Drop Configuration")
    local dropListHolder = {}

    local function populateDropToggles()
        for _, obj in pairs(dropListHolder) do
            obj:Destroy()
        end
        dropListHolder = {}
        currentDropSelections = {}

        local dropNames = getDropNames()
        for _, dropName in next, dropNames do
            local toggle = dropsSection:AddToggle("DropToggle_" .. dropName, {
                Title = dropName,
                Default = false,
                Callback = function(Value)
                    currentDropSelections[dropName] = Value
                end
            })
            table.insert(dropListHolder, toggle)
            currentDropSelections[dropName] = false
        end
    end

    dropsSection:AddButton({
        Title = "Refresh Drop List",
        Description = "Updates the list of available drops.",
        Callback = function()
            populateDropToggles()
            Fluent:Notify({
                Title = "Drop Teleporter",
                Content = "Drop list has been refreshed.",
                Duration = 3
            })
        end
    })

    populateDropToggles()
end

SaveManager:SetLibrary(Fluent)
InterfaceManager:SetLibrary(Fluent)
SaveManager:IgnoreThemeSettings()

InterfaceManager:SetFolder("FluentDropTeleporter")
SaveManager:SetFolder("FluentDropTeleporter/Config")

InterfaceManager:BuildInterfaceSection(Tabs.Settings)
SaveManager:BuildConfigSection(Tabs.Settings)

Window:SelectTab(1)

Fluent:Notify({
    Title = "Drop Teleporter",
    Content = "Script loaded successfully.",
    Duration = 5
})

SaveManager:LoadAutoloadConfig()

Features & Information

This script, "Drop Teleporter" by Badxmatt, is a Roblox exploit that allows users to automatically teleport to specific "drops" within the game and then return to a saved "home" position.

Community Comments (1)

FleuFleuJun 15, 2025(edited)

You're Higher Chance to get Banned Reason Spamming & Stealing

More Scripts for Tycoon RNG