local Rayfield = loadstring(game:HttpGet('https://[Log in to view URL]'))()
local executor = identifyexecutor and identifyexecutor() or "Unknown Executor"

local customTheme = {
   TextColor = Color3.fromRGB(0, 255, 0),
   Background = Color3.fromRGB(10, 10, 10),
   Topbar = Color3.fromRGB(0, 0, 0),
   Shadow = Color3.fromRGB(30, 30, 30),
   NotificationBackground = Color3.fromRGB(15, 15, 15),
   NotificationActionsBackground = Color3.fromRGB(20, 20, 20),
   TabBackground = Color3.fromRGB(10, 10, 10),
   TabStroke = Color3.fromRGB(0, 255, 0),
   TabBackgroundSelected = Color3.fromRGB(20, 20, 20),
   TabTextColor = Color3.fromRGB(100, 255, 100),
   SelectedTabTextColor = Color3.fromRGB(0, 255, 0),
   ElementBackground = Color3.fromRGB(15, 15, 15),
   ElementBackgroundHover = Color3.fromRGB(25, 25, 25),
   SecondaryElementBackground = Color3.fromRGB(20, 20, 20),
   ElementStroke = Color3.fromRGB(0, 255, 0),
   SecondaryElementStroke = Color3.fromRGB(0, 255, 0),
   SliderBackground = Color3.fromRGB(30, 30, 30),
   SliderProgress = Color3.fromRGB(0, 255, 0),
   SliderStroke = Color3.fromRGB(0, 255, 0),
   ToggleBackground = Color3.fromRGB(25, 25, 25),
   ToggleEnabled = Color3.fromRGB(0, 255, 0),
   ToggleDisabled = Color3.fromRGB(80, 80, 80),
   ToggleEnabledStroke = Color3.fromRGB(0, 255, 0),
   ToggleDisabledStroke = Color3.fromRGB(80, 80, 80),
   ToggleEnabledOuterStroke = Color3.fromRGB(0, 255, 0),
   ToggleDisabledOuterStroke = Color3.fromRGB(50, 50, 50),
   DropdownSelected = Color3.fromRGB(30, 30, 30),
   DropdownUnselected = Color3.fromRGB(20, 20, 20),
   InputBackground = Color3.fromRGB(10, 10, 10),
   InputStroke = Color3.fromRGB(0, 255, 0),
   PlaceholderColor = Color3.fromRGB(0, 255, 0),
   KeyInputBackground = Color3.fromRGB(10, 10, 10),
   KeyInputTextColor = Color3.fromRGB(0, 255, 0)
}

local Window = Rayfield:CreateWindow({
   Name = "DK's Hub | Grow a Garden | V0.0 [BETA] | " .. executor,
   Icon = nil,
   LoadingTitle = "",
   LoadingSubtitle = "",
   Theme = customTheme,
   DisableRayfieldPrompts = false,
   DisableBuildWarnings = false,
   ConfigurationSaving = {
      Enabled = false,
      FolderName = "GreenBlackThemeHub",
      FileName = "BigHub"
   },
   Discord = {
      Enabled = false,
      Invite = "",
      RememberJoins = true
   },
   KeySystem = false,
   KeySettings = {
      Title = "",
      Subtitle = "Authentication Required",
      Note = "Get your key at: discord.gg/dkshub",
      FileName = "jc_hub_key",
      SaveKey = true,
      GrabKeyFromSite = false,
      Key = {""},
      Theme = customTheme
   }
})

local HomeTab = Window:CreateTab("Home", "scan-face")
local HomeSection = HomeTab:CreateSection("Welcome!")


HomeTab:CreateParagraph({Title = "Welcome!", Content = "Thank you for using X-Dk."})

HomeTab:CreateSection("User Information")

local player = game.Players.LocalPlayer
local username = player.Name
HomeTab:CreateLabel("Player: " .. username)

local userId = player.UserId
HomeTab:CreateLabel("User Id: " .. userId)

HomeTab:CreateSection("Game and Executor")

local gameName = game:GetService("MarketplaceService"):GetProductInfo(game.PlaceId).Name
HomeTab:CreateLabel("Game: " .. gameName)

local executor = identifyexecutor and identifyexecutor() or "Unknown Executor"
HomeTab:CreateLabel("Executor: " .. executor)

HomeTab:CreateSection("Hardware")

local function getHWID()
    if syn and syn.request then
        return syn.crypt and syn.crypt.hash or "Synapse HWID Unavailable"
    elseif identifyexecutor and identifyexecutor():lower():find("scriptware") then
        return "ScriptWare HWID is not publicly accessible"
    elseif gethwid then
        return gethwid()
    elseif fluxus and fluxus.gethwid then
        return fluxus.gethwid()
    elseif isexecutorenv and isexecutorenv() then
        return getgenv().KRNL_ID or "KRNL HWID Unavailable"
    end
    return "Not Supported"
end

local hwid = getHWID()
HomeTab:CreateLabel("HWID: " .. hwid)

HomeTab:CreateSection("Date + Time")

local currentDate = os.date("%Y-%m-%d")
HomeTab:CreateLabel("Date: " .. currentDate)

local currentTime = os.date("%H:%M:%S")
HomeTab:CreateLabel("Time: " .. currentTime)

HomeTab:CreateSection("Credits")

HomeTab:CreateButton({
    Name = "Join Discord!", 
    Callback = function()
        if setclipboard then
            setclipboard("https://[Log in to view URL]")
            print("Copied to clipboard!")
        else
            print("Your executor does not support setclipboard.")
        end

        Rayfield:Notify({
            Title = "Link Copied!",
            Content = "The Discord link has been copied to your clipboard.",
            Duration = 8.5
        })
    end,
})

HomeTab:CreateLabel("Credits: XDkdev | Read Bio before @")

local AutomaticallyTab = Window:CreateTab("Automatically", "play" ) -- Title, Image
local AutomaticallySection = AutomaticallyTab:CreateSection("Quick-Buy-Seeds")

local selectedItem = "Dragon Fruit"

local Dropdown = AutomaticallyTab:CreateDropdown({
   Name = "Seeds",
   Options = {
      "Carrot", "Strawberry", "Blueberry", "Orange Tulip", "Corn",
      "Tomato", "Daffodil", "Watermelon", "Pumpkin", "Apple",
      "Bamboo", "Coconut", "Cactus", "Dragon Fruit", "Mango",
      "Grape", "Mushroom", "Pepper", "Cacao"
   },
   CurrentOption = {"Carrot"},
   MultipleOptions = false,
   Flag = "Dropdown1",
   Callback = function(Options)
      selectedItem = Options[1]
   end,
})

local Button = AutomaticallyTab:CreateButton({
   Name = "Buy Selected Item",
   Callback = function()
      if selectedItem then
         local args = {selectedItem}
         game:GetService("ReplicatedStorage"):WaitForChild("GameEvents"):WaitForChild("BuySeedStock"):FireServer(unpack(args))
      end
   end,
})

local AutomaticallySection = AutomaticallyTab:CreateSection("Quick-Buy-Gear")

local selectedItem = "Trowel"

local Dropdown = AutomaticallyTab:CreateDropdown({
   Name = "Gear",
   Options = {
      "Watering Can", "Trowel", "Recoli Wrench", "Orange Tulip", "Corn",
      "Basic Sprinkler", "Advanced Sprinkler", "Godly Sprinkler", "Lighting Rod", "Master Sprinkler",
      "Bamboo", "Coconut", "Cactus", "Favorite Tool", "Harvest Tool",
   },
   CurrentOption = {"Trowel"},
   MultipleOptions = false,
   Flag = "Dropdown1",
   Callback = function(Options)
      selectedItem = Options[1]
   end,
})

local Button = AutomaticallyTab:CreateButton({
   Name = "Buy Selected Item",
   Callback = function()
      if selectedItem then
         local args = {selectedItem}
         game:GetService("ReplicatedStorage"):WaitForChild("GameEvents"):WaitForChild("BuyGearStock"):FireServer(unpack(args))
      end
   end,
})

local AutomaticallySection = AutomaticallyTab:CreateSection("Quick-Sell")

function teleport(x, y, z)
    local player = game.Players.LocalPlayer
    if player and player.Character and player.Character:FindFirstChild("HumanoidRootPart") then
        player.Character.HumanoidRootPart.CFrame = CFrame.new(x, y, z)
    end
end

local function getCharacterPosition()
    local character = game.Players.LocalPlayer.Character
    if character and character:FindFirstChild("HumanoidRootPart") then
        return character.HumanoidRootPart.CFrame
    end
end

local function teleportAndSell(remoteName)
    local originalCFrame = getCharacterPosition()
    teleport(59, 3, 1)
    task.wait(0.3)
    game:GetService("ReplicatedStorage"):WaitForChild("GameEvents"):WaitForChild(remoteName):FireServer()
    task.wait(0.3)
    game.Players.LocalPlayer.Character:PivotTo(originalCFrame)
end

AutomaticallyTab:CreateButton({
    Name = "Sell Whole Inventory",
    Callback = function()
        teleportAndSell("Sell_Inventory")
    end,
})

AutomaticallyTab:CreateButton({
    Name = "Sell Hand (EQUIP ITEM)",
    Callback = function()
        teleportAndSell("Sell_Item")
    end,
})

local AutomaticallySection = AutomaticallyTab:CreateSection("Auto-Plant")

local Dropdown = AutomaticallyTab:CreateDropdown({
    Name = "Select Item",
    Options = {
        "Carrot", "Strawberry", "Blueberry", "Orange Tulip", "Corn",
        "Tomato", "Daffodil", "Watermelon", "Pumpkin", "Apple",
        "Bamboo", "Coconut", "Cactus", "Dragon Fruit", "Mango",
        "Grape", "Mushroom", "Pepper", "Cacao"
    },
    CurrentOption = "Carrot",  -- must be a string, not a table
    MultipleOptions = false,
    Flag = "Dropdown1",
    Callback = function(option)
        selectedItem = option
    end,
})

local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PlantEvent = ReplicatedStorage:WaitForChild("GameEvents"):WaitForChild("Plant_RE")
local player = Players.LocalPlayer

local autoPlantToggle = false
local stepSize = 3 -- size of one step in studs
local stepsForward = 2 -- how many steps forward to plant

local function fireproximityprompt(prompt)
    if typeof(prompt) == "Instance" and prompt:IsA("ProximityPrompt") then
        if prompt.Fire then
            prompt:Fire()
        elseif prompt.HoldBegin then
            prompt:HoldBegin()
            task.wait(0.1)
            prompt:HoldEnd()
        end
    end
end

local function groundAutoPlant()
    while autoPlantToggle do
        local character = player.Character or player.CharacterAdded:Wait()
        local humanoidRootPart = character:WaitForChild("HumanoidRootPart", 5)
        local tool = character:FindFirstChildOfClass("Tool")

        if tool and humanoidRootPart then
            local seedName = tool.Name
            local rootPos = humanoidRootPart.Position
            local forwardVector = humanoidRootPart.CFrame.LookVector

            local targetPos = rootPos + forwardVector * (stepSize * stepsForward)
            targetPos = Vector3.new(targetPos.X, rootPos.Y - 0.135, targetPos.Z)

            PlantEvent:FireServer(targetPos, seedName)
        end

        task.wait(0.05)
    end
end

AutomaticallyTab:CreateToggle({
    Name = "Auto Plant (EQUIP HAND)",
    CurrentValue = false,
    Flag = "AutoPlantSpam",
    Callback = function(value)
        autoPlantToggle = value
        if autoPlantToggle then
            coroutine.wrap(groundAutoPlant)()
        end
    end,
})

local AutoHarvestToggle = false

local function CanHarvest(Plant)
    local Prompt = Plant:FindFirstChildOfClass("ProximityPrompt")
    return Prompt and Prompt.Enabled
end

local function HarvestPlant(Plant)
    local Prompt = Plant:FindFirstChildOfClass("ProximityPrompt")
    if Prompt then
        fireproximityprompt(Prompt)
    end
end

local function CollectHarvestable(Parent, Plants, IgnoreDistance)
    local Character = player.Character
    if not Character then return Plants end
    local PlayerPosition = Character:GetPivot().Position

    for _, Plant in ipairs(Parent:GetChildren()) do
        local Fruits = Plant:FindFirstChild("Fruits")
        if Fruits then
            CollectHarvestable(Fruits, Plants, IgnoreDistance)
        end

        local PlantPosition
        local success, pos = pcall(function()
            return Plant:GetPivot().Position
        end)
        if success then
            PlantPosition = pos
        end

        if PlantPosition then
            local Distance = (PlayerPosition - PlantPosition).Magnitude
            if IgnoreDistance or Distance <= 15 then
                if CanHarvest(Plant) then
                    table.insert(Plants, Plant)
                end
            end
        end
    end

    return Plants
end

local function GetHarvestablePlants()
    local MyFarm = nil
    for _, Farm in ipairs(workspace.Farm:GetChildren()) do
        local Important = Farm:FindFirstChild("Important")
        if Important and Important:FindFirstChild("Data") then
            local Owner = Important.Data:FindFirstChild("Owner")
            if Owner and Owner.Value == player.Name then
                MyFarm = Farm
                break
            end
        end
    end
    if not MyFarm then return {} end

    local Important = MyFarm:FindFirstChild("Important")
    local PlantsPhysical = Important and Important:FindFirstChild("Plants_Physical")
    if not PlantsPhysical then return {} end

    return CollectHarvestable(PlantsPhysical, {}, false)
end

local function AutoHarvestLoop()
    while AutoHarvestToggle do
        local PlantsToHarvest = GetHarvestablePlants()
        for _, Plant in ipairs(PlantsToHarvest) do
            HarvestPlant(Plant)
            task.wait(0.2)
        end
        task.wait(1)
    end
end

AutomaticallyTab:CreateToggle({
    Name = "Auto Harvest",
    Flag = "AutoHarvestToggle",
    CurrentValue = false,
    Callback = function(value)
        AutoHarvestToggle = value
        if AutoHarvestToggle then
            task.spawn(AutoHarvestLoop)
        end
    end,
})

local AutoPlantEnabled = false

local function getEquippedSeeds()
    local seeds = {}
    local character = player.Character
    if character then
        for _, tool in pairs(character:GetChildren()) do
            if tool:IsA("Tool") then
                table.insert(seeds, tool.Name)
            end
        end
    end

    for _, tool in pairs(player.Backpack:GetChildren()) do
        if tool:IsA("Tool") then
            table.insert(seeds, tool.Name)
        end
    end

    return seeds
end

local function AutoPlantLoop()
    while AutoPlantEnabled do
        local equippedSeeds = getEquippedSeeds()

        if #equippedSeeds == 0 then
            warn("No seeds equipped!")
            task.wait(3)
        else
            for _, plot in pairs(workspace.Farm:GetChildren()) do
                if not plot:FindFirstChild("Seed") then
                    for _, seedName in ipairs(equippedSeeds) do
                        PlantEvent:FireServer(seedName)
                        task.wait(0.1)
                    end
                end
            end
            task.wait(1)
        end
    end
end

AutomaticallyTab:CreateToggle({
    Name = "Plant All (EQUIP HAND)",
    CurrentValue = false,
    Flag = "AutoPlantToggle",
    Callback = function(value)
        AutoPlantEnabled = value
        if AutoPlantEnabled then
            task.spawn(AutoPlantLoop)
        end
    end,
})

local InventoryTab = Window:CreateTab("Inventory", "backpack" ) -- Title, Image
local InventorySection = InventoryTab:CreateSection("Favorite-Item")

local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local player = Players.LocalPlayer
local GameEvents = ReplicatedStorage:WaitForChild("GameEvents")
local FavoriteItemEvent = GameEvents:WaitForChild("Favorite_Item")

local selectedItemName = nil

local function getInventoryItems()
    local items = {}
    local character = player.Character
    if character then
        for _, tool in pairs(character:GetChildren()) do
            if tool:IsA("Tool") then
                table.insert(items, tool.Name)
            end
        end
    end
    local backpack = player:WaitForChild("Backpack")
    for _, tool in pairs(backpack:GetChildren()) do
        if tool:IsA("Tool") then
            table.insert(items, tool.Name)
        end
    end
    local seen = {}
    local uniqueItems = {}
    for _, itemName in ipairs(items) do
        if not seen[itemName] then
            seen[itemName] = true
            table.insert(uniqueItems, itemName)
        end
    end
    return uniqueItems
end

local InventoryDropdown = InventoryTab:CreateDropdown({
    Name = "Select Item",
    Options = getInventoryItems(),
    CurrentOption = nil,
    MultipleOptions = false,
    Flag = "InventoryDropdown",
    Callback = function(option)
        selectedItemName = option
    end,
})

InventoryTab:CreateButton({
    Name = "Favorite Selected Item",
    Callback = function()
        if not selectedItemName then
            warn("No item selected!")
            return
        end

        local character = player.Character
        local backpack = player.Backpack
        local humanoid = character and character:FindFirstChildOfClass("Humanoid")
        local tool = character and character:FindFirstChild(selectedItemName) or nil

        if not tool then
            tool = backpack:FindFirstChild(selectedItemName)
        end

        if tool then
            if tool.Parent == backpack and humanoid then
                humanoid:EquipTool(tool)
                task.wait(0.3) -- wait for equip animation
            end

            local equippedTool = character:FindFirstChild(selectedItemName)
            if equippedTool then
                FavoriteItemEvent:FireServer(equippedTool)
            else
                warn("Tool not found in character after equipping!")
            end
        else
            warn("Selected tool not found in inventory!")
        end
    end,
})

local InventorySection = InventoryTab:CreateSection("Other")

local StarterGui = game:GetService("StarterGui")

InventoryTab:CreateToggle({
    Name = "Hide Backpack",
    CurrentValue = false,
    Flag = "HideBackpackToggle",
    Callback = function(enabled)
        StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.Backpack, not enabled)
    end,
})


local Players = game:GetService("Players")
local player = Players.LocalPlayer

InventoryTab:CreateToggle({
    Name = "Equip All Tools",
    CurrentValue = false,
    Flag = "EquipAllToggle",
    Callback = function(value)
        local character = player.Character
        local humanoid = character and character:FindFirstChildOfClass("Humanoid")
        local backpack = player:WaitForChild("Backpack")
        
        if value then
            -- Equip all tools in backpack one by one
            for _, tool in ipairs(backpack:GetChildren()) do
                if tool:IsA("Tool") then
                    humanoid:EquipTool(tool)
                    task.wait(0.3) -- small delay to allow equip
                end
            end
        else
            -- Unequip all tools currently equipped
            if humanoid then
                humanoid:UnequipTools()
            end
        end
    end,
})

local EspTab = Window:CreateTab("Esp", "eye" ) -- Title, Image
local EspSection = EspTab:CreateSection("Player ESP")

local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local LocalPlayer = Players.LocalPlayer

local espEnabled = false
local espConnections = {}

local function createESP(player)
    if player == LocalPlayer then return end
    if not player.Character or not player.Character:FindFirstChild("Head") then return end
    if player.Character:FindFirstChild("ESP") then return end

    local billboard = Instance.new("BillboardGui")
    billboard.Name = "ESP"
    billboard.Adornee = player.Character.Head
    billboard.Size = UDim2.new(0, 100, 0, 20)
    billboard.StudsOffset = Vector3.new(0, 2, 0)
    billboard.AlwaysOnTop = true
    billboard.Parent = player.Character

    local textLabel = Instance.new("TextLabel")
    textLabel.Size = UDim2.new(1, 0, 1, 0)
    textLabel.BackgroundTransparency = 1
    textLabel.TextColor3 = Color3.new(1, 1, 1)
    textLabel.TextStrokeTransparency = 0
    textLabel.Font = Enum.Font.SourceSans
    textLabel.TextScaled = true
    textLabel.TextWrapped = true
    textLabel.Parent = billboard

    espConnections[player] = RunService.RenderStepped:Connect(function()
        if player.Character and player.Character:FindFirstChild("Humanoid") and player.Character:FindFirstChild("HumanoidRootPart") then
            local hp = math.floor(player.Character.Humanoid.Health)
            local studs = 0
            if LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") then
                studs = math.floor((player.Character.HumanoidRootPart.Position - LocalPlayer.Character.HumanoidRootPart.Position).Magnitude)
            end
            textLabel.Text = string.format("%s | %d HP | %d Studs", player.Name, hp, studs)
        else
            textLabel.Text = "Loading..."
        end
    end)
end

local function removeESP(player)
    if espConnections[player] then
        espConnections[player]:Disconnect()
        espConnections[player] = nil
    end
    if player.Character then
        local esp = player.Character:FindFirstChild("ESP")
        if esp then
            esp:Destroy()
        end
    end
end

local function enableESP()
    for _, player in pairs(Players:GetPlayers()) do
        createESP(player)
        player.CharacterAdded:Connect(function()
            wait(1)
            if espEnabled then
                createESP(player)
            end
        end)
    end

    Players.PlayerAdded:Connect(function(player)
        player.CharacterAdded:Connect(function()
            wait(1)
            if espEnabled then
                createESP(player)
            end
        end)
        if espEnabled then
            createESP(player)
        end
    end)
end

local function disableESP()
    for _, player in pairs(Players:GetPlayers()) do
        removeESP(player)
    end
end

EspTab:CreateToggle({
    Name = "Names",
    CurrentValue = false,
    Flag = "ESP_Toggle",
    Callback = function(value)
        espEnabled = value
        if espEnabled then
            enableESP()
        else
            disableESP()
        end
    end,
})

local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local LocalPlayer = Players.LocalPlayer

local espEnabled = false
local chamHighlights = {}
local hue = 0

local function createCham(player)
    if player == LocalPlayer then return end
    if not player.Character then return end
    if chamHighlights[player] then return end

    local highlight = Instance.new("Highlight")
    highlight.Name = "ChamHighlight"
    highlight.Adornee = player.Character
    highlight.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
    highlight.FillTransparency = 0.5
    highlight.OutlineTransparency = 1
    highlight.Parent = player.Character

    chamHighlights[player] = highlight
end

local function removeCham(player)
    if chamHighlights[player] then
        chamHighlights[player]:Destroy()
        chamHighlights[player] = nil
    end
end

local function updateColors()
    hue = (hue + 1) % 360
    local color = Color3.fromHSV(hue/360, 1, 1)
    for _, highlight in pairs(chamHighlights) do
        highlight.FillColor = color
    end
end

local function enableChams()
    for _, player in pairs(Players:GetPlayers()) do
        createCham(player)
        player.CharacterAdded:Connect(function()
            wait(0.5)
            if espEnabled then
                createCham(player)
            end
        end)
    end
    Players.PlayerAdded:Connect(function(player)
        player.CharacterAdded:Connect(function()
            wait(0.5)
            if espEnabled then
                createCham(player)
            end
        end)
        if espEnabled then
            createCham(player)
        end
    end)

    RunService:BindToRenderStep("ChamColorUpdate", 301, updateColors)
end

local function disableChams()
    RunService:UnbindFromRenderStep("ChamColorUpdate")
    for _, player in pairs(Players:GetPlayers()) do
        removeCham(player)
    end
end

EspTab:CreateToggle({
    Name = "Rainbow Chams",
    CurrentValue = false,
    Flag = "RainbowChamsToggle",
    Callback = function(value)
        espEnabled = value
        if espEnabled then
            enableChams()
        else
            disableChams()
        end
    end,
})

local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local LocalPlayer = Players.LocalPlayer

local espEnabled = false
local chamHighlights = {}

local function createCham(player)
    if player == LocalPlayer then return end
    if not player.Character then return end
    if chamHighlights[player] then return end

    local highlight = Instance.new("Highlight")
    highlight.Name = "GreenCham"
    highlight.Adornee = player.Character
    highlight.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
    highlight.FillColor = Color3.fromRGB(0, 255, 0) -- bright green
    highlight.FillTransparency = 0.4  -- semi-transparent
    highlight.OutlineTransparency = 1 -- fully transparent (no outline)
    highlight.Parent = player.Character

    chamHighlights[player] = highlight
end

local function removeCham(player)
    if chamHighlights[player] then
        chamHighlights[player]:Destroy()
        chamHighlights[player] = nil
    end
end

local function enableChams()
    for _, player in pairs(Players:GetPlayers()) do
        createCham(player)
        player.CharacterAdded:Connect(function()
            wait(0.5)
            if espEnabled then
                createCham(player)
            end
        end)
    end
    Players.PlayerAdded:Connect(function(player)
        player.CharacterAdded:Connect(function()
            wait(0.5)
            if espEnabled then
                createCham(player)
            end
        end)
        if espEnabled then
            createCham(player)
        end
    end)
end

local function disableChams()
    for _, player in pairs(Players:GetPlayers()) do
        removeCham(player)
    end
end

EspTab:CreateToggle({
    Name = "Normal Chams",
    CurrentValue = false,
    Flag = "GreenChamsToggle",
    Callback = function(value)
        espEnabled = value
        if espEnabled then
            enableChams()
        else
            disableChams()
        end
    end,
})

local EspSection = EspTab:CreateSection("Local-Player-ESP")

local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local LocalPlayer = Players.LocalPlayer

local chamHighlights = {}
local espEnabled = false
local selectedStyle = "Green"


local function createCham(player)
    if player == LocalPlayer then return end
    if not player.Character then return end
    
    if chamHighlights[player] then
        chamHighlights[player]:Destroy()
        chamHighlights[player] = nil
    end

    local highlight = Instance.new("Highlight")
    highlight.Name = "ChamHighlight"
    highlight.Adornee = player.Character
    highlight.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
    highlight.Parent = player.Character
    
    if selectedStyle == "Green" then
        highlight.FillColor = Color3.fromRGB(0, 255, 0)
        highlight.FillTransparency = 0.5
        highlight.OutlineTransparency = 1 -- no outline
    elseif selectedStyle == "Red" then
        highlight.FillColor = Color3.fromRGB(255, 0, 0)
        highlight.FillTransparency = 0.5
        highlight.OutlineTransparency = 1
    elseif selectedStyle == "Classic" then
        highlight.FillColor = Color3.fromRGB(0, 255, 0)
        highlight.FillTransparency = 0.3
        highlight.OutlineColor = Color3.new(0, 1, 0)
        highlight.OutlineTransparency = 0 -- visible outline
    elseif selectedStyle == "Rainbow" then
        highlight.FillColor = Color3.fromRGB(255, 0, 0) -- initial color, will animate
        highlight.FillTransparency = 0.5
        highlight.OutlineTransparency = 1
        -- Animate rainbow colors
        local t = 0
        local conn
        conn = RunService.Heartbeat:Connect(function(dt)
            if not highlight or not highlight.Parent then
                if conn then conn:Disconnect() end
                return
            end
            t = t + dt * 2
            highlight.FillColor = Color3.fromHSV(t % 1, 1, 1)
        end)
    end

    chamHighlights[player] = highlight
end

local function removeCham(player)
    if chamHighlights[player] then
        chamHighlights[player]:Destroy()
        chamHighlights[player] = nil
    end
end

local function enableChams()
    for _, player in pairs(Players:GetPlayers()) do
        createCham(player)
        player.CharacterAdded:Connect(function()
            wait(0.5)
            if espEnabled then
                createCham(player)
            end
        end)
    end
    Players.PlayerAdded:Connect(function(player)
        player.CharacterAdded:Connect(function()
            wait(0.5)
            if espEnabled then
                createCham(player)
            end
        end)
        if espEnabled then
            createCham(player)
        end
    end)
end

local function disableChams()
    for _, player in pairs(Players:GetPlayers()) do
        removeCham(player)
    end
end

-- Create Rayfield dropdown for styles
local StyleDropdown = EspTab:CreateDropdown({
    Name = "Select Style",
    Options = {"Green", "Red", "Classic", "Rainbow"},
    CurrentOption = selectedStyle,
    MultipleOptions = false,
    Flag = "ChamStyleDropdown",
    Callback = function(option)
        selectedStyle = option
        if espEnabled then
            -- Refresh all highlights with new style
            for _, player in pairs(Players:GetPlayers()) do
                if chamHighlights[player] then
                    createCham(player)
                end
            end
        end
    end,
})


EspTab:CreateToggle({
    Name = "Enable",
    CurrentValue = false,
    Flag = "EnableChamsToggle",
    Callback = function(value)
        espEnabled = value
        if espEnabled then
            enableChams()
        else
            disableChams()
        end
    end,
})

local EspSection = EspTab:CreateSection("World-ESPS")


local Workspace = game:GetService("Workspace")

local chamHighlights = {}
local espEnabled = false

local function applyCham(part)
    if chamHighlights[part] then return end
    local highlight = Instance.new("Highlight")
    highlight.Name = "SeedCham"
    highlight.Adornee = part
    highlight.FillColor = Color3.fromRGB(0, 255, 0)  -- green fill
    highlight.FillTransparency = 0.5
    highlight.OutlineTransparency = 1 -- no outline
    highlight.Parent = part
    chamHighlights[part] = highlight
end

local function removeCham(part)
    if chamHighlights[part] then
        chamHighlights[part]:Destroy()
        chamHighlights[part] = nil
    end
end

local function enableESP()
    espEnabled = true
    if not Workspace:FindFirstChild("Seeds") then return end

    for _, seedPart in pairs(Workspace.Seeds:GetChildren()) do
        if seedPart:IsA("BasePart") then
            applyCham(seedPart)
        end
    end

    Workspace.Seeds.ChildAdded:Connect(function(newSeed)
        if espEnabled and newSeed:IsA("BasePart") then
            applyCham(newSeed)
        end
    end)

    Workspace.Seeds.ChildRemoved:Connect(function(removedSeed)
        removeCham(removedSeed)
    end)
end

local function disableESP()
    espEnabled = false
    for part, highlight in pairs(chamHighlights) do
        highlight:Destroy()
        chamHighlights[part] = nil
    end
end


EspTab:CreateToggle({
    Name = "Seed Chams",
    CurrentValue = false,
    Flag = "SeedChamsToggle",
    Callback = function(value)
        if value then
            enableESP()
        else
            disableESP()
        end
    end,
})

local NPCFolder = workspace:WaitForChild("NPCS")

local highlights = {}

local function applyChamsToPart(part)
    if part:IsA("BasePart") and not highlights[part] then
        local highlight = Instance.new("Highlight")
        highlight.Adornee = part
        highlight.FillColor = Color3.fromRGB(255, 0, 0) -- Red chams
        highlight.FillTransparency = 0.5
        highlight.OutlineColor = Color3.fromRGB(255, 255, 255)
        highlight.OutlineTransparency = 0
        highlight.Parent = part
        highlights[part] = highlight
    end
end

local function removeChams()
    for part, highlight in pairs(highlights) do
        if highlight and highlight.Parent then
            highlight:Destroy()
        end
    end
    highlights = {}
end

local function applyChamsToNPC(npc)
    for _, descendant in pairs(npc:GetDescendants()) do
        applyChamsToPart(descendant)
    end
end

local function applyChamsToAllNPCs()
    for _, npc in pairs(NPCFolder:GetChildren()) do
        applyChamsToNPC(npc)
    end
end


local npcAddedConnection


EspTab:CreateToggle({
    Name = "Npc Chams",
    CurrentValue = false,
    Flag = "ToggleChams",
    Callback = function(value)
        if value then
            applyChamsToAllNPCs()
            npcAddedConnection = NPCFolder.ChildAdded:Connect(function(newNPC)
                applyChamsToNPC(newNPC)
            end)
        else
            removeChams()
            if npcAddedConnection then
                npcAddedConnection:Disconnect()
                npcAddedConnection = nil
            end
        end
    end,
})

local Tab = Window:CreateTab("Player", "person-standing")
local Section = Tab:CreateSection("Speed")
local Players = game:GetService("Players")
local LocalPlayer = Players.LocalPlayer
local speedValue = 100
local isSpeedEnabled = false
local speedKey = "F"

local function setWalkSpeed()
    if isSpeedEnabled and LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("Humanoid") then
        LocalPlayer.Character.Humanoid.WalkSpeed = speedValue
    end
end

Tab:CreateToggle({
	Name = "Enable Speed",
	CurrentValue = false,
	Flag = "2134534",
	Callback = function(Value)
		isSpeedEnabled = Value
		if not Value then
			LocalPlayer.Character.Humanoid.WalkSpeed = 16
		else
			setWalkSpeed()
		end
	end    
})

Tab:CreateInput({
	Name = "Speed (1-300)",
	PlaceholderText = "100",
	RemoveTextAfterFocusLost = true,
	Callback = function(Value)
		local numValue = tonumber(Value)
		if numValue then
			speedValue = math.clamp(numValue, 1, 300)
			setWalkSpeed()
		end
	end
})

Tab:CreateDropdown({
	Name = "Speed Keybind",
	Options = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"},
	CurrentOption = "F",
	Flag = "75",
	Callback = function(Value)
		speedKey = Value:upper()
	end
})


local function toggleSpeed()
    if isSpeedEnabled then
        if LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("Humanoid") then
            LocalPlayer.Character.Humanoid.WalkSpeed = (LocalPlayer.Character.Humanoid.WalkSpeed == 16) and speedValue or 16
        end
    end
end

UserInputService = game:GetService("UserInputService")

UserInputService.InputBegan:Connect(function(input)
    if isSpeedEnabled and input.KeyCode == Enum.KeyCode[speedKey] then
        toggleSpeed()
    end
end)




local Section = Tab:CreateSection("Inf Jump")

local Player = game:GetService('Players').LocalPlayer
local UIS = game:GetService('UserInputService')

_G.JumpHeight = 50
local jumpEnabled = false

Tab:CreateToggle({
	Name = "Enable Inf Jump",
	CurrentValue = false,
	Flag = "1",
	Callback = function(Value)
		jumpEnabled = Value
	end    
})

Tab:CreateInput({
	Name = "Jump Power (1-200)",
	PlaceholderText = "50",
	RemoveTextAfterFocusLost = true,
	Callback = function(Value)
		local numValue = tonumber(Value)
		if numValue then
			_G.JumpHeight = numValue
		end
	end
})


function Action(Object, Function)
    if Object ~= nil then Function(Object) end
end

UIS.InputBegan:connect(function(UserInput)
    if jumpEnabled and UserInput.UserInputType == Enum.UserInputType.Keyboard and UserInput.KeyCode == Enum.KeyCode.Space then
        Action(Player.Character.Humanoid, function(self)
            if self:GetState() == Enum.HumanoidStateType.Jumping or self:GetState() == Enum.HumanoidStateType.Freefall then
                Action(self.Parent.HumanoidRootPart, function(rootPart)
                    rootPart.Velocity = Vector3.new(0, _G.JumpHeight, 0)
                end)
            end
        end)
    end
end)


local Section = Tab:CreateSection("Jump Power")

local Players = game:GetService("Players")
local LocalPlayer = Players.LocalPlayer
local jumpPowerValue = 100
local isJumpPowerEnabled = false
local jumpPowerKey = "F"

local function setJumpPower()
    if isJumpPowerEnabled and LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("Humanoid") then
        LocalPlayer.Character.Humanoid.JumpPower = jumpPowerValue
    end
end
Tab:CreateToggle({
	Name = "Enable Jump Power",
	CurrentValue = false,
	Flag = "2",
	Callback = function(Value)
		isJumpPowerEnabled = Value
		if not Value then
			LocalPlayer.Character.Humanoid.JumpPower = 50
		else
			setJumpPower()
		end
	end    
})

Tab:CreateInput({
	Name = "Jump Power (1-300)",
	PlaceholderText = "100",
	RemoveTextAfterFocusLost = true,
	Callback = function(Value)
		local numValue = tonumber(Value)
		if numValue then
			jumpPowerValue = math.clamp(numValue, 1, 300)
			setJumpPower()
		end
	end
})

Tab:CreateDropdown({
	Name = "Jump Power Keybind",
	Options = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"},
	CurrentOption = "F",
	Flag = "76",
	Callback = function(Value)
		jumpPowerKey = Value:upper()
	end
})


local function toggleJumpPower()
    if isJumpPowerEnabled then
        if LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("Humanoid") then
            LocalPlayer.Character.Humanoid.JumpPower = (LocalPlayer.Character.Humanoid.JumpPower == 50) and jumpPowerValue or 50
        end
    end
end

UserInputService = game:GetService("UserInputService")

UserInputService.InputBegan:Connect(function(input)
    if isJumpPowerEnabled and input.KeyCode == Enum.KeyCode[jumpPowerKey] then
        toggleJumpPower()
    end
end)



local Section = Tab:CreateSection("Flight")
local flyspeed = 100
local controls = {
	front = "w",
	back = "s",
	right = "d",
	left = "a",
	up = " ",
	down = "q"
}

local player = game:GetService("Players").LocalPlayer
local mouse = player:GetMouse()
local runservice = game:GetService("RunService")

local flycontrol = {F = 0, R = 0, B = 0, L = 0, U = 0, D = 0}
local flying = false
local flyKey = "E"
local flyEnabled = false

local function fly()
	local character = player.Character
	if not character then return end
	local hrp = character:FindFirstChild("HumanoidRootPart")
	if not hrp then return end
	local humanoid = character:FindFirstChildWhichIsA("Humanoid")
	if not humanoid then return end
	
	flying = true
	
	local bv = Instance.new("BodyVelocity")
	local bg = Instance.new("BodyGyro")
	bv.MaxForce = Vector3.new(9e4, 9e4, 9e4)
	bg.CFrame = hrp.CFrame
	bg.MaxTorque = Vector3.new(9e4, 9e4, 9e4)
	bg.P = 9e4
	bv.Parent = hrp
	bg.Parent = hrp
	
	local con = nil
	con = runservice.Stepped:Connect(function()
		if not flying then
			con:Disconnect()
			bv:Destroy()
			bg:Destroy()
		end
		
		humanoid.PlatformStand = true
		bv.Velocity = (workspace.Camera.CoordinateFrame.LookVector * ((flycontrol.F - flycontrol.B) * flyspeed)) + (workspace.CurrentCamera.CoordinateFrame.RightVector * ((flycontrol.R - flycontrol.L) * flyspeed)) + (workspace.CurrentCamera.CoordinateFrame.UpVector * ((flycontrol.U - flycontrol.D) * flyspeed))
		bg.CFrame = workspace.Camera.CoordinateFrame
	end)
	
	repeat wait() until not flying
	
	while humanoid.PlatformStand == true do
		humanoid.PlatformStand = false
		task.wait()
	end
end

Tab:CreateToggle({
	Name = "Enable Fly",
	CurrentValue = false,
	Flag = "3",
	Callback = function(Value)
		flyEnabled = Value
		if flyEnabled and not flying then
			fly()
		elseif not flyEnabled then
			flying = false
		end
	end
})

Tab:CreateInput({
	Name = "Fly Speed (1-300)",
	PlaceholderText = "100",
	RemoveTextAfterFocusLost = true,
	Callback = function(Value)
		flyspeed = math.clamp(tonumber(Value) or 100, 1, 300)
	end
})

Tab:CreateDropdown({
	Name = "Fly Keybind",
	Options = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"},
	CurrentOption = "E",
	Flag = "77",
	Callback = function(Value)
		flyKey = Value:upper()
	end
})

mouse.KeyDown:Connect(function(key)
	if flyEnabled and key:upper() == flyKey then
		if flying then
			flying = false
		else
			fly()
		end
	elseif flying then
		if key:lower() == controls.front then
			flycontrol.F = 1
		elseif key:lower() == controls.back then
			flycontrol.B = 1
		elseif key:lower() == controls.right then
			flycontrol.R = 1
		elseif key:lower() == controls.left then
			flycontrol.L = 1
		elseif key:lower() == controls.up then
			flycontrol.U = 1
		elseif key:lower() == controls.down then
			flycontrol.D = 1
		end
	end
end)

mouse.KeyUp:Connect(function(key)
	if flying then
		if key:lower() == controls.front then
			flycontrol.F = 0
		elseif key:lower() == controls.back then
			flycontrol.B = 0
		elseif key:lower() == controls.right then
			flycontrol.R = 0
		elseif key:lower() == controls.left then
			flycontrol.L = 0
		elseif key:lower() == controls.up then
			flycontrol.U = 0
		elseif key:lower() == controls.down then
			flycontrol.D = 0
		end
	end
end)

player.CharacterAdded:Connect(function()
	flying = false
end)



local Section = Tab:CreateSection("Other")


local noClipEnabled = false
local toggleEnabled = false

local player = game.Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()

local function toggleNoClip(state)
	if toggleEnabled then
		noClipEnabled = state
		for _, part in pairs(character:GetDescendants()) do
			if part:IsA("BasePart") and part.CanCollide then
				part.CanCollide = not noClipEnabled
			end
		end
	end
end

game:GetService("RunService").Stepped:Connect(function()
	if noClipEnabled then
		for _, part in pairs(character:GetDescendants()) do
			if part:IsA("BasePart") and part.CanCollide then
				part.CanCollide = false
			end
		end
	end
end)

Tab:CreateToggle({
	Name = "Enable No-Clip",
	CurrentValue = false,
	Flag = "4",
	Callback = function(Value)
		toggleEnabled = Value
		toggleNoClip(Value)
	end    
})



local TeleportEnabled = false

Tab:CreateToggle({
    Name = "Enable Click To TP",
    CurrentValue = false,
    Flag = "5",
    Callback = function(Value)
        TeleportEnabled = Value
    end
})

local mouse = game.Players.LocalPlayer:GetMouse()

mouse.Button1Down:Connect(function()
    if TeleportEnabled then
        local pos = mouse.Hit + Vector3.new(0, 2.5, 0)
        local targetCFrame = CFrame.new(pos.X, pos.Y, pos.Z)
        if game.Players.LocalPlayer.Character and game.Players.LocalPlayer.Character:FindFirstChild("HumanoidRootPart") then
            game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame = targetCFrame
        end
    end
end)

Embed on website

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