m
Key Required

m

🌊 Tiny OceanAyb1Ayb1 983 views 141 executesUpdated Feb 21, 2026
5.0/ 5(3 votes)
30100% Positive
Lua Script•204 lines (5374 chars)
--[[
    Created by Ayb1
    scriptblox.com
]]

local Players = game:GetService("Players")
local TweenService = game:GetService("TweenService")

local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")

-- Priority: higher number = better chest
local PRIORITY = {
    ["Legendary"] = 4,
    ["Epic"]      = 3,
    ["Rare"]      = 2,
    ["Common"]    = 1,
}

local isRunning = false

-- =====================
--       CREATE UI
-- =====================

local screenGui = Instance.new("ScreenGui")
screenGui.Name = "ChestBotUI"
screenGui.ResetOnSpawn = false
screenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
screenGui.Parent = playerGui

local frame = Instance.new("Frame")
frame.Size = UDim2.new(0, 180, 0, 70)
frame.Position = UDim2.new(0.5, -90, 0.82, 0)
frame.BackgroundColor3 = Color3.fromRGB(10, 10, 18)
frame.BackgroundTransparency = 0.1
frame.BorderSizePixel = 0
frame.Active = true
frame.Draggable = true
frame.Parent = screenGui

Instance.new("UICorner", frame).CornerRadius = UDim.new(0, 18)

local stroke = Instance.new("UIStroke")
stroke.Color = Color3.fromRGB(80, 80, 255)
stroke.Thickness = 1.5
stroke.Transparency = 0.3
stroke.Parent = frame

local statusLabel = Instance.new("TextLabel")
statusLabel.Size = UDim2.new(1, 0, 0, 22)
statusLabel.Position = UDim2.new(0, 0, 0, 6)
statusLabel.BackgroundTransparency = 1
statusLabel.Text = "🗝️  CHEST BOT"
statusLabel.TextColor3 = Color3.fromRGB(180, 180, 255)
statusLabel.TextSize = 13
statusLabel.Font = Enum.Font.GothamBold
statusLabel.Parent = frame

local btn = Instance.new("TextButton")
btn.Size = UDim2.new(0, 140, 0, 32)
btn.Position = UDim2.new(0.5, -70, 1, -40)
btn.BackgroundColor3 = Color3.fromRGB(40, 40, 180)
btn.Text = "▶  START"
btn.TextColor3 = Color3.fromRGB(255, 255, 255)
btn.TextSize = 13
btn.Font = Enum.Font.GothamBold
btn.BorderSizePixel = 0
btn.Parent = frame

Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 12)

-- =====================
--        LOGIC
-- =====================

local function findBestChest()
    local chestsFolder = workspace:FindFirstChild("Main")
        and workspace.Main:FindFirstChild("ChestsInWorld")

    if not chestsFolder then
        warn("workspace.Main.ChestsInWorld not found")
        return nil
    end

    local bestChest = nil
    local bestPriority = 0

    for _, chest in ipairs(chestsFolder:GetChildren()) do
        local p = PRIORITY[chest.Name]
        if p and p > bestPriority then
            bestPriority = p
            bestChest = chest
        end
    end

    return bestChest
end

local function getPrompt(chest)
    for _, obj in ipairs(chest:GetDescendants()) do
        if obj:IsA("ProximityPrompt") then return obj end
    end
    return nil
end

local function getPos(chest)
    if chest:IsA("BasePart") then return chest.Position end
    if chest.PrimaryPart then return chest.PrimaryPart.Position end
    for _, p in ipairs(chest:GetDescendants()) do
        if p:IsA("BasePart") then return p.Position end
    end
    return nil
end

local function runLoop()
    if not isRunning then return end

    local character = player.Character
    if not character then
        task.wait(1)
        runLoop()
        return
    end

    local hrp = character:FindFirstChild("HumanoidRootPart")
    if not hrp then
        task.wait(1)
        runLoop()
        return
    end

    local chest = findBestChest()

    if not chest then
        statusLabel.Text = "❌  No chests"
        task.wait(2)
        runLoop()
        return
    end

    local pos = getPos(chest)
    if not pos then
        statusLabel.Text = "⚠️  No position"
        task.wait(2)
        runLoop()
        return
    end

    -- Status color by rarity
    local colors = {
        Legendary = Color3.fromRGB(255, 170, 0),
        Epic      = Color3.fromRGB(170, 0, 255),
        Rare      = Color3.fromRGB(0, 120, 255),
        Common    = Color3.fromRGB(180, 180, 180),
    }
    statusLabel.TextColor3 = colors[chest.Name] or Color3.fromRGB(180, 180, 255)
    statusLabel.Text = "✨  " .. chest.Name

    -- Teleport
    hrp.CFrame = CFrame.new(pos + Vector3.new(0, 3, 3))
    task.wait(0.4)

    -- Trigger ProximityPrompt
    local prompt = getPrompt(chest)
    if prompt then
        fireproximityprompt(prompt)
    end

    task.wait(1.5)
    runLoop()
end

local function setRunning(state)
    isRunning = state
    if state then
        TweenService:Create(btn, TweenInfo.new(0.25), {
            BackgroundColor3 = Color3.fromRGB(200, 40, 40)
        }):Play()
        TweenService:Create(stroke, TweenInfo.new(0.25), {
            Color = Color3.fromRGB(255, 80, 80)
        }):Play()
        btn.Text = "⏹  STOP"
        statusLabel.Text = "🔍  Searching..."
        statusLabel.TextColor3 = Color3.fromRGB(180, 180, 255)
        task.spawn(runLoop)
    else
        TweenService:Create(btn, TweenInfo.new(0.25), {
            BackgroundColor3 = Color3.fromRGB(40, 40, 180)
        }):Play()
        TweenService:Create(stroke, TweenInfo.new(0.25), {
            Color = Color3.fromRGB(80, 80, 255)
        }):Play()
        btn.Text = "▶  START"
        statusLabel.Text = "🗝️  CHEST BOT"
        statusLabel.TextColor3 = Color3.fromRGB(180, 180, 255)
    end
end

btn.MouseButton1Click:Connect(function()
    setRunning(not isRunning)
end)

print("✅ ChestBot loaded — workspace.Main.ChestsInWorld")

Features & Information

Chest Bot por Ayb1 — se teleporta automáticamente a los mejores cofres del mapa y los abre solo. Tú no haces nad
#Tiny ocean

Community Comments (2)

fluxflux450fluxflux450Feb 22, 2026

great script , worked

Replying to @fluxflux450
Ayb1Ayb1Feb 24, 2026

@fluxflux450 Thank you very much. Let me know if you have any games you'd like to play.

More Scripts for 🌊 Tiny Ocean