local Rayfield = loadstring(game:HttpGet('https://[Log in to view URL]'))()

local Window = Rayfield:CreateWindow({
   Name = "Rayfield Example Window",
   Icon = 0, -- Icon in Topbar. Use Roblox ImageId (number) or Lucide icon (string). 0 means no icon.
   LoadingTitle = "Rayfield Interface Suite",
   LoadingSubtitle = "by Sirius",
   Theme = "Default", -- Check https://[Log in to view URL]

   ToggleUIKeybind = "K", -- Keybind to toggle UI visibility

   DisableRayfieldPrompts = false,
   DisableBuildWarnings = false,

   ConfigurationSaving = {
      Enabled = true,
      FolderName = nil,
      FileName = "Big Hub",
   },

   Discord = {
      Enabled = false,
      Invite = "noinvitelink",
      RememberJoins = true,
   },

   KeySystem = false,
   KeySettings = {
      Title = "Untitled",
      Subtitle = "Key System",
      Note = "No method of obtaining the key is provided",
      FileName = "Key",
      SaveKey = true,
      GrabKeyFromSite = false,
      Key = {"Hello"},
   },
})

-- Utility function to get keys from table
local function table_keys(t)
    local keys = {}
    for k in pairs(t) do
        table.insert(keys, k)
    end
    return keys
end

-- Services and variables
local Players = game:GetService("Players")
local LocalPlayer = Players.LocalPlayer
local RunService = game:GetService("RunService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")

-- Replace with your actual RemoteEvents/Functions
local PlantSeedRemote = ReplicatedStorage:WaitForChild("PlantSeed")
local HarvestRemote = ReplicatedStorage:WaitForChild("Harvest")
local BuySeedRemote = ReplicatedStorage:WaitForChild("BuySeed")
local SellRemote = ReplicatedStorage:WaitForChild("Sell")

local function GetSeedStock(onlyInStock)
    return {
        ["Carrot"] = 100,
        ["Tomato"] = 50,
        ["Potato"] = 0,
        ["Lettuce"] = 20,
    }
end

local function SellInventory()
    print("Selling inventory...")
    SellRemote:InvokeServer()
end

local function BuyAllSelectedSeeds(seedName)
    if not seedName or seedName == "" then return end
    print("Buying seeds:", seedName)
    BuySeedRemote:InvokeServer(seedName, 10) -- Example: buy 10 seeds at a time
end

local function AutoPlantSeed(seedName)
    if seedName and seedName ~= "" then
        print("Auto-planting:", seedName)
        PlantSeedRemote:FireServer(seedName)
    end
end

local function AutoHarvestCrops()
    print("Auto-harvesting crops")
    HarvestRemote:FireServer()
end

local function AutoWalkAround()
    print("Walking around...")
    -- Implement your tween or pathfinding here
end

-- === Auto-Plant Tab ===
local AutoPlantTab = Window:CreateTab("Auto-Plant", 4483362458)

local AutoPlantToggle = AutoPlantTab:CreateToggle({
    Name = "Enable Auto-Plant",
    CurrentValue = false,
    Flag = "AutoPlant",
    Callback = function(Value) end,
})

local AutoPlantRandomToggle = AutoPlantTab:CreateToggle({
    Name = "Plant Randomly",
    CurrentValue = false,
    Flag = "AutoPlantRandom",
    Callback = function(Value) end,
})

local seedsList = table_keys(GetSeedStock())
local SelectedSeed = seedsList[1] or ""

local SeedDropdown = AutoPlantTab:CreateDropdown({
    Name = "Select Seed",
    Options = seedsList,
    CurrentOption = SelectedSeed,
    Flag = "SelectedSeed",
    Callback = function(Option)
        SelectedSeed = Option
    end,
})

AutoPlantTab:CreateButton({
    Name = "Plant Now",
    Callback = function()
        AutoPlantSeed(SelectedSeed)
    end,
})

-- === Auto-Harvest Tab ===
local AutoHarvestTab = Window:CreateTab("🚜 Auto-Harvest", 4483362458)

local AutoHarvestToggle = AutoHarvestTab:CreateToggle({
    Name = "Enable Auto-Harvest",
    CurrentValue = false,
    Flag = "AutoHarvest",
    Callback = function(Value) end,
})

AutoHarvestTab:CreateButton({
    Name = "Harvest Now",
    Callback = AutoHarvestCrops,
})

-- === Auto-Buy Tab ===
local AutoBuyTab = Window:CreateTab("🛒 Auto-Buy", 4483362458)

local AutoBuyToggle = AutoBuyTab:CreateToggle({
    Name = "Enable Auto-Buy",
    CurrentValue = false,
    Flag = "AutoBuy",
    Callback = function(Value) end,
})

local OnlyShowInStockToggle = AutoBuyTab:CreateToggle({
    Name = "Only Show In-Stock",
    CurrentValue = false,
    Flag = "OnlyShowStock",
    Callback = function(Value) end,
})

local SelectedSeedToBuy = ""

local function UpdateBuyDropdown()
    local stock = GetSeedStock(OnlyShowInStockToggle.CurrentValue)
    local options = {}
    for seed, qty in pairs(stock) do
        if not OnlyShowInStockToggle.CurrentValue or qty > 0 then
            table.insert(options, seed)
        end
    end
    SeedBuyDropdown:UpdateOptions(options)
    if #options > 0 then
        SeedBuyDropdown:SetOption(options[1])
    else
        SeedBuyDropdown:SetOption("")
    end
end

local SeedBuyDropdown = AutoBuyTab:CreateDropdown({
    Name = "Select Seed to Buy",
    Options = table_keys(GetSeedStock()),
    CurrentOption = "",
    Flag = "SelectedSeedStock",
    Callback = function(Option)
        SelectedSeedToBuy = Option
    end,
})

OnlyShowInStockToggle:OnChanged(function()
    UpdateBuyDropdown()
end)

AutoBuyTab:CreateButton({
    Name = "Buy Selected Seed",
    Callback = function()
        if SelectedSeedToBuy and SelectedSeedToBuy ~= "" then
            BuyAllSelectedSeeds(SelectedSeedToBuy)
        end
    end,
})

-- === Auto-Sell Tab ===
local AutoSellTab = Window:CreateTab("💰 Auto-Sell", 4483362458)

AutoSellTab:CreateButton({
    Name = "Sell Inventory Now",
    Callback = SellInventory,
})

local AutoSellToggle = AutoSellTab:CreateToggle({
    Name = "Enable Auto-Sell",
    CurrentValue = false,
    Flag = "AutoSell",
    Callback = function(Value) end,
})

local SellThresholdSlider = AutoSellTab:CreateSlider({
    Name = "Sell Threshold",
    Range = {1, 200},
    Increment = 1,
    CurrentValue = 15,
    Flag = "SellThreshold",
    Callback = function(Value) end,
})

-- === Auto-Walk Tab ===
local AutoWalkTab = Window:CreateTab("🚶 Auto-Walk", 4483362458)

local AutoWalkToggle = AutoWalkTab:CreateToggle({
    Name = "Enable Auto-Walk",
    CurrentValue = false,
    Flag = "AutoWalk",
    Callback = function(Value) end,
})

local AutoWalkRandomToggle = AutoWalkTab:CreateToggle({
    Name = "Allow Random Points",
    CurrentValue = true,
    Flag = "AutoWalkAllowRandom",
    Callback = function(Value) end,
})

local NoClipToggle = AutoWalkTab:CreateToggle({
    Name = "NoClip",
    CurrentValue = false,
    Flag = "NoClip",
    Callback = function(Value) end,
})

local AutoWalkMaxWaitSlider = AutoWalkTab:CreateSlider({
    Name = "Max Delay (Seconds)",
    Range = {1, 120},
    Increment = 1,
    CurrentValue = 10,
    Flag = "AutoWalkMaxWait",
    Callback = function(Value) end,
})

-- === Main Loop ===
spawn(function()
    while true do
        RunService.Heartbeat:Wait()

        -- Auto-Plant Logic
        if AutoPlantToggle.CurrentValue then
            if AutoPlantRandomToggle.CurrentValue then
                local randomSeed = seedsList[math.random(1, #seedsList)]
                AutoPlantSeed(randomSeed)
            else
                AutoPlantSeed(SelectedSeed)
            end
        end

        -- Auto-Harvest Logic
        if AutoHarvestToggle.CurrentValue then
            AutoHarvestCrops()
        end

        -- Auto-Buy Logic
        if AutoBuyToggle.CurrentValue and SelectedSeedToBuy and SelectedSeedToBuy ~= "" then
            BuyAllSelectedSeeds(SelectedSeedToBuy)
        end

        -- Auto-Sell Logic
        if AutoSellToggle.CurrentValue then
            local inventoryAmount = 20 -- Replace with your real inventory check
            if inventoryAmount >= SellThresholdSlider.CurrentValue then
                SellInventory()
            end
        end

        -- Auto-Walk Logic
        if AutoWalkToggle.CurrentValue then
            AutoWalkAround()
        end

        wait(1)
    end
end)

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: