local Players = game:GetService("Players") local UserInputService = game:GetService("UserInputService") local CoreGui = game:GetService("CoreGui") local LocalPlayer = Players.LocalPlayer local visitedPositions = {} local COOLDOWN_TIME = 10 local isTeleporting = false local autoFarmActive = false local screenGui = Instance.new("ScreenGui") screenGui.Name = "SpookfestMenu" screenGui.ResetOnSpawn = false local successGui = pcall(function() screenGui.Parent = CoreGui end) if not successGui then screenGui.Parent = LocalPlayer:WaitForChild("PlayerGui") end local mainFrame = Instance.new("Frame") mainFrame.Name = "MainFrame" mainFrame.Size = UDim2.new(0, 280, 0, 240) mainFrame.Position = UDim2.new(0.5, -140, 0.4, -120) mainFrame.BackgroundColor3 = Color3.fromRGB(15, 15, 15) mainFrame.BackgroundTransparency = 0.2 mainFrame.BorderSizePixel = 0 mainFrame.Active = true mainFrame.Draggable = true mainFrame.Parent = screenGui local uiCorner = Instance.new("UICorner") uiCorner.CornerRadius = UDim.new(0, 14) uiCorner.Parent = mainFrame local uiStroke = Instance.new("UIStroke") uiStroke.Color = Color3.fromRGB(255, 200, 50) uiStroke.Thickness = 2 uiStroke.Transparency = 0.3 uiStroke.Parent = mainFrame local iconFrame = Instance.new("Frame") iconFrame.Size = UDim2.new(0, 60, 0, 60) iconFrame.Position = UDim2.new(0.5, -30, 0, -25) iconFrame.BackgroundColor3 = Color3.fromRGB(20, 20, 20) iconFrame.BorderSizePixel = 0 iconFrame.Parent = mainFrame local iconCorner = Instance.new("UICorner") iconCorner.CornerRadius = UDim.new(1, 0) iconCorner.Parent = iconFrame local iconStroke = Instance.new("UIStroke") iconStroke.Color = Color3.fromRGB(255, 200, 50) iconStroke.Thickness = 2 iconStroke.Parent = iconFrame local avatarImage = Instance.new("ImageLabel") avatarImage.Size = UDim2.new(1, 0, 1, 0) avatarImage.BackgroundTransparency = 1 avatarImage.Image = Players:GetUserThumbnailAsync(LocalPlayer.UserId, Enum.ThumbnailType.HeadShot, Enum.ThumbnailSize.Size150x150) avatarImage.Parent = iconFrame local avatarCorner = Instance.new("UICorner") avatarCorner.CornerRadius = UDim.new(1, 0) avatarCorner.Parent = avatarImage local titleLabel = Instance.new("TextLabel") titleLabel.Size = UDim2.new(1, 0, 0, 25) titleLabel.Position = UDim2.new(0, 0, 0, 42) titleLabel.BackgroundTransparency = 1 titleLabel.Font = Enum.Font.SourceSansBold titleLabel.Text = "SPOOKFEST FARM" titleLabel.TextColor3 = Color3.fromRGB(255, 215, 0) titleLabel.TextSize = 18 titleLabel.Parent = mainFrame local subTitle = Instance.new("TextLabel") subTitle.Size = UDim2.new(1, 0, 0, 15) subTitle.Position = UDim2.new(0, 0, 0, 67) subTitle.BackgroundTransparency = 1 subTitle.Font = Enum.Font.SourceSans subTitle.Text = "[ RightShift - Hide / Show ]" subTitle.TextColor3 = Color3.fromRGB(150, 150, 150) subTitle.TextSize = 14 subTitle.Parent = mainFrame local creditLabel = Instance.new("TextLabel") creditLabel.Size = UDim2.new(1, 0, 0, 15) creditLabel.Position = UDim2.new(0, 0, 1, -18) creditLabel.BackgroundTransparency = 1 creditLabel.Font = Enum.Font.SourceSansItalic creditLabel.Text = "by dasekol" creditLabel.TextColor3 = Color3.fromRGB(120, 120, 120) creditLabel.TextSize = 13 creditLabel.Parent = mainFrame local function createButton(name, posY, text, color) local btn = Instance.new("TextButton") btn.Name = name btn.Size = UDim2.new(0, 230, 0, 38) btn.Position = UDim2.new(0.5, -115, 0, posY) btn.BackgroundColor3 = color btn.BackgroundTransparency = 0.2 btn.Font = Enum.Font.SourceSansBold btn.Text = text btn.TextColor3 = Color3.fromRGB(255, 255, 255) btn.TextSize = 16 btn.Parent = mainFrame local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, 8) corner.Parent = btn local stroke = Instance.new("UIStroke") stroke.Color = Color3.fromRGB(255, 255, 255) stroke.Transparency = 0.5 stroke.Thickness = 1 stroke.Parent = btn return btn end local autoFarmBtn = createButton("AutoFarmBtn", 98, "Auto-Farm: OFF", Color3.fromRGB(180, 40, 40)) local teleBtn = createButton("TeleBtn", 144, "TP to Nearest", Color3.fromRGB(200, 140, 20)) local function isValidCandy(obj) if not obj or not obj.Parent then return false end if LocalPlayer.Character and obj:IsDescendantOf(LocalPlayer.Character) then return false end local success, name = pcall(function() return obj.Name:lower() end) if not success or not name then return false end local blacklisted = { "gingerbread", "snowman", "christmas", "winter", "snow", "wreath", "chimney", "skeleton", "bone", "skull", "statue", "prop", "dec", "decoration", "portal", "teleport", "farm", "travel", "circle", "gate", "arch", "board", "hunt", "sign", "zone", "race", "circuit", "lap", "queue", "track", "start", "join", "lobby", "minigame", "buy", "shop", "store", "vendor", "cart", "food", "hotdog", "drink", "seller", "job", "delivery", "driver", "work", "quest", "npc", "spawnpoint", "crate", "cargo", "loot", "box", "chest", "barrel", "light", "lamp", "lantern", "street", "pole", "post", "wall", "building", "house", "road", "car", "vehicle", "asphalt", "fence", "bench", "tree", "bush", "grass", "hay", "straw", "bale", "tombstone", "grave" } for _, word in ipairs(blacklisted) do if name:find(word) then return false end end local parent = obj.Parent while parent and parent ~= workspace do local pName = parent.Name:lower() if pName:find("gingerbread") or pName:find("snowman") or pName:find("house") or pName:find("skeleton") or pName:find("prop") or pName:find("dec") or pName:find("portal") or pName:find("race") or pName:find("shop") or pName:find("hay") then return false end parent = parent.Parent end local whitelist = { "spookfest", "lollipop", "pop", "candy", "sweet", "treat", "sucker", "chupa", "caramel", "sugar", "konfeta", "halloween", "balloon" } for _, kw in ipairs(whitelist) do if name:find(kw) then return true end end return false end local function teleportToNearest() if isTeleporting then return end isTeleporting = true task.spawn(function() local character = LocalPlayer.Character if not character or not character:FindFirstChild("HumanoidRootPart") then isTeleporting = false return end local hrp = character.HumanoidRootPart local humanoid = character:FindFirstChildOfClass("Humanoid") local currentTime = os.time() for pos, time in pairs(visitedPositions) do if currentTime - time >= COOLDOWN_TIME then visitedPositions[pos] = nil end end local validTargets = {} local descendants = workspace:GetDescendants() for i = 1, #descendants, 2000 do for j = i, math.min(i + 1999, #descendants) do local obj = descendants[j] pcall(function() if isValidCandy(obj) then local pos = nil local cFrameResult = nil if obj:IsA("Model") then cFrameResult = obj:GetPivot() pos = cFrameResult.Position elseif obj:IsA("BasePart") then cFrameResult = obj.CFrame pos = cFrameResult.Position end if pos then local onCooldown = false for vPos, _ in pairs(visitedPositions) do if (pos - vPos).Magnitude < 12 then onCooldown = true break end end if not onCooldown then table.insert(validTargets, {cf = cFrameResult + Vector3.new(0, 3.5, 0), pos = pos}) end end end end) end task.wait() end if #validTargets == 0 then visitedPositions = {} isTeleporting = false return end local bestTarget = nil local minDistance = math.huge for _, target in ipairs(validTargets) do local dist = (hrp.Position - target.pos).Magnitude if dist < minDistance then minDistance = dist bestTarget = target.cf end end if bestTarget then visitedPositions[bestTarget.Position] = currentTime if humanoid then humanoid:ChangeState(Enum.HumanoidStateType.Freefall) end pcall(function() LocalPlayer:RequestStreamAroundAsync(bestTarget.Position) end) character:PivotTo(bestTarget) end isTeleporting = false end) end teleBtn.MouseButton1Click:Connect(function() teleportToNearest() end) autoFarmBtn.MouseButton1Click:Connect(function() autoFarmActive = not autoFarmActive if autoFarmActive then autoFarmBtn.Text = "Auto-Farm: ON" autoFarmBtn.BackgroundColor3 = Color3.fromRGB(40, 180, 60) else autoFarmBtn.Text = "Auto-Farm: OFF" autoFarmBtn.BackgroundColor3 = Color3.fromRGB(180, 40, 40) end end) task.spawn(function() while true do if autoFarmActive then teleportToNearest() task.wait(0.6) else task.wait(0.5) end end end) UserInputService.InputBegan:Connect(function(input, gameProcessed) if input.KeyCode == Enum.KeyCode.RightShift then mainFrame.Visible = not mainFrame.Visible end end)