-- Simple GaG UI v2.0 - Working Version -- UI ที่ทำงานได้จริงสำหรับเกม Grow a Garden -- ตรวจสอบว่าอยู่ในเกม GaG if game.PlaceId ~= 4442272183 then warn("This script only works in Grow a Garden!") return end local Players = game:GetService("Players") local UserInputService = game:GetService("UserInputService") local TweenService = game:GetService("TweenService") local RunService = game:GetService("RunService") local ReplicatedStorage = game:GetService("ReplicatedStorage") local Workspace = game:GetService("Workspace") local Player = Players.LocalPlayer local PlayerGui = Player:WaitForChild("PlayerGui") -- ป้องกันการรันซ้ำ if _G.SimpleGaGUILoaded then warn("Simple GaG UI is already loaded!") return end _G.SimpleGaGUILoaded = true -- Settings local Settings = { AutoFarm = false, AutoSell = false, SelectedPlant = "Carrot", FarmDelay = 1, SellDelay = 5, DebugMode = true } -- Debug Function local function DebugPrint(text) if Settings.DebugMode then print("[GaG Debug] " .. tostring(text)) end end -- สร้าง Notification local function Notify(title, text, duration) game:GetService("StarterGui"):SetCore("SendNotification", { Title = title or "GaG Auto Farm", Text = text or "", Duration = duration or 3 }) end -- หา Game Events และ Functions local GameEvents = {} local function FindGameEvents() DebugPrint("กำลังค้นหา Game Events...") for _, obj in pairs(ReplicatedStorage:GetDescendants()) do if obj:IsA("RemoteEvent") or obj:IsA("RemoteFunction") then local name = obj.Name:lower() if name:find("plant") or name:find("harvest") or name:find("sell") or name:find("buy") or name:find("shop") or name:find("farm") then GameEvents[obj.Name] = obj DebugPrint("พบ Event: " .. obj.Name .. " (" .. obj.ClassName .. ")") end end end DebugPrint("พบ Events ทั้งหมด: " .. #GameEvents) end -- หา Player Plots local function GetPlayerPlots() local plots = {} -- วิธีที่ 1: หาจาก Workspace/Plots local plotsFolder = Workspace:FindFirstChild("Plots") if plotsFolder then for _, plot in pairs(plotsFolder:GetChildren()) do if plot:FindFirstChild("Owner") and plot.Owner.Value == Player then table.insert(plots, plot) end end end -- วิธีที่ 2: หาโดยตรงใน Workspace if #plots == 0 then for _, obj in pairs(Workspace:GetDescendants()) do if obj.Name:find("Plot") and obj:FindFirstChild("Owner") then if obj.Owner.Value == Player then table.insert(plots, obj) end end end end DebugPrint("พบ Player Plots: " .. #plots) return plots end -- ตรวจสอบว่าพืชโตแล้วหรือยัง local function IsPlantReady(plant) if not plant then return false end -- ตรวจสอบหลายวิธี if plant:FindFirstChild("IsGrown") then return plant.IsGrown.Value elseif plant:FindFirstChild("Grown") then return plant.Grown.Value elseif plant:FindFirstChild("Ready") then return plant.Ready.Value elseif plant:GetAttribute("IsGrown") then return plant:GetAttribute("IsGrown") elseif plant:GetAttribute("Grown") then return plant:GetAttribute("Grown") elseif plant:GetAttribute("Ready") then return plant:GetAttribute("Ready") end return false end -- เก็บพืช local function HarvestPlant(plot, plant) local success = false -- วิธีที่ 1: ลอง RemoteEvents for name, event in pairs(GameEvents) do if name:lower():find("harvest") or name:lower():find("collect") then local worked = pcall(function() if event:IsA("RemoteEvent") then event:FireServer(plot) elseif event:IsA("RemoteFunction") then event:InvokeServer(plot) end end) if worked then success = true DebugPrint("เก็บพืชสำเร็จด้วย: " .. name) break end end end -- วิธีที่ 2: ClickDetector if not success and plant:FindFirstChild("ClickDetector") then fireclickdetector(plant.ClickDetector) success = true DebugPrint("เก็บพืชด้วย ClickDetector") end -- วิธีที่ 3: ProximityPrompt if not success then local prompt = plant:FindFirstChildOfClass("ProximityPrompt") if prompt then fireproximityprompt(prompt) success = true DebugPrint("เก็บพืชด้วย ProximityPrompt") end end return success end -- ปลูกพืช local function PlantSeed(plot, seedName) local success = false -- วิธีที่ 1: ลอง RemoteEvents for name, event in pairs(GameEvents) do if name:lower():find("plant") or name:lower():find("buy") or name:lower():find("seed") then local worked = pcall(function() if event:IsA("RemoteEvent") then event:FireServer(seedName, plot) event:FireServer(plot, seedName) event:FireServer("PlantSeed", seedName, plot) elseif event:IsA("RemoteFunction") then event:InvokeServer(seedName, plot) event:InvokeServer(plot, seedName) end end) if worked then success = true DebugPrint("ปลูกพืชสำเร็จด้วย: " .. name) break end end end -- วิธีที่ 2: ClickDetector ใน plot if not success and plot:FindFirstChild("ClickDetector") then fireclickdetector(plot.ClickDetector) success = true DebugPrint("ปลูกพืชด้วย ClickDetector") end return success end -- ขายของ local function SellItems() local success = false -- วิธีที่ 1: ลอง RemoteEvents for name, event in pairs(GameEvents) do if name:lower():find("sell") or name:lower():find("shop") then local worked = pcall(function() if event:IsA("RemoteEvent") then event:FireServer() event:FireServer("SellAll") elseif event:IsA("RemoteFunction") then event:InvokeServer() event:InvokeServer("SellAll") end end) if worked then success = true DebugPrint("ขายสำเร็จด้วย: " .. name) break end end end -- วิธีที่ 2: หาพื้นที่ขาย if not success then for _, obj in pairs(Workspace:GetDescendants()) do if obj.Name:lower():find("sell") or obj.Name:lower():find("shop") then -- ลอง ClickDetector local clickDetector = obj:FindFirstChildOfClass("ClickDetector") if clickDetector then fireclickdetector(clickDetector) success = true DebugPrint("ขายด้วย ClickDetector: " .. obj.Name) break end -- ลอง ProximityPrompt local prompt = obj:FindFirstChildOfClass("ProximityPrompt") if prompt then fireproximityprompt(prompt) success = true DebugPrint("ขายด้วย ProximityPrompt: " .. obj.Name) break end end end end return success end -- Auto Farm Function local FarmConnection local function StartAutoFarm() if FarmConnection then FarmConnection:Disconnect() end DebugPrint("เริ่ม Auto Farm") Notify("Auto Farm", "เริ่มฟาร์มอัตโนมัติ") FarmConnection = RunService.Heartbeat:Connect(function() if not Settings.AutoFarm then return end local success, error = pcall(function() local plots = GetPlayerPlots() if #plots == 0 then DebugPrint("ไม่พบ plots ของผู้เล่น") return end for i, plot in pairs(plots) do local plant = plot:FindFirstChild("Plant") if plant then -- ตรวจสอบว่าพืชโตแล้ว if IsPlantReady(plant) then DebugPrint("เก็บพืชใน Plot " .. i) HarvestPlant(plot, plant) wait(0.3) else DebugPrint("พืชยังไม่โต Plot " .. i) end else -- ปลูกพืชใหม่ DebugPrint("ปลูกพืชใหม่ใน Plot " .. i .. ": " .. Settings.SelectedPlant) PlantSeed(plot, Settings.SelectedPlant) wait(0.3) end end end) if not success then DebugPrint("Auto Farm Error: " .. tostring(error)) end wait(Settings.FarmDelay) end) end local function StopAutoFarm() if FarmConnection then FarmConnection:Disconnect() FarmConnection = nil end DebugPrint("หยุด Auto Farm") Notify("Auto Farm", "หยุดฟาร์มอัตโนมัติ") end -- Auto Sell Function local SellConnection local function StartAutoSell() if SellConnection then SellConnection:Disconnect() end DebugPrint("เริ่ม Auto Sell") Notify("Auto Sell", "เริ่มขายอัตโนมัติ") SellConnection = RunService.Heartbeat:Connect(function() if not Settings.AutoSell then return end local success, error = pcall(function() if SellItems() then DebugPrint("ขายสำเร็จ") else DebugPrint("ไม่สามารถขายได้") end end) if not success then DebugPrint("Auto Sell Error: " .. tostring(error)) end wait(Settings.SellDelay) end) end local function StopAutoSell() if SellConnection then SellConnection:Disconnect() SellConnection = nil end DebugPrint("หยุด Auto Sell") Notify("Auto Sell", "หยุดขายอัตโนมัติ") end -- สร้าง UI local function CreateUI() -- ScreenGui local ScreenGui = Instance.new("ScreenGui") ScreenGui.Name = "SimpleGaGUI_v2" ScreenGui.Parent = PlayerGui ScreenGui.ResetOnSpawn = false -- Main Frame local MainFrame = Instance.new("Frame") MainFrame.Name = "MainFrame" MainFrame.Parent = ScreenGui MainFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 25) MainFrame.BorderColor3 = Color3.fromRGB(0, 150, 255) MainFrame.BorderSizePixel = 2 MainFrame.Position = UDim2.new(0.05, 0, 0.05, 0) MainFrame.Size = UDim2.new(0, 300, 0, 400) MainFrame.Active = true MainFrame.Draggable = true -- Title local Title = Instance.new("TextLabel") Title.Parent = MainFrame Title.BackgroundColor3 = Color3.fromRGB(0, 150, 255) Title.BorderSizePixel = 0 Title.Size = UDim2.new(1, 0, 0, 25) Title.Font = Enum.Font.SourceSansBold Title.Text = "Simple GaG Auto Farm v2" Title.TextColor3 = Color3.fromRGB(255, 255, 255) Title.TextSize = 14 -- Close Button local CloseButton = Instance.new("TextButton") CloseButton.Parent = Title CloseButton.BackgroundColor3 = Color3.fromRGB(255, 50, 50) CloseButton.BorderSizePixel = 0 CloseButton.Position = UDim2.new(1, -25, 0, 0) CloseButton.Size = UDim2.new(0, 25, 0, 25) CloseButton.Font = Enum.Font.SourceSansBold CloseButton.Text = "X" CloseButton.TextColor3 = Color3.fromRGB(255, 255, 255) CloseButton.TextSize = 12 -- Content local Content = Instance.new("Frame") Content.Parent = MainFrame Content.BackgroundTransparency = 1 Content.Position = UDim2.new(0, 10, 0, 35) Content.Size = UDim2.new(1, -20, 1, -45) -- Auto Farm Toggle local FarmLabel = Instance.new("TextLabel") FarmLabel.Parent = Content FarmLabel.BackgroundTransparency = 1 FarmLabel.Position = UDim2.new(0, 0, 0, 10) FarmLabel.Size = UDim2.new(0.7, 0, 0, 25) FarmLabel.Font = Enum.Font.SourceSans FarmLabel.Text = "Auto Farm:" FarmLabel.TextColor3 = Color3.fromRGB(255, 255, 255) FarmLabel.TextSize = 14 FarmLabel.TextXAlignment = Enum.TextXAlignment.Left local FarmToggle = Instance.new("TextButton") FarmToggle.Parent = Content FarmToggle.BackgroundColor3 = Color3.fromRGB(255, 50, 50) FarmToggle.BorderSizePixel = 0 FarmToggle.Position = UDim2.new(0.7, 0, 0, 10) FarmToggle.Size = UDim2.new(0.3, 0, 0, 25) FarmToggle.Font = Enum.Font.SourceSans FarmToggle.Text = "OFF" FarmToggle.TextColor3 = Color3.fromRGB(255, 255, 255) FarmToggle.TextSize = 12 -- Plant Selection local PlantLabel = Instance.new("TextLabel") PlantLabel.Parent = Content PlantLabel.BackgroundTransparency = 1 PlantLabel.Position = UDim2.new(0, 0, 0, 45) PlantLabel.Size = UDim2.new(1, 0, 0, 20) PlantLabel.Font = Enum.Font.SourceSans PlantLabel.Text = "Selected Plant: " .. Settings.SelectedPlant PlantLabel.TextColor3 = Color3.fromRGB(255, 255, 255) PlantLabel.TextSize = 12 PlantLabel.TextXAlignment = Enum.TextXAlignment.Left -- Plant Buttons local plants = {"Carrot", "Strawberry", "Tomato", "Corn", "Apple"} for i, plant in ipairs(plants) do local PlantButton = Instance.new("TextButton") PlantButton.Parent = Content PlantButton.BackgroundColor3 = Color3.fromRGB(70, 70, 70) PlantButton.BorderSizePixel = 0 PlantButton.Position = UDim2.new(0, (i-1) * 55, 0, 70) PlantButton.Size = UDim2.new(0, 50, 0, 30) PlantButton.Font = Enum.Font.SourceSans PlantButton.Text = plant PlantButton.TextColor3 = Color3.fromRGB(255, 255, 255) PlantButton.TextSize = 10 PlantButton.MouseButton1Click:Connect(function() Settings.SelectedPlant = plant PlantLabel.Text = "Selected Plant: " .. plant DebugPrint("เลือกพืช: " .. plant) end) end -- Auto Sell Toggle local SellLabel = Instance.new("TextLabel") SellLabel.Parent = Content SellLabel.BackgroundTransparency = 1 SellLabel.Position = UDim2.new(0, 0, 0, 115) SellLabel.Size = UDim2.new(0.7, 0, 0, 25) SellLabel.Font = Enum.Font.SourceSans SellLabel.Text = "Auto Sell:" SellLabel.TextColor3 = Color3.fromRGB(255, 255, 255) SellLabel.TextSize = 14 SellLabel.TextXAlignment = Enum.TextXAlignment.Left local SellToggle = Instance.new("TextButton") SellToggle.Parent = Content SellToggle.BackgroundColor3 = Color3.fromRGB(255, 50, 50) SellToggle.BorderSizePixel = 0 SellToggle.Position = UDim2.new(0.7, 0, 0, 115) SellToggle.Size = UDim2.new(0.3, 0, 0, 25) SellToggle.Font = Enum.Font.SourceSans SellToggle.Text = "OFF" SellToggle.TextColor3 = Color3.fromRGB(255, 255, 255) SellToggle.TextSize = 12 -- Status Display local StatusFrame = Instance.new("Frame") StatusFrame.Parent = Content StatusFrame.BackgroundColor3 = Color3.fromRGB(40, 40, 40) StatusFrame.BorderColor3 = Color3.fromRGB(70, 70, 70) StatusFrame.BorderSizePixel = 1 StatusFrame.Position = UDim2.new(0, 0, 0, 150) StatusFrame.Size = UDim2.new(1, 0, 0, 150) local StatusLabel = Instance.new("TextLabel") StatusLabel.Parent = StatusFrame StatusLabel.BackgroundTransparency = 1 StatusLabel.Size = UDim2.new(1, 0, 1, 0) StatusLabel.Font = Enum.Font.SourceSans StatusLabel.Text = "Status: Ready" StatusLabel.TextColor3 = Color3.fromRGB(255, 255, 255) StatusLabel.TextSize = 11 StatusLabel.TextYAlignment = Enum.TextYAlignment.Top -- Event Handlers FarmToggle.MouseButton1Click:Connect(function() Settings.AutoFarm = not Settings.AutoFarm if Settings.AutoFarm then FarmToggle.BackgroundColor3 = Color3.fromRGB(50, 255, 50) FarmToggle.Text = "ON" StartAutoFarm() else FarmToggle.BackgroundColor3 = Color3.fromRGB(255, 50, 50) FarmToggle.Text = "OFF" StopAutoFarm() end end) SellToggle.MouseButton1Click:Connect(function() Settings.AutoSell = not Settings.AutoSell if Settings.AutoSell then SellToggle.BackgroundColor3 = Color3.fromRGB(50, 255, 50) SellToggle.Text = "ON" StartAutoSell() else SellToggle.BackgroundColor3 = Color3.fromRGB(255, 50, 50) SellToggle.Text = "OFF" StopAutoSell() end end) CloseButton.MouseButton1Click:Connect(function() StopAutoFarm() StopAutoSell() ScreenGui:Destroy() _G.SimpleGaGUILoaded = false end) -- Status Update spawn(function() while ScreenGui.Parent do local plots = GetPlayerPlots() local plotsWithPlants = 0 local readyPlants = 0 for _, plot in pairs(plots) do local plant = plot:FindFirstChild("Plant") if plant then plotsWithPlants = plotsWithPlants + 1 if IsPlantReady(plant) then readyPlants = readyPlants + 1 end end end StatusLabel.Text = string.format( "Status: %s\nPlots: %d\nWith Plants: %d\nReady: %d\nSelected: %s\nFarm: %s | Sell: %s", _G.SimpleGaGUILoaded and "Running" or "Stopped", #plots, plotsWithPlants, readyPlants, Settings.SelectedPlant, Settings.AutoFarm and "ON" or "OFF", Settings.AutoSell and "ON" or "OFF" ) wait(2) end end) end -- Initialize wait(2) -- รอให้เกมโหลดเสร็จ DebugPrint("กำลังเริ่มต้น Simple GaG UI v2...") FindGameEvents() CreateUI() Notify("Simple GaG UI v2", "โหลดเสร็จเรียบร้อย! 🌱") DebugPrint("Simple GaG UI v2 พร้อมใช้งาน!") return { Settings = Settings, StartAutoFarm = StartAutoFarm, StopAutoFarm = StopAutoFarm, StartAutoSell = StartAutoSell, StopAutoSell = StopAutoSell }