콘텐츠로 건너뛰기
작동 중

Auto Farm - Monkey Tycoon

CLclarkdevlinorg0 조회수Universal2026년 7월 26일
공유
Auto Farm - Monkey Tycoon

스크립트 코드

Lua
local Players = game:GetService("Players")
local Workspace = game:GetService("Workspace")

local player = Players.LocalPlayer

local ButtonPaths = {
    Deposit = {"Buttons", "DepositButton", "Button"},
    BuyMonkey = {"Buttons", "BuyDropper", "Button"},
    BuyMaxMonkey = {"Buttons", "BuyDropper5", "Button"},
    BananaLauncher = {"Buttons", "BuySpeed", "Button"},
    MergeMonkeys = {"Buttons", "MergeButton", "Button"},
}

local PLOTS_FOLDER_NAME = "Plots"
local MIN_PLOT_NUMBER = 1
local MAX_PLOT_NUMBER = 8

local DROPS_FOLDER_NAME = "Drops"
local DROP_INSTANCE_NAME = "Dropper_Drop"

local STEP_WAIT = 0.75
local BANANA_WAIT = 0.4
local LOOP_WAIT = 0.5

local State = {
    AutoFarmEnabled = false,
    BuyMonkeyEnabled = false,
    BuyMaxMonkeyEnabled = false,
    MergeMonkeysEnabled = false,
    BananaLauncherEnabled = false,
}

local farmThread = nil
local cachedPlotNumber = nil

local function getCharacter()
    local character = player.Character or player.CharacterAdded:Wait()
    local hrp = character:WaitForChild("HumanoidRootPart", 5)
    return character, hrp
end

local function teleportTo(cframe)
    if not State.AutoFarmEnabled then return end
    local _, hrp = getCharacter()
    if hrp then
        hrp.CFrame = cframe
    end
end

local function getInstancePosition(inst)
    if inst:IsA("BasePart") then
        return inst.Position
    elseif inst:IsA("Model") then
        if inst.PrimaryPart then
            return inst.PrimaryPart.Position
        end
        local part = inst:FindFirstChildWhichIsA("BasePart", true)
        if part then
            return part.Position
        end
    end
    return nil
end

local function resolvePath(plotNumber, pathParts)
    local plotsFolder = Workspace:FindFirstChild(PLOTS_FOLDER_NAME)
    if not plotsFolder then return nil end
    local plot = plotsFolder:FindFirstChild(tostring(plotNumber))
    if not plot then return nil end
    local inst = plot
    for _, part in ipairs(pathParts) do
        if not inst then return nil end
        inst = inst:FindFirstChild(part)
    end
    return inst
end

local function findButton(pathParts)
    if cachedPlotNumber then
        local found = resolvePath(cachedPlotNumber, pathParts)
        if found then return found end
    end
    for i = MIN_PLOT_NUMBER, MAX_PLOT_NUMBER do
        local found = resolvePath(i, pathParts)
        if found then
            cachedPlotNumber = i
            return found
        end
    end
    return nil
end

local function teleportToButton(pathParts)
    local button = findButton(pathParts)
    if not button then return end
    local pos = getInstancePosition(button)
    if pos then
        teleportTo(CFrame.new(pos + Vector3.new(0, 3, 0)))
    end
end

local function getActiveBananas()
    local dropsFolder = Workspace:FindFirstChild(DROPS_FOLDER_NAME)
    local bananas = {}
    if not dropsFolder then
        return bananas
    end
    for _, child in ipairs(dropsFolder:GetChildren()) do
        if child.Name == DROP_INSTANCE_NAME then
            table.insert(bananas, child)
        end
    end
    return bananas
end

local function collectBananas()

    local snapshot = getActiveBananas()

    for _, banana in ipairs(snapshot) do
        if not State.AutoFarmEnabled then
            return
        end

        if banana and banana.Parent then
            local pos = getInstancePosition(banana)
            if pos then
                teleportTo(CFrame.new(pos))
                task.wait(BANANA_WAIT)
            end
        end
    end
end

local function farmLoop()
    while State.AutoFarmEnabled do

        collectBananas()
        if not State.AutoFarmEnabled then break end

        teleportToButton(ButtonPaths.Deposit)
        task.wait(STEP_WAIT)
        if not State.AutoFarmEnabled then break end

        if State.BuyMaxMonkeyEnabled then
            teleportToButton(ButtonPaths.BuyMaxMonkey)
            task.wait(STEP_WAIT)
            if not State.AutoFarmEnabled then break end
        elseif State.BuyMonkeyEnabled then
            teleportToButton(ButtonPaths.BuyMonkey)
            task.wait(STEP_WAIT)
            if not State.AutoFarmEnabled then break end
        end

        if State.MergeMonkeysEnabled then
            teleportToButton(ButtonPaths.MergeMonkeys)
            task.wait(STEP_WAIT)
            if not State.AutoFarmEnabled then break end
        end

        if State.BananaLauncherEnabled then
            teleportToButton(ButtonPaths.BananaLauncher)
            task.wait(STEP_WAIT)
            if not State.AutoFarmEnabled then break end
        end

        task.wait(LOOP_WAIT)
    end
    farmThread = nil
end

local function startFarm()
    if farmThread then return end
    State.AutoFarmEnabled = true
    farmThread = task.spawn(farmLoop)
end

local function stopFarm()
    State.AutoFarmEnabled = false
    farmThread = nil
end

local screenGui = Instance.new("ScreenGui")
screenGui.Name = "AutoFarmGui"
screenGui.ResetOnSpawn = false
screenGui.Parent = player:WaitForChild("PlayerGui")

local mainFrame = Instance.new("Frame")
mainFrame.Name = "MainFrame"
mainFrame.Size = UDim2.new(0, 220, 0, 275)
mainFrame.Position = UDim2.new(0, 20, 0.5, -115)
mainFrame.BackgroundColor3 = Color3.fromRGB(30, 30, 35)
mainFrame.BorderSizePixel = 0
mainFrame.Active = true
mainFrame.Draggable = true
mainFrame.Parent = screenGui

local uiCorner = Instance.new("UICorner")
uiCorner.CornerRadius = UDim.new(0, 8)
uiCorner.Parent = mainFrame

local title = Instance.new("TextLabel")
title.Name = "Title"
title.Size = UDim2.new(1, 0, 0, 30)
title.BackgroundTransparency = 1
title.Text = "Auto Farm"
title.TextColor3 = Color3.fromRGB(255, 255, 255)
title.Font = Enum.Font.GothamBold
title.TextSize = 16
title.Parent = mainFrame

local layout = Instance.new("UIListLayout")
layout.Padding = UDim.new(0, 8)
layout.SortOrder = Enum.SortOrder.LayoutOrder
layout.Parent = nil

local buttonContainer = Instance.new("Frame")
buttonContainer.Name = "ButtonContainer"
buttonContainer.Size = UDim2.new(1, -20, 1, -40)
buttonContainer.Position = UDim2.new(0, 10, 0, 35)
buttonContainer.BackgroundTransparency = 1
buttonContainer.Parent = mainFrame

layout.Parent = buttonContainer

local function createToggleButton(name, labelText, layoutOrder)
    local button = Instance.new("TextButton")
    button.Name = name
    button.Size = UDim2.new(1, 0, 0, 40)
    button.BackgroundColor3 = Color3.fromRGB(60, 60, 68)
    button.TextColor3 = Color3.fromRGB(255, 255, 255)
    button.Font = Enum.Font.GothamSemibold
    button.TextSize = 14
    button.LayoutOrder = layoutOrder
    button.Text = labelText .. ": OFF"
    button.AutoButtonColor = false
    button.Parent = buttonContainer

    local corner = Instance.new("UICorner")
    corner.CornerRadius = UDim.new(0, 6)
    corner.Parent = button

    return button
end

local function setButtonState(button, labelText, enabled)
    button.Text = labelText .. ": " .. (enabled and "ON" or "OFF")
    button.BackgroundColor3 = enabled
        and Color3.fromRGB(46, 160, 90)
        or Color3.fromRGB(60, 60, 68)
end

local function setButtonLocked(button, labelText, locked)

    button.Active = not locked
    if locked then
        button.Text = labelText .. ": OFF (locked)"
        button.BackgroundColor3 = Color3.fromRGB(40, 40, 45)
        button.TextColor3 = Color3.fromRGB(140, 140, 140)
    else
        button.TextColor3 = Color3.fromRGB(255, 255, 255)
        setButtonState(button, labelText, false)
    end
end

local mainToggle = createToggleButton("MainToggle", "Auto Farm", 1)
mainToggle.MouseButton1Click:Connect(function()
    State.AutoFarmEnabled = not State.AutoFarmEnabled
    setButtonState(mainToggle, "Auto Farm", State.AutoFarmEnabled)
    if State.AutoFarmEnabled then
        startFarm()
    else
        stopFarm()
    end
end)

local buyMonkeyToggle = createToggleButton("BuyMonkeyToggle", "Buy Monkey", 2)
buyMonkeyToggle.MouseButton1Click:Connect(function()
    if State.BuyMaxMonkeyEnabled then return end
    State.BuyMonkeyEnabled = not State.BuyMonkeyEnabled
    setButtonState(buyMonkeyToggle, "Buy Monkey", State.BuyMonkeyEnabled)
end)

local buyMaxMonkeyToggle = createToggleButton("BuyMaxMonkeyToggle", "Buy Max Monkey", 3)
buyMaxMonkeyToggle.MouseButton1Click:Connect(function()
    State.BuyMaxMonkeyEnabled = not State.BuyMaxMonkeyEnabled
    setButtonState(buyMaxMonkeyToggle, "Buy Max Monkey", State.BuyMaxMonkeyEnabled)

    if State.BuyMaxMonkeyEnabled then

        State.BuyMonkeyEnabled = false
        setButtonLocked(buyMonkeyToggle, "Buy Monkey", true)
    else

        setButtonLocked(buyMonkeyToggle, "Buy Monkey", false)
    end
end)

local mergeMonkeysToggle = createToggleButton("MergeMonkeysToggle", "Merge Monkeys", 4)
mergeMonkeysToggle.MouseButton1Click:Connect(function()
    State.MergeMonkeysEnabled = not State.MergeMonkeysEnabled
    setButtonState(mergeMonkeysToggle, "Merge Monkeys", State.MergeMonkeysEnabled)
end)

local bananaLauncherToggle = createToggleButton("BananaLauncherToggle", "Banana Launcher", 5)
bananaLauncherToggle.MouseButton1Click:Connect(function()
    State.BananaLauncherEnabled = not State.BananaLauncherEnabled
    setButtonState(bananaLauncherToggle, "Banana Launcher", State.BananaLauncherEnabled)
end)

설명

Auto Farm Inlcudes Collect Bananas, Deposit Bananas, Buy Monkey, Buy Max Monkeys, Merge Monkeys, Banana Launcher Upgrade

댓글 (0)

대화에 참여하려면 로그인하세요

  • 첫 댓글을 작성하세요.

자주 묻는 질문

Auto Farm - Monkey Tycoon 스크립트는 어떻게 사용하나요?
위의 스크립트 코드를 복사하고, Roblox 엑시큐터를 열어 붙여넣은 후, 게임 중에 실행을 누르세요. 스크립트가 실행되면 기능이 즉시 활성화됩니다.
Auto Farm - Monkey Tycoon 스크립트는 무료인가요?
네. 이 스크립트는 무료로 복사하고 사용할 수 있습니다. 키 시스템을 사용하는 경우, 링크를 통해 무료로 키를 받으세요.
Auto Farm - Monkey Tycoon 스크립트는 안전한가요?
전체 소스 코드가 이 페이지에 표시되어 실행 전에 정확히 무엇을 하는지 확인할 수 있습니다. 항상 신뢰할 수 있는 엑시큐터를 사용하고, 스크립트 사용은 Roblox 이용 약관에 위반되므로 자의적 위험으로 사용하세요.
Auto Farm - Monkey Tycoon에 호환되는 엑시큐터는?
이 스크립트는 대부분의 인기 Roblox 엑시큐터에서 작동합니다. 기기에 맞는 신뢰할 수 있는 무료 또는 유료 엑시큐터를 찾으려면 엑시큐터 페이지를 확인하세요.
Auto Farm - Monkey Tycoon | BloxScripter