Description

Simple and open source script for ei paso roblox and requires no keys.

Features

  • + Auto farm

Script

Add Xeno Scripts as a preferred source
-- // Anti-Teleport System
local players = game:GetService('Players')
local runService = game:GetService('RunService')
local tweenService = game:GetService('TweenService')
local lplr = players.LocalPlayer
local lastCF, stop, heartbeatConnection, cfConnection
local enabled = false

local function cleanup()
    if heartbeatConnection then heartbeatConnection:Disconnect() heartbeatConnection = nil end
    if cfConnection then cfConnection:Disconnect() cfConnection = nil end
end

local function start()
    if not lplr.Character or not lplr.Character:FindFirstChildOfClass('Humanoid') or not lplr.Character:FindFirstChildOfClass('Humanoid').RootPart then return end
    cleanup()
    heartbeatConnection = runService.Heartbeat:Connect(function()
        if stop or not enabled then return end
        lastCF = lplr.Character:FindFirstChildOfClass('Humanoid').RootPart.CFrame
    end)
    cfConnection = lplr.Character:FindFirstChildOfClass('Humanoid').RootPart:GetPropertyChangedSignal('CFrame'):Connect(function()
        if not enabled then return end
        stop = true
        lplr.Character:FindFirstChildOfClass('Humanoid').RootPart.CFrame = lastCF
        runService.Heartbeat:Wait()
        stop = false
    end)
    lplr.Character:FindFirstChildOfClass('Humanoid').Died:Connect(function()
        cleanup()
    end)
end

local function enableAntiTeleport()
    enabled = true
end

local function disableAntiTeleport()
    enabled = false
    stop = false
end

lplr.CharacterAdded:Connect(function(character)
    repeat runService.Heartbeat:Wait() until character:FindFirstChildOfClass('Humanoid')
    repeat runService.Heartbeat:Wait() until character:FindFirstChildOfClass('Humanoid').RootPart
    start()
end)

lplr.CharacterRemoving:Connect(function()
    cleanup()
end)

enableAntiTeleport()
start()

local function teleportTo(position)
    disableAntiTeleport()
    runService.Heartbeat:Wait()
    lplr.Character:FindFirstChildOfClass('Humanoid').RootPart.CFrame = CFrame.new(position)
    runService.Heartbeat:Wait()
    enableAntiTeleport()
end

-- // Inventory Helpers
local function countInBackpack(itemName)
    local count = 0
    for _, item in ipairs(lplr.Backpack:GetChildren()) do
        if item.Name == itemName then
            count += 1
        end
    end
    if lplr.Character then
        for _, item in ipairs(lplr.Character:GetChildren()) do
            if item:IsA('Tool') and item.Name == itemName then
                count += 1
            end
        end
    end
    return count
end

local function hasInBackpack(itemName)
    return countInBackpack(itemName) > 0
end

-- // Main Script Loop
local looping = false
local loopThread = nil

local function mainScript()
    local watch = workspace.Smuggling.Items["Fake Watch"].Main.PromptAtt.BasePurchasePrompt
    local sar = workspace.Smuggling.Items.Sarsaparilla.Main.PromptAtt.BasePurchasePrompt
    local bag = workspace.Smuggling.Items["Fake Designer Bag"].Main.PromptAtt.BasePurchasePrompt
    local wash = workspace.Smuggling.Laundering:GetChildren()[4].LaundryPrompt

    local function totalItems()
        return countInBackpack("Fake Watch") + countInBackpack("Sarsaparilla") + countInBackpack("Fake Designer Bag")
    end

    --1 teleport once, re-teleport if stuck 7s, until 3 Fake Watch or total = 10
    local function runPart1()
        teleportTo(Vector3.new(-1845, 3, 0))
        local t = tick()
        repeat
            if tick() - t >= 7 then
                teleportTo(Vector3.new(-1845, 3, 0))
                t = tick()
            end
            fireproximityprompt(watch) task.wait(0.1)
            fireproximityprompt(watch) task.wait(0.1)
            fireproximityprompt(watch) task.wait(0.1)
            runService.Heartbeat:Wait()
        until countInBackpack("Fake Watch") >= 3 or totalItems() >= 10
    end
    runPart1()

    --3 teleport once, re-teleport if stuck 7s, until 3 Fake Designer Bag or total = 10
    if totalItems() < 10 then
        local function runPart3()
            teleportTo(Vector3.new(-1831, 3, -2))
            local t = tick()
            repeat
                if tick() - t >= 7 then
                    teleportTo(Vector3.new(-1831, 3, -2))
                    t = tick()
                end
                fireproximityprompt(bag) task.wait(0.1)
                fireproximityprompt(bag) task.wait(0.1)
                fireproximityprompt(bag) task.wait(0.1)
                runService.Heartbeat:Wait()
            until countInBackpack("Fake Designer Bag") >= 3 or totalItems() >= 10
        end
        runPart3()
    end

    --2 teleport once, re-teleport if stuck 7s, until 4 Sarsaparilla or total = 10
    if totalItems() < 10 then
        local function runPart2()
            teleportTo(Vector3.new(-1840, 3, 1))
            local t = tick()
            repeat
                if tick() - t >= 7 then
                    teleportTo(Vector3.new(-1840, 3, 1))
                    t = tick()
                end
                fireproximityprompt(sar) task.wait(0.1)
                fireproximityprompt(sar) task.wait(0.1)
                fireproximityprompt(sar) task.wait(0.1)
                fireproximityprompt(sar) task.wait(0.1)
                runService.Heartbeat:Wait()
            until countInBackpack("Sarsaparilla") >= 4 or totalItems() >= 10
        end
        runPart2()
    end

    -- if total is still not 10, keep cycling parts 1-3-2 until it is
    while totalItems() < 10 do
        if countInBackpack("Fake Watch") < 3 then
            teleportTo(Vector3.new(-1845, 3, 0))
            local t = tick()
            repeat
                if tick() - t >= 7 then
                    teleportTo(Vector3.new(-1845, 3, 0))
                    t = tick()
                end
                fireproximityprompt(watch) task.wait(0.1)
                runService.Heartbeat:Wait()
            until countInBackpack("Fake Watch") >= 3 or totalItems() >= 10
        end
        if totalItems() >= 10 then break end

        if countInBackpack("Fake Designer Bag") < 3 then
            teleportTo(Vector3.new(-1831, 3, -2))
            local t = tick()
            repeat
                if tick() - t >= 7 then
                    teleportTo(Vector3.new(-1831, 3, -2))
                    t = tick()
                end
                fireproximityprompt(bag) task.wait(0.1)
                runService.Heartbeat:Wait()
            until countInBackpack("Fake Designer Bag") >= 3 or totalItems() >= 10
        end
        if totalItems() >= 10 then break end

        if countInBackpack("Sarsaparilla") < 4 then
            teleportTo(Vector3.new(-1840, 3, 1))
            local t = tick()
            repeat
                if tick() - t >= 7 then
                    teleportTo(Vector3.new(-1840, 3, 1))
                    t = tick()
                end
                fireproximityprompt(sar) task.wait(0.1)
                runService.Heartbeat:Wait()
            until countInBackpack("Sarsaparilla") >= 4 or totalItems() >= 10
        end
    end

    --4 re-teleport if stuck 7s, until Briefcase appears
    teleportTo(Vector3.new(3147, 0, -184))
    task.wait(1.75)
    local t4 = tick()
    repeat
        if tick() - t4 >= 7 then
            teleportTo(Vector3.new(3147, 0, -184))
            task.wait(1.75)
            t4 = tick()
        end
        local sell = workspace.Smuggling.Sell.Prompt.SellSmugglePrompt
        fireproximityprompt(sell) task.wait(0.1)
        runService.Heartbeat:Wait()
    until hasInBackpack("Briefcase")

    --5 re-teleport if stuck 7s, until Briefcase is gone
    teleportTo(Vector3.new(-1834, 3, -8))
    local t5 = tick()
    repeat
        if tick() - t5 >= 7 then
            teleportTo(Vector3.new(-1834, 3, -8))
            t5 = tick()
        end
        fireproximityprompt(wash) task.wait(0.1)
        runService.Heartbeat:Wait()
    until not hasInBackpack("Briefcase")

    -- always ensure anti-teleport is re-enabled after each cycle
    enableAntiTeleport()
end

-- // UI
local screenGui = Instance.new('ScreenGui')
screenGui.Name = 'SmugglingUI'
screenGui.ResetOnSpawn = false
screenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
screenGui.Parent = lplr.PlayerGui

-- Main Frame
local mainFrame = Instance.new('Frame')
mainFrame.Name = 'MainFrame'
mainFrame.Size = UDim2.new(0, 220, 0, 185)
mainFrame.Position = UDim2.new(0.5, -110, 0.05, 0)
mainFrame.BackgroundColor3 = Color3.fromRGB(15, 15, 20)
mainFrame.BorderSizePixel = 0
mainFrame.Active = true
mainFrame.Parent = screenGui

local mainCorner = Instance.new('UICorner')
mainCorner.CornerRadius = UDim.new(0, 10)
mainCorner.Parent = mainFrame

local mainStroke = Instance.new('UIStroke')
mainStroke.Color = Color3.fromRGB(80, 80, 120)
mainStroke.Thickness = 1.2
mainStroke.Parent = mainFrame

-- Top Bar (drag handle)
local topBar = Instance.new('Frame')
topBar.Name = 'TopBar'
topBar.Size = UDim2.new(1, 0, 0, 36)
topBar.BackgroundColor3 = Color3.fromRGB(25, 25, 38)
topBar.BorderSizePixel = 0
topBar.Parent = mainFrame

local topCorner = Instance.new('UICorner')
topCorner.CornerRadius = UDim.new(0, 10)
topCorner.Parent = topBar

-- fix bottom corners of topbar
local topBarFix = Instance.new('Frame')
topBarFix.Size = UDim2.new(1, 0, 0.5, 0)
topBarFix.Position = UDim2.new(0, 0, 0.5, 0)
topBarFix.BackgroundColor3 = Color3.fromRGB(25, 25, 38)
topBarFix.BorderSizePixel = 0
topBarFix.Parent = topBar

-- Title
local title = Instance.new('TextLabel')
title.Size = UDim2.new(1, -70, 1, 0)
title.Position = UDim2.new(0, 12, 0, 0)
title.BackgroundTransparency = 1
title.Text = 'El Paso'
title.TextColor3 = Color3.fromRGB(200, 200, 255)
title.TextSize = 15
title.Font = Enum.Font.GothamBold
title.TextXAlignment = Enum.TextXAlignment.Left
title.Parent = topBar

-- Minimize Button
local minimizeBtn = Instance.new('TextButton')
minimizeBtn.Size = UDim2.new(0, 28, 0, 28)
minimizeBtn.Position = UDim2.new(1, -62, 0.5, -14)
minimizeBtn.BackgroundColor3 = Color3.fromRGB(50, 50, 75)
minimizeBtn.BorderSizePixel = 0
minimizeBtn.Text = '-'
minimizeBtn.TextColor3 = Color3.fromRGB(180, 180, 220)
minimizeBtn.TextSize = 14
minimizeBtn.Font = Enum.Font.GothamBold
minimizeBtn.Parent = topBar

local minCorner = Instance.new('UICorner')
minCorner.CornerRadius = UDim.new(0, 6)
minCorner.Parent = minimizeBtn

-- Close Button
local closeBtn = Instance.new('TextButton')
closeBtn.Size = UDim2.new(0, 28, 0, 28)
closeBtn.Position = UDim2.new(1, -30, 0.5, -14)
closeBtn.BackgroundColor3 = Color3.fromRGB(180, 50, 60)
closeBtn.BorderSizePixel = 0
closeBtn.Text = 'X'
closeBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
closeBtn.TextSize = 13
closeBtn.Font = Enum.Font.GothamBold
closeBtn.Parent = topBar

local closeCorner = Instance.new('UICorner')
closeCorner.CornerRadius = UDim.new(0, 6)
closeCorner.Parent = closeBtn

-- Content Frame
local content = Instance.new('Frame')
content.Name = 'Content'
content.Size = UDim2.new(1, 0, 1, -36)
content.Position = UDim2.new(0, 0, 0, 36)
content.BackgroundTransparency = 1
content.Parent = mainFrame

-- Status Label
local statusLabel = Instance.new('TextLabel')
statusLabel.Size = UDim2.new(1, -20, 0, 22)
statusLabel.Position = UDim2.new(0, 10, 0, 10)
statusLabel.BackgroundTransparency = 1
statusLabel.Text = 'Status: Idle'
statusLabel.TextColor3 = Color3.fromRGB(130, 130, 160)
statusLabel.TextSize = 13
statusLabel.Font = Enum.Font.Gotham
statusLabel.TextXAlignment = Enum.TextXAlignment.Left
statusLabel.Parent = content

-- Start/Stop Button
local toggleBtn = Instance.new('TextButton')
toggleBtn.Size = UDim2.new(1, -20, 0, 40)
toggleBtn.Position = UDim2.new(0, 10, 0, 40)
toggleBtn.BackgroundColor3 = Color3.fromRGB(50, 160, 90)
toggleBtn.BorderSizePixel = 0
toggleBtn.Text = 'START'
toggleBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
toggleBtn.TextSize = 15
toggleBtn.Font = Enum.Font.GothamBold
toggleBtn.Parent = content

local toggleCorner = Instance.new('UICorner')
toggleCorner.CornerRadius = UDim.new(0, 8)
toggleCorner.Parent = toggleBtn

-- Loop counter
local loopCount = 0
local loopCountLabel = Instance.new('TextLabel')
loopCountLabel.Size = UDim2.new(1, -20, 0, 18)
loopCountLabel.Position = UDim2.new(0, 10, 0, 95)
loopCountLabel.BackgroundTransparency = 1
loopCountLabel.Text = 'Loops: 0'
loopCountLabel.TextColor3 = Color3.fromRGB(90, 90, 120)
loopCountLabel.TextSize = 12
loopCountLabel.Font = Enum.Font.Gotham
loopCountLabel.TextXAlignment = Enum.TextXAlignment.Left
loopCountLabel.Parent = content

-- Money earned label
local moneyLabel = Instance.new('TextLabel')
moneyLabel.Size = UDim2.new(1, -20, 0, 18)
moneyLabel.Position = UDim2.new(0, 10, 0, 114)
moneyLabel.BackgroundTransparency = 1
moneyLabel.Text = 'Earned: $0'
moneyLabel.TextColor3 = Color3.fromRGB(80, 200, 100)
moneyLabel.TextSize = 12
moneyLabel.Font = Enum.Font.Gotham
moneyLabel.TextXAlignment = Enum.TextXAlignment.Left
moneyLabel.Parent = content

-- Time elapsed label
local timeLabel = Instance.new('TextLabel')
timeLabel.Size = UDim2.new(1, -20, 0, 18)
timeLabel.Position = UDim2.new(0, 10, 0, 133)
timeLabel.BackgroundTransparency = 1
timeLabel.Text = 'Time: 00:00:00'
timeLabel.TextColor3 = Color3.fromRGB(130, 130, 200)
timeLabel.TextSize = 12
timeLabel.Font = Enum.Font.Gotham
timeLabel.TextXAlignment = Enum.TextXAlignment.Left
timeLabel.Parent = content

-- // Timer logic
local elapsedTime = 0
local timerConnection = nil

local function formatTime(seconds)
    local h = math.floor(seconds / 3600)
    local m = math.floor((seconds % 3600) / 60)
    local s = math.floor(seconds % 60)
    return string.format('%02d:%02d:%02d', h, m, s)
end

local function startTimer()
    if timerConnection then timerConnection:Disconnect() end
    timerConnection = runService.Heartbeat:Connect(function(dt)
        elapsedTime += dt
        timeLabel.Text = 'Time: ' .. formatTime(elapsedTime)
    end)
end

local function stopTimer()
    if timerConnection then
        timerConnection:Disconnect()
        timerConnection = nil
    end
end

-- // Toggle Logic
local function setRunning(state)
    looping = state
    if state then
        statusLabel.Text = 'Status: Running...'
        statusLabel.TextColor3 = Color3.fromRGB(80, 220, 120)
        toggleBtn.Text = 'STOP'
        toggleBtn.BackgroundColor3 = Color3.fromRGB(180, 50, 60)
        startTimer()
        loopThread = task.spawn(function()
            while looping do
                mainScript()
                if looping then
                    loopCount += 1
                    loopCountLabel.Text = 'Loops: ' .. loopCount
                    moneyLabel.Text = 'Earned: $' .. (loopCount * 3250)
                end
            end
            enableAntiTeleport()
        end)
    else
        statusLabel.Text = 'Status: Stopped'
        statusLabel.TextColor3 = Color3.fromRGB(220, 80, 80)
        toggleBtn.Text = '▶  START'
        toggleBtn.BackgroundColor3 = Color3.fromRGB(50, 160, 90)
        stopTimer()
        loopThread = nil
    end
end

toggleBtn.MouseButton1Click:Connect(function()
    setRunning(not looping)
end)

-- // Minimize Logic
local minimized = false
local fullSize = UDim2.new(0, 220, 0, 185)
local miniSize = UDim2.new(0, 220, 0, 36)

minimizeBtn.MouseButton1Click:Connect(function()
    minimized = not minimized
    local tween = tweenService:Create(mainFrame, TweenInfo.new(0.25, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {
        Size = minimized and miniSize or fullSize
    })
    tween:Play()
    content.Visible = not minimized
    minimizeBtn.Text = minimized and '□' or '—'
end)

-- // Close Logic
closeBtn.MouseButton1Click:Connect(function()
    setRunning(false)
    screenGui:Destroy()
end)

-- // Drag Logic (PC & Mobile)
local dragging = false
local dragStart = nil
local startPos = nil

local function updateDrag(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

topBar.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)

topBar.InputChanged:Connect(function(input)
    if dragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then
        updateDrag(input)
    end
end)

game:GetService('UserInputService').InputChanged:Connect(function(input)
    if dragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then
        updateDrag(input)
    end
end)
Script worked? 🚀 Boost it to #1 so others find it too.

Comments (1)

Log in to add a comment.

thomaswong0824833

thomaswong0824833

7 months ago

can't work