
Keyless

local plyrs = game:GetService("Players")
local plyr = plyrs.LocalPlayer
local chtr = plyr.Character or plyr.CharacterAdded:Wait()
local hrp = chtr:WaitForChild("HumanoidRootPart")
local uis = game:GetService("UserInputService")
local rs = game:GetService("RunService")
local ts = game:GetService("TweenService")
local reps = game:GetService("ReplicatedStorage")
local gui = Instance.new("ScreenGui", plyr:WaitForChild("PlayerGui"))
gui.ResetOnSpawn = false
-- Main Frame
local frame = Instance.new("Frame", gui)
frame.Size = UDim2.new(0, 385, 0, 315)
frame.Position = UDim2.new(0.5, -150, 0.5, -80)
frame.BackgroundColor3 = Color3.fromRGB(35, 35, 35)
-- Drag Bar & Logic
local topBar = Instance.new("Frame", frame)
topBar.Size = UDim2.new(1, 0, 0, 30)
topBar.BackgroundColor3 = Color3.fromRGB(50, 50, 50)
local dragging, dragStart, startPos = false, nil, nil
topBar.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
dragging = true
dragStart = input.Position
startPos = frame.Position
end
end)
topBar.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
dragging = false
end
end)
uis.InputChanged:Connect(function(input)
if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then
local delta = input.Position - dragStart
frame.Position = startPos + UDim2.new(0, delta.X, 0, delta.Y)
end
end)
-- Minimize Button
local minimize = Instance.new("TextButton", topBar)
minimize.Size = UDim2.new(0, 30, 1, 0)
minimize.Position = UDim2.new(1, -60, 0, 0)
minimize.Text = "-"
minimize.TextColor3 = Color3.new(1, 1, 1)
minimize.BackgroundColor3 = Color3.fromRGB(70, 70, 70)
minimize.Font = Enum.Font.SourceSansBold
minimize.TextScaled = true
-- Close Button
local close = Instance.new("TextButton", topBar)
close.Size = UDim2.new(0, 30, 1, 0)
close.Position = UDim2.new(1, -30, 0, 0)
close.Text = "X"
close.TextColor3 = Color3.new(1, 0.4, 0.4)
close.BackgroundColor3 = Color3.fromRGB(70, 70, 70)
close.Font = Enum.Font.SourceSansBold
close.TextScaled = true
-- Title Label
local title = Instance.new("TextLabel", topBar)
title.Size = UDim2.new(1, 0, 0, 25)
title.Position = UDim2.new(-0.1, 0, 0, 5)
title.Text = "Cave Diving Experience Menu"
title.TextColor3 = Color3.new(1, 1, 1)
title.BackgroundTransparency = 1
title.Font = Enum.Font.SourceSansBold
title.TextScaled = true
-- Minimize Logic
minimize.MouseButton1Click:Connect(function()
minimized = not minimized
for _, child in pairs(frame:GetChildren()) do
if child ~= topBar then
child.Visible = not minimized
end
end
frame.BackgroundTransparency = minimized and 1 or 0
end)
-- Close Logic
close.MouseButton1Click:Connect(function()
gui:Destroy()
end)
-- Ores
local coal = workspace.Ores.Coal
local copper = workspace.Ores.Copper
local iron = workspace.Ores.Iron
local gold = workspace.Ores.Gold
local emerald = workspace.Ores.Emerald
local diamond = workspace.Ores.Diamond
local obsidian = workspace.Ores.Obsidian
local titanium = workspace.Ores.Titanium
local cancelAll = false
-- Ore Teleport Buttons & Logic
local coalTp = Instance.new("TextButton", frame)
coalTp.Size = UDim2.new(0, 120, 0, 30)
coalTp.Position = UDim2.new(0, 1, 0, 35)
coalTp.Text = "Mine Coal"
coalTp.TextColor3 = Color3.new(1, 1, 1)
coalTp.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
coalTp.BackgroundTransparency = 0
coalTp.Font = Enum.Font.SourceSansBold
coalTp.TextScaled = true
local copperTp = Instance.new("TextButton", frame)
copperTp.Size = UDim2.new(0, 120, 0, 30)
copperTp.Position = UDim2.new(0, 1, 0, 70)
copperTp.Text = "Mine Copper"
copperTp.TextColor3 = Color3.new(1, 1, 1)
copperTp.BackgroundColor3 = Color3.fromRGB(200, 100, 0)
copperTp.BackgroundTransparency = 0
copperTp.Font = Enum.Font.SourceSansBold
copperTp.TextScaled = true
local ironTp = Instance.new("TextButton", frame)
ironTp.Size = UDim2.new(0, 120, 0, 30)
ironTp.Position = UDim2.new(0, 1, 0, 105)
ironTp.Text = "Mine Iron"
ironTp.TextColor3 = Color3.new(0, 0, 0)
ironTp.BackgroundColor3 = Color3.fromRGB(200, 200, 200)
ironTp.BackgroundTransparency = 0
ironTp.Font = Enum.Font.SourceSansBold
ironTp.TextScaled = true
local goldTp = Instance.new("TextButton", frame)
goldTp.Size = UDim2.new(0, 120, 0, 30)
goldTp.Position = UDim2.new(0, 1, 0, 140)
goldTp.Text = "Mine Gold"
goldTp.TextColor3 = Color3.new(0, 0, 0)
goldTp.BackgroundColor3 = Color3.fromRGB(255, 255, 0)
goldTp.BackgroundTransparency = 0
goldTp.Font = Enum.Font.SourceSansBold
goldTp.TextScaled = true
local emeraldTp = Instance.new("TextButton", frame)
emeraldTp.Size = UDim2.new(0, 120, 0, 30)
emeraldTp.Position = UDim2.new(0, 1, 0, 175)
emeraldTp.Text = "Mine Emerald"
emeraldTp.TextColor3 = Color3.new(1, 1, 1)
emeraldTp.BackgroundColor3 = Color3.fromRGB(0, 200, 0)
emeraldTp.BackgroundTransparency = 0
emeraldTp.Font = Enum.Font.SourceSansBold
emeraldTp.TextScaled = true
local diamondTp = Instance.new("TextButton", frame)
diamondTp.Size = UDim2.new(0, 120, 0, 30)
diamondTp.Position = UDim2.new(0, 1, 0, 210)
diamondTp.Text = "Mine Diamond"
diamondTp.TextColor3 = Color3.new(1, 1, 1)
diamondTp.BackgroundColor3 = Color3.fromRGB(0, 0, 200)
diamondTp.BackgroundTransparency = 0
diamondTp.Font = Enum.Font.SourceSansBold
diamondTp.TextScaled = true
local obsidianTp = Instance.new("TextButton", frame)
obsidianTp.Size = UDim2.new(0, 120, 0, 30)
obsidianTp.Position = UDim2.new(0, 1, 0, 245)
obsidianTp.Text = "Mine Obsidian"
obsidianTp.TextColor3 = Color3.new(1, 1, 1)
obsidianTp.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
obsidianTp.BackgroundTransparency = 0
obsidianTp.Font = Enum.Font.SourceSansBold
obsidianTp.TextScaled = true
local titaniumTp = Instance.new("TextButton", frame)
titaniumTp.Size = UDim2.new(0, 120, 0, 30)
titaniumTp.Position = UDim2.new(0, 1, 0, 280)
titaniumTp.Text = "Mine Titanium"
titaniumTp.TextColor3 = Color3.new(0, 0, 0)
titaniumTp.BackgroundColor3 = Color3.fromRGB(235, 235, 235)
titaniumTp.BackgroundTransparency = 0
titaniumTp.Font = Enum.Font.SourceSansBold
titaniumTp.TextScaled = true
-- Tween Logic
local function tweenToOre(part, goalPosition, speed)
local currentPosition = part.Position
local distance = (goalPosition - currentPosition).Magnitude
local duration = distance / speed
local tweenInfo = TweenInfo.new(duration, Enum.EasingStyle.Linear, Enum.EasingDirection.Out)
local goal = {CFrame = CFrame.new(goalPosition)}
local tween = ts:Create(part, tweenInfo, goal)
tween:Play()
-- Monitor for cancel condition
local connection
connection = rs.Heartbeat:Connect(function()
if cancelAll then
tween:Cancel()
if connection then
connection:Disconnect()
end
stopSwim()
end
end)
-- Still wait for tween to finish or cancel
tween.Completed:Wait()
if connection then connection:Disconnect() end
end
-- Swim Logic
local swimming = false
local gravReset = nil
local swimbeat = nil
function startSwim()
local plyrs = game:GetService("Players")
local plyr = plyrs.LocalPlayer
if not swimming and plyr and plyr.Character and plyr.Character:FindFirstChildWhichIsA("Humanoid") then
workspace.Gravity = 0
local swimDied = function()
workspace.Gravity = 196.2
swimming = false
end
local Humanoid = plyr.Character:FindFirstChildWhichIsA("Humanoid")
gravReset = Humanoid.Died:Connect(swimDied)
local enums = Enum.HumanoidStateType:GetEnumItems()
table.remove(enums, table.find(enums, Enum.HumanoidStateType.None))
for i, v in pairs(enums) do
Humanoid:SetStateEnabled(v, false)
end
Humanoid:ChangeState(Enum.HumanoidStateType.Swimming)
swimbeat = rs.Heartbeat:Connect(function()
pcall(function()
plyr.Character.HumanoidRootPart.Velocity = ((Humanoid.MoveDirection ~= Vector3.new() or uis:IsKeyDown(Enum.KeyCode.Space)) and plyr.Character.HumanoidRootPart.Velocity or Vector3.new())
end)
end)
swimming = true
end
end
function stopSwim()
local plyrs = game:GetService("Players")
local plyr = plyrs.LocalPlayer
if plyr and plyr.Character and plyr.Character:FindFirstChildWhichIsA("Humanoid") then
workspace.Gravity = 196.2
swimming = false
if gravReset then
gravReset:Disconnect()
end
if swimbeat ~= nil then
swimbeat:Disconnect()
swimbeat = nil
end
local Humanoid = plyr.Character:FindFirstChildWhichIsA("Humanoid")
local enums = Enum.HumanoidStateType:GetEnumItems()
table.remove(enums, table.find(enums, Enum.HumanoidStateType.None))
for i, v in pairs(enums) do
Humanoid:SetStateEnabled(v, true)
end
end
end
function toggleSwim()
if swimming then
stopSwim()
else
startSwim()
end
end
local autoMineEnabled = false
function mineOre(mineOreName)
local function mineOneOre(oreName)
local plyrs = game:GetService("Players")
local plyr = plyrs.LocalPlayer
local chtr = plyr.Character or plyr.CharacterAdded:Wait()
if not chtr then return end
local rootPart = chtr:WaitForChild("HumanoidRootPart")
local foundOre = nil
local shortestDistance = math.huge
-- Loop through all of ore in workspace.Ores
for _, ore in pairs(workspace.Ores:GetChildren()) do
if ore.Name == oreName and ore:FindFirstChild("HB") and ore:FindFirstChild("Health") then
if ore.Health.Value > 0 then
local dist = (ore.HB.Position - rootPart.Position).Magnitude
if dist < shortestDistance then
shortestDistance = dist
foundOre = ore
end
end
end
end
-- Teleport to the first valid ore
if foundOre then
cancelAll = false
local tpPos = foundOre.HB.Position
startSwim()
tweenToOre(rootPart, tpPos, 28)
stopSwim()
local attempts = 0
while foundOre.Health.Value > 0 and not cancelAll do
attempts += 1
if attempts >= 100 then
break
end
reps:WaitForChild("Remotes"):WaitForChild("UsePickaxe"):InvokeServer(unpack({CFrame.new(tpPos)}))
reps:WaitForChild("Remotes"):WaitForChild("UsePickaxe"):InvokeServer(unpack({CFrame.new(tpPos)}))
reps:WaitForChild("Remotes"):WaitForChild("UsePickaxe"):InvokeServer(unpack({CFrame.new(tpPos)}))
reps:WaitForChild("Remotes"):WaitForChild("UsePickaxe"):InvokeServer(unpack({CFrame.new(tpPos)}))
task.wait(0.05)
end
else
warn("None of ore is available")
task.wait(2)
end
end
if autoMineEnabled then
while autoMineEnabled do
mineOneOre(mineOreName)
task.wait(0.5)
end
else
mineOneOre(mineOreName)
end
end
coalTp.MouseButton1Click:Connect(function()
mineOre("Coal")
end)
copperTp.MouseButton1Click:Connect(function()
mineOre("Copper")
end)
ironTp.MouseButton1Click:Connect(function()
mineOre("Iron")
end)
goldTp.MouseButton1Click:Connect(function()
mineOre("Gold")
end)
emeraldTp.MouseButton1Click:Connect(function()
mineOre("Emerald")
end)
diamondTp.MouseButton1Click:Connect(function()
mineOre("Diamond")
end)
obsidianTp.MouseButton1Click:Connect(function()
mineOre("Obsidian")
end)
titaniumTp.MouseButton1Click:Connect(function()
mineOre("Titanium")
end)
-- Teleport to Spawn Button & Logic
local spawnTp = Instance.new("TextButton", frame)
spawnTp.Size = UDim2.new(0, 120, 0, 30)
spawnTp.Position = UDim2.new(0, 130, 0, 35)
spawnTp.Text = "Teleport to Spawn"
spawnTp.TextColor3 = Color3.new(0, 0, 0)
spawnTp.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
spawnTp.BackgroundTransparency = 0
spawnTp.Font = Enum.Font.SourceSansBold
spawnTp.TextScaled = true
spawnTp.MouseButton1Click:Connect(function()
local plyrs = game:GetService("Players")
local plyr = plyrs.LocalPlayer
local chtr = plyr.Character or plyr.CharacterAdded:Wait()
local hrp = chtr:WaitForChild("HumanoidRootPart")
local targetCFrame = CFrame.new(workspace.Map.SpawnLocation.Position)
-- Apply teleport
hrp.CFrame = targetCFrame
cancelAll = true
stopSwim()
end)
-- Teleport to Merchant Button & Logic
local merchantTp = Instance.new("TextButton", frame)
merchantTp.Size = UDim2.new(0, 120, 0, 30)
merchantTp.Position = UDim2.new(0, 130, 0, 70)
merchantTp.Text = "Teleport to Merchant"
merchantTp.TextColor3 = Color3.new(0, 0, 0)
merchantTp.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
merchantTp.BackgroundTransparency = 0
merchantTp.Font = Enum.Font.SourceSansBold
merchantTp.TextScaled = true
merchantTp.MouseButton1Click:Connect(function()
local plyrs = game:GetService("Players")
local plyr = plyrs.LocalPlayer
local chtr = plyr.Character or plyr.CharacterAdded:Wait()
local hrp = chtr:WaitForChild("HumanoidRootPart")
local targetCFrame = CFrame.new(workspace.Lobby.Shop.Ring.Position)
-- Apply teleport
hrp.CFrame = targetCFrame
cancelAll = true
stopSwim()
end)
-- Teleport to Furnace Button & Logic
local furnaceTp = Instance.new("TextButton", frame)
furnaceTp.Size = UDim2.new(0, 120, 0, 30)
furnaceTp.Position = UDim2.new(0, 130, 0, 105)
furnaceTp.Text = "Teleport to Furnace"
furnaceTp.TextColor3 = Color3.new(0, 0, 0)
furnaceTp.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
furnaceTp.BackgroundTransparency = 0
furnaceTp.Font = Enum.Font.SourceSansBold
furnaceTp.TextScaled = true
furnaceTp.MouseButton1Click:Connect(function()
local plyrs = game:GetService("Players")
local plyr = plyrs.LocalPlayer
local chtr = plyr.Character or plyr.CharacterAdded:Wait()
local hrp = chtr:WaitForChild("HumanoidRootPart")
local targetCFrame = CFrame.new(workspace.Lobby.Furnace.Ring.Position)
-- Apply teleport
hrp.CFrame = targetCFrame
cancelAll = true
stopSwim()
end)
-- Teleport to Blacksmith Button & Logic
local blacksmithTp = Instance.new("TextButton", frame)
blacksmithTp.Size = UDim2.new(0, 120, 0, 30)
blacksmithTp.Position = UDim2.new(0, 130, 0, 140)
blacksmithTp.Text = "Teleport to Blacksmith"
blacksmithTp.TextColor3 = Color3.new(0, 0, 0)
blacksmithTp.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
blacksmithTp.BackgroundTransparency = 0
blacksmithTp.Font = Enum.Font.SourceSansBold
blacksmithTp.TextScaled = true
blacksmithTp.MouseButton1Click:Connect(function()
local plyrs = game:GetService("Players")
local plyr = plyrs.LocalPlayer
local chtr = plyr.Character or plyr.CharacterAdded:Wait()
local hrp = chtr:WaitForChild("HumanoidRootPart")
local targetCFrame = CFrame.new(workspace.Lobby.Blacksmith.Ring.Position)
-- Apply teleport
hrp.CFrame = targetCFrame
cancelAll = true
stopSwim()
end)
-- Sell All Button & Logic
local sellAll = Instance.new("TextButton", frame)
sellAll.Size = UDim2.new(0, 120, 0, 30)
sellAll.Position = UDim2.new(0, 130, 0, 175)
sellAll.Text = "Sell All"
sellAll.TextColor3 = Color3.new(0, 0, 0)
sellAll.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
sellAll.BackgroundTransparency = 0
sellAll.Font = Enum.Font.SourceSansBold
sellAll.TextScaled = true
sellAll.MouseButton1Click:Connect(function()
local plyrs = game:GetService("Players")
local plyr = plyrs.LocalPlayer
local chtr = plyr.Character or plyr.CharacterAdded:Wait()
local hrp = chtr:WaitForChild("HumanoidRootPart")
local sellRing = workspace:WaitForChild("Lobby"):WaitForChild("Shop"):WaitForChild("Ring")
local originalCFrame = CFrame.new(180.510101, 1453.99109, -423.26886, -5.60283661e-05, -0.187057137, 0.982349038, 1, -5.60283661e-05, 4.6312809e-05, 4.6312809e-05, 0.982349038, 0.187057137)
sellRing.CFrame = hrp.CFrame
task.wait(0.25)
sellRing.CFrame = hrp.CFrame
reps:WaitForChild("Remotes"):WaitForChild("MerchantEvent"):FireServer(unpack({"sellall"}))
task.wait(0.1)
sellRing.CFrame = originalCFrame
end)
-- Load All Ores Button & Logic
local loadOres = Instance.new("TextButton", frame)
loadOres.Size = UDim2.new(0, 120, 0, 30)
loadOres.Position = UDim2.new(0, 130, 0, 210)
loadOres.Text = "Load All Ores"
loadOres.TextColor3 = Color3.new(0, 0, 0)
loadOres.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
loadOres.BackgroundTransparency = 0
loadOres.Font = Enum.Font.SourceSansBold
loadOres.TextScaled = true
loadOres.MouseButton1Click:Connect(function()
local plyrs = game:GetService("Players")
local plyr = plyrs.LocalPlayer
local chtr = plyr.Character or plyr.CharacterAdded:Wait()
local hrp = chtr:WaitForChild("HumanoidRootPart")
local originalCFrame = hrp.CFrame
local teleportPositions = {
Vector3.new(376.386353, 1199.27051, -456.640656),
Vector3.new(250.277298, 1281.98511, -251.93428),
Vector3.new(-285.722595, 1081.29053, -265.10849),
Vector3.new(135.463562, 318.585876, -2005.62842),
Vector3.new(130.545364, 1187.12964, -237.771591),
Vector3.new(-10.7173929, 1360.35132, -356.866058),
Vector3.new(16.7992783, 452.262238, -776.66626),
Vector3.new(-168.5, 935.137268, -222.732422),
}
for _, pos in ipairs(teleportPositions) do
hrp.CFrame = CFrame.new(pos)
task.wait(0.5)
end
hrp.CFrame = originalCFrame
end)
-- Remove Lava Button & Logic
local removeLava = Instance.new("TextButton", frame)
removeLava.Size = UDim2.new(0, 120, 0, 30)
removeLava.Position = UDim2.new(0, 130, 0, 245)
removeLava.Text = "Remove Lava"
removeLava.TextColor3 = Color3.new(0, 0, 0)
removeLava.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
removeLava.BackgroundTransparency = 0
removeLava.Font = Enum.Font.SourceSansBold
removeLava.TextScaled = true
removeLava.MouseButton1Click:Connect(function()
for _, lava in pairs(workspace:GetDescendants()) do
if lava.Name ~= "Lava" and lava.Parent ~= Map then
continue
end
lava:Destroy()
end
end)
-- Remove Acid Button & Logic
local removeAcid = Instance.new("TextButton", frame)
removeAcid.Size = UDim2.new(0, 120, 0, 30)
removeAcid.Position = UDim2.new(0, 130, 0, 280)
removeAcid.Text = "Remove Acid"
removeAcid.TextColor3 = Color3.new(0, 0, 0)
removeAcid.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
removeAcid.BackgroundTransparency = 0
removeAcid.Font = Enum.Font.SourceSansBold
removeAcid.TextScaled = true
removeAcid.MouseButton1Click:Connect(function()
for _, acid in pairs(workspace:GetDescendants()) do
if acid.Name ~= "Acid" and acid.Parent ~= Map then
continue
end
acid:Destroy()
end
end)
-- Auto Sell Button & Logic
local autoSell = Instance.new("TextButton", frame)
autoSell.Size = UDim2.new(0, 120, 0, 30)
autoSell.Position = UDim2.new(0, 259, 0, 35)
autoSell.Text = "Auto Sell"
autoSell.TextColor3 = Color3.new(0, 0, 0)
autoSell.BackgroundColor3 = Color3.fromRGB(200, 0, 0)
autoSell.BackgroundTransparency = 0
autoSell.Font = Enum.Font.SourceSansBold
autoSell.TextScaled = true
local function checkInventory()
local sellRing = workspace:WaitForChild("Lobby"):WaitForChild("Shop"):WaitForChild("Ring")
local originalCFrame = CFrame.new(180.510101, 1453.99109, -423.26886, -5.60283661e-05, -0.187057137, 0.982349038, 1, -5.60283661e-05, 4.6312809e-05, 4.6312809e-05, 0.982349038, 0.187057137)
local inventory = plyr:FindFirstChild("Inventory")
local inventorySpace = plyr:FindFirstChild("InventorySpace")
if inventory and inventorySpace and inventorySpace:IsA("NumberValue") then
local currentItems = #inventory:GetChildren()
if currentItems >= inventorySpace.Value then
local plyrs = game:GetService("Players")
local plyr = plyrs.LocalPlayer
local chtr = plyr.Character or plyr.CharacterAdded:Wait()
local hrp = chtr:WaitForChild("HumanoidRootPart")
sellRing.CFrame = hrp.CFrame
task.wait(0.25)
sellRing.CFrame = hrp.CFrame
reps:WaitForChild("Remotes"):WaitForChild("MerchantEvent"):FireServer(unpack({"sellall"}))
task.wait(0.1)
sellRing.CFrame = originalCFrame
end
end
end
autoSell.MouseButton1Click:Connect(function()
autoSellEnabled = not autoSellEnabled
autoSell.BackgroundColor3 = autoSellEnabled and Color3.fromRGB(0, 200, 0) or Color3.fromRGB(200, 0, 0)
if autoSellEnabled then
autoSellConnection = task.spawn(function()
while autoSellEnabled do
checkInventory()
task.wait(1)
end
end)
else
if autoSellConnection then
autoSellConnection = nil
end
end
end)
-- Auto Mine Button & Logic
local autoMine = Instance.new("TextButton", frame)
autoMine.Size = UDim2.new(0, 120, 0, 30)
autoMine.Position = UDim2.new(0, 259, 0, 70)
autoMine.Text = "Auto Mine"
autoMine.TextColor3 = Color3.new(0, 0, 0)
autoMine.BackgroundColor3 = Color3.fromRGB(200, 0, 0)
autoMine.BackgroundTransparency = 0
autoMine.Font = Enum.Font.SourceSansBold
autoMine.TextScaled = true
autoMine.MouseButton1Click:Connect(function()
autoMineEnabled = not autoMineEnabled
autoMine.BackgroundColor3 = autoMineEnabled and Color3.fromRGB(0, 200, 0) or Color3.fromRGB(200, 0, 0)
end)
-- Furnace Interaction Buttons & Logic
local furnaceFill = Instance.new("TextButton", frame)
furnaceFill.Size = UDim2.new(0, 120, 0, 30)
furnaceFill.Position = UDim2.new(0, 259, 0, 105)
furnaceFill.Text = "Fill Furnace"
furnaceFill.TextColor3 = Color3.new(0, 0, 0)
furnaceFill.BackgroundColor3 = Color3.fromRGB(150, 150, 150)
furnaceFill.BackgroundTransparency = 0
furnaceFill.Font = Enum.Font.SourceSansBold
furnaceFill.TextScaled = true
furnaceFill.MouseButton1Click:Connect(function()
furnaceInteract("fill")
end)
local furnaceEmpty = Instance.new("TextButton", frame)
furnaceEmpty.Size = UDim2.new(0, 120, 0, 30)
furnaceEmpty.Position = UDim2.new(0, 259, 0, 140)
furnaceEmpty.Text = "Empty Furnace"
furnaceEmpty.TextColor3 = Color3.new(0, 0, 0)
furnaceEmpty.BackgroundColor3 = Color3.fromRGB(150, 150, 150)
furnaceEmpty.BackgroundTransparency = 0
furnaceEmpty.Font = Enum.Font.SourceSansBold
furnaceEmpty.TextScaled = true
furnaceEmpty.MouseButton1Click:Connect(function()
furnaceInteract("empty")
end)
local furnaceSmelted = Instance.new("TextButton", frame)
furnaceSmelted.Size = UDim2.new(0, 120, 0, 30)
furnaceSmelted.Position = UDim2.new(0, 259, 0, 175)
furnaceSmelted.Text = "Empty Smelted"
furnaceSmelted.TextColor3 = Color3.new(0, 0, 0)
furnaceSmelted.BackgroundColor3 = Color3.fromRGB(150, 150, 150)
furnaceSmelted.BackgroundTransparency = 0
furnaceSmelted.Font = Enum.Font.SourceSansBold
furnaceSmelted.TextScaled = true
furnaceSmelted.MouseButton1Click:Connect(function()
furnaceInteract("smelted")
end)
function fillFurnace()
for _, child in pairs(game.Players.LocalPlayer.Inventory:GetChildren()) do
game:GetService("ReplicatedStorage"):WaitForChild("Remotes"):WaitForChild("FurnaceEvent"):FireServer(unpack({"AddInput", child.Name}))
end
end
function emptyFurnace()
for _, child in pairs(game.Players.LocalPlayer.FurnaceInput:GetChildren()) do
game:GetService("ReplicatedStorage"):WaitForChild("Remotes"):WaitForChild("FurnaceEvent"):FireServer(unpack({"TakeInput", child.Name}))
end
end
function emptySmelted()
for _, child in pairs(game.Players.LocalPlayer.FurnaceOutput:GetChildren()) do
game:GetService("ReplicatedStorage"):WaitForChild("Remotes"):WaitForChild("FurnaceEvent"):FireServer(unpack({"TakeOutput", child.Name}))
end
end
function furnaceInteract(action)
local plyrs = game:GetService("Players")
local plyr = plyrs.LocalPlayer
local chtr = plyr.Character or plyr.CharacterAdded:Wait()
local hrp = chtr:WaitForChild("HumanoidRootPart")
local furnaceRing = workspace:WaitForChild("Lobby"):WaitForChild("Furnace"):WaitForChild("Ring")
local originalCFrame = CFrame.new(194.868103, 1454.40857, -395.215332, 2.27689743e-05, -0.898814559, 0.438329101, 1, 2.27689743e-05, -5.2601099e-06, -5.2601099e-06, 0.438329101, 0.898814559)
furnaceRing.CFrame = hrp.CFrame
task.wait(0.25)
furnaceRing.CFrame = hrp.CFrame
if action == "fill" then fillFurnace() end
if action == "empty" then emptyFurnace() end
if action == "smelted" then emptySmelted() end
task.wait(0.1)
furnaceRing.CFrame = originalCFrame
end
-- Blacksmith Add Button & Logic
local blacksmithAdd = Instance.new("TextButton", frame)
blacksmithAdd.Size = UDim2.new(0, 120, 0, 30)
blacksmithAdd.Position = UDim2.new(0, 259, 0, 210)
blacksmithAdd.Text = "Add Blacksmith"
blacksmithAdd.TextColor3 = Color3.new(0, 0, 0)
blacksmithAdd.BackgroundColor3 = Color3.fromRGB(195, 195, 195)
blacksmithAdd.BackgroundTransparency = 0
blacksmithAdd.Font = Enum.Font.SourceSansBold
blacksmithAdd.TextScaled = true
blacksmithAdd.MouseButton1Click:Connect(function()
local plyrs = game:GetService("Players")
local plyr = plyrs.LocalPlayer
local chtr = plyr.Character or plyr.CharacterAdded:Wait()
local hrp = chtr:WaitForChild("HumanoidRootPart")
local blacksmithRing = workspace:WaitForChild("Lobby"):WaitForChild("Blacksmith"):WaitForChild("Ring")
local originalCFrame = CFrame.new(171.470917, 1454.31104, -396.009857, -2.67028809e-05, 0.890980005, 0.454042435, 1, 2.67028809e-05, 6.42240047e-06, -6.42240047e-06, 0.454042435, -0.890980005)
blacksmithRing.CFrame = hrp.CFrame
task.wait(0.25)
blacksmithRing.CFrame = hrp.CFrame
for _, child in pairs(game.Players.LocalPlayer.Inventory:GetChildren()) do
game:GetService("ReplicatedStorage"):WaitForChild("Remotes"):WaitForChild("BlacksmithEvent"):FireServer(unpack({"Add", child.Name}))
end
task.wait(0.1)
blacksmithRing.CFrame = originalCFrame
end)
good script but the mine emerald doesnt work
@primelgcs Hey thanks for using my script. And yes, the emeralds are mainly located in the sandy water cave area and its further than 2048 studs so its not loaded in. You can try loading in the ores, which will do the job.
Amazing script, honestly, but it does kick you from time to time
W
havent updated the script in like 8 months so
@dgubz Yo, can you add mythril to the script?