Thank you for using our website
Your script:
--[[
@author depso (depthso)
@description Grow a Garden stock bot script
https://www.roblox.com/games/126884695634066
]]
type table = {
[any]: any
}
_G.Configuration = {
--// Reporting
["Enabled"] = true,
["Webhook"] = "https://discord.com/api/webhooks.....", -- replace with your webhook url
["Weather Reporting"] = true,
--// User
["Anti-AFK"] = true,
["Auto-Reconnect"] = true,
["Rendering Enabled"] = false,
--// Embeds
["AlertLayouts"] = {
["Weather"] = {
EmbedColor = Color3.fromRGB(42, 109, 255),
},
["SeedsAndGears"] = {
EmbedColor = Color3.fromRGB(56, 238, 23),
Layout = {
["ROOT/SeedStock/Stocks"] = "SEEDS STOCK",
["ROOT/GearStock/Stocks"] = "GEAR STOCK"
}
},
["EventShop"] = {
EmbedColor = Color3.fromRGB(212, 42, 255),
Layout = {
["ROOT/EventShopStock/Stocks"] = "EVENT STOCK"
}
},
["Eggs"] = {
EmbedColor = Color3.fromRGB(251, 255, 14),
Layout = {
["ROOT/PetEggStock/Stocks"] = "EGG STOCK"
}
},
["CosmeticStock"] = {
EmbedColor = Color3.fromRGB(255, 106, 42),
Layout = {
["ROOT/CosmeticStock/ItemStocks"] = "COSMETIC ITEMS STOCK"
}
}
}
}
--// Services
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
local HttpService = game:GetService("HttpService")
local VirtualUser = cloneref(game:GetService("VirtualUser"))
local RunService = game:GetService("RunService")
local GuiService = game:GetService("GuiService")
--// Remotes
local DataStream = ReplicatedStorage.GameEvents.DataStream -- RemoteEvent
local WeatherEventStarted = ReplicatedStorage.GameEvents.WeatherEventStarted -- RemoteEvent
local LocalPlayer = Players.LocalPlayer
local function GetConfigValue(Key: string)
return _G.Configuration[Key]
end
--// Set rendering enabled
local Rendering = GetConfigValue("Rendering Enabled")
RunService:Set3dRenderingEnabled(Rendering)
--// Check if the script is already running
if _G.StockBot then return end
_G.StockBot = true
local function ConvertColor3(Color: Color3): number
local Hex = Color:ToHex()
return tonumber(Hex, 16)
end
local function GetDataPacket(Data, Target: string)
for _, Packet in Data do
local Name = Packet[1]
local Content = Packet[2]
if Name == Target then
return Content
end
end
return
end
local function GetLayout(Type: string)
local Layouts = GetConfigValue("AlertLayouts")
return Layouts[Type]
end
local function WebhookSend(Type: string, Fields: table)
local Enabled = GetConfigValue("Enabled")
local Webhook = GetConfigValue("Webhook")
--// Check if reports are enabled
if not Enabled then return end
local Layout = GetLayout(Type)
local Color = ConvertColor3(Layout.EmbedColor)
--// Webhook data
local TimeStamp = DateTime.now():ToIsoDate()
local Body = {
embeds = {
{
color = Color,
fields = Fields,
footer = {
text = "Created by depso" -- Please keep
},
timestamp = TimeStamp
}
}
}
local RequestData = {
Url = Webhook,
Method = "POST",
Headers = {
["Content-Type"] = "application/json"
},
Body = HttpService:JSONEncode(Body)
}
--// Send POST request to the webhook
task.spawn(request, RequestData)
end
local function MakeStockString(Stock: table): string
local String = ""
for Name, Data in Stock do
local Amount = Data.Stock
local EggName = Data.EggName
Name = EggName or Name
String ..= `{Name} **x{Amount}**\n`
end
return String
end
local function ProcessPacket(Data, Type: string, Layout)
local Fields = {}
local FieldsLayout = Layout.Layout
if not FieldsLayout then return end
for Packet, Title in FieldsLayout do
local Stock = GetDataPacket(Data, Packet)
if not Stock then return end
local StockString = MakeStockString(Stock)
local Field = {
name = Title,
value = StockString,
inline = true
}
table.insert(Fields, Field)
end
WebhookSend(Type, Fields)
end
DataStream.OnClientEvent:Connect(function(Type: string, Profile: string, Data: table)
if Type ~= "UpdateData" then return end
if not Profile:find(LocalPlayer.Name) then return end
local Layouts = GetConfigValue("AlertLayouts")
for Name, Layout in Layouts do
ProcessPacket(Data, Name, Layout)
end
end)
WeatherEventStarted.OnClientEvent:Connect(function(Event: string, Length: number)
--// Check if Weather reports are enabled
local WeatherReporting = GetConfigValue("Weather Reporting")
if not WeatherReporting then return end
--// Calculate end unix
local ServerTime = math.round(workspace:GetServerTimeNow())
local EndUnix = ServerTime + Length
WebhookSend("Weather", {
{
name = "WEATHER",
value = `{Event}\nEnds:`,
inline = true
}
})
end)
--// Anti idle
LocalPlayer.Idled:Connect(function()
--// Check if Anti-AFK is enabled
local AntiAFK = GetConfigValue("Anti-AFK")
if not AntiAFK then return end
VirtualUser:CaptureController()
VirtualUser:ClickButton2(Vector2.new())
end)
--// Auto reconnect
GuiService.ErrorMessageChanged:Connect(function()
local IsSingle = #Players:GetPlayers() <= 1
local PlaceId = game.PlaceId
local JobId = game.JobId
--// Check if Auto-Reconnect is enabled
local AutoReconnect = GetConfigValue("Auto-Reconnect")
if not AutoReconnect then return end
queue_on_teleport("https://rawscripts.net/raw/Grow-a-Garden-Grow-a-Garden-Stock-bot-41500")
--// Join a different server if the player is solo
if IsSingle then
TeleportService:Teleport(PlaceId, LocalPlayer)
return
end
TeleportService:TeleportToPlaceInstance(PlaceId, JobId, LocalPlayer)
end)