const elementNames = Array.from(discovered); let newElements = 0;
autoLearnBtn.disabled = false; autoLearnBtn.textContent = '⚡ Auto-learn new'; infinite craft userscript
// Alternative: observe DOM changes for new elements const observer = new MutationObserver(() => const elements = document.querySelectorAll('.element'); elements.forEach(el => const name = el.textContent?.trim(); if (name && !discovered.has(name)) discovered.add(name); ); updateRecipeBook(); ); observer.observe(document.body, childList: true, subtree: true ); const elementNames = Array
// Hook into game's combine function if possible const origCombine = window.combine; if (origCombine) window.combine = function(left, right) const result = origCombine(left, right); if (result && result.name) addRecipeFromCombine(left.name, right.name, result.name); return result; ; const elementNames = Array.from(discovered)
// Auto-fill the two slots and craft function autoCraft(leftName, rightName)
// Initial scan for already discovered elements document.querySelectorAll('.element').forEach(el => const name = el.textContent?.trim(); if (name) discovered.add(name); );