CCCPaste

Menu Spider Mine

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

local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "MainMenu"
ScreenGui.ResetOnSpawn = false
ScreenGui.Parent = game.CoreGui

local Frame = Instance.new("Frame")
Frame.Size = UDim2.new(0, 220, 0, 260)
Frame.Position = UDim2.new(0.5, -110, 0.5, -130)
Frame.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
Frame.Active = true
Frame.Draggable = true
Frame.Parent = ScreenGui
Instance.new("UICorner", Frame).CornerRadius = UDim.new(0, 12)

local ToggleButton = Instance.new("TextButton", Frame)
ToggleButton.Size = UDim2.new(1, 0, 0, 25)
ToggleButton.Position = UDim2.new(0, 0, 0, 0)
ToggleButton.Text = "▲"
ToggleButton.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
ToggleButton.TextColor3 = Color3.fromRGB(0, 255, 0)
ToggleButton.Font = Enum.Font.GothamBold
ToggleButton.TextSize = 20

local function makeButton(text, color, order)
	local btn = Instance.new("TextButton")
	btn.Size = UDim2.new(1, -20, 0, 35)
	btn.Position = UDim2.new(0, 10, 0, 30 + (order - 1) * 45)
	btn.BackgroundColor3 = color
	btn.TextColor3 = Color3.fromRGB(0, 0, 0)
	btn.Font = Enum.Font.GothamBold
	btn.TextSize = 18
	btn.Text = text
	btn.Parent = Frame
	Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 8)
	return btn
end

local ESPButton = makeButton("ESP", Color3.fromRGB(0, 255, 0), 1)
local HealButton = makeButton("AutoHeal", Color3.fromRGB(0, 255, 0), 2)
local DrillButton = makeButton("Drill", Color3.fromRGB(0, 255, 0), 3)
local BreakButton = makeButton("Break Map", Color3.fromRGB(255, 0, 0), 4)


local espEnabled = false
local highlights = {}
local spiderColors = {
	["Arachnid"] = Color3.fromRGB(255, 255, 255),
	["Jumper"] = Color3.fromRGB(255, 255, 0),
	["Bomber"] = Color3.fromRGB(255, 0, 0)
}

local function createHighlight(model, color)
	if not model or highlights[model] then return end
	local h = Instance.new("Highlight")
	h.FillColor = color
	h.OutlineColor = color
	h.FillTransparency = 0.7
	h.OutlineTransparency = 0
	h.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
	h.Parent = model
	highlights[model] = h
end

local function refreshESP()
	for m,h in pairs(highlights) do
		if not h.Parent then highlights[m] = nil end
	end
	for _, obj in ipairs(workspace:GetDescendants()) do
		if obj:IsA("Model") then
			for name, col in pairs(spiderColors) do
				if string.find(obj.Name, name) then
					createHighlight(obj, col)
				end
			end
		end
	end
end

workspace.DescendantAdded:Connect(function(obj)
	if espEnabled and obj:IsA("Model") then
		for name, col in pairs(spiderColors) do
			if string.find(obj.Name, name) then
				createHighlight(obj, col)
			end
		end
	end
end)

ESPButton.MouseButton1Click:Connect(function()
	espEnabled = not espEnabled
	ESPButton.BackgroundColor3 = espEnabled and Color3.fromRGB(255, 255, 0) or Color3.fromRGB(0, 255, 0)
	if espEnabled then
		task.spawn(function()
			while espEnabled do
				refreshESP()
				task.wait(1)
			end
		end)
	else
		for _, h in pairs(highlights) do
			if h then h:Destroy() end
		end
		highlights = {}
	end
end)


local healEnabled = false
local function startHealLoop()
	task.spawn(function()
		while healEnabled do
			local pl = player
			local char = pl and pl.Character
			if char then
				local bp = pl:FindFirstChild("Backpack")
				local med = char:FindFirstChild("Medkit") or (bp and bp:FindFirstChild("Medkit"))
				if med then
					if bp and med.Parent == bp and char:FindFirstChild("Humanoid") then
						char.Humanoid:EquipTool(med)
						task.wait(0.05)
					end
					local remote = med:FindFirstChild("RemoteEvent")
					if remote then
						pcall(function() remote:FireServer() end)
					end
				end
			end
			task.wait(0.05)
		end
	end)
end

HealButton.MouseButton1Click:Connect(function()
	healEnabled = not healEnabled
	HealButton.BackgroundColor3 = healEnabled and Color3.fromRGB(255, 255, 0) or Color3.fromRGB(0, 255, 0)
	if healEnabled then
		startHealLoop()
	end
end)


local drillEnabled = false
local function startDrillLoop()
	task.spawn(function()
		while drillEnabled do
			local char = player and player.Character
			if char and char:FindFirstChild("HumanoidRootPart") then
				local bp = player:FindFirstChild("Backpack")
				local drill = char:FindFirstChild("Drill") or (bp and bp:FindFirstChild("Drill"))
				if drill then
					if bp and drill.Parent == bp and char:FindFirstChild("Humanoid") then
						char.Humanoid:EquipTool(drill)
						task.wait(0.05)
					end
					local remote = drill:FindFirstChild("RemoteEvent")
					if remote and char:FindFirstChild("HumanoidRootPart") then
						local root = char.HumanoidRootPart
						local forward = root.CFrame.LookVector
						local center = root.Position + forward * 4.5
						local boxCFrame = CFrame.new(center, center + forward)
						local parts = workspace:GetPartBoundsInBox(boxCFrame, Vector3.new(9, 9, 6))
						for _, part in ipairs(parts) do
							if part and part.Name == "Dirt" and not part:IsDescendantOf(char) then
								pcall(function() remote:FireServer(part) end)
							end
						end
					end
				end
			end
			RunService.Heartbeat:Wait()
		end
	end)
end

DrillButton.MouseButton1Click:Connect(function()
	drillEnabled = not drillEnabled
	DrillButton.BackgroundColor3 = drillEnabled and Color3.fromRGB(255, 255, 0) or Color3.fromRGB(0, 255, 0)
	if drillEnabled then
		startDrillLoop()
	end
end)


local function startBreakMap()
	local a, b = 0.015, 0.02
	local function findRemote()
		local function checkIn(obj)
			for _, y in ipairs(obj:GetChildren()) do
				if y:IsA("Tool") then
					local r = y:FindFirstChildWhichIsA("RemoteEvent", true)
					if r then return r end
				end
			end
			return nil
		end
		local ch = player.Character
		if ch then local r = checkIn(ch) if r then return r end end
		local bp = player:FindFirstChild("Backpack")
		if bp then local r = checkIn(bp) if r then return r end end
		return nil
	end
	local function getParts()
		local t = {}
		for _, v in ipairs(workspace:GetDescendants()) do
			if v:IsA("BasePart") and not v:IsDescendantOf(player.Character or {}) then
				table.insert(t, v)
			end
		end
		return t
	end
	task.spawn(function()
		while true do
			local r = findRemote()
			if r then
				local parts = getParts()
				for _, p in ipairs(parts) do
					pcall(function() r:FireServer(p) end)
					task.wait(a)
				end
			end
			task.wait(b)
		end
	end)
end

BreakButton.MouseButton1Click:Connect(function()
	startBreakMap()
end)


local collapsed = false
ToggleButton.MouseButton1Click:Connect(function()
	collapsed = not collapsed
	ToggleButton.Text = collapsed and "▼" or "▲"
	for _, child in ipairs(Frame:GetChildren()) do
		if child:IsA("TextButton") and child ~= ToggleButton then
			child.Visible = not collapsed
		end
	end
	Frame.Size = collapsed and UDim2.new(0, 220, 0, 25) or UDim2.new(0, 220, 0, 260)
end)