<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.mineinabyss.com/w/Module:Crafting/history?feed=atom</id>
	<title>Module:Crafting - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.mineinabyss.com/w/Module:Crafting/history?feed=atom"/>
	<link rel="alternate" type="text/html" href="https://wiki.mineinabyss.com/w/Module:Crafting/history"/>
	<updated>2026-04-10T13:19:07Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://wiki.mineinabyss.com/index.php?title=Module:Crafting&amp;diff=656&amp;oldid=prev</id>
		<title>Scyu at 16:17, 11 October 2024</title>
		<link rel="alternate" type="text/html" href="https://wiki.mineinabyss.com/index.php?title=Module:Crafting&amp;diff=656&amp;oldid=prev"/>
		<updated>2024-10-11T16:17:03Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 16:17, 11 October 2024&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l178&quot;&gt;Line 178:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 178:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		[&amp;#039;Crafting type&amp;#039;] = args.type&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		[&amp;#039;Crafting type&amp;#039;] = args.type&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	mw.smw.subobject(smw_sub, subname)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-- &lt;/ins&gt;mw.smw.subobject(smw_sub, subname)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	return out&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	return out&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key my_wiki:diff:1.41:old-635:rev-656:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Scyu</name></author>
	</entry>
	<entry>
		<id>https://wiki.mineinabyss.com/index.php?title=Module:Crafting&amp;diff=635&amp;oldid=prev</id>
		<title>Scyu: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://wiki.mineinabyss.com/index.php?title=Module:Crafting&amp;diff=635&amp;oldid=prev"/>
		<updated>2024-10-11T15:14:45Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 15:14, 11 October 2024&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff cache key my_wiki:diff:1.41:old-289:rev-635 --&gt;
&lt;/table&gt;</summary>
		<author><name>Scyu</name></author>
	</entry>
	<entry>
		<id>https://wiki.mineinabyss.com/index.php?title=Module:Crafting&amp;diff=289&amp;oldid=prev</id>
		<title>Scyu: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://wiki.mineinabyss.com/index.php?title=Module:Crafting&amp;diff=289&amp;oldid=prev"/>
		<updated>2024-10-11T12:46:27Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 12:46, 11 October 2024&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff cache key my_wiki:diff:1.41:old-288:rev-289 --&gt;
&lt;/table&gt;</summary>
		<author><name>Scyu</name></author>
	</entry>
	<entry>
		<id>https://wiki.mineinabyss.com/index.php?title=Module:Crafting&amp;diff=288&amp;oldid=prev</id>
		<title>minecraft&gt;Mudscape: Add hash of json to subname to ensure uniqueness</title>
		<link rel="alternate" type="text/html" href="https://wiki.mineinabyss.com/index.php?title=Module:Crafting&amp;diff=288&amp;oldid=prev"/>
		<updated>2024-07-17T02:42:51Z</updated>

		<summary type="html">&lt;p&gt;Add hash of json to subname to ensure uniqueness&lt;/p&gt;
&lt;a href=&quot;https://wiki.mineinabyss.com/index.php?title=Module:Crafting&amp;amp;diff=288&amp;amp;oldid=634&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>minecraft&gt;Mudscape</name></author>
	</entry>
	<entry>
		<id>https://wiki.mineinabyss.com/index.php?title=Module:Crafting&amp;diff=634&amp;oldid=prev</id>
		<title>minecraft&gt;Magiczocker at 11:59, 23 October 2022</title>
		<link rel="alternate" type="text/html" href="https://wiki.mineinabyss.com/index.php?title=Module:Crafting&amp;diff=634&amp;oldid=prev"/>
		<updated>2022-10-23T11:59:47Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
local i18n = {&lt;br /&gt;
	colored = &amp;#039;Colored&amp;#039;,&lt;br /&gt;
	coloredDyes = {&lt;br /&gt;
		&amp;#039;Orange Dye&amp;#039;, &amp;#039;Magenta Dye&amp;#039;, &amp;#039;Light Blue Dye&amp;#039;, &amp;#039;Yellow Dye&amp;#039;, &amp;#039;Lime Dye&amp;#039;,&lt;br /&gt;
		&amp;#039;Pink Dye&amp;#039;, &amp;#039;Gray Dye&amp;#039;, &amp;#039;Light Gray Dye&amp;#039;, &amp;#039;Cyan Dye&amp;#039;, &amp;#039;Purple Dye&amp;#039;,&lt;br /&gt;
		&amp;#039;Blue Dye&amp;#039;, &amp;#039;Brown Dye&amp;#039;, &amp;#039;Green Dye&amp;#039;,&lt;br /&gt;
		&amp;#039;Red Dye&amp;#039;, &amp;#039;Black Dye&amp;#039;,&lt;br /&gt;
	},&lt;br /&gt;
	categoryIngredientUsage = &amp;#039;Category:Recipe using $1&amp;#039;,&lt;br /&gt;
	categoryRecipeType = &amp;#039;Category:$1 recipe&amp;#039;,&lt;br /&gt;
	itemBlockOfQuartz = &amp;#039;Block of Quartz&amp;#039;,&lt;br /&gt;
	itemBlockOfQuartz = &amp;#039;Block of Quartz&amp;#039;,&lt;br /&gt;
	itemBrownMushroom = &amp;#039;Brown Mushroom&amp;#039;,&lt;br /&gt;
	itemCharcoal = &amp;#039;Charcoal&amp;#039;,&lt;br /&gt;
	itemCoal = &amp;#039;Coal&amp;#039;,&lt;br /&gt;
	itemColoredDye = &amp;#039;Colored Dye&amp;#039;,&lt;br /&gt;
	itemDye = &amp;#039;Dye&amp;#039;,&lt;br /&gt;
	itemMushroom = &amp;#039;Mushroom&amp;#039;,&lt;br /&gt;
	itemQuartzBlock = &amp;#039;Quartz Block&amp;#039;,&lt;br /&gt;
	itemSmoothQuartzBlock = &amp;#039;Smooth Quartz Block&amp;#039;,&lt;br /&gt;
	itemRedMushroom = &amp;#039;Red Mushroom&amp;#039;,&lt;br /&gt;
	itemStone = &amp;#039;Stone&amp;#039;,&lt;br /&gt;
	itemWhiteDye = &amp;#039;White Dye&amp;#039;,&lt;br /&gt;
	moduleArgs = [[Module:ProcessArgs]],&lt;br /&gt;
	moduleRecipe = [[Module:Recipe table]],&lt;br /&gt;
	moduleSlot = [[Module:Inventory slot]],&lt;br /&gt;
	stoneVariants = { &amp;#039;Stone&amp;#039;, &amp;#039;Andesite&amp;#039;, &amp;#039;Granite&amp;#039;, &amp;#039;Diorite&amp;#039; },&lt;br /&gt;
	type = &amp;#039;Crafting&amp;#039;,&lt;br /&gt;
	variantPages = {&lt;br /&gt;
		&amp;#039;Andesite&amp;#039;, &amp;#039;Banner&amp;#039;, &amp;#039;Bed&amp;#039;, &amp;#039;Diorite&amp;#039;, &amp;#039;Firework Star&amp;#039;, &amp;#039;Granite&amp;#039;, &lt;br /&gt;
		&amp;#039;Pressure Plate&amp;#039;, &amp;#039;Sand&amp;#039;, &amp;#039;Sandstone&amp;#039;, &amp;#039;Shield&amp;#039;, &amp;#039;Slab&amp;#039;, &amp;#039;Stained Glass Pane&amp;#039;, &lt;br /&gt;
		&amp;#039;Stained Glass&amp;#039;, &amp;#039;Stairs&amp;#039;, &amp;#039;Wood Planks&amp;#039;, &amp;#039;Wood&amp;#039;, &amp;#039;Wool&amp;#039;,&lt;br /&gt;
	},&lt;br /&gt;
    CopperBlockLinks = {&lt;br /&gt;
		&amp;#039;Block of Copper&amp;#039;, &amp;#039;Exposed Copper&amp;#039;, &amp;#039;Weathered Copper&amp;#039;, &amp;#039;Oxidized Copper&amp;#039;, &amp;#039;Cut Copper&amp;#039;, &amp;#039;Exposed Cut Copper&amp;#039;, &amp;#039;Weathered Cut Copper&amp;#039;, &amp;#039;Oxidized Cut Copper&amp;#039;, &amp;#039;Waxed Block of Copper&amp;#039;, &amp;#039;Waxed Copper&amp;#039;, &amp;#039;Waxed Exposed Copper&amp;#039;, &amp;#039;Waxed Weathered Copper&amp;#039;, &amp;#039;Waxed Cut Copper&amp;#039;, &amp;#039;Waxed Exposed Cut Copper&amp;#039;, &amp;#039;Waxed Weathered Cut Copper&amp;#039;, &amp;#039;Copper Block&amp;#039;&lt;br /&gt;
	},&lt;br /&gt;
    CopperBlock = &amp;#039;Block of Copper&amp;#039;,&lt;br /&gt;
}&lt;br /&gt;
p.i18n = i18n&lt;br /&gt;
&lt;br /&gt;
local slot = require( i18n.moduleSlot )&lt;br /&gt;
local recipeTable = require( i18n.moduleRecipe ).table&lt;br /&gt;
local cArgVals = { &amp;#039;A1&amp;#039;, &amp;#039;B1&amp;#039;, &amp;#039;C1&amp;#039;, &amp;#039;A2&amp;#039;, &amp;#039;B2&amp;#039;, &amp;#039;C2&amp;#039;, &amp;#039;A3&amp;#039;, &amp;#039;B3&amp;#039;, &amp;#039;C3&amp;#039; }&lt;br /&gt;
p.cArgVals = cArgVals&lt;br /&gt;
&lt;br /&gt;
function p.table( f )&lt;br /&gt;
	local args = f&lt;br /&gt;
	if f == mw.getCurrentFrame() then&lt;br /&gt;
		args = require( i18n.moduleArgs ).merge( true )&lt;br /&gt;
	else&lt;br /&gt;
		f = mw.getCurrentFrame()&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- Automatic shapeless positioning&lt;br /&gt;
	if args[1] then&lt;br /&gt;
		args.shapeless = 1&lt;br /&gt;
		if args[7] then&lt;br /&gt;
			args.A1 = args[1]&lt;br /&gt;
			args.B1 = args[2]&lt;br /&gt;
			args.C1 = args[3]&lt;br /&gt;
			args.A2 = args[4]&lt;br /&gt;
			args.B2 = args[5]&lt;br /&gt;
			args.C2 = args[6]&lt;br /&gt;
			if args[8] then&lt;br /&gt;
				-- ◼◼◼      ◼◼◼&lt;br /&gt;
				-- ◼◼◼  OR  ◼◼◼&lt;br /&gt;
				-- ◼◼◼      ◼◼◻&lt;br /&gt;
				args.A3 = args[7]&lt;br /&gt;
				args.B3 = args[8]&lt;br /&gt;
				args.C3 = args[9]&lt;br /&gt;
				if args[9] then&lt;br /&gt;
					local identical = true&lt;br /&gt;
					for i = 1, 8 do&lt;br /&gt;
						if args[i] ~= args[i + 1] then&lt;br /&gt;
							identical = false&lt;br /&gt;
							break&lt;br /&gt;
						end&lt;br /&gt;
					end&lt;br /&gt;
					if identical then&lt;br /&gt;
						args.shapeless = nil&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			else&lt;br /&gt;
				-- ◼◼◼&lt;br /&gt;
				-- ◼◼◼&lt;br /&gt;
				-- ◻◼◻&lt;br /&gt;
				args.B3 = args[7]&lt;br /&gt;
			end&lt;br /&gt;
		elseif args[2] then&lt;br /&gt;
			args.A2 = args[1]&lt;br /&gt;
			args.B2 = args[2]&lt;br /&gt;
			if args[5] then&lt;br /&gt;
				-- ◻◻◻      ◻◻◻&lt;br /&gt;
				-- ◼◼◼  OR  ◼◼◼&lt;br /&gt;
				-- ◼◼◼      ◼◼◻&lt;br /&gt;
				args.C2 = args[3]&lt;br /&gt;
				args.A3 = args[4]&lt;br /&gt;
				args.B3 = args[5]&lt;br /&gt;
				args.C3 = args[6]&lt;br /&gt;
			elseif args[4] then&lt;br /&gt;
				-- ◻◻◻&lt;br /&gt;
				-- ◼◼◻&lt;br /&gt;
				-- ◼◼◻&lt;br /&gt;
				args.A3 = args[3]&lt;br /&gt;
				args.B3 = args[4]&lt;br /&gt;
			else&lt;br /&gt;
				-- ◻◻◻      ◻◻◻&lt;br /&gt;
				-- ◼◼◻  OR  ◼◼◻&lt;br /&gt;
				-- ◻◼◻      ◻◻◻&lt;br /&gt;
				args.B3 = args[3]&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			-- ◻◻◻&lt;br /&gt;
			-- ◻◼◻&lt;br /&gt;
			-- ◻◻◻&lt;br /&gt;
			args.B2 = args[1]&lt;br /&gt;
			args.shapeless = nil&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		for i = 1, 9 do&lt;br /&gt;
			args[i] = nil&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- Create recipe table, and list of ingredients&lt;br /&gt;
	local out, ingredientSets = recipeTable( args, {&lt;br /&gt;
		uiFunc = &amp;#039;craftingTable&amp;#039;,&lt;br /&gt;
		type = i18n.type,&lt;br /&gt;
		ingredientArgs = cArgVals,&lt;br /&gt;
		outputArgs = { &amp;#039;Output&amp;#039; },&lt;br /&gt;
	} )&lt;br /&gt;
	&lt;br /&gt;
	local title = mw.title.getCurrentTitle()&lt;br /&gt;
	if args.nocat == &amp;#039;1&amp;#039; or title.namespace ~= 0 or title.isSubpage then&lt;br /&gt;
		return out&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local categories = {}&lt;br /&gt;
	local cI = 1&lt;br /&gt;
	&lt;br /&gt;
	if args.type and args.ignoreusage ~= &amp;#039;1&amp;#039; then&lt;br /&gt;
		categories[cI] = &amp;#039;[[&amp;#039; .. i18n.categoryRecipeType:gsub( &amp;#039;%$1&amp;#039;, args.type ) .. &amp;#039;]]&amp;#039;&lt;br /&gt;
		cI = cI + 1&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if args.ignoreusage ~= &amp;#039;1&amp;#039; then&lt;br /&gt;
		-- Create ingredient categories for DPL&lt;br /&gt;
		local usedNames = {}&lt;br /&gt;
		&lt;br /&gt;
		local function addName(name)&lt;br /&gt;
			if not usedNames[name] then -- redundant with most current code, but not with all, and might prevent other issues&lt;br /&gt;
				categories[cI] = &amp;#039;[[&amp;#039; .. i18n.categoryIngredientUsage:gsub( &amp;#039;%$1&amp;#039;, name ) .. &amp;#039;]]&amp;#039;&lt;br /&gt;
				cI = cI + 1&lt;br /&gt;
				usedNames[name] = true&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		for _, ingredientSet in pairs( ingredientSets ) do&lt;br /&gt;
			for _, ingredient in pairs( ingredientSet ) do&lt;br /&gt;
				local name = ingredient.name&lt;br /&gt;
				if not ingredient.mod and not usedNames[name] then&lt;br /&gt;
					-- List each dye individually as they have their own pages&lt;br /&gt;
					if&lt;br /&gt;
						name == slot.i18n.prefixes.any .. &amp;#039; &amp;#039; .. i18n.itemDye or&lt;br /&gt;
						name == slot.i18n.prefixes.matching .. &amp;#039; &amp;#039; .. i18n.itemDye or&lt;br /&gt;
						name == slot.i18n.prefixes.any .. &amp;#039; &amp;#039; .. i18n.itemColoredDye or&lt;br /&gt;
						name == slot.i18n.prefixes.matching .. &amp;#039; &amp;#039; .. i18n.itemColoredDye&lt;br /&gt;
					then&lt;br /&gt;
						if not name:find( i18n.colored ) then&lt;br /&gt;
							addName( i18n.itemWhiteDye )&lt;br /&gt;
						end&lt;br /&gt;
						&lt;br /&gt;
						for _, dye in pairs( i18n.coloredDyes ) do&lt;br /&gt;
							addName( dye )&lt;br /&gt;
						end&lt;br /&gt;
					-- List stone variants individually as they have their own pages&lt;br /&gt;
					elseif&lt;br /&gt;
						name == slot.i18n.prefixes.any .. &amp;#039; &amp;#039; .. i18n.itemStone or&lt;br /&gt;
						name == slot.i18n.prefixes.matching .. &amp;#039; &amp;#039; .. i18n.itemStone&lt;br /&gt;
					then&lt;br /&gt;
						for _, stone in pairs( i18n.stoneVariants ) do&lt;br /&gt;
							addName( stone )&lt;br /&gt;
						end&lt;br /&gt;
					else&lt;br /&gt;
						-- Merge item variants which use a single page&lt;br /&gt;
						if&lt;br /&gt;
							name == slot.i18n.prefixes.any .. &amp;#039; &amp;#039; .. i18n.itemMushroom or&lt;br /&gt;
							name == slot.i18n.prefixes.matching .. &amp;#039; &amp;#039; .. i18n.itemMushroom or&lt;br /&gt;
							name == i18n.itemRedMushroom or&lt;br /&gt;
							name == i18n.itemBrownMushroom&lt;br /&gt;
						then name = i18n.itemMushroom&lt;br /&gt;
						elseif name == i18n.itemSmoothQuartzBlock then name = i18n.itemSmoothQuartzBlock&lt;br /&gt;
						elseif name == i18n.itemCharcoal then name = i18n.itemCoal&lt;br /&gt;
						elseif name:find( &amp;#039; &amp;#039; .. i18n.itemQuartzBlock .. &amp;#039;$&amp;#039; ) then name = i18n.itemBlockOfQuartz&lt;br /&gt;
						else&lt;br /&gt;
							for _, variant in pairs( i18n.variantPages ) do&lt;br /&gt;
								if name:find( &amp;#039; &amp;#039; .. variant .. &amp;#039;$&amp;#039; ) then&lt;br /&gt;
									name = variant&lt;br /&gt;
									break&lt;br /&gt;
								end&lt;br /&gt;
							end&lt;br /&gt;
							for _, variant in pairs( i18n.CopperBlockLinks ) do&lt;br /&gt;
								if name:find( variant ) then&lt;br /&gt;
									name = i18n.CopperBlock&lt;br /&gt;
									break&lt;br /&gt;
								end&lt;br /&gt;
							end&lt;br /&gt;
							-- Remove prefixes&lt;br /&gt;
							for _, prefix in pairs( slot.i18n.prefixes ) do&lt;br /&gt;
								if name:find( &amp;#039;^&amp;#039; .. prefix .. &amp;#039; &amp;#039; ) then&lt;br /&gt;
									name = name:gsub( &amp;#039;^&amp;#039; .. prefix .. &amp;#039; &amp;#039;, &amp;#039;&amp;#039; )&lt;br /&gt;
									break&lt;br /&gt;
								end&lt;br /&gt;
							end&lt;br /&gt;
						end&lt;br /&gt;
						&lt;br /&gt;
						-- handle &amp;quot;A or B&amp;quot; names&lt;br /&gt;
						local orA, orB = name:match(&amp;quot;(.-) or (.+)&amp;quot;)&lt;br /&gt;
						if orA then&lt;br /&gt;
							addName( orA )&lt;br /&gt;
							addName( orB )&lt;br /&gt;
						else&lt;br /&gt;
							addName( name )&lt;br /&gt;
						end&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return out, table.concat( categories, &amp;#039;&amp;#039; )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>minecraft&gt;Magiczocker</name></author>
	</entry>
</feed>