-- GUI: Craft Anywhere, Join Job Anywhere, Infinite Water, Unload, Draggable, Toggle Visibility with "=" local Players = game:GetService("Players") local ReplicatedStorage = game:GetService("ReplicatedStorage") local UIS = game:GetService("UserInputService") local player = Players.LocalPlayer -- RemoteEvents local craftRemote = ReplicatedStorage:WaitForChild("CraftItem") local jobRemote = ReplicatedStorage:WaitForChild("ChangeJob") local waterRemote = ReplicatedStorage:WaitForChild("WaterSource") local placingRemote = ReplicatedStorage:WaitForChild("Placing") -- Data folders local craftablesFolder = ReplicatedStorage:WaitForChild("Craftables") local jobsFolder = ReplicatedStorage:WaitForChild("Jobs") local deployablesFolder = ReplicatedStorage:WaitForChild("Deployables") -- GUI local screenGui = Instance.new("ScreenGui", player:WaitForChild("PlayerGui")) screenGui.Name = "CraftJobAnywhere" screenGui.ResetOnSpawn = false local frame = Instance.new("Frame", screenGui) frame.Size = UDim2.new(0, 400, 0, 300) frame.Position = UDim2.new(0.5, -200, 0.5, -150) frame.BackgroundColor3 = Color3.fromRGB(30, 30, 30) frame.BorderSizePixel = 0 frame.Active = true frame.Draggable = true -- Toggle visibility with "=" key UIS.InputBegan:Connect(function(input, processed) if not processed and input.KeyCode == Enum.KeyCode.Equals then frame.Visible = not frame.Visible end end) -- Unload Button local unloadBtn = Instance.new("TextButton", frame) unloadBtn.Size = UDim2.new(0, 30, 0, 30) unloadBtn.Position = UDim2.new(1, -35, 0, 5) unloadBtn.Text = "X" unloadBtn.BackgroundColor3 = Color3.fromRGB(100, 0, 0) unloadBtn.TextColor3 = Color3.new(1, 1, 1) unloadBtn.Font = Enum.Font.SourceSansBold unloadBtn.TextScaled = true unloadBtn.MouseButton1Click:Connect(function() screenGui:Destroy() end) local tabs = Instance.new("Folder", frame) tabs.Name = "Tabs" local tabButtons = {} local tabContents = {} local function createTab(name) local btn = Instance.new("TextButton", frame) btn.Size = UDim2.new(0, 100, 0, 30) btn.Position = UDim2.new(0, #tabButtons * 100, 0, 0) btn.Text = name btn.BackgroundColor3 = Color3.fromRGB(60, 60, 60) btn.TextColor3 = Color3.new(1, 1, 1) local content = Instance.new("ScrollingFrame", tabs) content.Size = UDim2.new(1, 0, 1, -30) content.Position = UDim2.new(0, 0, 0, 30) content.BackgroundColor3 = Color3.fromRGB(40, 40, 40) content.Visible = false content.CanvasSize = UDim2.new(0, 0, 0, 0) btn.MouseButton1Click:Connect(function() for _, c in pairs(tabContents) do c.Visible = false end content.Visible = true end) table.insert(tabButtons, btn) table.insert(tabContents, content) return content end -- Craft Tab local craftTab = createTab("Craft") local yOffset = 0 for _, item in pairs(craftablesFolder:GetChildren()) do local btn = Instance.new("TextButton", craftTab) btn.Size = UDim2.new(1, -10, 0, 30) btn.Position = UDim2.new(0, 5, 0, yOffset) btn.BackgroundColor3 = Color3.fromRGB(70, 70, 70) btn.TextColor3 = Color3.new(1, 1, 1) btn.Text = "Craft: " .. item.Name btn.MouseButton1Click:Connect(function() craftRemote:FireServer(item) end) yOffset += 35 end -- Infinite Water Button local waterBtn = Instance.new("TextButton", craftTab) waterBtn.Size = UDim2.new(1, -10, 0, 30) waterBtn.Position = UDim2.new(0, 5, 0, yOffset) waterBtn.BackgroundColor3 = Color3.fromRGB(0, 100, 255) waterBtn.TextColor3 = Color3.new(1, 1, 1) waterBtn.Text = "Drink Water (Inf)" waterBtn.MouseButton1Click:Connect(function() waterRemote:FireServer("Drank") end) yOffset += 35 craftTab.CanvasSize = UDim2.new(0, 0, 0, yOffset) -- Job Tab local jobTab = createTab("Jobs") yOffset = 0 for _, job in pairs(jobsFolder:GetChildren()) do local btn = Instance.new("TextButton", jobTab) btn.Size = UDim2.new(1, -10, 0, 30) btn.Position = UDim2.new(0, 5, 0, yOffset) btn.BackgroundColor3 = Color3.fromRGB(50, 50, 90) btn.TextColor3 = Color3.new(1, 1, 1) btn.Text = "Join: " .. job.Name btn.MouseButton1Click:Connect(function() jobRemote:FireServer(job) end) yOffset += 35 end jobTab.CanvasSize = UDim2.new(0, 0, 0, yOffset) -- Crafting 2 (Deployables) local deployTab = createTab("Crafting 2") yOffset = 0 for _, item in pairs(deployablesFolder:GetChildren()) do local btn = Instance.new("TextButton", deployTab) btn.Size = UDim2.new(1, -10, 0, 30) btn.Position = UDim2.new(0, 5, 0, yOffset) btn.BackgroundColor3 = Color3.fromRGB(90, 60, 60) btn.TextColor3 = Color3.new(1, 1, 1) btn.Text = "Place: " .. item.Name btn.MouseButton1Click:Connect(function() local args = { item } placingRemote:InvokeServer(unpack(args)) end) yOffset += 35 end deployTab.CanvasSize = UDim2.new(0, 0, 0, yOffset) -- Default to Craft tab tabContents[1].Visible = true