Timbark Simulator
Key Required

Timbark Simulator

Steal An EggJerrySwymJerrySwym 30 views 441 executesUpdated Aug 31, 2026
Unrated
00
Lua Script•679 lines (18994 chars)
local Players = game:GetService("Players")
local Workspace = game:GetService("Workspace")
local UserInputService = game:GetService("UserInputService")
local VirtualInputManager = game:GetService("VirtualInputManager")
local TweenService = game:GetService("TweenService")
local TextChatService = game:GetService("TextChatService")

local player = Players.LocalPlayer

-- Target Moderators to watch
local MODERATORS = {
	["FilipZielonyPL"] = true,
	["JasNiebieskii"] = true
}

-- ScreenGui Parent Helper
local function getGuiParent()
	local success, coreGui = pcall(function() return game:GetService("CoreGui") end)
	if success and coreGui then
		return coreGui
	end
	return player:WaitForChild("PlayerGui")
end

-- ScreenGui Container
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "UltraCollectorGuiPro"
screenGui.ResetOnSpawn = false
screenGui.Parent = getGuiParent()

-- Main Panel Frame
local mainFrame = Instance.new("Frame")
mainFrame.Name = "MainFrame"
mainFrame.Size = UDim2.new(0, 270, 0, 520)
mainFrame.Position = UDim2.new(0.5, -135, 0.15, 0)
mainFrame.BackgroundColor3 = Color3.fromRGB(15, 15, 22)
mainFrame.BorderSizePixel = 0
mainFrame.Parent = screenGui

local corner = Instance.new("UICorner")
corner.CornerRadius = UDim.new(0, 14)
corner.Parent = mainFrame

local frameStroke = Instance.new("UIStroke")
frameStroke.Thickness = 2
frameStroke.Color = Color3.fromRGB(60, 60, 90)
frameStroke.Parent = mainFrame

-- Title Header Bar
local titleBar = Instance.new("Frame")
titleBar.Name = "TitleBar"
titleBar.Size = UDim2.new(1, 0, 0, 42)
titleBar.BackgroundColor3 = Color3.fromRGB(24, 24, 36)
titleBar.BorderSizePixel = 0
titleBar.Parent = mainFrame

local titleCorner = Instance.new("UICorner")
titleCorner.CornerRadius = UDim.new(0, 14)
titleCorner.Parent = titleBar

local titleText = Instance.new("TextLabel")
titleText.Size = UDim2.new(1, 0, 1, 0)
titleText.BackgroundTransparency = 1
titleText.Text = "⚡ AUTO COLLECTOR v3.0"
titleText.TextColor3 = Color3.fromRGB(255, 255, 255)
titleText.TextSize = 13
titleText.Font = Enum.Font.GothamBold
titleText.Parent = titleBar

-- Moderator Status Banner
local modBanner = Instance.new("TextLabel")
modBanner.Name = "ModBanner"
modBanner.Size = UDim2.new(0.9, 0, 0, 22)
modBanner.Position = UDim2.new(0.05, 0, 0, 46)
modBanner.BackgroundColor3 = Color3.fromRGB(25, 45, 30)
modBanner.Text = "MOD STATUS: SAFE"
modBanner.TextColor3 = Color3.fromRGB(0, 255, 120)
modBanner.TextSize = 10
modBanner.Font = Enum.Font.GothamBold
modBanner.Parent = mainFrame

local modBannerCorner = Instance.new("UICorner")
modBannerCorner.CornerRadius = UDim.new(0, 6)
modBannerCorner.Parent = modBanner

-- Dragging Mechanics
local dragging, dragStart, startPos = false, Vector3.new(), UDim2.new()

titleBar.InputBegan:Connect(function(input)
	if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
		dragging = true
		dragStart = input.Position
		startPos = mainFrame.Position
		
		local connection
		connection = input.Changed:Connect(function()
			if input.UserInputState == Enum.UserInputState.End then
				dragging = false
				connection:Disconnect()
			end
		end)
	end
end)

UserInputService.InputChanged:Connect(function(input)
	if dragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then
		local delta = input.Position - dragStart
		mainFrame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
	end
end)

-- Button Layout Container
local container = Instance.new("Frame")
container.Name = "Container"
container.Size = UDim2.new(1, -20, 1, -80)
container.Position = UDim2.new(0, 10, 0, 74)
container.BackgroundTransparency = 1
container.Parent = mainFrame

local UIListLayout = Instance.new("UIListLayout")
UIListLayout.Parent = container
UIListLayout.SortOrder = Enum.SortOrder.LayoutOrder
UIListLayout.Padding = UDim.new(0, 6)

-- Animated Toggle Creation Helper
local function createToggle(text, layoutOrder)
	local buttonFrame = Instance.new("Frame")
	buttonFrame.Name = text .. "Frame"
	buttonFrame.Size = UDim2.new(1, 0, 0, 46)
	buttonFrame.BackgroundColor3 = Color3.fromRGB(24, 24, 34)
	buttonFrame.LayoutOrder = layoutOrder
	buttonFrame.Parent = container

	local bCorner = Instance.new("UICorner")
	bCorner.CornerRadius = UDim.new(0, 8)
	bCorner.Parent = buttonFrame

	local bStroke = Instance.new("UIStroke")
	bStroke.Thickness = 1.5
	bStroke.Color = Color3.fromRGB(220, 40, 40)
	bStroke.Parent = buttonFrame

	local label = Instance.new("TextLabel")
	label.Size = UDim2.new(0.6, 0, 1, 0)
	label.Position = UDim2.new(0, 10, 0, 0)
	label.BackgroundTransparency = 1
	label.Text = text
	label.TextColor3 = Color3.fromRGB(230, 230, 240)
	label.TextSize = 12
	label.Font = Enum.Font.GothamMedium
	label.TextXAlignment = Enum.TextXAlignment.Left
	label.Parent = buttonFrame

	local switchTrack = Instance.new("Frame")
	switchTrack.Size = UDim2.new(0, 40, 0, 20)
	switchTrack.Position = UDim2.new(1, -48, 0.5, -10)
	switchTrack.BackgroundColor3 = Color3.fromRGB(45, 20, 25)
	switchTrack.Parent = buttonFrame

	local tCorner = Instance.new("UICorner")
	tCorner.CornerRadius = UDim.new(1, 0)
	tCorner.Parent = switchTrack

	local tStroke = Instance.new("UIStroke")
	tStroke.Thickness = 1
	tStroke.Color = Color3.fromRGB(220, 40, 40)
	tStroke.Parent = switchTrack

	local switchBall = Instance.new("Frame")
	switchBall.Size = UDim2.new(0, 14, 0, 14)
	switchBall.Position = UDim2.new(0, 3, 0.5, -7)
	switchBall.BackgroundColor3 = Color3.fromRGB(220, 40, 40)
	switchBall.Parent = switchTrack

	local ballCorner = Instance.new("UICorner")
	ballCorner.CornerRadius = UDim.new(1, 0)
	ballCorner.Parent = switchBall

	local clickBtn = Instance.new("TextButton")
	clickBtn.Size = UDim2.new(1, 0, 1, 0)
	clickBtn.BackgroundTransparency = 1
	clickBtn.Text = ""
	clickBtn.Parent = buttonFrame

	local enabled = false

	local function toggle()
		enabled = not enabled
		local tweenInfo = TweenInfo.new(0.25, Enum.EasingStyle.Quart, Enum.EasingDirection.Out)

		if enabled then
			TweenService:Create(switchBall, tweenInfo, {Position = UDim2.new(1, -17, 0.5, -7), BackgroundColor3 = Color3.fromRGB(0, 255, 120)}):Play()
			TweenService:Create(bStroke, tweenInfo, {Color = Color3.fromRGB(0, 255, 120)}):Play()
			TweenService:Create(tStroke, tweenInfo, {Color = Color3.fromRGB(0, 255, 120)}):Play()
			TweenService:Create(switchTrack, tweenInfo, {BackgroundColor3 = Color3.fromRGB(15, 45, 30)}):Play()
		else
			TweenService:Create(switchBall, tweenInfo, {Position = UDim2.new(0, 3, 0.5, -7), BackgroundColor3 = Color3.fromRGB(220, 40, 40)}):Play()
			TweenService:Create(bStroke, tweenInfo, {Color = Color3.fromRGB(220, 40, 40)}):Play()
			TweenService:Create(tStroke, tweenInfo, {Color = Color3.fromRGB(220, 40, 40)}):Play()
			TweenService:Create(switchTrack, tweenInfo, {BackgroundColor3 = Color3.fromRGB(45, 20, 25)}):Play()
		end

		return enabled
	end

	return clickBtn, function() return enabled end, toggle
end

-- Initialize UI Toggles
local kaucjaBtn, isKaucja, toggleKaucja = createToggle("Collect Kaucja", 1)
local bottleBtn, isBottle, toggleBottle = createToggle("Collect Admin Bottle", 2)
local sellBtn, isSell, toggleSell = createToggle("Auto Sell", 3)
local rebirthBtn, isRebirth, toggleRebirth = createToggle("Auto Rebirth", 4)
local codeBtn, isCode, toggleCode = createToggle("Auto Redeem Codes", 5)
local sellKaucjaBtn, isSellKaucja, toggleSellKaucja = createToggle("Auto Sell Kaucja", 6)
local chatAiBtn, isChatAi, toggleChatAi = createToggle("AI Chatbot", 7)
local autoMoveBtn, isAutoMove, toggleAutoMove = createToggle("Auto Movement", 8)

kaucjaBtn.MouseButton1Click:Connect(toggleKaucja)
bottleBtn.MouseButton1Click:Connect(toggleBottle)
sellBtn.MouseButton1Click:Connect(toggleSell)
rebirthBtn.MouseButton1Click:Connect(toggleRebirth)
codeBtn.MouseButton1Click:Connect(toggleCode)
sellKaucjaBtn.MouseButton1Click:Connect(toggleSellKaucja)
chatAiBtn.MouseButton1Click:Connect(toggleChatAi)
autoMoveBtn.MouseButton1Click:Connect(toggleAutoMove)

-- System Control States
local isKaucjaBusy = false
local isModDetected = false

-- Moderator Detection Monitor
local function checkModerators()
	local foundMod = false
	for _, p in ipairs(Players:GetPlayers()) do
		if MODERATORS[p.Name] then
			foundMod = true
			break
		end
	end

	isModDetected = foundMod

	if isModDetected then
		modBanner.Text = "MOD DETECTED! ALL PAUSED"
		modBanner.TextColor3 = Color3.fromRGB(255, 50, 50)
		modBanner.BackgroundColor3 = Color3.fromRGB(60, 15, 20)
	else
		modBanner.Text = "MOD STATUS: SAFE"
		modBanner.TextColor3 = Color3.fromRGB(0, 255, 120)
		modBanner.BackgroundColor3 = Color3.fromRGB(25, 45, 30)
	end
end

Players.PlayerAdded:Connect(checkModerators)
Players.PlayerRemoving:Connect(checkModerators)
task.spawn(function()
	while true do
		checkModerators()
		task.wait(2)
	end
end)

-- Screen Click Helper
local function clickAtScreenPos(x, y)
	VirtualInputManager:SendMouseButtonEvent(x, y, 0, true, game, 0)
	task.wait(0.05)
	VirtualInputManager:SendMouseButtonEvent(x, y, 0, false, game, 0)
end

-- UI Search & Click System
local function clickOptionByText(targetPattern)
	local pGui = player:FindFirstChild("PlayerGui")
	if not pGui then return false end

	for _, gui in ipairs(pGui:GetChildren()) do
		if gui:IsA("ScreenGui") and gui.Enabled then
			for _, obj in ipairs(gui:GetDescendants()) do
				if (obj:IsA("TextButton") or obj:IsA("TextLabel")) and obj.Text then
					local lowerText = string.lower(obj.Text)
					if string.find(lowerText, targetPattern) then
						if obj:IsA("TextButton") and getconnections then
							for _, conn in ipairs(getconnections(obj.MouseButton1Click)) do conn:Fire() end
							for _, conn in ipairs(getconnections(obj.Activated)) do conn:Fire() end
						end
						
						local absPos = obj.AbsolutePosition
						local absSize = obj.AbsoluteSize
						local clickX = absPos.X + (absSize.X / 2)
						local clickY = absPos.Y + (absSize.Y / 2) + 36
						
						clickAtScreenPos(clickX, clickY)
						return true
					end
				end
			end
		end
	end
	return false
end

-- Teleport & Interaction Helper
local function tpAndInteract(npcName)
	if isModDetected then return nil end
	local npc = Workspace:FindFirstChild(npcName, true)
	if not npc then return nil end

	local char = player.Character
	local root = char and char:FindFirstChild("HumanoidRootPart")
	if not root then return nil end

	if npc:IsA("Model") then
		root.CFrame = npc:GetPivot()
	elseif npc:IsA("BasePart") then
		root.CFrame = npc.CFrame
	end
	task.wait(0.3)

	local prompt = npc:FindFirstChildWhichIsA("ProximityPrompt", true)
	if prompt and fireproximityprompt then
		fireproximityprompt(prompt)
	end

	if firekeyevent then
		firekeyevent(Enum.KeyCode.E, true)
		task.wait(0.1)
		firekeyevent(Enum.KeyCode.E, false)
	end

	return npc
end

-- Automated Game Interactions
local function performAutoSell()
	if isKaucjaBusy or isModDetected then return end
	tpAndInteract("SellNPC")
	task.wait(0.6)
	clickOptionByText("sprzedać cały ekwipunek")
end

local function performAutoRebirth()
	if isKaucjaBusy or isModDetected then return end
	tpAndInteract("PrestigeNPC")
	task.wait(0.6)
	clickOptionByText("interfejs prestiżu")
	task.wait(0.6)
	clickOptionByText("odródź")
	task.wait(0.4)
	clickOptionByText("^x$")
end

local function findGameCodes()
	local codes = {}
	local checked = {}

	for _, v in ipairs(game:GetDescendants()) do
		if v:IsA("ModuleScript") or v:IsA("LocalScript") then
			local ok, src = pcall(function() return decompile and decompile(v) or v.Source end)
			if ok and src then
				for code in string.gmatch(src, '["\'](%w+)["\']') do
					if #code >= 3 and #code <= 20 and not checked[code] then
						checked[code] = true
						table.insert(codes, code)
					end
				end
			end
		end
	end
	return codes
end

local function performCodeRedeem()
	if isKaucjaBusy or isModDetected then return end
	tpAndInteract("JanuszNPC")
	task.wait(0.6)

	clickOptionByText("wykorzystać kod")
	task.wait(0.6)

	local foundCodes = findGameCodes()
	local pGui = player:FindFirstChild("PlayerGui")

	for _, code in ipairs(foundCodes) do
		if not isCode() or isKaucjaBusy or isModDetected then break end

		if pGui then
			for _, desc in ipairs(pGui:GetDescendants()) do
				if desc:IsA("TextBox") then
					desc.Text = code
					task.wait(0.2)
					clickOptionByText("gotowe")
					task.wait(0.4)
					clickOptionByText("^x$")
					break
				end
			end
		end
		task.wait(0.3)
	end
end

local function performAutoSellKaucja()
	if isModDetected then return end
	isKaucjaBusy = true

	local butelkomat = Workspace:FindFirstChild("Butelkomat", true)
	if not butelkomat then 
		isKaucjaBusy = false
		return 
	end

	local char = player.Character
	local root = char and char:FindFirstChild("HumanoidRootPart")
	if not root then 
		isKaucjaBusy = false
		return 
	end

	local successClicked = false
	local attempts = 0

	while not successClicked and attempts < 10 and isSellKaucja() and not isModDetected do
		attempts = attempts + 1
		
		if butelkomat:IsA("Model") then
			root.CFrame = butelkomat:GetPivot()
		elseif butelkomat:IsA("BasePart") then
			root.CFrame = butelkomat.CFrame
		end
		task.wait(0.2)

		local prompt = butelkomat:FindFirstChildWhichIsA("ProximityPrompt", true)
		if prompt and fireproximityprompt then
			fireproximityprompt(prompt)
			successClicked = true
		else
			if firekeyevent then
				firekeyevent(Enum.KeyCode.E, true)
				task.wait(0.1)
				firekeyevent(Enum.KeyCode.E, false)
				successClicked = true
			end
		end
		task.wait(0.3)
	end

	task.wait(30)
	isKaucjaBusy = false
end

-- Chatbot System
local chatPhrases = {
	"siema co tam",
	"siemka ziomal",
	"ile masz kasy?",
	"ez game haha",
	"robisz cos fajnego?",
	"siema mordo",
	"co tam porabiasz?",
	"ale dzisiaj spoko dzien",
	"ktoś chce pohandlować?",
	"zaraz wbijam wyższy poziom",
	"gdzie jest najwięcej kasy?",
	"bruh xd",
	"fajna gierka ogólnie"
}

local function sendChatMessage(msg)
	pcall(function()
		local textChannels = TextChatService:FindFirstChild("TextChannels")
		if textChannels and textChannels:FindFirstChild("RBXGeneral") then
			textChannels.RBXGeneral:SendAsync(msg)
		else
			local defaultEvents = game:GetService("ReplicatedStorage"):FindFirstChild("DefaultChatSystemChatEvents")
			if defaultEvents and defaultEvents:FindFirstChild("SayMessageRequest") then
				defaultEvents.SayMessageRequest:FireServer(msg, "All")
			end
		end
	end)
end

local function performChatAi()
	if isModDetected then return end

	local otherPlayers = {}
	for _, p in ipairs(Players:GetPlayers()) do
		if p ~= player and p.Character and p.Character:FindFirstChild("HumanoidRootPart") then
			table.insert(otherPlayers, p)
		end
	end

	local chosenMsg = chatPhrases[math.random(1, #chatPhrases)]

	if #otherPlayers > 0 and math.random(1, 2) == 1 then
		local target = otherPlayers[math.random(1, #otherPlayers)]
		local char = player.Character
		local root = char and char:FindFirstChild("HumanoidRootPart")
		local targetRoot = target.Character:FindFirstChild("HumanoidRootPart")

		if root and targetRoot then
			root.CFrame = targetRoot.CFrame * CFrame.new(math.random(-4, 4), 0, math.random(-4, 4))
			task.wait(0.5)
		end
	end

	sendChatMessage(chosenMsg)
end

-- Auto Movement
local function performAutoMove()
	if isModDetected or isKaucjaBusy then return end
	local char = player.Character
	local hum = char and char:FindFirstChildOfClass("Humanoid")
	local root = char and char:FindFirstChild("HumanoidRootPart")

	if hum and root then
		local randomOffset = Vector3.new(math.random(-30, 30), 0, math.random(-30, 30))
		hum:MoveTo(root.Position + randomOffset)
	end
end

-- Item Teleport Helpers
local function getItemsByName(itemName)
	local items = {}
	for _, obj in ipairs(Workspace:GetDescendants()) do
		if obj.Name == itemName then
			table.insert(items, obj)
		end
	end
	return items
end

local function tpToItem(item)
	if not item or isModDetected then return end
	local character = player.Character
	local rootPart = character and character:FindFirstChild("HumanoidRootPart")
	if not rootPart then return end

	if item:IsA("BasePart") then
		rootPart.CFrame = item.CFrame
	elseif item:IsA("Model") then
		rootPart.CFrame = item:GetPivot()
	end
end

-- Task Loops

-- Auto Sell Loop (30s interval)
task.spawn(function()
	local timer = 0
	while true do
		task.wait(1)
		if isSell() and not isKaucjaBusy and not isModDetected then
			timer = timer + 1
			if timer >= 30 then
				timer = 0
				performAutoSell()
			end
		else
			timer = 0
		end
	end
end)

-- Auto Rebirth Loop (78s interval)
task.spawn(function()
	local timer = 0
	while true do
		task.wait(1)
		if isRebirth() and not isKaucjaBusy and not isModDetected then
			timer = timer + 1
			if timer >= 78 then
				timer = 0
				performAutoRebirth()
			end
		else
			timer = 0
		end
	end
end)

-- Auto Redeem Codes Loop
task.spawn(function()
	while true do
		if isCode() and not isKaucjaBusy and not isModDetected then
			performCodeRedeem()
			task.wait(10)
		else
			task.wait(0.5)
		end
	end
end)

-- Auto Sell Kaucja Trigger Loop
task.spawn(function()
	while true do
		if isSellKaucja() and not isKaucjaBusy and not isModDetected then
			performAutoSellKaucja()
		else
			task.wait(1)
		end
	end
end)

-- AI Chatbot Loop (Runs strictly every 30 seconds)
task.spawn(function()
	while true do
		task.wait(30)
		if isChatAi() and not isModDetected then
			performChatAi()
		end
	end
end)

-- Auto Movement Loop
task.spawn(function()
	while true do
		if isAutoMove() and not isKaucjaBusy and not isModDetected then
			performAutoMove()
			task.wait(math.random(4, 8))
		else
			task.wait(1)
		end
	end
end)

-- Collector Item Teleport Loop
task.spawn(function()
	local kIndex = 1
	local bIndex = 1

	while true do
		if isKaucjaBusy or isModDetected then
			task.wait(0.5)
		elseif isKaucja() and isBottle() then
			local kaucjaItems = getItemsByName("Kaucja")
			local bottleItems = getItemsByName("AdminBottle")

			if #kaucjaItems > 0 then
				if kIndex > #kaucjaItems then kIndex = 1 end
				tpToItem(kaucjaItems[kIndex])
				kIndex = kIndex + 1
			end
			task.wait(0.25)

			if isKaucja() and isBottle() and not isKaucjaBusy and not isModDetected then
				if #bottleItems > 0 then
					if bIndex > #bottleItems then bIndex = 1 end
					tpToItem(bottleItems[bIndex])
					bIndex = bIndex + 1
				end
				task.wait(0.25)
			end

		elseif isKaucja() then
			local kaucjaItems = getItemsByName("Kaucja")
			if #kaucjaItems > 0 then
				if kIndex > #kaucjaItems then kIndex = 1 end
				tpToItem(kaucjaItems[kIndex])
				kIndex = kIndex + 1
			end
			task.wait(0.5)

		elseif isBottle() then
			local bottleItems = getItemsByName("AdminBottle")
			if #bottleItems > 0 then
				if bIndex > #bottleItems then bIndex = 1 end
				tpToItem(bottleItems[bIndex])
				bIndex = bIndex + 1
			end
			task.wait(0.5)

		else
			kIndex = 1
			bIndex = 1
			task.wait(0.2)
		end
	end
end)

Features & Information

Auto Collect Not Fully Working Keyless Safe 10000% And KEYLESSSSSSS And If Moderator Owner Or Admin Joins It Stops So You Are Safe AFKing

Community Comments (0)

No comments yet for this script.

More Scripts for Steal An Egg