<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://modded.wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Patbox</id>
	<title>Modded Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://modded.wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Patbox"/>
	<link rel="alternate" type="text/html" href="https://modded.wiki/w/Special:Contributions/Patbox"/>
	<updated>2026-06-02T15:42:20Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://modded.wiki/index.php?title=Sticky_Item_Conveyor&amp;diff=13660</id>
		<title>Sticky Item Conveyor</title>
		<link rel="alternate" type="text/html" href="https://modded.wiki/index.php?title=Sticky_Item_Conveyor&amp;diff=13660"/>
		<updated>2026-01-30T15:46:47Z</updated>

		<summary type="html">&lt;p&gt;Patbox: Patbox moved page Sticky Item Conveyor to PolyFactory:Sticky Item Conveyor&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[PolyFactory:Sticky Item Conveyor]]&lt;/div&gt;</summary>
		<author><name>Patbox</name></author>
	</entry>
	<entry>
		<id>https://modded.wiki/index.php?title=PolyFactory:Sticky_Item_Conveyor&amp;diff=13659</id>
		<title>PolyFactory:Sticky Item Conveyor</title>
		<link rel="alternate" type="text/html" href="https://modded.wiki/index.php?title=PolyFactory:Sticky_Item_Conveyor&amp;diff=13659"/>
		<updated>2026-01-30T15:46:47Z</updated>

		<summary type="html">&lt;p&gt;Patbox: Patbox moved page Sticky Item Conveyor to PolyFactory:Sticky Item Conveyor&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Sticky Item Conveyor Example.jpg|alt=A basic example setup of Sticky Item Conveyors being used to transport items upwards.|thumb|A basic example setup of Sticky Item Conveyors being used to transport items upwards.]]&lt;br /&gt;
A Sticky Item Conveyor works like the [[PolyFactory:Item Conveyor|Item Conveyor]], except it can also be used for upward movement.&lt;/div&gt;</summary>
		<author><name>Patbox</name></author>
	</entry>
	<entry>
		<id>https://modded.wiki/index.php?title=Module:SpriteFile&amp;diff=13596</id>
		<title>Module:SpriteFile</title>
		<link rel="alternate" type="text/html" href="https://modded.wiki/index.php?title=Module:SpriteFile&amp;diff=13596"/>
		<updated>2026-01-29T19:57:04Z</updated>

		<summary type="html">&lt;p&gt;Patbox: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
function p.sprite( f )&lt;br /&gt;
	local args = f&lt;br /&gt;
	if f == mw.getCurrentFrame() then&lt;br /&gt;
		args = require( &#039;Module:ProcessArgs&#039; ).merge( true )&lt;br /&gt;
	else&lt;br /&gt;
		f = mw.getCurrentFrame()&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- Default settings&lt;br /&gt;
	local default = {&lt;br /&gt;
		scale = 1,&lt;br /&gt;
		size = 16,&lt;br /&gt;
		align = &#039;text-top&#039;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	local id = mw.text.trim( tostring( args[1] or &#039;&#039; ) )&lt;br /&gt;
	&lt;br /&gt;
	if not args.keepcase then&lt;br /&gt;
		id = mw.ustring.lower( id ):gsub( &#039;[%s%+]&#039;, &#039;-&#039; )&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local mod = id:match( &#039;([^:%]]+):&#039; ) or &amp;quot;Minecraft&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	local nameStart = ( id:find( &#039;:&#039; ) or id:find( &#039;%]&#039; ) or 0 ) + 1&lt;br /&gt;
	if nameStart - 1 == #id then&lt;br /&gt;
		nameStart = 1&lt;br /&gt;
	end&lt;br /&gt;
	local nameId = id:sub( nameStart, ( id:find( &#039;[,%[]&#039;, nameStart ) or 0 ) - 1 )&lt;br /&gt;
	&lt;br /&gt;
	local link = ( args.link or &#039;&#039; )&lt;br /&gt;
	if mw.ustring.lower( link ) == &#039;none&#039; then&lt;br /&gt;
		link = &#039;&#039;&lt;br /&gt;
	elseif link ~= &#039;&#039; then&lt;br /&gt;
		local linkPrefix = ( not link:find( &#039;//&#039; ) and args.linkprefix ) or &#039;&#039;&lt;br /&gt;
		link = linkPrefix .. link&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local scale = args.scale or default.scale&lt;br /&gt;
	local height = ( args.height or args.size or default.size ) * scale&lt;br /&gt;
	local width = ( args.width or args.size or default.size ) * scale&lt;br /&gt;
	local size = width .. &#039;x&#039; .. height .. &#039;px&#039;&lt;br /&gt;
	&lt;br /&gt;
	local styles = {}&lt;br /&gt;
	if height ~= default.size then&lt;br /&gt;
		styles[#styles + 1] = &#039;height:&#039; .. height .. &#039;px&#039;&lt;br /&gt;
	end&lt;br /&gt;
	if width ~= default.size then&lt;br /&gt;
		styles[#styles + 1] = &#039;width:&#039; .. width .. &#039;px&#039;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local name = args.name or &#039;&#039;&lt;br /&gt;
	local nameVanilla = args.nameVanilla or name&lt;br /&gt;
	if name == &#039;InvSprite&#039; then&lt;br /&gt;
		name = &#039;Invicon&#039;&lt;br /&gt;
	end&lt;br /&gt;
	if nameVanilla == &#039;InvSprite&#039; then&lt;br /&gt;
		nameVanilla = &#039;Invicon&#039;&lt;br /&gt;
	end&lt;br /&gt;
	local file = &#039;&#039;&lt;br /&gt;
	&lt;br /&gt;
	if mod == &#039;Minecraft&#039; or mod == &#039;minecraft&#039; then&lt;br /&gt;
		file = nameVanilla .. &#039; &#039; .. nameId .. &#039;.png&#039;&lt;br /&gt;
	else&lt;br /&gt;
		file = name .. &#039; &#039; .. mod .. &#039; &#039; .. nameId .. &#039;.png&#039;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local altText = &#039;&#039;&lt;br /&gt;
	if link == &#039;&#039; then&lt;br /&gt;
		altText = file .. &#039;: Sprite image for &#039; .. nameId .. &#039; in &#039; .. mod&lt;br /&gt;
	end&lt;br /&gt;
	if id == &#039;&#039; then&lt;br /&gt;
		file = &#039;Grid Unknown.png&#039;&lt;br /&gt;
		altText = &#039;Unknown sprite image&#039;&lt;br /&gt;
	end&lt;br /&gt;
	local sprite = mw.html.create( &#039;span&#039; ):addClass( &#039;sprite-file&#039; )&lt;br /&gt;
	local img = &#039;[[File:&#039; .. file .. &#039;|&#039; .. size .. &#039;|link=&#039; .. link .. &#039;|alt=&#039; .. altText .. &#039;|class=pixel-image|&#039; .. ( args.title or &#039;&#039; ) .. &#039;]]&#039;&lt;br /&gt;
	sprite:node( img )&lt;br /&gt;
	&lt;br /&gt;
	local align = args.align or default.align&lt;br /&gt;
	if align ~= default.align then&lt;br /&gt;
		styles[#styles + 1] = &#039;--vertical-align:&#039; .. align&lt;br /&gt;
	end&lt;br /&gt;
	styles[#styles + 1] = args.css&lt;br /&gt;
	&lt;br /&gt;
	sprite:cssText( table.concat( styles, &#039;;&#039; ) )&lt;br /&gt;
	&lt;br /&gt;
	local root&lt;br /&gt;
	local spriteText&lt;br /&gt;
	if args.text then&lt;br /&gt;
		if not args[&#039;wrap&#039;] then&lt;br /&gt;
			root = mw.html.create( &#039;span&#039; ):addClass( &#039;nowrap&#039; )&lt;br /&gt;
		end&lt;br /&gt;
		spriteText = mw.html.create( &#039;span&#039; ):addClass( &#039;sprite-text&#039; ):wikitext( args.text )&lt;br /&gt;
		if args.title then&lt;br /&gt;
			spriteText:attr( &#039;title&#039;, args.title )&lt;br /&gt;
		else&lt;br /&gt;
			spriteText:attr( &#039;title&#039;, nameId )&lt;br /&gt;
		end&lt;br /&gt;
		if link ~= &#039;&#039; then&lt;br /&gt;
			-- External link&lt;br /&gt;
			if link:find( &#039;//&#039; ) then&lt;br /&gt;
				spriteText = &#039;[&#039; .. link .. &#039; &#039; .. tostring( spriteText ) .. &#039;]&#039;&lt;br /&gt;
			else&lt;br /&gt;
				spriteText = &#039;[[&#039; .. link .. &#039;|&#039; .. tostring( spriteText ) .. &#039;]]&#039;&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if not root then&lt;br /&gt;
		root = mw.html.create( &#039;&#039; )&lt;br /&gt;
	end&lt;br /&gt;
	root:node( sprite )&lt;br /&gt;
	if spriteText then&lt;br /&gt;
		root:node( spriteText )&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return tostring( root )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.link( f )&lt;br /&gt;
	local args = f&lt;br /&gt;
	if f == mw.getCurrentFrame() then&lt;br /&gt;
		args = require( &#039;Module:ProcessArgs&#039; ).merge( true )&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local link = args[1]&lt;br /&gt;
	if args[1] and not args.id then&lt;br /&gt;
		link = args[1]:match( &#039;^(.-)%+&#039; ) or args[1]&lt;br /&gt;
	end&lt;br /&gt;
	local text&lt;br /&gt;
	if not args.notext then&lt;br /&gt;
		text = args.text or args[2] or &#039;&#039;&lt;br /&gt;
		&lt;br /&gt;
		if text == &#039;&#039; then&lt;br /&gt;
			local nameStart = (link:find( &#039;:&#039; ) or 0 ) + 1&lt;br /&gt;
			if nameStart - 1 == #link then&lt;br /&gt;
				nameStart = 1&lt;br /&gt;
			end&lt;br /&gt;
			text = link:sub( nameStart, ( link:find( &#039;[,%[]&#039;, nameStart ) or 0 ) - 1 )&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	args[1] = args.id or args[1]&lt;br /&gt;
	args.link = args.link or link&lt;br /&gt;
	args.text = text&lt;br /&gt;
	&lt;br /&gt;
	return p.sprite( args )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Patbox</name></author>
	</entry>
	<entry>
		<id>https://modded.wiki/index.php?title=Template:ItemLink&amp;diff=13595</id>
		<title>Template:ItemLink</title>
		<link rel="alternate" type="text/html" href="https://modded.wiki/index.php?title=Template:ItemLink&amp;diff=13595"/>
		<updated>2026-01-29T19:55:42Z</updated>

		<summary type="html">&lt;p&gt;Patbox: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#invoke: SpriteFile | link | nameVanilla = ItemSprite&lt;br /&gt;
}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation}}&lt;br /&gt;
&amp;lt;!-- Put categories/interwiki on the documentation page --&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Patbox</name></author>
	</entry>
	<entry>
		<id>https://modded.wiki/index.php?title=Module:SpriteFile&amp;diff=13594</id>
		<title>Module:SpriteFile</title>
		<link rel="alternate" type="text/html" href="https://modded.wiki/index.php?title=Module:SpriteFile&amp;diff=13594"/>
		<updated>2026-01-29T19:52:42Z</updated>

		<summary type="html">&lt;p&gt;Patbox: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
function p.sprite( f )&lt;br /&gt;
	local args = f&lt;br /&gt;
	if f == mw.getCurrentFrame() then&lt;br /&gt;
		args = require( &#039;Module:ProcessArgs&#039; ).merge( true )&lt;br /&gt;
	else&lt;br /&gt;
		f = mw.getCurrentFrame()&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- Default settings&lt;br /&gt;
	local default = {&lt;br /&gt;
		scale = 1,&lt;br /&gt;
		size = 16,&lt;br /&gt;
		align = &#039;text-top&#039;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	local id = mw.text.trim( tostring( args[1] or &#039;&#039; ) )&lt;br /&gt;
	&lt;br /&gt;
	if not args.keepcase then&lt;br /&gt;
		id = mw.ustring.lower( id ):gsub( &#039;[%s%+]&#039;, &#039;-&#039; )&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local mod = id:match( &#039;([^:%]]+):&#039; ) or &amp;quot;Minecraft&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	local nameStart = ( id:find( &#039;:&#039; ) or id:find( &#039;%]&#039; ) or 0 ) + 1&lt;br /&gt;
	if nameStart - 1 == #id then&lt;br /&gt;
		nameStart = 1&lt;br /&gt;
	end&lt;br /&gt;
	local nameId = id:sub( nameStart, ( id:find( &#039;[,%[]&#039;, nameStart ) or 0 ) - 1 )&lt;br /&gt;
	&lt;br /&gt;
	local link = ( args.link or &#039;&#039; )&lt;br /&gt;
	if mw.ustring.lower( link ) == &#039;none&#039; then&lt;br /&gt;
		link = &#039;&#039;&lt;br /&gt;
	elseif link ~= &#039;&#039; then&lt;br /&gt;
		local linkPrefix = ( not link:find( &#039;//&#039; ) and args.linkprefix ) or &#039;&#039;&lt;br /&gt;
		link = linkPrefix .. link&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local scale = args.scale or default.scale&lt;br /&gt;
	local height = ( args.height or args.size or default.size ) * scale&lt;br /&gt;
	local width = ( args.width or args.size or default.size ) * scale&lt;br /&gt;
	local size = width .. &#039;x&#039; .. height .. &#039;px&#039;&lt;br /&gt;
	&lt;br /&gt;
	local styles = {}&lt;br /&gt;
	if height ~= default.size then&lt;br /&gt;
		styles[#styles + 1] = &#039;height:&#039; .. height .. &#039;px&#039;&lt;br /&gt;
	end&lt;br /&gt;
	if width ~= default.size then&lt;br /&gt;
		styles[#styles + 1] = &#039;width:&#039; .. width .. &#039;px&#039;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local name = args.name or &#039;&#039;&lt;br /&gt;
	if name == &#039;InvSprite&#039; then&lt;br /&gt;
		name = &#039;Invicon&#039;&lt;br /&gt;
	end&lt;br /&gt;
	local file = &#039;&#039;&lt;br /&gt;
	&lt;br /&gt;
	if mod == &#039;Minecraft&#039; or mod == &#039;minecraft&#039; then&lt;br /&gt;
		file = name .. &#039; &#039; .. nameId:gsub( &#039;[ _]&#039;, &#039;-&#039; ) .. &#039;.png&#039;&lt;br /&gt;
	else&lt;br /&gt;
		file = name .. &#039; &#039; .. mod .. &#039; &#039; .. nameId .. &#039;.png&#039;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local altText = &#039;&#039;&lt;br /&gt;
	if link == &#039;&#039; then&lt;br /&gt;
		altText = file .. &#039;: Sprite image for &#039; .. nameId .. &#039; in &#039; .. mod&lt;br /&gt;
	end&lt;br /&gt;
	if id == &#039;&#039; then&lt;br /&gt;
		file = &#039;Grid Unknown.png&#039;&lt;br /&gt;
		altText = &#039;Unknown sprite image&#039;&lt;br /&gt;
	end&lt;br /&gt;
	local sprite = mw.html.create( &#039;span&#039; ):addClass( &#039;sprite-file&#039; )&lt;br /&gt;
	local img = &#039;[[File:&#039; .. file .. &#039;|&#039; .. size .. &#039;|link=&#039; .. link .. &#039;|alt=&#039; .. altText .. &#039;|class=pixel-image|&#039; .. ( args.title or &#039;&#039; ) .. &#039;]]&#039;&lt;br /&gt;
	sprite:node( img )&lt;br /&gt;
	&lt;br /&gt;
	local align = args.align or default.align&lt;br /&gt;
	if align ~= default.align then&lt;br /&gt;
		styles[#styles + 1] = &#039;--vertical-align:&#039; .. align&lt;br /&gt;
	end&lt;br /&gt;
	styles[#styles + 1] = args.css&lt;br /&gt;
	&lt;br /&gt;
	sprite:cssText( table.concat( styles, &#039;;&#039; ) )&lt;br /&gt;
	&lt;br /&gt;
	local root&lt;br /&gt;
	local spriteText&lt;br /&gt;
	if args.text then&lt;br /&gt;
		if not args[&#039;wrap&#039;] then&lt;br /&gt;
			root = mw.html.create( &#039;span&#039; ):addClass( &#039;nowrap&#039; )&lt;br /&gt;
		end&lt;br /&gt;
		spriteText = mw.html.create( &#039;span&#039; ):addClass( &#039;sprite-text&#039; ):wikitext( args.text )&lt;br /&gt;
		if args.title then&lt;br /&gt;
			spriteText:attr( &#039;title&#039;, args.title )&lt;br /&gt;
		else&lt;br /&gt;
			spriteText:attr( &#039;title&#039;, nameId )&lt;br /&gt;
		end&lt;br /&gt;
		if link ~= &#039;&#039; then&lt;br /&gt;
			-- External link&lt;br /&gt;
			if link:find( &#039;//&#039; ) then&lt;br /&gt;
				spriteText = &#039;[&#039; .. link .. &#039; &#039; .. tostring( spriteText ) .. &#039;]&#039;&lt;br /&gt;
			else&lt;br /&gt;
				spriteText = &#039;[[&#039; .. link .. &#039;|&#039; .. tostring( spriteText ) .. &#039;]]&#039;&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if not root then&lt;br /&gt;
		root = mw.html.create( &#039;&#039; )&lt;br /&gt;
	end&lt;br /&gt;
	root:node( sprite )&lt;br /&gt;
	if spriteText then&lt;br /&gt;
		root:node( spriteText )&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return tostring( root )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.link( f )&lt;br /&gt;
	local args = f&lt;br /&gt;
	if f == mw.getCurrentFrame() then&lt;br /&gt;
		args = require( &#039;Module:ProcessArgs&#039; ).merge( true )&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local link = args[1]&lt;br /&gt;
	if args[1] and not args.id then&lt;br /&gt;
		link = args[1]:match( &#039;^(.-)%+&#039; ) or args[1]&lt;br /&gt;
	end&lt;br /&gt;
	local text&lt;br /&gt;
	if not args.notext then&lt;br /&gt;
		text = args.text or args[2] or &#039;&#039;&lt;br /&gt;
		&lt;br /&gt;
		if text == &#039;&#039; then&lt;br /&gt;
			local nameStart = (link:find( &#039;:&#039; ) or 0 ) + 1&lt;br /&gt;
			if nameStart - 1 == #link then&lt;br /&gt;
				nameStart = 1&lt;br /&gt;
			end&lt;br /&gt;
			text = link:sub( nameStart, ( link:find( &#039;[,%[]&#039;, nameStart ) or 0 ) - 1 )&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	args[1] = args.id or args[1]&lt;br /&gt;
	args.link = args.link or link&lt;br /&gt;
	args.text = text&lt;br /&gt;
	&lt;br /&gt;
	return p.sprite( args )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Patbox</name></author>
	</entry>
	<entry>
		<id>https://modded.wiki/index.php?title=Module:SpriteFile&amp;diff=13593</id>
		<title>Module:SpriteFile</title>
		<link rel="alternate" type="text/html" href="https://modded.wiki/index.php?title=Module:SpriteFile&amp;diff=13593"/>
		<updated>2026-01-29T19:51:57Z</updated>

		<summary type="html">&lt;p&gt;Patbox: Undo revision 13591 by Patbox (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
function p.sprite( f )&lt;br /&gt;
	local args = f&lt;br /&gt;
	if f == mw.getCurrentFrame() then&lt;br /&gt;
		args = require( &#039;Module:ProcessArgs&#039; ).merge( true )&lt;br /&gt;
	else&lt;br /&gt;
		f = mw.getCurrentFrame()&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- Default settings&lt;br /&gt;
	local default = {&lt;br /&gt;
		scale = 1,&lt;br /&gt;
		size = 16,&lt;br /&gt;
		align = &#039;text-top&#039;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	local id = mw.text.trim( tostring( args[1] or &#039;&#039; ) )&lt;br /&gt;
	&lt;br /&gt;
	if not args.keepcase then&lt;br /&gt;
		id = mw.ustring.lower( id ):gsub( &#039;[%s%+]&#039;, &#039;-&#039; )&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local mod = id:match( &#039;([^:%]]+):&#039; ) or &amp;quot;Minecraft&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	local nameStart = ( id:find( &#039;:&#039; ) or id:find( &#039;%]&#039; ) or 0 ) + 1&lt;br /&gt;
	if nameStart - 1 == #id then&lt;br /&gt;
		nameStart = 1&lt;br /&gt;
	end&lt;br /&gt;
	local nameId = id:sub( nameStart, ( id:find( &#039;[,%[]&#039;, nameStart ) or 0 ) - 1 )&lt;br /&gt;
	&lt;br /&gt;
	local link = ( args.link or &#039;&#039; )&lt;br /&gt;
	if mw.ustring.lower( link ) == &#039;none&#039; then&lt;br /&gt;
		link = &#039;&#039;&lt;br /&gt;
	elseif link ~= &#039;&#039; then&lt;br /&gt;
		local linkPrefix = ( not link:find( &#039;//&#039; ) and args.linkprefix ) or &#039;&#039;&lt;br /&gt;
		link = linkPrefix .. link&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local scale = args.scale or default.scale&lt;br /&gt;
	local height = ( args.height or args.size or default.size ) * scale&lt;br /&gt;
	local width = ( args.width or args.size or default.size ) * scale&lt;br /&gt;
	local size = width .. &#039;x&#039; .. height .. &#039;px&#039;&lt;br /&gt;
	&lt;br /&gt;
	local styles = {}&lt;br /&gt;
	if height ~= default.size then&lt;br /&gt;
		styles[#styles + 1] = &#039;height:&#039; .. height .. &#039;px&#039;&lt;br /&gt;
	end&lt;br /&gt;
	if width ~= default.size then&lt;br /&gt;
		styles[#styles + 1] = &#039;width:&#039; .. width .. &#039;px&#039;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local name = args.name or &#039;&#039;&lt;br /&gt;
	if name == &#039;InvSprite&#039; then&lt;br /&gt;
		name = &#039;Invicon&#039;&lt;br /&gt;
	end&lt;br /&gt;
	local file = &#039;&#039;&lt;br /&gt;
	&lt;br /&gt;
	if mod == &#039;Minecraft&#039; or mod == &#039;minecraft&#039; then&lt;br /&gt;
		file = name .. &#039; &#039; .. nameId .. &#039;.png&#039;&lt;br /&gt;
	else&lt;br /&gt;
		file = name .. &#039; &#039; .. mod .. &#039; &#039; .. nameId .. &#039;.png&#039;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local altText = &#039;&#039;&lt;br /&gt;
	if link == &#039;&#039; then&lt;br /&gt;
		altText = file .. &#039;: Sprite image for &#039; .. nameId .. &#039; in &#039; .. mod&lt;br /&gt;
	end&lt;br /&gt;
	if id == &#039;&#039; then&lt;br /&gt;
		file = &#039;Grid Unknown.png&#039;&lt;br /&gt;
		altText = &#039;Unknown sprite image&#039;&lt;br /&gt;
	end&lt;br /&gt;
	local sprite = mw.html.create( &#039;span&#039; ):addClass( &#039;sprite-file&#039; )&lt;br /&gt;
	local img = &#039;[[File:&#039; .. file .. &#039;|&#039; .. size .. &#039;|link=&#039; .. link .. &#039;|alt=&#039; .. altText .. &#039;|class=pixel-image|&#039; .. ( args.title or &#039;&#039; ) .. &#039;]]&#039;&lt;br /&gt;
	sprite:node( img )&lt;br /&gt;
	&lt;br /&gt;
	local align = args.align or default.align&lt;br /&gt;
	if align ~= default.align then&lt;br /&gt;
		styles[#styles + 1] = &#039;--vertical-align:&#039; .. align&lt;br /&gt;
	end&lt;br /&gt;
	styles[#styles + 1] = args.css&lt;br /&gt;
	&lt;br /&gt;
	sprite:cssText( table.concat( styles, &#039;;&#039; ) )&lt;br /&gt;
	&lt;br /&gt;
	local root&lt;br /&gt;
	local spriteText&lt;br /&gt;
	if args.text then&lt;br /&gt;
		if not args[&#039;wrap&#039;] then&lt;br /&gt;
			root = mw.html.create( &#039;span&#039; ):addClass( &#039;nowrap&#039; )&lt;br /&gt;
		end&lt;br /&gt;
		spriteText = mw.html.create( &#039;span&#039; ):addClass( &#039;sprite-text&#039; ):wikitext( args.text )&lt;br /&gt;
		if args.title then&lt;br /&gt;
			spriteText:attr( &#039;title&#039;, args.title )&lt;br /&gt;
		else&lt;br /&gt;
			spriteText:attr( &#039;title&#039;, nameId )&lt;br /&gt;
		end&lt;br /&gt;
		if link ~= &#039;&#039; then&lt;br /&gt;
			-- External link&lt;br /&gt;
			if link:find( &#039;//&#039; ) then&lt;br /&gt;
				spriteText = &#039;[&#039; .. link .. &#039; &#039; .. tostring( spriteText ) .. &#039;]&#039;&lt;br /&gt;
			else&lt;br /&gt;
				spriteText = &#039;[[&#039; .. link .. &#039;|&#039; .. tostring( spriteText ) .. &#039;]]&#039;&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if not root then&lt;br /&gt;
		root = mw.html.create( &#039;&#039; )&lt;br /&gt;
	end&lt;br /&gt;
	root:node( sprite )&lt;br /&gt;
	if spriteText then&lt;br /&gt;
		root:node( spriteText )&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return tostring( root )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.link( f )&lt;br /&gt;
	local args = f&lt;br /&gt;
	if f == mw.getCurrentFrame() then&lt;br /&gt;
		args = require( &#039;Module:ProcessArgs&#039; ).merge( true )&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local link = args[1]&lt;br /&gt;
	if args[1] and not args.id then&lt;br /&gt;
		link = args[1]:match( &#039;^(.-)%+&#039; ) or args[1]&lt;br /&gt;
	end&lt;br /&gt;
	local text&lt;br /&gt;
	if not args.notext then&lt;br /&gt;
		text = args.text or args[2] or &#039;&#039;&lt;br /&gt;
		&lt;br /&gt;
		if text == &#039;&#039; then&lt;br /&gt;
			local nameStart = (link:find( &#039;:&#039; ) or 0 ) + 1&lt;br /&gt;
			if nameStart - 1 == #link then&lt;br /&gt;
				nameStart = 1&lt;br /&gt;
			end&lt;br /&gt;
			text = link:sub( nameStart, ( link:find( &#039;[,%[]&#039;, nameStart ) or 0 ) - 1 )&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	args[1] = args.id or args[1]&lt;br /&gt;
	args.link = args.link or link&lt;br /&gt;
	args.text = text&lt;br /&gt;
	&lt;br /&gt;
	return p.sprite( args )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Patbox</name></author>
	</entry>
	<entry>
		<id>https://modded.wiki/index.php?title=Module:SpriteFile&amp;diff=13591</id>
		<title>Module:SpriteFile</title>
		<link rel="alternate" type="text/html" href="https://modded.wiki/index.php?title=Module:SpriteFile&amp;diff=13591"/>
		<updated>2026-01-29T19:51:22Z</updated>

		<summary type="html">&lt;p&gt;Patbox: Reverted edits by Patbox (talk) to last revision by Minecraft&amp;gt;MarkusRost&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
function p.sprite( f )&lt;br /&gt;
	local args = f&lt;br /&gt;
	if f == mw.getCurrentFrame() then&lt;br /&gt;
		args = require( &#039;Module:ProcessArgs&#039; ).merge( true )&lt;br /&gt;
	else&lt;br /&gt;
		f = mw.getCurrentFrame()&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- Default settings&lt;br /&gt;
	local default = {&lt;br /&gt;
		scale = 1,&lt;br /&gt;
		size = 16,&lt;br /&gt;
		align = &#039;text-top&#039;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	local id = mw.text.trim( tostring( args[1] or &#039;&#039; ) )&lt;br /&gt;
	if not args.keepcase then&lt;br /&gt;
		id = mw.ustring.lower( id ):gsub( &#039;[%s%+]&#039;, &#039;-&#039; )&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local link = ( args.link or &#039;&#039; )&lt;br /&gt;
	if mw.ustring.lower( link ) == &#039;none&#039; then&lt;br /&gt;
		link = &#039;&#039;&lt;br /&gt;
	elseif link ~= &#039;&#039; then&lt;br /&gt;
		local linkPrefix = ( not link:find( &#039;//&#039; ) and args.linkprefix ) or &#039;&#039;&lt;br /&gt;
		link = linkPrefix .. link&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local scale = args.scale or default.scale&lt;br /&gt;
	local height = ( args.height or args.size or default.size ) * scale&lt;br /&gt;
	local width = ( args.width or args.size or default.size ) * scale&lt;br /&gt;
	local size = width .. &#039;x&#039; .. height .. &#039;px&#039;&lt;br /&gt;
	&lt;br /&gt;
	local styles = {}&lt;br /&gt;
	if height ~= default.size then&lt;br /&gt;
		styles[#styles + 1] = &#039;height:&#039; .. height .. &#039;px&#039;&lt;br /&gt;
	end&lt;br /&gt;
	if width ~= default.size then&lt;br /&gt;
		styles[#styles + 1] = &#039;width:&#039; .. width .. &#039;px&#039;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local name = args.name or &#039;&#039;&lt;br /&gt;
	if name == &#039;InvSprite&#039; then&lt;br /&gt;
		name = &#039;Invicon&#039;&lt;br /&gt;
	end&lt;br /&gt;
	local file = name .. &#039; &#039; .. id .. &#039;.png&#039;&lt;br /&gt;
	local altText = &#039;&#039;&lt;br /&gt;
	if link == &#039;&#039; then&lt;br /&gt;
		altText = file .. &#039;: Sprite image for &#039; .. id .. &#039; in Minecraft&#039;&lt;br /&gt;
	end&lt;br /&gt;
	if id == &#039;&#039; then&lt;br /&gt;
		file = &#039;Grid Unknown.png&#039;&lt;br /&gt;
		altText = &#039;Unknown sprite image&#039;&lt;br /&gt;
	end&lt;br /&gt;
	local sprite = mw.html.create( &#039;span&#039; ):addClass( &#039;sprite-file&#039; )&lt;br /&gt;
	local img = &#039;[[File:&#039; .. file .. &#039;|&#039; .. size .. &#039;|link=&#039; .. link .. &#039;|alt=&#039; .. altText .. &#039;|class=pixel-image|&#039; .. ( args.title or &#039;&#039; ) .. &#039;]]&#039;&lt;br /&gt;
	sprite:node( img )&lt;br /&gt;
	&lt;br /&gt;
	local align = args.align or default.align&lt;br /&gt;
	if align ~= default.align then&lt;br /&gt;
		styles[#styles + 1] = &#039;--vertical-align:&#039; .. align&lt;br /&gt;
	end&lt;br /&gt;
	styles[#styles + 1] = args.css&lt;br /&gt;
	&lt;br /&gt;
	sprite:cssText( table.concat( styles, &#039;;&#039; ) )&lt;br /&gt;
	&lt;br /&gt;
	local root&lt;br /&gt;
	local spriteText&lt;br /&gt;
	if args.text then&lt;br /&gt;
		if not args[&#039;wrap&#039;] then&lt;br /&gt;
			root = mw.html.create( &#039;span&#039; ):addClass( &#039;nowrap&#039; )&lt;br /&gt;
		end&lt;br /&gt;
		spriteText = mw.html.create( &#039;span&#039; ):addClass( &#039;sprite-text&#039; ):wikitext( args.text )&lt;br /&gt;
		if args.title then&lt;br /&gt;
			spriteText:attr( &#039;title&#039;, args.title )&lt;br /&gt;
		end&lt;br /&gt;
		if link ~= &#039;&#039; then&lt;br /&gt;
			-- External link&lt;br /&gt;
			if link:find( &#039;//&#039; ) then&lt;br /&gt;
				spriteText = &#039;[&#039; .. link .. &#039; &#039; .. tostring( spriteText ) .. &#039;]&#039;&lt;br /&gt;
			else&lt;br /&gt;
				spriteText = &#039;[[&#039; .. link .. &#039;|&#039; .. tostring( spriteText ) .. &#039;]]&#039;&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if not root then&lt;br /&gt;
		root = mw.html.create( &#039;&#039; )&lt;br /&gt;
	end&lt;br /&gt;
	root:node( sprite )&lt;br /&gt;
	if spriteText then&lt;br /&gt;
		root:node( spriteText )&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return tostring( root )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.link( f )&lt;br /&gt;
	local args = f&lt;br /&gt;
	if f == mw.getCurrentFrame() then&lt;br /&gt;
		args = require( &#039;Module:ProcessArgs&#039; ).merge( true )&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local link = args[1]&lt;br /&gt;
	if args[1] and not args.id then&lt;br /&gt;
		link = args[1]:match( &#039;^(.-)%+&#039; ) or args[1]&lt;br /&gt;
	end&lt;br /&gt;
	local text&lt;br /&gt;
	if not args.notext then&lt;br /&gt;
		text = args.text or args[2] or link&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	args[1] = args.id or args[1]&lt;br /&gt;
	args.link = args.link or link&lt;br /&gt;
	args.text = text&lt;br /&gt;
	&lt;br /&gt;
	return p.sprite( args )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Patbox</name></author>
	</entry>
	<entry>
		<id>https://modded.wiki/index.php?title=Module:SpriteFile&amp;diff=13590</id>
		<title>Module:SpriteFile</title>
		<link rel="alternate" type="text/html" href="https://modded.wiki/index.php?title=Module:SpriteFile&amp;diff=13590"/>
		<updated>2026-01-29T19:49:04Z</updated>

		<summary type="html">&lt;p&gt;Patbox: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
function p.sprite( f )&lt;br /&gt;
	local args = f&lt;br /&gt;
	if f == mw.getCurrentFrame() then&lt;br /&gt;
		args = require( &#039;Module:ProcessArgs&#039; ).merge( true )&lt;br /&gt;
	else&lt;br /&gt;
		f = mw.getCurrentFrame()&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- Default settings&lt;br /&gt;
	local default = {&lt;br /&gt;
		scale = 1,&lt;br /&gt;
		size = 16,&lt;br /&gt;
		align = &#039;text-top&#039;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	local id = mw.text.trim( tostring( args[1] or &#039;&#039; ) )&lt;br /&gt;
	&lt;br /&gt;
	if not args.keepcase then&lt;br /&gt;
		id = mw.ustring.lower( id ):gsub( &#039;[%s%+]&#039;, &#039;-&#039; )&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local mod = id:match( &#039;([^:%]]+):&#039; ) or &amp;quot;Minecraft&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	local nameStart = ( id:find( &#039;:&#039; ) or id:find( &#039;%]&#039; ) or 0 ) + 1&lt;br /&gt;
	if nameStart - 1 == #id then&lt;br /&gt;
		nameStart = 1&lt;br /&gt;
	end&lt;br /&gt;
	local nameId = id:sub( nameStart, ( id:find( &#039;[,%[]&#039;, nameStart ) or 0 ) - 1 )&lt;br /&gt;
	&lt;br /&gt;
	local link = ( args.link or &#039;&#039; )&lt;br /&gt;
	if mw.ustring.lower( link ) == &#039;none&#039; then&lt;br /&gt;
		link = &#039;&#039;&lt;br /&gt;
	elseif link ~= &#039;&#039; then&lt;br /&gt;
		local linkPrefix = ( not link:find( &#039;//&#039; ) and args.linkprefix ) or &#039;&#039;&lt;br /&gt;
		link = linkPrefix .. link&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local scale = args.scale or default.scale&lt;br /&gt;
	local height = ( args.height or args.size or default.size ) * scale&lt;br /&gt;
	local width = ( args.width or args.size or default.size ) * scale&lt;br /&gt;
	local size = width .. &#039;x&#039; .. height .. &#039;px&#039;&lt;br /&gt;
	&lt;br /&gt;
	local styles = {}&lt;br /&gt;
	if height ~= default.size then&lt;br /&gt;
		styles[#styles + 1] = &#039;height:&#039; .. height .. &#039;px&#039;&lt;br /&gt;
	end&lt;br /&gt;
	if width ~= default.size then&lt;br /&gt;
		styles[#styles + 1] = &#039;width:&#039; .. width .. &#039;px&#039;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local name = args.name or &#039;&#039;&lt;br /&gt;
	if name == &#039;InvSprite&#039; then&lt;br /&gt;
		name = &#039;Invicon&#039;&lt;br /&gt;
	end&lt;br /&gt;
	local file = &#039;&#039;&lt;br /&gt;
	&lt;br /&gt;
	if mod == &#039;Minecraft&#039; or mod == &#039;minecraft&#039; then&lt;br /&gt;
		file = name .. &#039; &#039; .. nameId .. &#039;.png&#039;&lt;br /&gt;
	else&lt;br /&gt;
		file = name .. &#039; &#039; .. mod .. &#039; &#039; .. nameId .. &#039;.png&#039;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local altText = &#039;&#039;&lt;br /&gt;
	if link == &#039;&#039; then&lt;br /&gt;
		altText = file .. &#039;: Sprite image for &#039; .. nameId .. &#039; in &#039; .. mod&lt;br /&gt;
	end&lt;br /&gt;
	if id == &#039;&#039; then&lt;br /&gt;
		file = &#039;Grid Unknown.png&#039;&lt;br /&gt;
		altText = &#039;Unknown sprite image&#039;&lt;br /&gt;
	end&lt;br /&gt;
	local sprite = mw.html.create( &#039;span&#039; ):addClass( &#039;sprite-file&#039; )&lt;br /&gt;
	local img = &#039;[[File:&#039; .. file .. &#039;|&#039; .. size .. &#039;|link=&#039; .. link .. &#039;|alt=&#039; .. altText .. &#039;|class=pixel-image|&#039; .. ( args.title or &#039;&#039; ) .. &#039;]]&#039;&lt;br /&gt;
	sprite:node( img )&lt;br /&gt;
	&lt;br /&gt;
	local align = args.align or default.align&lt;br /&gt;
	if align ~= default.align then&lt;br /&gt;
		styles[#styles + 1] = &#039;--vertical-align:&#039; .. align&lt;br /&gt;
	end&lt;br /&gt;
	styles[#styles + 1] = args.css&lt;br /&gt;
	&lt;br /&gt;
	sprite:cssText( table.concat( styles, &#039;;&#039; ) )&lt;br /&gt;
	&lt;br /&gt;
	local root&lt;br /&gt;
	local spriteText&lt;br /&gt;
	if args.text then&lt;br /&gt;
		if not args[&#039;wrap&#039;] then&lt;br /&gt;
			root = mw.html.create( &#039;span&#039; ):addClass( &#039;nowrap&#039; )&lt;br /&gt;
		end&lt;br /&gt;
		spriteText = mw.html.create( &#039;span&#039; ):addClass( &#039;sprite-text&#039; ):wikitext( args.text )&lt;br /&gt;
		if args.title then&lt;br /&gt;
			spriteText:attr( &#039;title&#039;, args.title )&lt;br /&gt;
		else&lt;br /&gt;
			spriteText:attr( &#039;title&#039;, nameId )&lt;br /&gt;
		end&lt;br /&gt;
		if link ~= &#039;&#039; then&lt;br /&gt;
			-- External link&lt;br /&gt;
			if link:find( &#039;//&#039; ) then&lt;br /&gt;
				spriteText = &#039;[&#039; .. link .. &#039; &#039; .. tostring( spriteText ) .. &#039;]&#039;&lt;br /&gt;
			else&lt;br /&gt;
				spriteText = &#039;[[&#039; .. link .. &#039;|&#039; .. tostring( spriteText ) .. &#039;]]&#039;&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if not root then&lt;br /&gt;
		root = mw.html.create( &#039;&#039; )&lt;br /&gt;
	end&lt;br /&gt;
	root:node( sprite )&lt;br /&gt;
	if spriteText then&lt;br /&gt;
		root:node( spriteText )&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return tostring( root )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.link( f )&lt;br /&gt;
	local args = f&lt;br /&gt;
	if f == mw.getCurrentFrame() then&lt;br /&gt;
		args = require( &#039;Module:ProcessArgs&#039; ).merge( true )&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local link = args[1]&lt;br /&gt;
	if args[1] and not args.id then&lt;br /&gt;
		link = args[1]:match( &#039;^(.-)%+&#039; ) or args[1]&lt;br /&gt;
	end&lt;br /&gt;
	local text&lt;br /&gt;
	if not args.notext then&lt;br /&gt;
		text = args.text or args[2] or &#039;&#039;&lt;br /&gt;
		&lt;br /&gt;
		if text == &#039;&#039; then&lt;br /&gt;
			local nameStart = (link:find( &#039;:&#039; ) or 0 ) + 1&lt;br /&gt;
			if nameStart - 1 == #link then&lt;br /&gt;
				nameStart = 1&lt;br /&gt;
			end&lt;br /&gt;
			text = link:sub( nameStart, ( link:find( &#039;[,%[]&#039;, nameStart ) or 0 ) - 1 )&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	args[1] = args.id or args[1]&lt;br /&gt;
	args.link = args.link or link&lt;br /&gt;
	args.text = text&lt;br /&gt;
	&lt;br /&gt;
	return p.sprite( args )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Patbox</name></author>
	</entry>
	<entry>
		<id>https://modded.wiki/index.php?title=Module:SpriteFile&amp;diff=13588</id>
		<title>Module:SpriteFile</title>
		<link rel="alternate" type="text/html" href="https://modded.wiki/index.php?title=Module:SpriteFile&amp;diff=13588"/>
		<updated>2026-01-29T19:46:27Z</updated>

		<summary type="html">&lt;p&gt;Patbox: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
function p.sprite( f )&lt;br /&gt;
	local args = f&lt;br /&gt;
	if f == mw.getCurrentFrame() then&lt;br /&gt;
		args = require( &#039;Module:ProcessArgs&#039; ).merge( true )&lt;br /&gt;
	else&lt;br /&gt;
		f = mw.getCurrentFrame()&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- Default settings&lt;br /&gt;
	local default = {&lt;br /&gt;
		scale = 1,&lt;br /&gt;
		size = 16,&lt;br /&gt;
		align = &#039;text-top&#039;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	local id = mw.text.trim( tostring( args[1] or &#039;&#039; ) )&lt;br /&gt;
	&lt;br /&gt;
	if not args.keepcase then&lt;br /&gt;
		id = mw.ustring.lower( id ):gsub( &#039;[%s%+]&#039;, &#039;-&#039; )&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local mod = id:match( &#039;([^:%]]+):&#039; ) or &amp;quot;Minecraft&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	local nameStart = ( id:find( &#039;:&#039; ) or id:find( &#039;%]&#039; ) or 0 ) + 1&lt;br /&gt;
	if nameStart - 1 == #id then&lt;br /&gt;
		nameStart = 1&lt;br /&gt;
	end&lt;br /&gt;
	local nameId = id:sub( nameStart, ( id:find( &#039;[,%[]&#039;, nameStart ) or 0 ) - 1 )&lt;br /&gt;
	&lt;br /&gt;
	local link = ( args.link or &#039;&#039; )&lt;br /&gt;
	if mw.ustring.lower( link ) == &#039;none&#039; then&lt;br /&gt;
		link = &#039;&#039;&lt;br /&gt;
	elseif link ~= &#039;&#039; then&lt;br /&gt;
		local linkPrefix = ( not link:find( &#039;//&#039; ) and args.linkprefix ) or &#039;&#039;&lt;br /&gt;
		link = linkPrefix .. link&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local scale = args.scale or default.scale&lt;br /&gt;
	local height = ( args.height or args.size or default.size ) * scale&lt;br /&gt;
	local width = ( args.width or args.size or default.size ) * scale&lt;br /&gt;
	local size = width .. &#039;x&#039; .. height .. &#039;px&#039;&lt;br /&gt;
	&lt;br /&gt;
	local styles = {}&lt;br /&gt;
	if height ~= default.size then&lt;br /&gt;
		styles[#styles + 1] = &#039;height:&#039; .. height .. &#039;px&#039;&lt;br /&gt;
	end&lt;br /&gt;
	if width ~= default.size then&lt;br /&gt;
		styles[#styles + 1] = &#039;width:&#039; .. width .. &#039;px&#039;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local name = args.name or &#039;&#039;&lt;br /&gt;
	if name == &#039;InvSprite&#039; then&lt;br /&gt;
		name = &#039;Invicon&#039;&lt;br /&gt;
	end&lt;br /&gt;
	local file = &#039;&#039;&lt;br /&gt;
	&lt;br /&gt;
	if mod == &#039;Minecraft&#039; or mod == &#039;minecraft&#039; then&lt;br /&gt;
		file = name .. &#039; &#039; .. nameId:gsub(&#039;[- ]&#039;, &#039;_&#039;) .. &#039;.png&#039;&lt;br /&gt;
	else&lt;br /&gt;
		file = name .. &#039; &#039; .. mod .. &#039; &#039; .. nameId .. &#039;.png&#039;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local altText = &#039;&#039;&lt;br /&gt;
	if link == &#039;&#039; then&lt;br /&gt;
		altText = file .. &#039;: Sprite image for &#039; .. nameId .. &#039; in &#039; .. mod&lt;br /&gt;
	end&lt;br /&gt;
	if id == &#039;&#039; then&lt;br /&gt;
		file = &#039;Grid Unknown.png&#039;&lt;br /&gt;
		altText = &#039;Unknown sprite image&#039;&lt;br /&gt;
	end&lt;br /&gt;
	local sprite = mw.html.create( &#039;span&#039; ):addClass( &#039;sprite-file&#039; )&lt;br /&gt;
	local img = &#039;[[File:&#039; .. file .. &#039;|&#039; .. size .. &#039;|link=&#039; .. link .. &#039;|alt=&#039; .. altText .. &#039;|class=pixel-image|&#039; .. ( args.title or &#039;&#039; ) .. &#039;]]&#039;&lt;br /&gt;
	sprite:node( img )&lt;br /&gt;
	&lt;br /&gt;
	local align = args.align or default.align&lt;br /&gt;
	if align ~= default.align then&lt;br /&gt;
		styles[#styles + 1] = &#039;--vertical-align:&#039; .. align&lt;br /&gt;
	end&lt;br /&gt;
	styles[#styles + 1] = args.css&lt;br /&gt;
	&lt;br /&gt;
	sprite:cssText( table.concat( styles, &#039;;&#039; ) )&lt;br /&gt;
	&lt;br /&gt;
	local root&lt;br /&gt;
	local spriteText&lt;br /&gt;
	if args.text then&lt;br /&gt;
		if not args[&#039;wrap&#039;] then&lt;br /&gt;
			root = mw.html.create( &#039;span&#039; ):addClass( &#039;nowrap&#039; )&lt;br /&gt;
		end&lt;br /&gt;
		spriteText = mw.html.create( &#039;span&#039; ):addClass( &#039;sprite-text&#039; ):wikitext( args.text )&lt;br /&gt;
		if args.title then&lt;br /&gt;
			spriteText:attr( &#039;title&#039;, args.title )&lt;br /&gt;
		else&lt;br /&gt;
			spriteText:attr( &#039;title&#039;, nameId )&lt;br /&gt;
		end&lt;br /&gt;
		if link ~= &#039;&#039; then&lt;br /&gt;
			-- External link&lt;br /&gt;
			if link:find( &#039;//&#039; ) then&lt;br /&gt;
				spriteText = &#039;[&#039; .. link .. &#039; &#039; .. tostring( spriteText ) .. &#039;]&#039;&lt;br /&gt;
			else&lt;br /&gt;
				spriteText = &#039;[[&#039; .. link .. &#039;|&#039; .. tostring( spriteText ) .. &#039;]]&#039;&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if not root then&lt;br /&gt;
		root = mw.html.create( &#039;&#039; )&lt;br /&gt;
	end&lt;br /&gt;
	root:node( sprite )&lt;br /&gt;
	if spriteText then&lt;br /&gt;
		root:node( spriteText )&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return tostring( root )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.link( f )&lt;br /&gt;
	local args = f&lt;br /&gt;
	if f == mw.getCurrentFrame() then&lt;br /&gt;
		args = require( &#039;Module:ProcessArgs&#039; ).merge( true )&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local link = args[1]&lt;br /&gt;
	if args[1] and not args.id then&lt;br /&gt;
		link = args[1]:match( &#039;^(.-)%+&#039; ) or args[1]&lt;br /&gt;
	end&lt;br /&gt;
	local text&lt;br /&gt;
	if not args.notext then&lt;br /&gt;
		text = args.text or args[2] or &#039;&#039;&lt;br /&gt;
		&lt;br /&gt;
		if text == &#039;&#039; then&lt;br /&gt;
			local nameStart = (link:find( &#039;:&#039; ) or 0 ) + 1&lt;br /&gt;
			if nameStart - 1 == #link then&lt;br /&gt;
				nameStart = 1&lt;br /&gt;
			end&lt;br /&gt;
			text = link:sub( nameStart, ( link:find( &#039;[,%[]&#039;, nameStart ) or 0 ) - 1 )&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	args[1] = args.id or args[1]&lt;br /&gt;
	args.link = args.link or link&lt;br /&gt;
	args.text = text&lt;br /&gt;
	&lt;br /&gt;
	return p.sprite( args )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Patbox</name></author>
	</entry>
	<entry>
		<id>https://modded.wiki/index.php?title=Module:SpriteFile&amp;diff=13587</id>
		<title>Module:SpriteFile</title>
		<link rel="alternate" type="text/html" href="https://modded.wiki/index.php?title=Module:SpriteFile&amp;diff=13587"/>
		<updated>2026-01-29T19:45:09Z</updated>

		<summary type="html">&lt;p&gt;Patbox: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
function p.sprite( f )&lt;br /&gt;
	local args = f&lt;br /&gt;
	if f == mw.getCurrentFrame() then&lt;br /&gt;
		args = require( &#039;Module:ProcessArgs&#039; ).merge( true )&lt;br /&gt;
	else&lt;br /&gt;
		f = mw.getCurrentFrame()&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- Default settings&lt;br /&gt;
	local default = {&lt;br /&gt;
		scale = 1,&lt;br /&gt;
		size = 16,&lt;br /&gt;
		align = &#039;text-top&#039;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	local id = mw.text.trim( tostring( args[1] or &#039;&#039; ) )&lt;br /&gt;
	&lt;br /&gt;
	if not args.keepcase then&lt;br /&gt;
		id = mw.ustring.lower( id ):gsub( &#039;[%s%+]&#039;, &#039;-&#039; )&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local mod = id:match( &#039;([^:%]]+):&#039; ) or &amp;quot;Minecraft&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	local nameStart = ( id:find( &#039;:&#039; ) or id:find( &#039;%]&#039; ) or 0 ) + 1&lt;br /&gt;
	if nameStart - 1 == #id then&lt;br /&gt;
		nameStart = 1&lt;br /&gt;
	end&lt;br /&gt;
	local nameId = id:sub( nameStart, ( id:find( &#039;[,%[]&#039;, nameStart ) or 0 ) - 1 )&lt;br /&gt;
	&lt;br /&gt;
	local link = ( args.link or &#039;&#039; )&lt;br /&gt;
	if mw.ustring.lower( link ) == &#039;none&#039; then&lt;br /&gt;
		link = &#039;&#039;&lt;br /&gt;
	elseif link ~= &#039;&#039; then&lt;br /&gt;
		local linkPrefix = ( not link:find( &#039;//&#039; ) and args.linkprefix ) or &#039;&#039;&lt;br /&gt;
		link = linkPrefix .. link&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local scale = args.scale or default.scale&lt;br /&gt;
	local height = ( args.height or args.size or default.size ) * scale&lt;br /&gt;
	local width = ( args.width or args.size or default.size ) * scale&lt;br /&gt;
	local size = width .. &#039;x&#039; .. height .. &#039;px&#039;&lt;br /&gt;
	&lt;br /&gt;
	local styles = {}&lt;br /&gt;
	if height ~= default.size then&lt;br /&gt;
		styles[#styles + 1] = &#039;height:&#039; .. height .. &#039;px&#039;&lt;br /&gt;
	end&lt;br /&gt;
	if width ~= default.size then&lt;br /&gt;
		styles[#styles + 1] = &#039;width:&#039; .. width .. &#039;px&#039;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local name = args.name or &#039;&#039;&lt;br /&gt;
	if name == &#039;InvSprite&#039; then&lt;br /&gt;
		name = &#039;Invicon&#039;&lt;br /&gt;
	end&lt;br /&gt;
	local file = &#039;&#039;&lt;br /&gt;
	&lt;br /&gt;
	if mod == &#039;Minecraft&#039; or mod == &#039;minecraft&#039; then&lt;br /&gt;
		file = name .. &#039; &#039; .. nameId:replace(&#039;[- ]&#039;, &#039;_&#039;) .. &#039;.png&#039;&lt;br /&gt;
	else&lt;br /&gt;
		file = name .. &#039; &#039; .. mod .. &#039; &#039; .. nameId .. &#039;.png&#039;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local altText = &#039;&#039;&lt;br /&gt;
	if link == &#039;&#039; then&lt;br /&gt;
		altText = file .. &#039;: Sprite image for &#039; .. nameId .. &#039; in &#039; .. mod&lt;br /&gt;
	end&lt;br /&gt;
	if id == &#039;&#039; then&lt;br /&gt;
		file = &#039;Grid Unknown.png&#039;&lt;br /&gt;
		altText = &#039;Unknown sprite image&#039;&lt;br /&gt;
	end&lt;br /&gt;
	local sprite = mw.html.create( &#039;span&#039; ):addClass( &#039;sprite-file&#039; )&lt;br /&gt;
	local img = &#039;[[File:&#039; .. file .. &#039;|&#039; .. size .. &#039;|link=&#039; .. link .. &#039;|alt=&#039; .. altText .. &#039;|class=pixel-image|&#039; .. ( args.title or &#039;&#039; ) .. &#039;]]&#039;&lt;br /&gt;
	sprite:node( img )&lt;br /&gt;
	&lt;br /&gt;
	local align = args.align or default.align&lt;br /&gt;
	if align ~= default.align then&lt;br /&gt;
		styles[#styles + 1] = &#039;--vertical-align:&#039; .. align&lt;br /&gt;
	end&lt;br /&gt;
	styles[#styles + 1] = args.css&lt;br /&gt;
	&lt;br /&gt;
	sprite:cssText( table.concat( styles, &#039;;&#039; ) )&lt;br /&gt;
	&lt;br /&gt;
	local root&lt;br /&gt;
	local spriteText&lt;br /&gt;
	if args.text then&lt;br /&gt;
		if not args[&#039;wrap&#039;] then&lt;br /&gt;
			root = mw.html.create( &#039;span&#039; ):addClass( &#039;nowrap&#039; )&lt;br /&gt;
		end&lt;br /&gt;
		spriteText = mw.html.create( &#039;span&#039; ):addClass( &#039;sprite-text&#039; ):wikitext( args.text )&lt;br /&gt;
		if args.title then&lt;br /&gt;
			spriteText:attr( &#039;title&#039;, args.title )&lt;br /&gt;
		else&lt;br /&gt;
			spriteText:attr( &#039;title&#039;, nameId )&lt;br /&gt;
		end&lt;br /&gt;
		if link ~= &#039;&#039; then&lt;br /&gt;
			-- External link&lt;br /&gt;
			if link:find( &#039;//&#039; ) then&lt;br /&gt;
				spriteText = &#039;[&#039; .. link .. &#039; &#039; .. tostring( spriteText ) .. &#039;]&#039;&lt;br /&gt;
			else&lt;br /&gt;
				spriteText = &#039;[[&#039; .. link .. &#039;|&#039; .. tostring( spriteText ) .. &#039;]]&#039;&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if not root then&lt;br /&gt;
		root = mw.html.create( &#039;&#039; )&lt;br /&gt;
	end&lt;br /&gt;
	root:node( sprite )&lt;br /&gt;
	if spriteText then&lt;br /&gt;
		root:node( spriteText )&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return tostring( root )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.link( f )&lt;br /&gt;
	local args = f&lt;br /&gt;
	if f == mw.getCurrentFrame() then&lt;br /&gt;
		args = require( &#039;Module:ProcessArgs&#039; ).merge( true )&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local link = args[1]&lt;br /&gt;
	if args[1] and not args.id then&lt;br /&gt;
		link = args[1]:match( &#039;^(.-)%+&#039; ) or args[1]&lt;br /&gt;
	end&lt;br /&gt;
	local text&lt;br /&gt;
	if not args.notext then&lt;br /&gt;
		text = args.text or args[2] or &#039;&#039;&lt;br /&gt;
		&lt;br /&gt;
		if text == &#039;&#039; then&lt;br /&gt;
			local nameStart = (link:find( &#039;:&#039; ) or 0 ) + 1&lt;br /&gt;
			if nameStart - 1 == #link then&lt;br /&gt;
				nameStart = 1&lt;br /&gt;
			end&lt;br /&gt;
			text = link:sub( nameStart, ( link:find( &#039;[,%[]&#039;, nameStart ) or 0 ) - 1 )&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	args[1] = args.id or args[1]&lt;br /&gt;
	args.link = args.link or link&lt;br /&gt;
	args.text = text&lt;br /&gt;
	&lt;br /&gt;
	return p.sprite( args )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Patbox</name></author>
	</entry>
	<entry>
		<id>https://modded.wiki/index.php?title=File:Krzeslo.png&amp;diff=13237</id>
		<title>File:Krzeslo.png</title>
		<link rel="alternate" type="text/html" href="https://modded.wiki/index.php?title=File:Krzeslo.png&amp;diff=13237"/>
		<updated>2025-10-05T07:24:56Z</updated>

		<summary type="html">&lt;p&gt;Patbox: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Patbox</name></author>
	</entry>
	<entry>
		<id>https://modded.wiki/index.php?title=Template:Hungerbar/doc&amp;diff=12905</id>
		<title>Template:Hungerbar/doc</title>
		<link rel="alternate" type="text/html" href="https://modded.wiki/index.php?title=Template:Hungerbar/doc&amp;diff=12905"/>
		<updated>2025-07-23T06:30:00Z</updated>

		<summary type="html">&lt;p&gt;Patbox: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Documentation header}}&lt;br /&gt;
{{lua|Iconbar}}&lt;br /&gt;
This template creates a food point bar.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parameter&lt;br /&gt;
! Function&lt;br /&gt;
! Default value&lt;br /&gt;
|-&lt;br /&gt;
| {{p|1}} || Integer hunger value between 0 and 32. Empty heart = 0, half heart = 1, full heart = 2, etc. || 0&lt;br /&gt;
|-&lt;br /&gt;
| {{p|2}} || Width of each icon in pixels. || 18&lt;br /&gt;
|-&lt;br /&gt;
| {{p|link}} || Page linked when clicking on an icon. || &#039;&#039;None&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| {{p|total}} || Total amount of food points to be shown. || 0&lt;br /&gt;
|-&lt;br /&gt;
| {{p|poisoned}} || Shows the poisoned hunger bar. || 0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Code&lt;br /&gt;
! Result&lt;br /&gt;
|-&lt;br /&gt;
| {{t|hungerbar}} || {{hungerbar}}&lt;br /&gt;
|-&lt;br /&gt;
| {{t|hungerbar|0|9px}} || {{hungerbar|0|9px}}&lt;br /&gt;
|-&lt;br /&gt;
| {{t|hungerbar|1}} || {{hungerbar|1}}&lt;br /&gt;
|-&lt;br /&gt;
| {{t|hungerbar|1|9px|4=poisoned=1}} || {{hungerbar|1|9px|poisoned=1}}&lt;br /&gt;
|-&lt;br /&gt;
| {{t|hungerbar|2}} || {{hungerbar|2}}&lt;br /&gt;
|-&lt;br /&gt;
| {{t|hungerbar|2|9px|4=poisoned=1}} || {{hungerbar|2|9px|poisoned=1}}&lt;br /&gt;
|-&lt;br /&gt;
| {{t|hungerbar|5}} || {{hungerbar|5}}&lt;br /&gt;
|-&lt;br /&gt;
| {{t|hungerbar|5|3=poisoned=1}} || {{hungerbar|5|poisoned=1}}&lt;br /&gt;
|-&lt;br /&gt;
| {{t|hungerbar|10}} || {{hungerbar|10}}&lt;br /&gt;
|-&lt;br /&gt;
| {{t|hungerbar|10|3=poisoned=1}} || {{hungerbar|10|poisoned=1}}&lt;br /&gt;
|-&lt;br /&gt;
| {{t|hungerbar|5|9px}} || {{hungerbar|5|9px}}&lt;br /&gt;
|-&lt;br /&gt;
| {{t|hungerbar|5|9px|4=poisoned=1}} || {{hungerbar|5|9px|poisoned=1}}&lt;br /&gt;
|-&lt;br /&gt;
| {{t|hungerbar|7|45px}} || {{hungerbar|7|45px}}&lt;br /&gt;
|-&lt;br /&gt;
| {{t|hungerbar|7|45px|4=poisoned=1}} || {{hungerbar|7|45px|poisoned=1}}&lt;br /&gt;
|-&lt;br /&gt;
| {{t|hungerbar|7|3=total=20}} || {{hungerbar|7|total=20}}&lt;br /&gt;
|-&lt;br /&gt;
| {{t|hungerbar|7|3=total=20|4=poisoned=1}} || {{hungerbar|7|total=20|poisoned=1}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
{{Iconbar see also}}&lt;br /&gt;
&amp;lt;includeonly&amp;gt;&lt;br /&gt;
[[Category:Image templates]]&lt;br /&gt;
&lt;br /&gt;
[[de:Vorlage:Hungerleiste]]&lt;br /&gt;
[[fr:Modèle:Faim]]&lt;br /&gt;
[[nl:Sjabloon:Hungerbar]]&lt;br /&gt;
[[pl: Szablon:Hungerbar]]&lt;br /&gt;
[[pt:Predefinição:Barra de fome]]&lt;br /&gt;
[[ru: Шаблон:Голодбар]]&lt;br /&gt;
[[th:แม่แบบ:Hungerbar]]&lt;br /&gt;
[[uk:Шаблон:Hungerbar]]&lt;br /&gt;
[[zh:Template:Hungerbar]]&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[de:Vorlage:Hungerleiste/Dokumentation]]&lt;br /&gt;
[[fr:Modèle:Faim/doc]]&lt;br /&gt;
[[nl:Sjabloon:Hungerbar/doc]]&lt;br /&gt;
[[pl: Szablon:Hungerbar/doc]]&lt;br /&gt;
[[pt:Predefinição:Barra de fome/doc]]&lt;br /&gt;
[[ru: Шаблон:Голодбар/док]]&lt;br /&gt;
[[th:แม่แบบ:Hungerbar/doc]]&lt;br /&gt;
[[uk:Шаблон:Hungerbar/док]]&lt;br /&gt;
[[zh:Template:Hungerbar/doc]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Patbox</name></author>
	</entry>
	<entry>
		<id>https://modded.wiki/index.php?title=Module:Documentation/styles.css&amp;diff=12903</id>
		<title>Module:Documentation/styles.css</title>
		<link rel="alternate" type="text/html" href="https://modded.wiki/index.php?title=Module:Documentation/styles.css&amp;diff=12903"/>
		<updated>2025-07-23T06:29:56Z</updated>

		<summary type="html">&lt;p&gt;Patbox: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;.documentation {&lt;br /&gt;
	background-color: hsl(215, 75%, 92%);&lt;br /&gt;
	border: 1px solid #ccc;&lt;br /&gt;
	padding: 0.8em 1em 0.7em;&lt;br /&gt;
	margin: 1em 0;&lt;br /&gt;
	clear: both;&lt;br /&gt;
}&lt;br /&gt;
body.wgl-theme-dark .documentation {&lt;br /&gt;
	background-color: hsl(215, 25%, 8%);&lt;br /&gt;
	border-color: #121212;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.documentation-header-top,&lt;br /&gt;
.documentation-header-bottom {&lt;br /&gt;
	padding: 0.8em 1em 0.7em;&lt;br /&gt;
	background-color: hsl(215, 75%, 85%);&lt;br /&gt;
}&lt;br /&gt;
body.wgl-theme-dark .documentation-header-top,&lt;br /&gt;
body.wgl-theme-dark .documentation-header-bottom {&lt;br /&gt;
	background-color: hsl(215, 25%, 12%);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.documentation-header-top {&lt;br /&gt;
	margin: -0.8em -1em 0.8em;&lt;br /&gt;
	border-bottom: inherit;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.documentation-header-bottom {&lt;br /&gt;
	margin: 0.7em -1em -0.7em;&lt;br /&gt;
	border-top: inherit;&lt;br /&gt;
	clear: both;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.documentation #documentation-jump-to-code {&lt;br /&gt;
    white-space: nowrap;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.documentation .documentation-header-tools {&lt;br /&gt;
    float: right;&lt;br /&gt;
    margin-left: 2em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.documentation-header-title {&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	font-size: 130%;&lt;br /&gt;
	margin-right: 1em;&lt;br /&gt;
	line-height: 1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.documentation-badDoc {&lt;br /&gt;
	background-color: hsl(40, 75%, 92%);&lt;br /&gt;
}&lt;br /&gt;
body.wgl-theme-dark .documentation-badDoc {&lt;br /&gt;
	background-color: hsl(40, 25%, 8%);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.documentation-badDoc .documentation-header-top,&lt;br /&gt;
.documentation-badDoc .documentation-header-bottom {&lt;br /&gt;
	background-color: hsl(40, 75%, 85%);&lt;br /&gt;
}&lt;br /&gt;
body.wgl-theme-dark .documentation-badDoc .documentation-header-top,&lt;br /&gt;
body.wgl-theme-dark .documentation-badDoc .documentation-header-bottom {&lt;br /&gt;
	background-color: hsl(40, 25%, 12%);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.documentation-noDoc {&lt;br /&gt;
	background-color: hsl(0, 0%, 92%);&lt;br /&gt;
}&lt;br /&gt;
body.wgl-theme-dark .documentation-noDoc {&lt;br /&gt;
	background-color: hsl(0, 0%, 8%);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.documentation-noDoc .documentation-header-top,&lt;br /&gt;
.documentation-noDoc .documentation-header-bottom {&lt;br /&gt;
	background-color: hsl(0, 0%, 85%);&lt;br /&gt;
}&lt;br /&gt;
body.wgl-theme-dark .documentation-noDoc .documentation-header-top,&lt;br /&gt;
body.wgl-theme-dark .documentation-noDoc .documentation-header-bottom {&lt;br /&gt;
	background-color: hsl(0, 0%, 12%);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media screen and (max-width: 480px) {&lt;br /&gt;
    .documentation .documentation-header-tools {&lt;br /&gt;
        float: none;&lt;br /&gt;
        margin-left: 0;&lt;br /&gt;
        display: block;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
[[Category:Template styles]]&lt;br /&gt;
[[ja:モジュール:Documentation/styles.css]]&lt;br /&gt;
[[uk:Модуль:Документація/styles.css]]&lt;br /&gt;
[[zh:Module:Documentation/styles.css]]&lt;br /&gt;
*/&lt;/div&gt;</summary>
		<author><name>Patbox</name></author>
	</entry>
	<entry>
		<id>https://modded.wiki/index.php?title=Template:Hunger/doc&amp;diff=12901</id>
		<title>Template:Hunger/doc</title>
		<link rel="alternate" type="text/html" href="https://modded.wiki/index.php?title=Template:Hunger/doc&amp;diff=12901"/>
		<updated>2025-07-23T06:29:55Z</updated>

		<summary type="html">&lt;p&gt;Patbox: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Documentation header}}&lt;br /&gt;
This template displays hunger points and visualizes these with the help of a [[Template:Hungerbar|hunger bar]].&lt;br /&gt;
&lt;br /&gt;
For a more compact display, all hunger point values above 10 (5 drumsticks) are replaced by {{hungerbar|2|9px}} × [hunger / 2].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parameter&lt;br /&gt;
! Function&lt;br /&gt;
! Default value&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; || Amount of icons to show. || 0&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; || Size of icons. || 9px&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;poisoned&amp;lt;/code&amp;gt; || Show yellow-green hunger icons. || &#039;&#039;None&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;notag&amp;lt;/code&amp;gt; || Remove number and parenthesis. || &#039;&#039;None&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;total&amp;lt;/code&amp;gt; || Total amount of shanks to show, any more than the set amount in {{p|1}} are shown as empty. || 0&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;bar&amp;lt;/code&amp;gt; || Sets {{p|total}} to &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt; and replaces {{p|1}}. Essentially used to display a hunger bar. || &#039;&#039;None&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Code&lt;br /&gt;
! Result&lt;br /&gt;
|-&lt;br /&gt;
| {{t|hunger}} || {{hunger}}&lt;br /&gt;
|-&lt;br /&gt;
| {{t|hunger|0}} || {{hunger|0}}&lt;br /&gt;
|-&lt;br /&gt;
| {{t|hunger|4}} || {{hunger|4}}&lt;br /&gt;
|-&lt;br /&gt;
| {{t|hunger|4|total{{=}}20}} || {{hunger|4|total=20}}&lt;br /&gt;
|-&lt;br /&gt;
| {{t|hunger|7|poisoned{{=}}1}} || {{hunger|7|poisoned=1}}&lt;br /&gt;
|-&lt;br /&gt;
| {{t|hunger|4|18px}} || {{hunger|4|18px}}&lt;br /&gt;
|-&lt;br /&gt;
| {{t|hunger|20|notag{{=}}1}} || {{hunger|20|notag=1}}&lt;br /&gt;
|-&lt;br /&gt;
| {{t|hunger|26|notag{{=}}1}} || {{hunger|26|notag=1}}&lt;br /&gt;
|-&lt;br /&gt;
| {{t|hunger|20}} || {{hunger|20}}&lt;br /&gt;
|-&lt;br /&gt;
| {{t|hunger|24}} || {{hunger|24}}&lt;br /&gt;
|-&lt;br /&gt;
| {{t|hunger|41}} || {{hunger|41}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;includeonly&amp;gt;&lt;br /&gt;
[[Category:Image templates]]&lt;br /&gt;
&lt;br /&gt;
[[de:Vorlage:HP]]&lt;br /&gt;
[[es:Plantilla:Hambre]]&lt;br /&gt;
[[it:Template:Barra fame]]&lt;br /&gt;
[[ko:틀:Hunger]]&lt;br /&gt;
[[nl:Sjabloon:Hunger]]&lt;br /&gt;
[[pt:Predefinição:Fome]]&lt;br /&gt;
[[ru:Шаблон:Голод]]&lt;br /&gt;
[[uk:Шаблон:Голод]]&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[es:Plantilla:Hambre/doc]]&lt;br /&gt;
[[it:Template:Barra fame/doc]]&lt;br /&gt;
[[nl:Sjabloon:Hunger/doc]]&lt;br /&gt;
[[ru:Шаблон:Голод/док]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Patbox</name></author>
	</entry>
	<entry>
		<id>https://modded.wiki/index.php?title=Module:Documentation&amp;diff=12899</id>
		<title>Module:Documentation</title>
		<link rel="alternate" type="text/html" href="https://modded.wiki/index.php?title=Module:Documentation&amp;diff=12899"/>
		<updated>2025-07-23T06:29:52Z</updated>

		<summary type="html">&lt;p&gt;Patbox: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
-- Load modules (language wikis exclusive)&lt;br /&gt;
-- ...&lt;br /&gt;
&lt;br /&gt;
-- Customizable strings&lt;br /&gt;
local i18n = {&lt;br /&gt;
	-- default settings, change when necessary&lt;br /&gt;
	defaultDocPage = &#039;doc&#039;,	-- documentation page suffix&lt;br /&gt;
	defaultSandboxPage = &#039;sandbox&#039;,	-- sandbox page suffix&lt;br /&gt;
	defaultTestCasePage = &#039;testcases&#039;,	-- testcases page suffix&lt;br /&gt;
	defaultPreload = &#039;Template:Documentation/preload&#039;,	-- page that stores qualified documentation page contents&lt;br /&gt;
	defaultStyles = &#039;Module:Documentation/styles.css&#039;,	-- stylesheet for this module when using TemplateStyles, remove or set to nil if your wiki not use this&lt;br /&gt;
&lt;br /&gt;
	-- format strings, should not be translated&lt;br /&gt;
	commonInternalLink = &#039;[[%s]]&#039;,&lt;br /&gt;
	commonInternalLinkPipe = &#039;[[%s|%s]]&#039;,&lt;br /&gt;
	commonExternalLink = &#039;[%s]&#039;,&lt;br /&gt;
	commonExternalLinkWithName = &#039;[%s %s]&#039;,&lt;br /&gt;
	commonNamespacedPage = &#039;%s:%s&#039;,&lt;br /&gt;
	commonNamespacedPageWithSub = &#039;%s:%s/%s&#039;,&lt;br /&gt;
&lt;br /&gt;
	-- namespace names, translate if your language prefers localized namespace name, although remain it untouched most likely not affect anything&lt;br /&gt;
	namespaceCategory = &#039;Category&#039;,&lt;br /&gt;
	namespaceSpecial = &#039;Special&#039;,&lt;br /&gt;
	namespaceUser = &#039;User&#039;,&lt;br /&gt;
&lt;br /&gt;
	-- names of special pages, translate if your language prefers localized namespace name, although remain it untouched will still correctly linked to target page&lt;br /&gt;
	specialPurge = &#039;Purge&#039;,&lt;br /&gt;
	specialEdit = &#039;EditPage&#039;,&lt;br /&gt;
	specialHistory = &#039;PageHistory&#039;,&lt;br /&gt;
&lt;br /&gt;
	-- translate following types if your language displays differ&lt;br /&gt;
	pageType_page = &#039;page&#039;,&lt;br /&gt;
	pageType_template = &#039;template&#039;,&lt;br /&gt;
	pageType_module = &#039;module&#039;,&lt;br /&gt;
	pageType_stylesheet = &#039;stylesheet&#039;,&lt;br /&gt;
	pageType_script = &#039;script&#039;,&lt;br /&gt;
	pageType_json = &#039;JSON&#039;,&lt;br /&gt;
	pageType_message = &#039;message&#039;,&lt;br /&gt;
&lt;br /&gt;
	-- modify them if your wiki use different style to displaying links&lt;br /&gt;
	linkBar = &#039;%s&#039;,	-- format used for whole link bar&lt;br /&gt;
	linkFormat = mw.text.nowiki( &#039;[&#039; ) .. &#039;%s&#039; .. mw.text.nowiki( &#039;]&#039; ),	-- format used for each individual links&lt;br /&gt;
	linkSeparator = &#039; &#039;,	-- separator between links&lt;br /&gt;
&lt;br /&gt;
	-- name of different type of links, change them if necessary&lt;br /&gt;
	linkTextPurge = mw.message.new( &#039;smw_purge&#039; ):plain():lower(),&lt;br /&gt;
	linkTextView = mw.message.new( &#039;view&#039; ):plain():lower(),&lt;br /&gt;
	linkTextEdit = mw.message.new( &#039;edit&#039; ):plain():lower(),&lt;br /&gt;
	linkTextHistory = mw.message.new( &#039;history_short&#039; ):plain():lower(),&lt;br /&gt;
	linkTextCreate = mw.message.new( &#039;create&#039; ):plain():lower(),&lt;br /&gt;
&lt;br /&gt;
	-- strings used in p.create(): contents shown when using {{docc}} or {{subst:docc}}&lt;br /&gt;
	createOutputFormat = &#039;%s%s&#039;,	-- overall format&lt;br /&gt;
	createSplitDocPagePrompt = &#039;\n&amp;lt;!-- Put categories/interwikis on the documentation page --&amp;gt;&#039;,	-- this string is shown when a separate documentation page is created&lt;br /&gt;
	createNoSubstCategory = &#039;Pages with templates requiring substitution&#039;,	-- tracking category for using {{docc}} without substitution&lt;br /&gt;
&lt;br /&gt;
	-- strings used in p.docPage(): contents shown in documentation page&lt;br /&gt;
	docPagePrompt = &#039;This is the documentation page. It %s transcluded into %s. See [[Template:Documentation]] for more information.&#039;,	-- message shown as documentation header in documentation pages. Params: word used when page is a module or not; code page&#039;s type&lt;br /&gt;
	docPagePromptWill = &#039;is&#039;,	-- word used when code page is a module page&lt;br /&gt;
	docPagePromptShould = &#039;should be&#039;,	-- word used when code is not a module page&lt;br /&gt;
	docPageBadDocPrompt = &amp;quot;&amp;lt;br&amp;gt;&#039;&#039;&#039;This %s&#039;s documentation needs improving or additional information.&#039;&#039;&#039;&amp;quot;,	-- additional message if a documentation page marked as baddoc&lt;br /&gt;
	docPageCategory = &#039;Documentation pages&#039;,	-- tracking category for documentation pages&lt;br /&gt;
&lt;br /&gt;
	-- strings used in p.page(): contents shown in code page&lt;br /&gt;
	pageNoDocPrompt = &amp;quot;&#039;&#039;&#039;This %s has no documentation. If you know how to use this %s, please create it.&#039;&#039;&#039;&amp;quot;,	-- message shown when a separate documentation page is not exist, both parameters refers to page type&lt;br /&gt;
	pageNoDocCategory = &#039;%ss with no documentation&#039;,	-- tracking category for pages without documentation, parameters refers to page type&lt;br /&gt;
	pageNoDocCategoryDefault = &#039;Pages with no documentation&#039;,	-- fallback tracking category for pages without documentation&lt;br /&gt;
	pageBadDocPrompt = &amp;quot;&#039;&#039;&#039;This %s&#039;s documentation needs improving or additional information.&#039;&#039;&#039;\n&amp;quot;,	-- message shown when a documentation page marked as baddoc, both parameters refers to page type&lt;br /&gt;
	pageBadDocCategory = &#039;%ss with bad documentation&#039;,	-- tracking category for pages marked as baddoc, parameters refers to page type&lt;br /&gt;
	pageBadDocCategoryDefault = &#039;Pages with bad documentation&#039;,	-- fallback tracking category for pages marked as baddoc&lt;br /&gt;
	pageDocHeaderTitle = &#039;Documentation&#039;,	-- message shown as the title of the documentation header&lt;br /&gt;
	pageDocJumpToCode = &#039;Jump to code ↴&#039;,	-- text of the link to jump to the code&lt;br /&gt;
	pageDocHeaderBottom = &#039;The above documentation is transcluded from %s.&#039;,	-- message shown as the bottom line of the documentation header&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- Customizable functions&lt;br /&gt;
local function pageCategoryHandler( category )&lt;br /&gt;
	return mw.getCurrentFrame():expandTemplate{ title = &#039;translation category&#039;, args = { category, project = &#039;0&#039; } }&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Load modules&lt;br /&gt;
local loadStyles = require( &#039;Module:TSLoader&#039; ).call&lt;br /&gt;
&lt;br /&gt;
local static = require( &#039;Module:Static&#039; )&lt;br /&gt;
if not static.Documentation then&lt;br /&gt;
	static.Documentation = {}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Internal functions&lt;br /&gt;
local function getType( namespace, page )&lt;br /&gt;
	local pageType = &#039;page&#039;&lt;br /&gt;
	if namespace == &#039;Template&#039; then&lt;br /&gt;
		pageType = &#039;template&#039;&lt;br /&gt;
	elseif namespace == &#039;Module&#039; then&lt;br /&gt;
		pageType = &#039;module&#039;&lt;br /&gt;
	elseif page.fullText:gsub( &#039;/&#039; .. i18n.defaultDocPage .. &#039;$&#039;, &#039;&#039; ):find( &#039;%.css$&#039; ) then&lt;br /&gt;
		pageType = &#039;stylesheet&#039;&lt;br /&gt;
	elseif page.fullText:gsub( &#039;/&#039; .. i18n.defaultDocPage .. &#039;$&#039;, &#039;&#039; ):find( &#039;%.js$&#039; ) then&lt;br /&gt;
		pageType = &#039;script&#039;&lt;br /&gt;
	elseif page.fullText:gsub( &#039;/&#039; .. i18n.defaultDocPage .. &#039;$&#039;, &#039;&#039; ):find( &#039;%.json$&#039; ) then&lt;br /&gt;
		pageType = &#039;json&#039;&lt;br /&gt;
	elseif namespace == &#039;MediaWiki&#039; then&lt;br /&gt;
		pageType = &#039;message&#039;&lt;br /&gt;
	end&lt;br /&gt;
	return pageType&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getDisplayType( pageType )&lt;br /&gt;
	return i18n[ &#039;pageType_&#039; .. pageType ] or i18n.pageType_page&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Exported functions&lt;br /&gt;
function p.create( f )	-- Creating a documentation page or transclusion through {{subst:docc}}&lt;br /&gt;
	local args = require( &#039;Module:ProcessArgs&#039; ).norm()&lt;br /&gt;
	local page = mw.title.getCurrentTitle()&lt;br /&gt;
	local docPage = args.page or i18n.commonNamespacedPageWithSub:format( page.nsText, page.baseText, i18n.defaultDocPage )&lt;br /&gt;
&lt;br /&gt;
	local out&lt;br /&gt;
	if not args.content and tostring( page ) == docPage then&lt;br /&gt;
		local pageType = mw.ustring.lower( args.type or getType( page.nsText, page ) )&lt;br /&gt;
		local pageTypeDisplay = getDisplayType( pageType )&lt;br /&gt;
		out = f:preprocess( mw.title.new( i18n.defaultPreload ):getContent():gsub( &#039;$1&#039; , pageTypeDisplay ) )&lt;br /&gt;
	else&lt;br /&gt;
		local templateArgs = {}&lt;br /&gt;
		for _, key in ipairs{ &#039;type&#039;, &#039;page&#039;, &#039;content&#039;, &#039;nodoc&#039;, &#039;baddoc&#039; } do&lt;br /&gt;
			local val = args[ key ]&lt;br /&gt;
			if val then&lt;br /&gt;
				if key == &#039;content&#039; then val = &#039;\n&#039; .. val .. &#039;\n&#039; end&lt;br /&gt;
				table.insert( templateArgs, key .. &#039;=&#039; .. val )&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		out = &#039;{{documentation|&#039; .. table.concat( templateArgs, &#039;|&#039; ) .. &#039;}}&#039;&lt;br /&gt;
		out = out:gsub( &#039;|}}&#039;, &#039;}}&#039; )&lt;br /&gt;
		out = i18n.createOutputFormat:format( out, args.content and &#039;&#039; or i18n.createSplitDocPagePrompt )&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if not mw.isSubsting() then&lt;br /&gt;
		out = f:preprocess( out )&lt;br /&gt;
		if not args.nocat then&lt;br /&gt;
			out = out .. i18n.commonInternalLink:format( i18n.commonNamespacedPage:format( i18n.namespaceCategory, i18n.createNoSubstCategory ) )&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return out&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.docPage( f )	-- Header on the documentation page&lt;br /&gt;
	local args = require( &#039;Module:ProcessArgs&#039; ).merge( true )&lt;br /&gt;
	local badDoc = args.baddoc&lt;br /&gt;
&lt;br /&gt;
	if badDoc then&lt;br /&gt;
		static.Documentation.badDoc = &#039;1&#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local page = mw.title.getCurrentTitle()&lt;br /&gt;
&lt;br /&gt;
	local subpage = page.subpageText&lt;br /&gt;
	if subpage == i18n.defaultSandboxPage or subpage == i18n.defaultTestCasePage then&lt;br /&gt;
		page = page.basePageTitle&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local docPage = mw.title.new( args.page or i18n.commonNamespacedPageWithSub:format( page.nsText, page.baseText, i18n.defaultDocPage ) )&lt;br /&gt;
	if docPage ~= page then return end&lt;br /&gt;
&lt;br /&gt;
	local namespace = page.nsText&lt;br /&gt;
	local pageType = mw.ustring.lower( args.type or getType( namespace, page ) )&lt;br /&gt;
	local pageTypeDisplay = getDisplayType( pageType )&lt;br /&gt;
&lt;br /&gt;
	local body = mw.html.create( &#039;div&#039; ):addClass( &#039;documentation&#039; )&lt;br /&gt;
	body&lt;br /&gt;
		:addClass( badDoc and &#039;documentation-badDoc&#039; or &#039;&#039; )&lt;br /&gt;
		:tag( &#039;div&#039; ):addClass( &#039;documentation-header-tools&#039; )&lt;br /&gt;
			:wikitext( i18n.linkBar:format( i18n.linkFormat:format( i18n.commonInternalLinkPipe:format( i18n.commonNamespacedPageWithSub:format( i18n.namespaceSpecial, i18n.specialPurge, page.fullText ), i18n.linkTextPurge ) ) ) )&lt;br /&gt;
		:done()&lt;br /&gt;
		:wikitext( i18n.docPagePrompt:format( pageType == &#039;module&#039; and i18n.docPagePromptWill or i18n.docPagePromptShould, i18n.commonInternalLink:format( i18n.commonNamespacedPage:format( namespace, page.baseText ) ) ) )&lt;br /&gt;
	if badDoc then&lt;br /&gt;
		body:wikitext( i18n.docPageBadDocPrompt:format( pageTypeDisplay ) )&lt;br /&gt;
	end&lt;br /&gt;
	if not ( args.nocat or namespace == i18n.namespaceUser ) then&lt;br /&gt;
		body:wikitext( i18n.commonInternalLink:format( i18n.commonNamespacedPage:format( i18n.namespaceCategory, i18n.docPageCategory ) ) )&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return loadStyles( i18n.defaultStyles ) .. tostring( body )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.page( f )	-- Wrapper around the documentation on the main page&lt;br /&gt;
	-- mw.text.trim uses mw.ustring.gsub, which silently fails on large strings&lt;br /&gt;
	local function trim( s )&lt;br /&gt;
		return ( s:gsub( &#039;^[\t\r\n\f ]+&#039;, &#039;&#039; ):gsub( &#039;[\t\r\n\f ]+$&#039;, &#039;&#039; ) )&lt;br /&gt;
		--return string.gsub( s, &#039;^[\t\r\n\f ]*(.-)[\t\r\n\f ]*$&#039;, &#039;%1&#039; )&lt;br /&gt;
	end&lt;br /&gt;
	local args = require( &#039;Module:ProcessArgs&#039; ).merge( true )&lt;br /&gt;
	local page = mw.title.getCurrentTitle()&lt;br /&gt;
	local subpage = page.subpageText&lt;br /&gt;
	if subpage == i18n.defaultSandboxPage or subpage == i18n.defaultTestCasePage then&lt;br /&gt;
		page = page.basePageTitle&lt;br /&gt;
	end&lt;br /&gt;
	local namespace = page.nsText&lt;br /&gt;
	local docText = trim( args.content or &#039;&#039; )&lt;br /&gt;
	if docText == &#039;&#039; then docText = nil end&lt;br /&gt;
&lt;br /&gt;
	local docPage&lt;br /&gt;
	local noDoc&lt;br /&gt;
	if docText then&lt;br /&gt;
		docPage = page&lt;br /&gt;
	else&lt;br /&gt;
		docPage = mw.title.new( args.page or i18n.commonNamespacedPageWithSub:format( namespace, page.text, i18n.defaultDocPage ) )&lt;br /&gt;
		noDoc = args.nodoc or not docPage.exists&lt;br /&gt;
	end&lt;br /&gt;
	local badDoc = args.baddoc&lt;br /&gt;
	local pageType = mw.ustring.lower( args.type or getType( namespace, page ) )&lt;br /&gt;
	local pageTypeDisplay = getDisplayType( pageType )&lt;br /&gt;
&lt;br /&gt;
	if not docText and not noDoc then&lt;br /&gt;
		docText = trim( f:expandTemplate{ title = &#039;:&#039; .. docPage.fullText } )&lt;br /&gt;
		if static.Documentation.badDoc and static.Documentation.badDoc == &#039;1&#039; then&lt;br /&gt;
			badDoc = 1&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		if docText == &#039;&#039; then&lt;br /&gt;
			docText = nil&lt;br /&gt;
			noDoc = 1&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if docText then&lt;br /&gt;
		docText = &#039;\n&#039; .. docText .. &#039;\n&#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local docClass = &#039;&#039;&lt;br /&gt;
	local message&lt;br /&gt;
	local category&lt;br /&gt;
	if noDoc then&lt;br /&gt;
		docClass = &#039;documentation-noDoc&#039;&lt;br /&gt;
		message = i18n.pageNoDocPrompt:format( pageTypeDisplay, pageTypeDisplay )&lt;br /&gt;
		if not ( args.nocat or namespace == i18n.namespaceUser ) then&lt;br /&gt;
			category = i18n.pageNoDocCategory:format( pageTypeDisplay )&lt;br /&gt;
			if not mw.title.new( i18n.commonNamespacedPage:format( i18n.namespaceCategory, category ) ).exists then&lt;br /&gt;
				category = i18n.pageNoDocCategoryDefault&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	elseif badDoc then&lt;br /&gt;
		docClass = &#039;documentation-badDoc&#039;&lt;br /&gt;
		message = i18n.pageBadDocPrompt:format( pageTypeDisplay )&lt;br /&gt;
		if not ( args.nocat or namespace == i18n.namespaceUser ) then&lt;br /&gt;
			category = i18n.pageBadDocCategory:format( pageTypeDisplay )&lt;br /&gt;
			if not mw.title.new( i18n.commonNamespacedPage:format( i18n.namespaceCategory, category ) ).exists then&lt;br /&gt;
				category = i18n.pageBadDocCategoryDefault&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Generates the link bar&lt;br /&gt;
	local links = mw.html.create( &#039;span&#039; ):addClass( &#039;documentation-header-tools&#039; )&lt;br /&gt;
&lt;br /&gt;
	local linkList = {}&lt;br /&gt;
	if not noDoc then&lt;br /&gt;
		if page ~= docPage then&lt;br /&gt;
			table.insert( linkList, i18n.linkFormat:format( i18n.commonInternalLinkPipe:format( docPage.fullText, i18n.linkTextView ) ) )&lt;br /&gt;
		end&lt;br /&gt;
		table.insert( linkList, i18n.linkFormat:format( i18n.commonInternalLinkPipe:format( i18n.commonNamespacedPageWithSub:format( i18n.namespaceSpecial, i18n.specialEdit, docPage.fullText ), i18n.linkTextEdit ) ) )&lt;br /&gt;
		table.insert( linkList, i18n.linkFormat:format( i18n.commonInternalLinkPipe:format( i18n.commonNamespacedPageWithSub:format( i18n.namespaceSpecial, i18n.specialHistory, docPage.fullText ), i18n.linkTextHistory ) ) )&lt;br /&gt;
	else&lt;br /&gt;
		table.insert( linkList, i18n.linkFormat:format( i18n.commonExternalLinkWithName:format( docPage:canonicalUrl{ action = &#039;edit&#039;, preload = i18n.defaultPreload, preloadparams = pageTypeDisplay }, i18n.linkTextCreate ) ) )&lt;br /&gt;
	end&lt;br /&gt;
	table.insert( linkList, i18n.linkFormat:format( i18n.commonInternalLinkPipe:format( i18n.commonNamespacedPageWithSub:format( i18n.namespaceSpecial, i18n.specialPurge, docPage.fullText ), i18n.linkTextPurge ) ) )&lt;br /&gt;
	links:wikitext( i18n.linkBar:format( table.concat( linkList, i18n.linkSeparator ) ) )&lt;br /&gt;
&lt;br /&gt;
	local body = mw.html.create( &#039;div&#039; ):addClass( &#039;documentation&#039; )&lt;br /&gt;
	body&lt;br /&gt;
		:addClass( docClass )&lt;br /&gt;
&lt;br /&gt;
	local header = mw.html.create( &#039;div&#039; )&lt;br /&gt;
		:addClass( &#039;documentation-header-top&#039; )&lt;br /&gt;
&lt;br /&gt;
	header&lt;br /&gt;
		:tag( &#039;span&#039; )&lt;br /&gt;
			:addClass( &#039;documentation-header-title&#039; )&lt;br /&gt;
			:wikitext( i18n.pageDocHeaderTitle )&lt;br /&gt;
	header&lt;br /&gt;
        :node( links )&lt;br /&gt;
&lt;br /&gt;
	local codePages = {&lt;br /&gt;
		module = true,&lt;br /&gt;
		stylesheet = true,&lt;br /&gt;
		script = true,&lt;br /&gt;
	}&lt;br /&gt;
	if not noDoc and codePages[ pageType ] then&lt;br /&gt;
		header&lt;br /&gt;
			:tag( &#039;span&#039; )&lt;br /&gt;
				:attr( &#039;id&#039;, &#039;documentation-jump-to-code&#039; )&lt;br /&gt;
				:wikitext( i18n.commonInternalLinkPipe:format( &#039;#the-code&#039;, i18n.pageDocJumpToCode ) )&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	body&lt;br /&gt;
		:node( header ):done()&lt;br /&gt;
		:wikitext( message )&lt;br /&gt;
		:wikitext( docText )&lt;br /&gt;
&lt;br /&gt;
	if not noDoc and page ~= docPage then&lt;br /&gt;
		body&lt;br /&gt;
			:tag( &#039;div&#039; )&lt;br /&gt;
				:addClass( &#039;documentation-header-bottom&#039; )&lt;br /&gt;
				:node( links )&lt;br /&gt;
				:wikitext( i18n.pageDocHeaderBottom:format( i18n.commonInternalLink:format( docPage.fullText ) ) )&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if category then&lt;br /&gt;
		body:wikitext( pageCategoryHandler( category ) )&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local anchor = &#039;&#039;&lt;br /&gt;
	if not noDoc and pageType ~= &#039;template&#039; and pageType ~= &#039;message&#039; then&lt;br /&gt;
		anchor = mw.html.create( &#039;div&#039; ):attr( &#039;id&#039;, &#039;the-code&#039; )&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return loadStyles( i18n.defaultStyles ) .. tostring( body ) .. tostring( anchor )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Patbox</name></author>
	</entry>
	<entry>
		<id>https://modded.wiki/index.php?title=Template:Para&amp;diff=12897</id>
		<title>Template:Para</title>
		<link rel="alternate" type="text/html" href="https://modded.wiki/index.php?title=Template:Para&amp;diff=12897"/>
		<updated>2025-07-23T06:29:52Z</updated>

		<summary type="html">&lt;p&gt;Patbox: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;code class=&amp;quot;nowrap&amp;quot; style=&amp;quot;{{SAFESUBST:&amp;lt;noinclude /&amp;gt;#if:{{{plain|}}}|border: none; background-color: inherit;}} {{SAFESUBST:&amp;lt;noinclude /&amp;gt;#if:{{{plain|}}}{{{mxt|}}}{{{green|}}}{{{!mxt|}}}{{{red|}}}|color: {{SAFESUBST:&amp;lt;noinclude /&amp;gt;#if:{{{mxt|}}}{{{green|}}}|#006400|{{SAFESUBST:&amp;lt;noinclude /&amp;gt;#if:{{{!mxt|}}}{{{red|}}}|#8B0000|inherit}}}};}} {{SAFESUBST:&amp;lt;noinclude /&amp;gt;#if:{{{style|}}}|{{{style}}}}}&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;&amp;amp;#124;&amp;lt;/nowiki&amp;gt;{{SAFESUBST:&amp;lt;noinclude /&amp;gt;#if:{{{1|}}}|{{{1}}}&amp;amp;#61;}}{{{2|}}}&amp;lt;/code&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&amp;lt;!--Categories and interwikis go near the bottom of the /doc subpage.--&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Patbox</name></author>
	</entry>
	<entry>
		<id>https://modded.wiki/index.php?title=Template:P&amp;diff=12895</id>
		<title>Template:P</title>
		<link rel="alternate" type="text/html" href="https://modded.wiki/index.php?title=Template:P&amp;diff=12895"/>
		<updated>2025-07-23T06:29:51Z</updated>

		<summary type="html">&lt;p&gt;Patbox: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Template:Para]]&lt;br /&gt;
{{redr|tsh}}&lt;/div&gt;</summary>
		<author><name>Patbox</name></author>
	</entry>
	<entry>
		<id>https://modded.wiki/index.php?title=Template:Hungerbar&amp;diff=12893</id>
		<title>Template:Hungerbar</title>
		<link rel="alternate" type="text/html" href="https://modded.wiki/index.php?title=Template:Hungerbar&amp;diff=12893"/>
		<updated>2025-07-23T06:29:51Z</updated>

		<summary type="html">&lt;p&gt;Patbox: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#invoke: iconbar | bar&lt;br /&gt;
| full   = {{#if: {{{poisoned|}}} | Poisoned }} Hunger (icon).png&lt;br /&gt;
| empty  = Empty Hunger (icon).png&lt;br /&gt;
| size   = {{{2|18}}}&lt;br /&gt;
| value  = {{{1}}}&lt;br /&gt;
| title  = {{#expr:{{{1|0}}}/2}} {{#if: {{{poisoned|}}} | poisoned }} hunger point{{#ifeq: {{{1|}}} | 2 || s }}&lt;br /&gt;
| reverse = 1&lt;br /&gt;
| min = {{{total|}}}&lt;br /&gt;
| link = {{{link|}}}&lt;br /&gt;
| alt = &amp;amp;#127831;&lt;br /&gt;
}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation}}&lt;br /&gt;
&amp;lt;!-- Put categories/interwiki on the documentation page --&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Patbox</name></author>
	</entry>
	<entry>
		<id>https://modded.wiki/index.php?title=Template:Hunger&amp;diff=12891</id>
		<title>Template:Hunger</title>
		<link rel="alternate" type="text/html" href="https://modded.wiki/index.php?title=Template:Hunger&amp;diff=12891"/>
		<updated>2025-07-23T06:29:51Z</updated>

		<summary type="html">&lt;p&gt;Patbox: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&amp;lt;span class=&amp;quot;nowrap&amp;quot;&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if: {{{notag|}}} {{{bar|}}} || {{{1|0}}} ( }}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{hungerbar&lt;br /&gt;
|{{#ifexpr: {{{1|0}}} &amp;gt; 10 | 2 | {{{1|{{{bar|0}}}}}}}}&lt;br /&gt;
|{{{2|9px}}}&lt;br /&gt;
|poisoned={{{poisoned|}}}&lt;br /&gt;
|total={{{total|{{#if:{{{bar|}}}|20|}}}}}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#ifexpr: {{{1|0}}} &amp;gt; 10 | &amp;amp;#32;× {{ #expr: {{{1|0}}} / 2 }} }}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{ #if: {{{notag|}}} {{{bar|}}} || ) }}&amp;lt;!--&lt;br /&gt;
--&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation}}&lt;br /&gt;
&amp;lt;!-- Put categories/interwiki on the documentation page --&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Patbox</name></author>
	</entry>
	<entry>
		<id>https://modded.wiki/index.php?title=Mod:Unruled_Api&amp;diff=12539</id>
		<title>Mod:Unruled Api</title>
		<link rel="alternate" type="text/html" href="https://modded.wiki/index.php?title=Mod:Unruled_Api&amp;diff=12539"/>
		<updated>2025-07-09T10:02:24Z</updated>

		<summary type="html">&lt;p&gt;Patbox: Patbox moved page Mod:Unruled Api to Unruled Api&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Unruled Api]]&lt;/div&gt;</summary>
		<author><name>Patbox</name></author>
	</entry>
	<entry>
		<id>https://modded.wiki/index.php?title=Unruled_Api&amp;diff=12538</id>
		<title>Unruled Api</title>
		<link rel="alternate" type="text/html" href="https://modded.wiki/index.php?title=Unruled_Api&amp;diff=12538"/>
		<updated>2025-07-09T10:02:23Z</updated>

		<summary type="html">&lt;p&gt;Patbox: Patbox moved page Mod:Unruled Api to Unruled Api&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox mod|title=Unruled API|image=Unruled_api_icon.png|author=RecraftorsMC|developer=[[User:Nerjal Nosk|Nerjal Nosk]]|latest_release=0.6 (2025-01-03)|initial_release=0.1 (2024-01-24)|modloader={{Fabric}},{{NeoForge}}|minecraft_version=active:{{1.21}}, {{1.21}} &amp;lt;br&amp;gt; inactive: {{1.18}}, {{1.19}}|modrinth=https://modrinth.com/mod/unruled-api|sources=https://codeberg.org/RecraftorsMC/unruled-api}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Unruled API&#039;&#039;&#039; is a library mod, that allows other mod to easily create new gamerules, using new kind of gamerules, new tools to tweak them, and provide more control over the game without the need for brand new functionalities like complex configuration files.&lt;br /&gt;
&lt;br /&gt;
Additionally, despite some client-side integration for better ease of use, Unruled API works perfectly being only on the server, making it a proper server-side mod.&lt;br /&gt;
&lt;br /&gt;
== New Gamerule Types ==&lt;br /&gt;
&lt;br /&gt;
Unruled API provides other mods with up to 9 new gamerule types:&lt;br /&gt;
&lt;br /&gt;
Since 0.1:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Floating gamerules&lt;br /&gt;
  &amp;lt;ul&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Stores a &amp;lt;i&amp;gt;float&amp;lt;/i&amp;gt; value, with precision ranging from 2&amp;lt;sup&amp;gt;-126&amp;lt;/sup&amp;gt; to 2&amp;lt;sup&amp;gt;127&amp;lt;/sup&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ul&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Long gamerules&lt;br /&gt;
  &amp;lt;ul&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Stores a &amp;lt;i&amp;gt;long&amp;lt;/i&amp;gt; value, ranging from -2&amp;lt;sup&amp;gt;63&amp;lt;/sup&amp;gt; to 2&amp;lt;sup&amp;gt;63&amp;lt;/sup&amp;gt;-1&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ul&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Double gamerules&lt;br /&gt;
  &amp;lt;ul&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Stores a &amp;lt;i&amp;gt;double&amp;lt;/i&amp;gt; value, with precision ranging from 2&amp;lt;sup&amp;gt;-1022&amp;lt;/sup&amp;gt; to 2&amp;lt;sup&amp;gt;1023&amp;lt;/sup&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ul&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;String gamerules&lt;br /&gt;
  &amp;lt;ul&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Stores a short textual value, with a hard maximum length of 128 characters.&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ul&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Text gamerules&lt;br /&gt;
  &amp;lt;ul&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Stores a textual value, with an arbitrary maximum length to be determined by the mod creating the gamerule.&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ul&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Enum gamerules&lt;br /&gt;
  &amp;lt;ul&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Stores an enum value, from a specified enum class. Values are parsed and recognized by name, and only those are suggested to the player upon trying to modify the gamerule&#039;s value from the chat.&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ul&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Since 0.6&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Registry Entry gamerules&lt;br /&gt;
  &amp;lt;ul&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Stores a {{Registry}} entry value as a {{Resource_Location}}, and matches it with the appropriate registry value for the mod creating the gamerule to use.&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ul&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All gamerule types have integration with the World Creation&#039;s Gamerules menu. However, due to menu development not being the strong suit of the developer, text rules&#039; integration is marked as &amp;lt;i&amp;gt;Not Yet Implemented&amp;lt;/i&amp;gt;, in view of a future easier mean to edit long to very long textual fields in a single menu.&lt;br /&gt;
&lt;br /&gt;
== Additional Functionalities ==&lt;br /&gt;
&lt;br /&gt;
Unruled API allows mods to add to any new gamerule both a &amp;lt;i&amp;gt;validator&amp;lt;/i&amp;gt; and an &amp;lt;i&amp;gt;adapter&amp;lt;/i&amp;gt;. Those are meant to help a mod control what values can a gamerule accept.&lt;br /&gt;
&lt;br /&gt;
The validator is used when providing a new value to the gamerule. It will test if the provided value matches custom conditions. If the value is accepted, then the gamerule value can properly change without any issue.&lt;br /&gt;
&lt;br /&gt;
If the value is rejected by the validator, then the adapter will take it, and possibly try to provide a better fitting value. This new value will then be tested again with the validator for a final consistency check. Then only, if accepted, will the gamerule&#039;s value change.&lt;br /&gt;
&lt;br /&gt;
{{DEFAULTSORT:Unruled API}}&lt;br /&gt;
[[Category:Mods]]&lt;/div&gt;</summary>
		<author><name>Patbox</name></author>
	</entry>
	<entry>
		<id>https://modded.wiki/index.php?title=Mod:Scorchful&amp;diff=12537</id>
		<title>Mod:Scorchful</title>
		<link rel="alternate" type="text/html" href="https://modded.wiki/index.php?title=Mod:Scorchful&amp;diff=12537"/>
		<updated>2025-07-09T10:02:18Z</updated>

		<summary type="html">&lt;p&gt;Patbox: Patbox moved page Mod:Scorchful to Scorchful&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Scorchful]]&lt;/div&gt;</summary>
		<author><name>Patbox</name></author>
	</entry>
	<entry>
		<id>https://modded.wiki/index.php?title=Scorchful&amp;diff=12536</id>
		<title>Scorchful</title>
		<link rel="alternate" type="text/html" href="https://modded.wiki/index.php?title=Scorchful&amp;diff=12536"/>
		<updated>2025-07-09T10:02:18Z</updated>

		<summary type="html">&lt;p&gt;Patbox: Patbox moved page Mod:Scorchful to Scorchful&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox mod&lt;br /&gt;
|title=Scorchful&lt;br /&gt;
|author=TheDeathlyCow&lt;br /&gt;
|latest_release=0.15.6+1.21.1, 0.15.5+1.21.4 (2025-04-30)&lt;br /&gt;
|initial_release=Public release: 0.1.0 (2024-02-28)&lt;br /&gt;
|sources=https://github.com/TheDeathlyCow/scorchful&lt;br /&gt;
|discord=https://discord.thedeathlycow.com&lt;br /&gt;
|modrinth=https://modrinth.com/mod/scorchful&lt;br /&gt;
|curseforge=https://www.curseforge.com/minecraft/mc-mods/scorchful&lt;br /&gt;
|minecraft_version=Supported: 1.21.1, 1.21.4&lt;br /&gt;
&lt;br /&gt;
Available: 1.20.1, 1.20.4, 1.21-1.21.4&lt;br /&gt;
|modloader={{Fabric}},{{Quilt}}&lt;br /&gt;
|image=Scorchful-Icon.png}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Scorchful&#039;&#039;&#039; is a survival mod focused on Heat and Desert Survival. This mod increases the difficulty of the survival experience in warm biomes and The Nether. It is the warm-temperature counter part to [[Mod:Frostiful|Frostiful]].&lt;br /&gt;
&lt;br /&gt;
{{Message box|title=Notice|text=This wiki is written to reflect the current state of Scorchful for the latest available version of Minecraft (currently 1.21.4). Some information about older versions (particularly 1.21.1) may be available on some pages, but will not always be given. Some information on this wiki may not appear in game if you are using an older version. Features will only be backported according to the [https://github.com/TheDeathlyCow/scorchful?tab=readme-ov-file#lts-policy LTS Policy].}}&lt;br /&gt;
&lt;br /&gt;
== Content ==&lt;br /&gt;
&lt;br /&gt;
=== Survival Mechanics ===&lt;br /&gt;
* [[Scorchful:Temperature System|Temperature System]]&lt;br /&gt;
* [[Scorchful:Sandstorm|Sandstorms]]&lt;br /&gt;
* [[Scorchful:Heat Visions|Heat Visions]]&lt;br /&gt;
&lt;br /&gt;
=== Blocks ===&lt;br /&gt;
&lt;br /&gt;
* [[Scorchful:Sand Pile|Sand Pile]]&lt;br /&gt;
* [[Scorchful:Red Sand Pile|Red Sand Pile]]&lt;br /&gt;
* [[Scorchful:Sand Cauldron|Sand Cauldron]]&lt;br /&gt;
* [[Scorchful:Crimson Lily|Crimson Lily]]&lt;br /&gt;
* [[Scorchful:Warped Lily|Warped Lily]]&lt;br /&gt;
&lt;br /&gt;
=== Items ===&lt;br /&gt;
&lt;br /&gt;
* [[Scorchful:Bottle of Cactus Juice|Bottle of Cactus Juice]]&lt;br /&gt;
* [[Scorchful:Sun Hat|Sun Hat]]&lt;br /&gt;
* [[Scorchful:Turtle Armor|Turtle Armor]]&lt;br /&gt;
* [[Minecraft:Turtle Shell|Turtle Shell]] (Vanilla item)&lt;br /&gt;
* [[Scorchful:Turtle Carapace|Turtle Carapace]]&lt;br /&gt;
* [[Scorchful:Turtle Knee Pads|Turtle Knee Pads]]&lt;br /&gt;
* [[Scorchful:Turtle Flippers|Turtle Flippers]]&lt;br /&gt;
* [[Scorchful:Water Skin|Water Skin]]&lt;br /&gt;
&lt;br /&gt;
=== Enchantments and Status Effects ===&lt;br /&gt;
&lt;br /&gt;
* [[Scorchful:Rehydration|Rehydration Enchantment]]&lt;br /&gt;
* [[Scorchful:Heat Stroke|Heat Stroke Status Effect]]&lt;br /&gt;
* [[Scorchful:Fear|Fear Status Effect]]&lt;br /&gt;
&lt;br /&gt;
=== Structures ===&lt;br /&gt;
&lt;br /&gt;
* [[Scorchful:Warped Lily Farm|Warped Lily Farm]]&lt;br /&gt;
&lt;br /&gt;
== Developer Docs ==&lt;br /&gt;
For mod pack and addon developers.&lt;br /&gt;
&lt;br /&gt;
* [https://thermoo.thedeathlycow.com/ Thermoo Wiki] - A good resource for the general internals of Scorchful&lt;br /&gt;
* [[Scorchful:Config File|Config File]]&lt;br /&gt;
* [[Scorchful:Datapack Tags|Datapack Tags]]&lt;br /&gt;
* [[Scorchful:Data Component Types|Data Component Types]]&lt;br /&gt;
* [[Scorchful:Temperature Effect Types|Temperature Effect Types]]&lt;br /&gt;
&lt;br /&gt;
== Compatibility ==&lt;br /&gt;
While this mod is designed to be as compatible as possible with other mods, it is inevitable that issues will arise. Specific incompatibilities will be documented here as they become known.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/Alpha-s-Stuff/TinkersConstruct Hephaestus / Tinker&#039;s Construct]: Temperature bar not showing up. &#039;&#039;&#039;FIX:&#039;&#039;&#039; set {{code|extraHeartRenderer}} to {{code|false}} in the {{code|mantle-client.toml}} config.&lt;br /&gt;
&lt;br /&gt;
=== Other Temperature Mods ===&lt;br /&gt;
&lt;br /&gt;
Most other temperature mods do not work with Scorchful&#039;s temperature system and likely never will. Running Scorchful with these mods is redundant as they also add their own temperature system in addition to Scorchful. These mods may technically run together, however, if you want to have a cold temperature system with Scorchful, I would recommend using [[Mod:Frostiful|Frostiful]] instead, as Scorchful was made to work together with Frostiful.&lt;br /&gt;
&lt;br /&gt;
All of the following temperature mods should not be used with Scorchful (note that this list is not exhaustive; these are just the ones I&#039;ve heard of):&lt;br /&gt;
&lt;br /&gt;
* PyroFrost&lt;br /&gt;
* EnvironmentZ&lt;br /&gt;
* Thermite&lt;br /&gt;
* Tough as Nails&lt;br /&gt;
* Cold Sweat&lt;br /&gt;
* Homeostatic&lt;br /&gt;
* Metabolism&lt;br /&gt;
&lt;br /&gt;
For the mods that add thirst - [https://modrinth.com/mod/dehydration Dehydration] is integrated with Scorchful and does not add a temperature system. A new thirst mod called [https://github.com/TheDeathlyCow/thirstful/ Thirstful] is also currently a work in progress.&lt;br /&gt;
&lt;br /&gt;
[[Category:Mods|Scorchful]]&lt;br /&gt;
[[Category:Scorchful]]&lt;/div&gt;</summary>
		<author><name>Patbox</name></author>
	</entry>
	<entry>
		<id>https://modded.wiki/index.php?title=Mod:Redderstone&amp;diff=12535</id>
		<title>Mod:Redderstone</title>
		<link rel="alternate" type="text/html" href="https://modded.wiki/index.php?title=Mod:Redderstone&amp;diff=12535"/>
		<updated>2025-07-09T10:02:12Z</updated>

		<summary type="html">&lt;p&gt;Patbox: Patbox moved page Mod:Redderstone to Redderstone&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Redderstone]]&lt;/div&gt;</summary>
		<author><name>Patbox</name></author>
	</entry>
	<entry>
		<id>https://modded.wiki/index.php?title=Redderstone&amp;diff=12534</id>
		<title>Redderstone</title>
		<link rel="alternate" type="text/html" href="https://modded.wiki/index.php?title=Redderstone&amp;diff=12534"/>
		<updated>2025-07-09T10:02:12Z</updated>

		<summary type="html">&lt;p&gt;Patbox: Patbox moved page Mod:Redderstone to Redderstone&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox mod&lt;br /&gt;
|title=Redderstone&lt;br /&gt;
|image=Redderstone Icon.png&lt;br /&gt;
|author=[[User:ssblur|Blur]]&lt;br /&gt;
|latest_release=0.2.6 (1.19.2) (2022-08-25)&lt;br /&gt;
|initial_release=0.1.0 (1.19.2) (2022-08-17)&lt;br /&gt;
|modloader={{Fabric}}, {{Quilt}}, {{Forge}}&lt;br /&gt;
|minecraft_version=Supported: None&amp;lt;br&amp;gt;&lt;br /&gt;
Available: 1.19.2&lt;br /&gt;
|modrinth=https://modrinth.com/mod/redderstone&lt;br /&gt;
|curseforge=https://www.curseforge.com/minecraft/mc-mods/redderstone&lt;br /&gt;
|sources=https://github.com/ssblur/redderstone&lt;br /&gt;
|discord=https://discord.gg/fzZZhbe4rr&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Redderstone&#039;&#039;&#039; is a muli-loader mod by [[User:ssblur|Blur]]. It adds adds sources that provide a Redstone signal higher than 15, and steps up your normal Redstone to meet the task.&lt;br /&gt;
&lt;br /&gt;
It also add a device that produce extraordinary effects when provided with high enough Redstone signals.&lt;br /&gt;
== Content ==&lt;br /&gt;
&lt;br /&gt;
=== Blocks ===&lt;br /&gt;
* [[Redderstone:Redderstone Wire|Redderstone Wire]]&lt;br /&gt;
* [[Redderstone:Redstone Furnace Heater|Redstone Furnace Heater]]&lt;br /&gt;
* [[Redderstone:Redstone Alternator|Redstone Alternator]]&lt;br /&gt;
* [[Redderstone:Redstone Inverter|Redstone Inverter]]&lt;br /&gt;
* [[Redderstone:Redderstone Block|Redderstone Block]]&lt;br /&gt;
&lt;br /&gt;
=== Items ===&lt;br /&gt;
* [[Redderstone:Vermilion Dust|Vermilion Dust]]&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;240&amp;quot;&amp;gt;&lt;br /&gt;
File:Redderstone Booster Circuit.png|A booster circuit which utilizes an Alternator and an Inverter to step up from 15 to ~30.&lt;br /&gt;
File:Redderstone Promo Image.gif|Small gif showing off features for ModFest&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
[[Category:Mods|Redderstone]]&lt;/div&gt;</summary>
		<author><name>Patbox</name></author>
	</entry>
	<entry>
		<id>https://modded.wiki/index.php?title=Mod:PolyFactory&amp;diff=12533</id>
		<title>Mod:PolyFactory</title>
		<link rel="alternate" type="text/html" href="https://modded.wiki/index.php?title=Mod:PolyFactory&amp;diff=12533"/>
		<updated>2025-07-09T10:02:05Z</updated>

		<summary type="html">&lt;p&gt;Patbox: Patbox moved page Mod:PolyFactory to PolyFactory&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[PolyFactory]]&lt;/div&gt;</summary>
		<author><name>Patbox</name></author>
	</entry>
	<entry>
		<id>https://modded.wiki/index.php?title=PolyFactory&amp;diff=12532</id>
		<title>PolyFactory</title>
		<link rel="alternate" type="text/html" href="https://modded.wiki/index.php?title=PolyFactory&amp;diff=12532"/>
		<updated>2025-07-09T10:02:05Z</updated>

		<summary type="html">&lt;p&gt;Patbox: Patbox moved page Mod:PolyFactory to PolyFactory&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox mod|title=PolyFactory|author=Patbox|latest_release=0.6.1+1.21.4 (2024-12-21)|initial_release=Public release: 0.1.0+1.20.2 (2023-12-11)&lt;br /&gt;
&lt;br /&gt;
Blanketcon demo: 0.0.0-blanket.0 (2023-07-11)|sources=https://github.com/patbox/PolyFactory|discord=https://pb4.eu/discord|modrinth=https://modrinth.com/mod/polyfactory|minecraft_version=Actively: 1.21.4&lt;br /&gt;
&lt;br /&gt;
Available: 1.20.2 and newer|modloader={{Fabric}}|image=PolyFactory_Logo.png}}&#039;&#039;&#039;PolyFactory&#039;&#039;&#039; is a Fabric Server Side modification created by Patbox, which adds new items, blocks and mechanics associated with tech mods.&lt;br /&gt;
&lt;br /&gt;
Main goal of this mod was to provide a semi-advanced tech mod that can be played by installing it purely on the server without players having to do anything extra to play with it.&lt;br /&gt;
&lt;br /&gt;
This mod was inspired by likes of [https://wiki.btwce.com/index.php/Main_Page Better Than Wolves] and Create, but also many ideas from other classical tech mods.&lt;br /&gt;
&lt;br /&gt;
== Gameplay ==&lt;br /&gt;
By default, the mod doesn&#039;t change anything about the world or player&#039;s gameplay experience, until they start crafting machines and items provided by this mod.&lt;br /&gt;
&lt;br /&gt;
Player start with the mod by crafting the [[PolyFactory:Grinder|Grinder]] which allows them to get [[PolyFactory:Coal Dust|Coal Dust]], which then can be mixed with [[Minecraft:Redstone|Redstone]] and [[Minecraft:Iron Ingot|Iron Ingot]] to create [[PolyFactory:Steel|Steel Alloy Mixture]]. From there, player can smelt [[PolyFactory:Steel|Steel Ingots]] and start crafting other items and blocks from the mod with usage of [[PolyFactory:Mechanical Mixer|Mechanical Mixer]] and [[PolyFactory:Mechanical Press|Mechanical Press]]. Items can be moved around with usage of [[PolyFactory:Item Conveyor|Item Conveyors]], sorted with [[PolyFactory:Funnel|Funnels]] and [[PolyFactory:Item Spliter|Item Spliters]] and then stored in a [[PolyFactory:Wooden Container|Wooden Containers]] or any other compatible/vanilla form of item storage.&lt;br /&gt;
&lt;br /&gt;
To power most of the machines the player needs to use a [[PolyFactory:Hand Crank|Hand Crank]] for initial machines, [[PolyFactory:Windmill|Windmills]] for later automation or [[PolyFactory:Steam Engine|Steam Engine]] in case where speed and power is required (or it&#039;s in place which lacks strong enough winds).&lt;br /&gt;
&lt;br /&gt;
Player then can use things like [[PolyFactory:Cable|Cables]], Data Sources and blocks manipulating/displaying data to allow for more automation or general display information.&lt;br /&gt;
&lt;br /&gt;
By default, PolyFactory doesn&#039;t display any recipes. To view them, you need to use the [[Mod:Polydex|Polydex]] mod.&lt;br /&gt;
&lt;br /&gt;
== Content ==&lt;br /&gt;
&lt;br /&gt;
==== Crafting Machines ====&lt;br /&gt;
* [[PolyFactory:Grinder|Grinder]]&lt;br /&gt;
* [[PolyFactory:Mechanical Mixer|Mechanical Mixer]]&lt;br /&gt;
* [[PolyFactory:Mechanical Press|Mechanical Press]]&lt;br /&gt;
* [[PolyFactory:Mechanical Crafter|Mechanical Crafter]]&lt;br /&gt;
&lt;br /&gt;
==== Other Machines ====&lt;br /&gt;
* [[PolyFactory:Mechanical Miner|Mechanical Miner]]&lt;br /&gt;
* [[PolyFactory:Mechanical Planter|Mechanical Planter]]&lt;br /&gt;
* [[PolyFactory:Mechanical Placer|Mechanical Placer]]&lt;br /&gt;
&lt;br /&gt;
==== Item Storage and Transportation ====&lt;br /&gt;
* [[PolyFactory:Item Conveyor|Item Conveyor]]&lt;br /&gt;
* [[PolyFactory:Fan|Fan]]&lt;br /&gt;
* [[PolyFactory:Item Filter|Item Filter]]&lt;br /&gt;
* [[PolyFactory:Wooden Container|Wooden Container]]&lt;br /&gt;
* [[PolyFactory:Metal Grid|Metal Grid]]&lt;br /&gt;
* [[PolyFactory:Item Splitter|Item Splitter]]&lt;br /&gt;
* [[PolyFactory:Funnel|Funnel]]&lt;br /&gt;
&lt;br /&gt;
==== Rotation transmission ====&lt;br /&gt;
* [[PolyFactory:Axle|Axle]]&lt;br /&gt;
* [[PolyFactory:Clutch|Clutch]]&lt;br /&gt;
* [[PolyFactory:Steel Gear|Large Steel Gear]]&lt;br /&gt;
* [[PolyFactory:Steel Gear|Steel Gear]]&lt;br /&gt;
* [[PolyFactory:Gearbox|Gearbox]]&lt;br /&gt;
* [[PolyFactory:Turntable|Turntable]]&lt;br /&gt;
&lt;br /&gt;
==== Rotational Sources ====&lt;br /&gt;
* [[PolyFactory:Windmill|Windmill (Sail)]]&lt;br /&gt;
* [[PolyFactory:Steam Engine|Steam Engine]]&lt;br /&gt;
* [[PolyFactory:Hand Crank|Hand Crank]]&lt;br /&gt;
&lt;br /&gt;
===== Fluid processing =====&lt;br /&gt;
&lt;br /&gt;
* [[PolyFactory:Copper Pipe|Copper Pipe]]&lt;br /&gt;
* [[PolyFactory:Copper Pipe with Redstone Valve|Copper Pipe with Redstone Valve]]&lt;br /&gt;
* [[PolyFactory:Filtered Copper Pipe|Filtered Copper Pipe]]&lt;br /&gt;
* [[PolyFactory:Mechanical Pump|Mechanical Pump]]&lt;br /&gt;
* [[PolyFactory:Fluid Tank|Fluid Tank]]&lt;br /&gt;
* [[PolyFactory:Portable Fluid Tank|Portable Fluid Tank]]&lt;br /&gt;
* [[PolyFactory:Drain|Drain]]&lt;br /&gt;
* [[PolyFactory:Mechanical Drain|Mechanical Drain]]&lt;br /&gt;
* [[PolyFactory:Mechanical Spout|Mechanical Spout]]&lt;br /&gt;
&lt;br /&gt;
==== Data transmission and modification ====&lt;br /&gt;
* [[PolyFactory:Cable|Cable]]&lt;br /&gt;
* [[PolyFactory:Data Memory Block|Data Memory Block]]&lt;br /&gt;
* [[PolyFactory:Arithmetic Operator|Arithmetic Operator]]&lt;br /&gt;
* [[PolyFactory:Wireless Redstone|Wireless Redstone Receiver]]&lt;br /&gt;
* [[PolyFactory:Wireless Redstone|Wireless Redstone Transmitter]]&lt;br /&gt;
* [[PolyFactory:Wireless Redstone|Portable Redstone Transmitter]] &lt;br /&gt;
&lt;br /&gt;
==== Data sources ====&lt;br /&gt;
* [[PolyFactory:Tachometer|Tachometer]]&lt;br /&gt;
* [[PolyFactory:Stressometer|Stressometer]]&lt;br /&gt;
* [[PolyFactory:Redstone Input|Redstone Input]]&lt;br /&gt;
* [[PolyFactory:Storage Counter|Storage Counter]]&lt;br /&gt;
* [[PolyFactory:Item Reader|Item Reader]]&lt;br /&gt;
* [[PolyFactory:Block Observer|Block Observer]]&lt;br /&gt;
&lt;br /&gt;
==== Data displays ====&lt;br /&gt;
* [[PolyFactory:Redstone Output|Redstone Output]]&lt;br /&gt;
* [[PolyFactory:Nixie Tube|Nixie Tube]]&lt;br /&gt;
* [[PolyFactory:Hologram Projector|Hologram Projector]]&lt;br /&gt;
&lt;br /&gt;
==== General Utilities ====&lt;br /&gt;
* [[PolyFactory:Wrench|Wrench]]&lt;br /&gt;
* [[PolyFactory:Pressure Fluid Gun|Pressure Fluid Gun]]&lt;br /&gt;
* [[PolyFactory:Workbench|Workbench]]&lt;br /&gt;
&lt;br /&gt;
* [[PolyFactory:Colored Lamp|Colored Lamp]]&lt;br /&gt;
* [[PolyFactory:Potato on a Spring|Potato on a Spring]]&lt;br /&gt;
* [[PolyFactory:Dynamite|Dynamite]]&lt;br /&gt;
* [[PolyFactory:Spray Can|Spray Can]]&lt;br /&gt;
* [[PolyFactory:Steel Button|Steel Button]]&lt;br /&gt;
* [[PolyFactory:Artificial Dye|Artificial Dye]]&lt;br /&gt;
* [[PolyFactory:Honeyed Apple|Honeyed Apple]]&lt;br /&gt;
* [[PolyFactory:Crispy Honey|Crispy Honey]]&lt;br /&gt;
&lt;br /&gt;
==== Crafting Materials ====&lt;br /&gt;
* [[PolyFactory:Saw Dust|Saw Dust]]&lt;br /&gt;
* [[PolyFactory:Coal Dust|Coal Dust]]&lt;br /&gt;
* [[PolyFactory:Netherrack Dust|Netherrack Dust]]&lt;br /&gt;
* [[PolyFactory:Ender Dust|Ender Dust]]&lt;br /&gt;
* [[PolyFactory:Crushed Raw Ore|Crushed Raw Iron]]&lt;br /&gt;
* [[PolyFactory:Crushed Raw Ore|Crushed Raw Copper]]&lt;br /&gt;
* [[PolyFactory:Crushed Raw Ore|Crushed Raw Gold]]&lt;br /&gt;
* [[PolyFactory:Steel|Steel Alloy Mixture]]&lt;br /&gt;
* [[PolyFactory:Steel|Steel Ingot]]&lt;br /&gt;
* [[PolyFactory:Steel|Steel Plate]]&lt;br /&gt;
* [[PolyFactory:Copper Plate|Copper Plate]]&lt;br /&gt;
* [[PolyFactory:Wooden Plate|Wooden Plate]]&lt;br /&gt;
* [[PolyFactory:Treated Dried Kelp|Treated Dried Kelp]]&lt;br /&gt;
* [[PolyFactory:Ender infused Amethyst Shard|Ender infused Amethyst Shard]]&lt;br /&gt;
* [[PolyFactory:Steel Machine Gearbox|Steel Machine Gearbox]]&lt;br /&gt;
* [[PolyFactory:Redstone Chip|Redstone Chip]]&lt;br /&gt;
* [[PolyFactory:Integrated Circuit|Integrated Circuit]]&lt;br /&gt;
* [[PolyFactory:Fragile Glass Bottle|Fragile Glass Bottle]]&lt;br /&gt;
* [[PolyFactory:Slime Bucket|Slime Bucket]]&lt;br /&gt;
* [[PolyFactory:Honey Bucket|Honey Bucket]]&lt;br /&gt;
* [[PolyFactory:Experience Bucket|Experience Bucket]]&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;240&amp;quot;&amp;gt;&lt;br /&gt;
File:PolyFactory-backdrop.png|Main image used for representing the mod&lt;br /&gt;
File:PolyFactory-Update0.3.4.png|Promotional image for 0.3.4 update&lt;br /&gt;
File:Polyfactory 0.4.0 main.png|Promotional image for 0.4.0 update&lt;br /&gt;
File:PolyFactory-Wooden-Containers-showcase.png|Wooden Containers storing some items&lt;br /&gt;
File:PolyFactory-TreeFarm.png|A unoptimized tree farm made with the mod&lt;br /&gt;
File:PolyFactory-cobblegen.png|Simple Cobblestone Generator&lt;br /&gt;
File:PolyFactory-Machines.png|Some machines&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
[[Category:Mods|PolyFactory]]&lt;/div&gt;</summary>
		<author><name>Patbox</name></author>
	</entry>
	<entry>
		<id>https://modded.wiki/index.php?title=Mod:Pyorite&amp;diff=12531</id>
		<title>Mod:Pyorite</title>
		<link rel="alternate" type="text/html" href="https://modded.wiki/index.php?title=Mod:Pyorite&amp;diff=12531"/>
		<updated>2025-07-09T10:02:00Z</updated>

		<summary type="html">&lt;p&gt;Patbox: Patbox moved page Mod:Pyorite to Pyorite&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Pyorite]]&lt;/div&gt;</summary>
		<author><name>Patbox</name></author>
	</entry>
	<entry>
		<id>https://modded.wiki/index.php?title=Pyorite&amp;diff=12530</id>
		<title>Pyorite</title>
		<link rel="alternate" type="text/html" href="https://modded.wiki/index.php?title=Pyorite&amp;diff=12530"/>
		<updated>2025-07-09T10:02:00Z</updated>

		<summary type="html">&lt;p&gt;Patbox: Patbox moved page Mod:Pyorite to Pyorite&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox mod|title=Pyorite|image=Pyorite Icon.png|author=[[User:Pin|pin]], BoxedBoi|latest_release=250201b-1.20.1-fabric (2/1/2025, 7:16:50 PM)|initial_release=Public release: 250124a-1.20.1-fabric (1/24/2025 10:16 PM)|modloader={{Fabric}}|minecraft_version=Available: 1.20.1+|modrinth=https://modrinth.com/mod/pyorite|website=https://pridalkomark.github.io/pyorite/website/index.html|sources=https://github.com/pridalkomark/pyorite}}&lt;br /&gt;
&#039;&#039;&#039;Pyorite&#039;&#039;&#039; is a passion project mod by [[User:Pin|pin]] and [[User:BoxedBoi|BoxedBoi]]. It has several new weapons and items used for crafting said weapons.&lt;br /&gt;
[[Category:Mods|Polydex]]&lt;/div&gt;</summary>
		<author><name>Patbox</name></author>
	</entry>
	<entry>
		<id>https://modded.wiki/index.php?title=Mod:Polydex&amp;diff=12529</id>
		<title>Mod:Polydex</title>
		<link rel="alternate" type="text/html" href="https://modded.wiki/index.php?title=Mod:Polydex&amp;diff=12529"/>
		<updated>2025-07-09T10:01:53Z</updated>

		<summary type="html">&lt;p&gt;Patbox: Patbox moved page Mod:Polydex to Polydex&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Polydex]]&lt;/div&gt;</summary>
		<author><name>Patbox</name></author>
	</entry>
	<entry>
		<id>https://modded.wiki/index.php?title=Polydex&amp;diff=12528</id>
		<title>Polydex</title>
		<link rel="alternate" type="text/html" href="https://modded.wiki/index.php?title=Polydex&amp;diff=12528"/>
		<updated>2025-07-09T10:01:53Z</updated>

		<summary type="html">&lt;p&gt;Patbox: Patbox moved page Mod:Polydex to Polydex&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox mod|title=Polydex|image=Polydex-Icon.png|author=Patbox|latest_release=1.4.1+1.21.4 (2025-01-21)|initial_release=Public release: 0.1.0 (2022-01-16)|modloader={{Fabric}}|minecraft_version=Actively: 1.21.4&lt;br /&gt;
&lt;br /&gt;
Available: 1.18.1+|modrinth=https://modrinth.com/mod/polydex|curseforge=https://www.curseforge.com/minecraft/mc-mods/polydex|discord=https://pb4.eu/discord|sources=https://github.com/patbox/Polydex}}&#039;&#039;&#039;Polydex&#039;&#039;&#039; is a Fabric Server Side modification created by Patbox, which aims to provide generic recipe viewing and hover information similar to mods such as EMI/Jei/Rei or WAILA/Jade in a vanilla compatible way. &lt;br /&gt;
&lt;br /&gt;
It is designed first and foremost to be used with Polymer mods, but it also can be used with mods running trough PolyMc, but can also be used in vanillish context.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
The hover information viewing feature is on by default, but can be changed / disabled by using &amp;lt;code&amp;gt;/polydex hover&amp;lt;/code&amp;gt; command and it&#039;s further subcommands. &lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;/polydex hover style &amp;lt;TYPE&amp;gt;&amp;lt;/code&amp;gt; is used to change how the hover is styled, with &amp;lt;code&amp;gt;polydex:disable&amp;lt;/code&amp;gt; fully disabling it.&lt;br /&gt;
* &amp;lt;code&amp;gt;/polydex hover displaymode &amp;lt;TYPE&amp;gt;&amp;lt;/code&amp;gt; is used to change when the hover is visible, with &amp;lt;code&amp;gt;always&amp;lt;/code&amp;gt; making it always visible, &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt; making it visible only when player targets something and &amp;lt;code&amp;gt;sneaking&amp;lt;/code&amp;gt; making it only visible if player is sneaking.&lt;br /&gt;
* &amp;lt;code&amp;gt;/polydex hover information &amp;lt;nowiki&amp;gt;&amp;lt;DATA&amp;gt; &amp;lt;TYPE&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; is used to change which data is shown with same types as the displaymode subcommand, but also including &amp;lt;code&amp;gt;never&amp;lt;/code&amp;gt; which will hide it.&lt;br /&gt;
&lt;br /&gt;
To view recipes, you use &amp;lt;code&amp;gt;/polydex&amp;lt;/code&amp;gt; commands without any arguments. It will show a chest-based uis, which allows you to change which entries are shown (by item group, only with recipes, etc). Then left-clicking on the entry will open another ui that shows all available recipes that result in it. Right-clicking will instead show all recipes that require selected item.&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;240&amp;quot;&amp;gt;&lt;br /&gt;
File:Polydex-main-index-with-rp.png|Main index with all entries, while using server resource pack&lt;br /&gt;
File:Polydex-recipes-with-rp.png|Recipe showcase, while using server resource pack&lt;br /&gt;
File:Polydex-main-index-with-norp.png|Main index with all entries, without resource pack&lt;br /&gt;
File:Polydex-recipes-with-norp.png|Recipe showcase, without resource pack&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
[[Category:Mods|Polydex]]&lt;/div&gt;</summary>
		<author><name>Patbox</name></author>
	</entry>
	<entry>
		<id>https://modded.wiki/index.php?title=Mod:Koala_Lib&amp;diff=12527</id>
		<title>Mod:Koala Lib</title>
		<link rel="alternate" type="text/html" href="https://modded.wiki/index.php?title=Mod:Koala_Lib&amp;diff=12527"/>
		<updated>2025-07-09T10:01:46Z</updated>

		<summary type="html">&lt;p&gt;Patbox: Patbox moved page Mod:Koala Lib to Koala Lib&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Koala Lib]]&lt;/div&gt;</summary>
		<author><name>Patbox</name></author>
	</entry>
	<entry>
		<id>https://modded.wiki/index.php?title=Koala_Lib&amp;diff=12526</id>
		<title>Koala Lib</title>
		<link rel="alternate" type="text/html" href="https://modded.wiki/index.php?title=Koala_Lib&amp;diff=12526"/>
		<updated>2025-07-09T10:01:46Z</updated>

		<summary type="html">&lt;p&gt;Patbox: Patbox moved page Mod:Koala Lib to Koala Lib&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox mod&lt;br /&gt;
|title=Koala Lib&lt;br /&gt;
|author=Deadlydiamond98&lt;br /&gt;
|latest_release=1.1.0 (1.20.1) (2025-06-22)&lt;br /&gt;
|initial_release=1.0.0 (1.20.1) (2024-08-01)&lt;br /&gt;
|sources=https://github.com/Deadlydiamond98/KoalaLib&lt;br /&gt;
|discord=https://discord.com/invite/yArvXz9tSq&lt;br /&gt;
|modrinth=https://modrinth.com/mod/koala_lib&lt;br /&gt;
|curseforge=https://www.curseforge.com/minecraft/mc-mods/koalalib&lt;br /&gt;
|minecraft_version=Supported: 1.20.1&lt;br /&gt;
&lt;br /&gt;
Available: 1.20.1, 1.21, 1.21.1&lt;br /&gt;
|modloader={{Fabric}}&lt;br /&gt;
|image=KoalaLib Icon.png}}&lt;br /&gt;
[[File:KoalaLib Icon Old.gif|border|thumb|Logo used for versions prior to 1.1.0, when the mod was still called &#039;&#039;Magic Bar Lib&#039;&#039;]]&lt;br /&gt;
&#039;&#039;&#039;Koala Lib&#039;&#039;&#039; (formerly known as &#039;&#039;Magic Bar Lib&#039;&#039;) is a library mod that adds feature such as a Magic Bar which are used for various mods.&lt;br /&gt;
&lt;br /&gt;
{{Message box|title=Notice|text=This wiki is still currently under construction! Please mind the dust! The current wiki is located [https://github.com/Deadlydiamond98/KoalaLib/wiki here], but do note that it is outdated}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Mods|Koala Lib]]&lt;/div&gt;</summary>
		<author><name>Patbox</name></author>
	</entry>
	<entry>
		<id>https://modded.wiki/index.php?title=Mod:Healing_Pretty_Good&amp;diff=12525</id>
		<title>Mod:Healing Pretty Good</title>
		<link rel="alternate" type="text/html" href="https://modded.wiki/index.php?title=Mod:Healing_Pretty_Good&amp;diff=12525"/>
		<updated>2025-07-09T10:01:40Z</updated>

		<summary type="html">&lt;p&gt;Patbox: Patbox moved page Mod:Healing Pretty Good to Healing Pretty Good&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Healing Pretty Good]]&lt;/div&gt;</summary>
		<author><name>Patbox</name></author>
	</entry>
	<entry>
		<id>https://modded.wiki/index.php?title=Healing_Pretty_Good&amp;diff=12524</id>
		<title>Healing Pretty Good</title>
		<link rel="alternate" type="text/html" href="https://modded.wiki/index.php?title=Healing_Pretty_Good&amp;diff=12524"/>
		<updated>2025-07-09T10:01:40Z</updated>

		<summary type="html">&lt;p&gt;Patbox: Patbox moved page Mod:Healing Pretty Good to Healing Pretty Good&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox mod&lt;br /&gt;
|title=Healing Pretty Good&lt;br /&gt;
|author=Deadlydiamond98&lt;br /&gt;
|latest_release=1.4.3 (1.21/1.21.1) (2024-09-01)&lt;br /&gt;
|initial_release=1.0 (1.19.2) (2023-12-10)&lt;br /&gt;
|sources=N/A&lt;br /&gt;
|discord=https://discord.com/invite/yArvXz9tSq&lt;br /&gt;
|modrinth=https://modrinth.com/mod/healing-pretty-good&lt;br /&gt;
|curseforge=https://www.curseforge.com/minecraft/mc-mods/healing-pretty-good&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://www.curseforge.com/minecraft/mc-mods/healing-pretty-good-forge&lt;br /&gt;
|minecraft_version=Supported: 1.20.1, 1.21.1&lt;br /&gt;
&lt;br /&gt;
Available: 1.19.2, 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.21, 1.21.1&lt;br /&gt;
|modloader={{Fabric}},{{Forge}},{{NeoForge}}&lt;br /&gt;
|image=HealingPrettyGood Icon.png}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Healing Pretty Good&#039;&#039;&#039; is a mod focused on adding Zelda/Terraria/RPG themed heart drops, and Heart Crystals.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A rewrite of the mod that makes it more configureable and less buggy is planned.&lt;br /&gt;
&lt;br /&gt;
== Content ==&lt;br /&gt;
&lt;br /&gt;
=== Blocks ===&lt;br /&gt;
&lt;br /&gt;
* [[HealingPrettyGood:Heart Crystal Block|Heart Crystal Block]]&lt;br /&gt;
* [[HealingPrettyGood:Polished Heart Crystal|Polished Heart Crystal]]&lt;br /&gt;
* [[HealingPrettyGood:Polished Heart Crystal Slab|Polished Heart Crystal Slab]]&lt;br /&gt;
* [[HealingPrettyGood:Polished Heart Crystal Stairs|Polished Heart Crystal Stairs]]&lt;br /&gt;
* [[HealingPrettyGood:Heart Lantern|Heart Lantern]]&lt;br /&gt;
&lt;br /&gt;
=== Items ===&lt;br /&gt;
&lt;br /&gt;
* [[HealingPrettyGood:Heart Crystal Shard|Heart Crystal Shard]]&lt;br /&gt;
* [[HealingPrettyGood:Bottle O&#039; Healing|Bottle O&#039; Healing]]&lt;br /&gt;
* [[HealingPrettyGood:Ender Soul|Ender Soul]]&lt;br /&gt;
* [[HealingPrettyGood:Crystal Heart|Crystal Heart]]&lt;br /&gt;
* [[HealingPrettyGood:Heart Container|Heart Container]]&lt;br /&gt;
* [[HealingPrettyGood:Empty Heart Container|Empty Heart Container]]&lt;br /&gt;
* [[HealingPrettyGood:Crystal Apple|Crystal Apple]]&lt;br /&gt;
&lt;br /&gt;
=== Entities ===&lt;br /&gt;
&lt;br /&gt;
* [[HealingPrettyGood:Hearts|Hearts]]&lt;br /&gt;
&lt;br /&gt;
=== Structures ===&lt;br /&gt;
&lt;br /&gt;
* [[HealingPrettyGood:Heart Crystal Structure|Heart Crystal (Structure)]]&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;240&amp;quot;&amp;gt;&lt;br /&gt;
File:Crystalheart.png|Screenshot of a naturally generating [[HealingPrettyGood:Heart Crystal Structure|Heart Crystal]]&lt;br /&gt;
File:PolishedHeartCrystalDisplayThing.png|A Build utilizing Various blocks from the mod&lt;br /&gt;
File:HealingPrettyGood HeartsOnGround.png|A few Hearts sitting on the ground&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
[[Category:Mods|Healing Pretty Good]]&lt;br /&gt;
{{Navboxes/HealingPrettyGood}}&lt;/div&gt;</summary>
		<author><name>Patbox</name></author>
	</entry>
	<entry>
		<id>https://modded.wiki/index.php?title=Mod:Frostiful&amp;diff=12523</id>
		<title>Mod:Frostiful</title>
		<link rel="alternate" type="text/html" href="https://modded.wiki/index.php?title=Mod:Frostiful&amp;diff=12523"/>
		<updated>2025-07-09T10:01:33Z</updated>

		<summary type="html">&lt;p&gt;Patbox: Patbox moved page Mod:Frostiful to Frostiful&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Frostiful]]&lt;/div&gt;</summary>
		<author><name>Patbox</name></author>
	</entry>
	<entry>
		<id>https://modded.wiki/index.php?title=Frostiful&amp;diff=12522</id>
		<title>Frostiful</title>
		<link rel="alternate" type="text/html" href="https://modded.wiki/index.php?title=Frostiful&amp;diff=12522"/>
		<updated>2025-07-09T10:01:33Z</updated>

		<summary type="html">&lt;p&gt;Patbox: Patbox moved page Mod:Frostiful to Frostiful&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox mod&lt;br /&gt;
|title=Frostiful&lt;br /&gt;
|author=TheDeathlyCow&lt;br /&gt;
|latest_release=2.2.3+1.21.5 (2025-05-24)&lt;br /&gt;
|initial_release=Public release: 0.1.0 (2022-11-29)&lt;br /&gt;
|sources=https://github.com/TheDeathlyCow/frostiful&lt;br /&gt;
|discord=https://discord.thedeathlycow.com&lt;br /&gt;
|modrinth=https://modrinth.com/mod/frostiful&lt;br /&gt;
|curseforge=https://www.curseforge.com/minecraft/mc-mods/frostiful|&lt;br /&gt;
|translations=https://www.crowdin.com/project/frostiful&lt;br /&gt;
|minecraft_version=Supported: 1.21.1, 1.21.5&lt;br /&gt;
&lt;br /&gt;
Available: 1.19.2, 1.19.4, 1.20-1.20.2, 1.20.4, 1.21-1.21.5&lt;br /&gt;
|modloader={{Fabric}},{{Quilt}}&lt;br /&gt;
|image=Frostiful_Icon.png}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Frostiful&#039;&#039;&#039; is a survival and combat-focused mod that aims to expand the freezing mechanic introduced with powder snow in new and interesting ways. It adds new ways to become cold, rather than just falling into powder snow. It also adds ways of getting warm, rather than just not being in powder snow. It is the cold-temperature counter part to [[Mod:Scorchful|Scorchful]].&lt;br /&gt;
&lt;br /&gt;
{{Message box|title=Notice|text=This wiki is currently being ported to here from GitHub, and may not be complete at this time. The current complete wiki can be found here: https://github.com/TheDeathlyCow/frostiful/wiki}}&lt;br /&gt;
&lt;br /&gt;
== Content ==&lt;br /&gt;
&lt;br /&gt;
=== Survival Mechanics ===&lt;br /&gt;
&lt;br /&gt;
* [[Frostiful:Temperature System|Temperature System]]&lt;br /&gt;
* [[Frostiful:Weather|Weather]]&lt;br /&gt;
&lt;br /&gt;
=== Blocks ===&lt;br /&gt;
&lt;br /&gt;
* [[Frostiful:Brittle Ice|Brittle Ice]]&lt;br /&gt;
* [[Frostiful:Cut Blue Ice|Cut Blue Ice]]&lt;br /&gt;
* [[Frostiful:Cut Blue Ice Slab|Cut Blue Ice Slab]]&lt;br /&gt;
* [[Frostiful:Cut Blue Ice Stairs|Cut Blue Ice Stairs]]&lt;br /&gt;
* [[Frostiful:Cut Blue Ice Wall|Cut Blue Ice Wall]]&lt;br /&gt;
* [[Frostiful:Cut Packed Ice|Cut Packed Ice]]&lt;br /&gt;
* [[Frostiful:Cut Packed Ice Slab|Cut Packed Ice Slab]]&lt;br /&gt;
* [[Frostiful:Cut Packed Ice Stairs|Cut Packed Ice Stairs]]&lt;br /&gt;
* [[Frostiful:Cut Packed Ice Wall|Cut Packed Ice Wall]]&lt;br /&gt;
* [[Frostiful:Frozen Torch|Frozen Torch]]&lt;br /&gt;
* [[Frostiful:Ice Pane|Ice Pane]]&lt;br /&gt;
* [[Frostiful:Icicle|Icicle]]&lt;br /&gt;
* [[Frostiful:Icy Trial Spawner|Icy Trial Spawner]]&lt;br /&gt;
* [[Frostiful:Icy Vault|Icy Vault]]&lt;br /&gt;
* [[Frostiful:Packed Snow|Packed Snow]]&lt;br /&gt;
* [[Frostiful:Packed Snow Bricks|Packed Snow Bricks]]&lt;br /&gt;
* [[Frostiful:Sun Lichen|Sun Lichen]]&lt;br /&gt;
&lt;br /&gt;
=== Items ===&lt;br /&gt;
&lt;br /&gt;
* [[Frostiful:Armor Trim Patterns|Armor Trim Patterns]]&lt;br /&gt;
* [[Frostiful:Banner Patterns|Banner Patterns]]&lt;br /&gt;
* [[Frostiful:Cloak of Frostology|Cloak of Frostology]]&lt;br /&gt;
* [[Frostiful:Inert Cloak of Frostology|Inert Cloak of Frostology]]&lt;br /&gt;
* [[Frostiful:Frost Wand|Frost Wand]]&lt;br /&gt;
* [[Frostiful:Frozen Rod|Frozen Rod]]&lt;br /&gt;
* [[Frostiful:Fur Armor|Fur Armor]]&lt;br /&gt;
* [[Frostiful:Fur Tufts|Fur Tufts]]&lt;br /&gt;
* [[Frostiful:Glacial Arrow|Glacial Arrow]]&lt;br /&gt;
* [[Frostiful:Glacial Heart|Glacial Heart]]&lt;br /&gt;
* [[Frostiful:Ice Skates|Ice Skates]]&lt;br /&gt;
* [[Frostiful:Packed Snow|Packed Snowball]]&lt;br /&gt;
&lt;br /&gt;
=== Mobs ===&lt;br /&gt;
&lt;br /&gt;
* [[Frostiful:Biter|Biter]]&lt;br /&gt;
* [[Frostiful:Chillager|Chillager]]&lt;br /&gt;
* [[Frostiful:Frostologer|Frostologer]]&lt;br /&gt;
&lt;br /&gt;
=== Enchantments and Status Effects ===&lt;br /&gt;
&lt;br /&gt;
* [[Frostiful:Enchantments|Enchantments]]&lt;br /&gt;
* [[Frostiful:Status Effects|Status Effects]]&lt;br /&gt;
&lt;br /&gt;
=== Structures ===&lt;br /&gt;
&lt;br /&gt;
* [[Frostiful:Chillager Outpost|Chillager Outpost]]&lt;br /&gt;
* [[Frostiful:Frostologer&#039;s Castle|Frostologer&#039;s Castle]]&lt;br /&gt;
&lt;br /&gt;
== Developer Docs ==&lt;br /&gt;
For mod pack and addon developers. &lt;br /&gt;
&lt;br /&gt;
* [https://thermoo.thedeathlycow.com/ Thermoo Wiki] - A good resource for the general internals of Frostiful&lt;br /&gt;
* [[Frostiful:Config File|Config File]]&lt;br /&gt;
* [[Frostiful:Datapack Tags|Datapack Tags]]&lt;br /&gt;
* [[Frostiful:Data Component Types|Data Component Types]]&lt;br /&gt;
&lt;br /&gt;
== Compatibility ==&lt;br /&gt;
&lt;br /&gt;
While this mod is designed to be as compatible as possible with other mods, it is inevitable that issues will arise. Specific incompatibilities will be documented here as they become known.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/Alpha-s-Stuff/TinkersConstruct Hephaestus / Tinker&#039;s Construct]: Temperature bar not showing up. &#039;&#039;&#039;FIX:&#039;&#039;&#039; set {{code|extraHeartRenderer}} to {{code|false}} in the {{code|mantle-client.toml}} config.&lt;br /&gt;
&lt;br /&gt;
=== Other Temperature Mods ===&lt;br /&gt;
&lt;br /&gt;
Most other temperature mods do not work with Frostiful&#039;s temperature system and likely never will. Running Frostiful with these mods is redundant as they also add their own temperature system in addition to Frostiful. These mods may technically run together, however if you want to have a warm temperature system with Frostiful I would recommend using [[Mod:Scorchful|Scorchful]] instead, as it was made to work together with Frostiful.&lt;br /&gt;
&lt;br /&gt;
All of the following temperature mods should not be used with Frostiful (note that this list is not exhaustive, these are just the ones I&#039;ve heard of):&lt;br /&gt;
&lt;br /&gt;
* PyroFrost&lt;br /&gt;
* EnvironmentZ&lt;br /&gt;
* Thermite&lt;br /&gt;
* Tough as Nails&lt;br /&gt;
* Cold Sweat&lt;br /&gt;
* Homeostatic&lt;br /&gt;
* Metabolism&lt;br /&gt;
&lt;br /&gt;
For the mods that add thirst - [https://modrinth.com/mod/dehydration Dehydration] works with Scorchful and does not add a temperature system. A new thirst mod called [https://github.com/TheDeathlyCow/thirstful/ Thirstful] is also currently a work in progress.&lt;br /&gt;
&lt;br /&gt;
[[Category:Mods|Frostiful]]&lt;br /&gt;
[[Category:Frostiful]]&lt;/div&gt;</summary>
		<author><name>Patbox</name></author>
	</entry>
	<entry>
		<id>https://modded.wiki/index.php?title=Mod:Familiar_Friends&amp;diff=12521</id>
		<title>Mod:Familiar Friends</title>
		<link rel="alternate" type="text/html" href="https://modded.wiki/index.php?title=Mod:Familiar_Friends&amp;diff=12521"/>
		<updated>2025-07-09T10:01:22Z</updated>

		<summary type="html">&lt;p&gt;Patbox: Patbox moved page Mod:Familiar Friends to Familiar Friends&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Familiar Friends]]&lt;/div&gt;</summary>
		<author><name>Patbox</name></author>
	</entry>
	<entry>
		<id>https://modded.wiki/index.php?title=Familiar_Friends&amp;diff=12520</id>
		<title>Familiar Friends</title>
		<link rel="alternate" type="text/html" href="https://modded.wiki/index.php?title=Familiar_Friends&amp;diff=12520"/>
		<updated>2025-07-09T10:01:22Z</updated>

		<summary type="html">&lt;p&gt;Patbox: Patbox moved page Mod:Familiar Friends to Familiar Friends&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox mod&lt;br /&gt;
|title=Familiar Friends&lt;br /&gt;
|author=Deadlydiamond98&lt;br /&gt;
|latest_release=1.0.6 (1.21/1.21.1) (2025-04-15)&lt;br /&gt;
|initial_release=1.0.0 (1.21/1.21.1) (2024-12-02)&lt;br /&gt;
|sources=https://github.com/Deadlydiamond98/FamiliarFriends&lt;br /&gt;
|discord=https://discord.com/invite/yArvXz9tSq&lt;br /&gt;
|modrinth=https://modrinth.com/mod/familiar-friends/versions&lt;br /&gt;
|curseforge=https://www.curseforge.com/minecraft/mc-mods/familiar-friends&lt;br /&gt;
|minecraft_version=Supported: 1.20.1, 1.21.1&lt;br /&gt;
&lt;br /&gt;
Available: 1.20.1, 1.21, 1.21.1&lt;br /&gt;
|modloader={{Fabric}}&lt;br /&gt;
|image=FamiliarFriends Icon.png}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Familiar Friends&#039;&#039;&#039; is a mod based on the Familiars mod from 2012-2014. The mod adds a [[FamiliarFriends:Book of Familiars|Book]], which can be used to unlock familiars with [[minecraft:Experience|experience]]. These familiars will hover around the players head, and provide them with various different buffs and abilities.&lt;br /&gt;
&lt;br /&gt;
== Content ==&lt;br /&gt;
&lt;br /&gt;
=== Items ===&lt;br /&gt;
&lt;br /&gt;
* [[FamiliarFriends:Book of Familiars|Book of Familiars]]&lt;br /&gt;
&lt;br /&gt;
=== Familiars ===&lt;br /&gt;
&lt;br /&gt;
* [[FamiliarFriends:1-Up Mushroom|1-Up Mushroom]]&lt;br /&gt;
* [[FamiliarFriends:Allay|Allay]]&lt;br /&gt;
* [[FamiliarFriends:Cave Spider|Cave Spider]]&lt;br /&gt;
* [[Chicken]]&lt;br /&gt;
* [[FamiliarFriends:Cirno|Cirno]]&lt;br /&gt;
* [[FamiliarFriends:Companion Cube|Companion Cube]]&lt;br /&gt;
* [[FamiliarFriends:Creeper|Creeper]]&lt;br /&gt;
* [[FamiliarFriends:Goat|Goat]]&lt;br /&gt;
* [[FamiliarFriends:Herobrine|Herobrine]]&lt;br /&gt;
* [[FamiliarFriends:Iron Golem|Iron Golem]]&lt;br /&gt;
* [[FamiliarFriends:Jeb|Jeb]]&lt;br /&gt;
* [[FamiliarFriends:Lemon4k|Lemon4k]]&lt;br /&gt;
* [[FamiliarFriends:Mini Mushroom|Mini Mushroom]]&lt;br /&gt;
* [[FamiliarFriends:Mr. Saturn|Mr. Saturn]]&lt;br /&gt;
* [[FamiliarFriends:Navi|Navi]]&lt;br /&gt;
* [[FamiliarFriends:Ocelot|Ocelot]]&lt;br /&gt;
* [[FamiliarFriends:Rana|Rana]]&lt;br /&gt;
* [[FamiliarFriends:Skeleton|Skeleton]]&lt;br /&gt;
* [[FamiliarFriends:Snow Golem|Snow Golem]]&lt;br /&gt;
* [[FamiliarFriends:Spider|Spider]]&lt;br /&gt;
* [[FamiliarFriends:Squid|Squid]]&lt;br /&gt;
* [[FamiliarFriends:Super Mushroom|Super Mushroom]]&lt;br /&gt;
* [[FamiliarFriends:Tiny Potato|Tiny Potato]]&lt;br /&gt;
* [[FamiliarFriends:Vampire|Vampire]]&lt;br /&gt;
[[Category:Mods|Familiar Friends]]&lt;br /&gt;
{{Navboxes/FamiliarFriends}}&lt;/div&gt;</summary>
		<author><name>Patbox</name></author>
	</entry>
	<entry>
		<id>https://modded.wiki/index.php?title=Talk:Mod:Dusks_Biomes&amp;diff=12519</id>
		<title>Talk:Mod:Dusks Biomes</title>
		<link rel="alternate" type="text/html" href="https://modded.wiki/index.php?title=Talk:Mod:Dusks_Biomes&amp;diff=12519"/>
		<updated>2025-07-09T10:01:16Z</updated>

		<summary type="html">&lt;p&gt;Patbox: Patbox moved page Talk:Mod:Dusks Biomes to Talk:Dusks Biomes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Talk:Dusks Biomes]]&lt;/div&gt;</summary>
		<author><name>Patbox</name></author>
	</entry>
	<entry>
		<id>https://modded.wiki/index.php?title=Talk:Dusks_Biomes&amp;diff=12518</id>
		<title>Talk:Dusks Biomes</title>
		<link rel="alternate" type="text/html" href="https://modded.wiki/index.php?title=Talk:Dusks_Biomes&amp;diff=12518"/>
		<updated>2025-07-09T10:01:16Z</updated>

		<summary type="html">&lt;p&gt;Patbox: Patbox moved page Talk:Mod:Dusks Biomes to Talk:Dusks Biomes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Patbox</name></author>
	</entry>
	<entry>
		<id>https://modded.wiki/index.php?title=Mod:Dusks_Biomes&amp;diff=12517</id>
		<title>Mod:Dusks Biomes</title>
		<link rel="alternate" type="text/html" href="https://modded.wiki/index.php?title=Mod:Dusks_Biomes&amp;diff=12517"/>
		<updated>2025-07-09T10:01:16Z</updated>

		<summary type="html">&lt;p&gt;Patbox: Patbox moved page Mod:Dusks Biomes to Dusks Biomes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Dusks Biomes]]&lt;/div&gt;</summary>
		<author><name>Patbox</name></author>
	</entry>
	<entry>
		<id>https://modded.wiki/index.php?title=Dusks_Biomes&amp;diff=12516</id>
		<title>Dusks Biomes</title>
		<link rel="alternate" type="text/html" href="https://modded.wiki/index.php?title=Dusks_Biomes&amp;diff=12516"/>
		<updated>2025-07-09T10:01:16Z</updated>

		<summary type="html">&lt;p&gt;Patbox: Patbox moved page Mod:Dusks Biomes to Dusks Biomes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox mod&lt;br /&gt;
|title=Dusks Biomes&lt;br /&gt;
|image=DusksBiomes Icon.png&lt;br /&gt;
|author=[https://minecraft.wiki/w/User:DuskAutumnStorm DuskAutumnStorm]&lt;br /&gt;
|latest_release=1.2.1 (1.21/1.21.1) (2025-03-09)&lt;br /&gt;
|initial_release=Public release: 1.0.0 (1.21) (2024-07-09)&lt;br /&gt;
|modloader={{Fabric}}&lt;br /&gt;
|minecraft_version=Supported: 1.21.1&lt;br /&gt;
&lt;br /&gt;
Available: 1.21, 1.21.1&lt;br /&gt;
|modrinth=https://modrinth.com/mod/dusks-biomes&lt;br /&gt;
|discord=https://discord.gg/7ZmWjCD95Y&lt;br /&gt;
|sources=https://github.com/TeamVoided/DusksBiomes&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dusks Biomes&#039;&#039;&#039; is a fabric modification by [https://minecraft.wiki/w/User:DuskAutumnStorm DuskAutumnStorm]. It adds several new biomes in the style of vanilla Minecraft.&lt;br /&gt;
&lt;br /&gt;
== Content ==&lt;br /&gt;
&lt;br /&gt;
=== Biomes ===&lt;br /&gt;
* [[DusksBiomes:Cold Forest|Cold Forest]]&lt;br /&gt;
* [[DusksBiomes:Cold Plains|Cold Plains]]&lt;br /&gt;
* [[DusksBiomes:Warm Forest|Warm Forest]]&lt;br /&gt;
* [[DusksBiomes:Warm Plains|Warm Plains]]&lt;br /&gt;
* [[DusksBiomes:Windswept Birch Forest|Windswept Birch Forest]]&lt;br /&gt;
* [[DusksBiomes:Snowy Windswept Forest|Snowy Windswept Forest]]&lt;br /&gt;
* [[DusksBiomes:Snowy Windswept Hills|Snowy Windswept Hills]]&lt;br /&gt;
* [[DusksBiomes:Snowy Windswept Gravelly Hills|Snowy Windswept Gravelly Hills]]&lt;br /&gt;
* [[DusksBiomes:Snowy Old Growth Spruce Taiga|Snowy Old Growth Spruce Taiga]]&lt;br /&gt;
* [[DusksBiomes:Snowy Old Growth Pine Taiga|Snowy Old Growth Pine Taiga]]&lt;br /&gt;
* [[DusksBiomes:Dark Grove|Dark Grove]]&lt;br /&gt;
* [[DusksBiomes:Snowy Cherry Grove|Snowy Cherry Grove]]&lt;br /&gt;
* [[DusksBiomes:Frozen Mangrove Swamp|Frozen Mangrove Swamp]]&lt;br /&gt;
* [[DusksBiomes:Warm River|Warm River]]&lt;br /&gt;
* [[DusksBiomes:Red Desert|Red Desert]]&lt;br /&gt;
* [[DusksBiomes:Red Warm River|Red Warm River]]&lt;br /&gt;
* [[DusksBiomes:Red Warm Ocean|Red Warm Ocean]]&lt;br /&gt;
* [[DusksBiomes:Deep Red Lukewarm Ocean|Deep Red Lukewarm Ocean]]&lt;br /&gt;
* [[DusksBiomes:Red Beach|Red Beach]]&lt;br /&gt;
* [[DusksBiomes:Snowy Red Beach|Snowy Red Beach]]&lt;br /&gt;
* [[DusksBiomes:Snowy Stony Shore|Snowy Stony Shore]]&lt;br /&gt;
* [[DusksBiomes:Mushroom Grove|Mushroom Grove]]&lt;br /&gt;
* [[DusksBiomes:Eroded Mushroom Island|Eroded Mushroom Island]]&lt;br /&gt;
&lt;br /&gt;
=== Cave Biomes ===&lt;br /&gt;
* [[DusksBiomes:Mushroom Caves|Mushroom Caves]]&lt;br /&gt;
* [[DusksBiomes:Frozen Caverns|Frozen Caverns]]&lt;br /&gt;
* [[DusksBiomes:Sand Caves|Sand Caves]]&lt;br /&gt;
* [[DusksBiomes:Red Sand Caves|Red Sand Caves]]&lt;br /&gt;
* [[DusksBiomes:Gravel Caves|Gravel Caves]]&lt;br /&gt;
&lt;br /&gt;
=== Unused Biomes ===&lt;br /&gt;
* [[DusksBiomes:Frozen Badlands|Frozen Badlands]]&lt;br /&gt;
* [[DusksBiomes:Frozen Wooded Badlands|Frozen Wooded Badlands]]&lt;br /&gt;
* [[DusksBiomes:Frozen Eroded Badlands|Frozen Eroded Badlands]]&lt;br /&gt;
&lt;br /&gt;
=== Structures ===&lt;br /&gt;
* [[DusksBiomes:Swamp Villages|Swamp Villages]]&lt;br /&gt;
* [[DusksBiomes:Mangrove Swamp Villages|Mangrove Swamp Villages]]&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;240&amp;quot;&amp;gt;&lt;br /&gt;
File:DusksBiomes Cold Forest.png|Cold Forest&lt;br /&gt;
File:DusksBiomes Dark Grove.png|Dark Grove&lt;br /&gt;
File:DusksBiomes Eroded Mushroom Island.png|Eroded Mushroom Island&lt;br /&gt;
File:DusksBiomes Frozen Mangrove Swamp.png|Frozen Mangrove Swamp&lt;br /&gt;
File:DusksBiome Snowy Cherry Grove.png|Snowy Cherry Grove&lt;br /&gt;
File:DusksBiomes Warm Forest.png|Warm Forest&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
[[Category:Mods|Dusks Biomes]]&lt;/div&gt;</summary>
		<author><name>Patbox</name></author>
	</entry>
	<entry>
		<id>https://modded.wiki/index.php?title=Mod:Better_With_Time&amp;diff=12515</id>
		<title>Mod:Better With Time</title>
		<link rel="alternate" type="text/html" href="https://modded.wiki/index.php?title=Mod:Better_With_Time&amp;diff=12515"/>
		<updated>2025-07-09T10:01:08Z</updated>

		<summary type="html">&lt;p&gt;Patbox: Patbox moved page Mod:Better With Time to Better With Time&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Better With Time]]&lt;/div&gt;</summary>
		<author><name>Patbox</name></author>
	</entry>
	<entry>
		<id>https://modded.wiki/index.php?title=Better_With_Time&amp;diff=12514</id>
		<title>Better With Time</title>
		<link rel="alternate" type="text/html" href="https://modded.wiki/index.php?title=Better_With_Time&amp;diff=12514"/>
		<updated>2025-07-09T10:01:08Z</updated>

		<summary type="html">&lt;p&gt;Patbox: Patbox moved page Mod:Better With Time to Better With Time&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox mod|title=Better With Time|author=RatherBeLunar|latest_release=Beta 1.9.1|sources=https://github.com/RatherBeLunar/BetterWithTime|discord=https://discord.gg/WUtwPTws2f|modrinth=https://modrinth.com/mod/better-with-time|minecraft_version=1.21.1|initial_release=Beta 1.0|modloader={{Fabric}}|image=Better With Time Logo.png}}&#039;&#039;&#039;Better With Time&#039;&#039;&#039; is a Fabric mod created by [https://modrinth.com/user/RatherBeLunar RatherBeLunar], which adds many of the blocks, items, and game mechanics seen within earlier versions of the [https://wiki.btwce.com/index.php/Main_Page Better Than Wolves] mod.&lt;br /&gt;
&lt;br /&gt;
Better Than Wolves pioneered many technical blocks, items, and mechanics that overhauled the way players build, automate, and farm resources. Better With Time seeks to bring that classic, vanilla-adjacent, 2011-2012 experience to the modern Minecraft environment.&lt;br /&gt;
&lt;br /&gt;
== Gameplay ==&lt;br /&gt;
(In Progress)&lt;br /&gt;
&lt;br /&gt;
== Changes to Vanilla Mechanics ==&lt;br /&gt;
&#039;&#039;&#039;Automated Breeding&#039;&#039;&#039; - Chickens, cows, sheep, pigs, and wolves will all seek out, walk to, pick up, and eat their respective breeding foods from the ground. This means that, using droppers and redstone, animal breeding can be automated at scale.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Netherite Overhaul&#039;&#039;&#039; - Netherite undergoes many changes in this mod.&lt;br /&gt;
&lt;br /&gt;
# Netherite ingots can now be obtained in larger quantities automatically in the [[Better With Time:Crucible|Crucible]], using the mod&#039;s many new systems and crafting recipes together.&lt;br /&gt;
# Netherite armor and tools are no longer upgraded from the diamond tier, but rather crafted directly in the [[Better With Time:Soul Forge|Soul Forge]] using [[Better With Time:Padding|Padding]] as an extra component of armor, and [[Better With Time:Haft|Hafts]] in place of sticks for tools.&lt;br /&gt;
# New Netherite tools have been added - the [[Better With Time:Netherite Mattock|Netherite Mattock]] and [[Better With Time:Netherite Battle Axe|Netherite Battle Axe]]. The mattock functions as both a pickaxe and shovel simultaneously, and the battle axe functions as both an axe and sword.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Nether Wart Growth&#039;&#039;&#039; - Nether wart now only grows in the nether, and not in the overworld or end. This is meant as a way to encourage players to build a base in the nether and spend time there, rather than grabbing materials and leaving.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Skeletons Have Rotted Arrows&#039;&#039;&#039; - Skeletons will shoot rotted arrows instead of regular arrows, and they drop rotted arrows on death. This makes them a bit weaker, but also makes crafting normal arrows a more rewarding strategy than farming skeletons&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mob Spawners Grow Moss&#039;&#039;&#039; - Mob spawner blocks will slowly convert random nearby cobblestone blocks (as well as cobblestone slabs, stairs, and walls) into mossy cobblestone. The vanilla recipes for mossy cobblestone have been disabled, to encourage automation of this process. Specifically, if the spawner block is at (0, 0, 0), cobblestone blocks anywhere from (-4, -1, -4) to (4, 4, 4) will be affected.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mill Stone Grinding Required&#039;&#039;&#039; - Some vanilla recipes have been disabled in favor of using the Mill Stone. For example, wheat must be ground into flour and cooked in order to make bread, and bones can only be ground into bonemeal in the Mill Stone.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Villagers Drop XP&#039;&#039;&#039; - All adult villagers will drop 50xp, the same amount as the Wither, when killed by a player. Do with this information what you will.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;More Detector Rails&#039;&#039;&#039; - BWT adds additional tiers of detector rails to match their corresponding pressure plates. Detector rails made with stone pressure plates don&#039;t activate for empty, unoccupied minecarts, but they activate for all other types of carts, and occupied minecarts. Detector rails made with obsidian pressure plates only activate for minecarts occupied by a player, and detector rails made with wooden pressure plates activate for any and all carts, like the vanilla detector rail&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Eggs as Food&#039;&#039;&#039; - When an egg is thrown or dispensed, if it doesn&#039;t spawn a chicken, it instead turns into a raw egg item. These cracked eggs can be cooked in the furnace or cauldron to get a fried egg or poached egg, respectively.&lt;br /&gt;
&lt;br /&gt;
== Blocks ==&lt;br /&gt;
* [[Better With Time:Anchor|Anchor]]&lt;br /&gt;
* [[Better With Time:Axle|Axle]]&lt;br /&gt;
* [[Better With Time:Bellows|Bellows]]&lt;br /&gt;
* [[Better With Time:Block Dispenser|Block Dispenser]]&lt;br /&gt;
* [[Better With Time:Buddy Block|Buddy Block]]&lt;br /&gt;
* [[Better With Time:Cauldron|Cauldron]]&lt;br /&gt;
* [[Better With Time:Canvas|Canvas]]&lt;br /&gt;
* [[Better With Time:Columns|Columns]]&lt;br /&gt;
* [[Better With Time:Concentrated Hellfire|Concentrated Hellfire Block]]&lt;br /&gt;
* [[Better With Time:Companion Cube|Companion Cube]]&lt;br /&gt;
* [[Better With Time:Companion Slab|Companion Slab]]&lt;br /&gt;
* [[Better With Time:Corners|Corners]]&lt;br /&gt;
* [[Better With Time:Crucible|Crucible]]&lt;br /&gt;
* [[Better With Time:Detector Block|Detector Block]]&lt;br /&gt;
* [[Better With Time:Dung Block|Dung Block]]&lt;br /&gt;
* [[Better With Time:Gear Box|Gear Box]]&lt;br /&gt;
* [[Better With Time:Grate|Grate]]&lt;br /&gt;
* [[Better With Time:Hand Crank|Hand Crank]]&lt;br /&gt;
* [[Better With Time:Hemp|Hemp]]&lt;br /&gt;
* [[Better With Time:Hibachi|Hibachi]]&lt;br /&gt;
* [[Better With Time:Hopper|Hopper]]&lt;br /&gt;
* [[Better With Time:Kiln|Kiln]]&lt;br /&gt;
* [[Better With Time:Lens|Lens]]&lt;br /&gt;
* [[Better With Time:Light Block|Light Block]]&lt;br /&gt;
* [[Better With Time:Mill Stone|Mill Stone]]&lt;br /&gt;
* [[Better With Time:Mining Charge|Mining Charge]]&lt;br /&gt;
* [[Better With Time:Moulding|Moulding]]&lt;br /&gt;
* [[Better With Time:Obsidian Detector Rail|Obsidian Detector Rail]]&lt;br /&gt;
* [[Better With Time:Obsidian Pressure Plate|Obsidian Pressure Plate]]&lt;br /&gt;
* [[Better With Time:Planter|Planter]]&lt;br /&gt;
* [[Better With Time:Soil Planter|Soil Planter]]&lt;br /&gt;
* [[Better With Time:Soul Sand Planter|Soul Sand Planter]]&lt;br /&gt;
* [[Better With Time:Grass Planter|Grass Planter]]&lt;br /&gt;
* [[Better With Time:Padding Block|Padding Block]]&lt;br /&gt;
* [[Better With Time:Pedestals|Pedestals]]&lt;br /&gt;
* [[Better With Time:Platform|Platform]]&lt;br /&gt;
* [[Better With Time:Pulley|Pulley]]&lt;br /&gt;
* [[Better With Time:Rope Coil Block|Rope Coil Block]]&lt;br /&gt;
* [[Better With Time:Rope|Rope]]&lt;br /&gt;
* [[Better With Time:Saw|Saw]]&lt;br /&gt;
* [[Better With Time:Screw Pump|Screw Pump]]&lt;br /&gt;
* [[Better With Time:Siding|Siding]]&lt;br /&gt;
* [[Better With Time:Slats|Slats]]&lt;br /&gt;
* [[Better With Time:Soap Block|Soap Block]]&lt;br /&gt;
* [[Better With Time:Stake|Stake]]&lt;br /&gt;
* [[Better With Time:Stoked Fire|Stoked Fire]]&lt;br /&gt;
* [[Better With Time:Stone Detector Rail|Stone Detector Rail]]&lt;br /&gt;
* [[Better With Time:Soul Forge|Soul Forge]]&lt;br /&gt;
* [[Better With Time:Tables|Tables]]&lt;br /&gt;
* [[Better With Time:Turntable|Turntable]]&lt;br /&gt;
* [[Better With Time:Unfired Pottery|Unfired Pottery]]&lt;br /&gt;
* [[Better With Time:Urn|Urn]]&lt;br /&gt;
* [[Better With Time:Wicker|Wicker Pane]]&lt;br /&gt;
* [[Better With Time:Wicker Block|Wicker Block]]&lt;br /&gt;
* [[Better With Time:Wicker Slab|Wicker Slab]]&lt;br /&gt;
* [[Better With Time:Wooden Detector Rail|Wooden Detector Rail]]&lt;br /&gt;
* [[Better With Time:Vine Trap|Vine Trap]]&lt;br /&gt;
* [[Better With Time:Dirt Slab|Dirt Slab]]&lt;br /&gt;
* [[Better With Time:Dirt Path Slab|Dirt Path Slab]]&lt;br /&gt;
* [[Better With Time:Grass Slab|Grass Slab]]&lt;br /&gt;
* [[Better With Time:Mycelium Slab|Mycelium Slab]]&lt;br /&gt;
* [[Better With Time:Podzol Slab|Podzol Slab]]&lt;br /&gt;
* [[Better With Time:Wool Slab|Wool Slab]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Items ==&lt;br /&gt;
* [[Better With Time:Cement Bucket|Cement Bucket]]&lt;br /&gt;
* [[Better With Time:Armor Plate|Armor Plate]]&lt;br /&gt;
* [[Better With Time:Belt|Belt]]&lt;br /&gt;
* [[Better With Time:Breeding Harness|Breeding Harness]]&lt;br /&gt;
* [[Better With Time:Broadhead|Broadhead]]&lt;br /&gt;
* [[Better With Time:Broadhead Arrow|Broadhead Arrow]]&lt;br /&gt;
* [[Better With Time:Canvas|Canvas]]&lt;br /&gt;
* [[Better With Time:Coal Dust|Coal Dust]]&lt;br /&gt;
* [[Better With Time:Composite Bow|Composite Bow]]&lt;br /&gt;
* [[Better With Time:Concentrated Hellfire|Concentrated Hellfire]]&lt;br /&gt;
* [[Better With Time:Cooked Wolf Chop|Cooked Wolf Chop]]&lt;br /&gt;
* [[Better With Time:Donut|Donut]]&lt;br /&gt;
* [[Better With Time:Dung|Dung]]&lt;br /&gt;
* [[Better With Time:Dynamite|Dynamite]]&lt;br /&gt;
* [[Better With Time:Fabric|Fabric]]&lt;br /&gt;
* [[Better With Time:Filament|Filament]]&lt;br /&gt;
* [[Better With Time:Flour|Flour]]&lt;br /&gt;
* [[Better With Time:Foul Food|Foul Food]]&lt;br /&gt;
* [[Better With Time:Fried Egg|Fried Egg]]&lt;br /&gt;
* [[Better With Time:Gear|Gear]]&lt;br /&gt;
* [[Better With Time:Glue|Glue]]&lt;br /&gt;
* [[Better With Time:Ground Netherrack|Ground Netherrack]]&lt;br /&gt;
* [[Better With Time:Haft|Haft]]&lt;br /&gt;
* [[Better With Time:Hellfire Dust|Hellfire Dust]]&lt;br /&gt;
* [[Better With Time:Hemp Fiber|Hemp Fiber]]&lt;br /&gt;
* [[Better With Time:Hemp|Hemp]]&lt;br /&gt;
* [[Better With Time:Hemp Seeds|Hemp Seeds]]&lt;br /&gt;
* [[Better With Time:Kibble|Kibble]]&lt;br /&gt;
* [[Better With Time:Mould|Mould]]&lt;br /&gt;
* [[Better With Time:Nether Sludge|Nether Sludge]]&lt;br /&gt;
* [[Better With Time:Nethercoal|Nethercoal]]&lt;br /&gt;
* [[Better With Time:Padding|Padding]]&lt;br /&gt;
* [[Better With Time:Poached Egg|Poached Egg]]&lt;br /&gt;
* [[Better With Time:Potash|Potash]]&lt;br /&gt;
* [[Better With Time:Raw Egg|Raw Egg]]&lt;br /&gt;
* [[Better With Time:Redstone Eye|Redstone Eye]]&lt;br /&gt;
* [[Better With Time:Netherite Mattock|Netherite Mattock]]&lt;br /&gt;
* [[Better With Time:Netherite Battle Axe|Netherite Battle Axe]]&lt;br /&gt;
* [[Better With Time:Rope|Rope]]&lt;br /&gt;
* [[Better With Time:Rotted Arrow|Rotted Arrow]]&lt;br /&gt;
* [[Better With Time:Sail|Sail]]&lt;br /&gt;
* [[Better With Time:Saw Dust|Saw Dust]]&lt;br /&gt;
* [[Better With Time:Scoured Leather|Scoured Leather]]&lt;br /&gt;
* [[Better With Time:Screw|Screw]]&lt;br /&gt;
* [[Better With Time:Soap|Soap]]&lt;br /&gt;
* [[Better With Time:Soul Dust|Soul Dust]]&lt;br /&gt;
* [[Better With Time:Soul Urn|Soul Urn]]&lt;br /&gt;
* [[Better With Time:Strap|Strap]]&lt;br /&gt;
* [[Better With Time:Tallow|Tallow]]&lt;br /&gt;
* [[Better With Time:Tanned Leather|Tanned Leather]]&lt;br /&gt;
* [[Better With Time:Water Wheel|Water Wheel]]&lt;br /&gt;
* [[Better With Time:Windmill|Windmill]]&lt;br /&gt;
* [[Better With Time:Wolf Chop|Wolf Chop]]&lt;br /&gt;
* [[Better With Time:Wood Blade|Wood Blade]]&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;240&amp;quot;&amp;gt;&lt;br /&gt;
File:BWT shaders showcase.png|Pictured here: windmill, water wheel, hemp, turntable, pottery, millstone, saw, block dispenser, detector block, hibachi, cauldron&lt;br /&gt;
File:BWT stohun world.png|A quaint little BWT town built by Stohun&lt;br /&gt;
File:BWT advancements tree.png|Not an exhaustive list of all the mod has to offer, but these advancements can serve as a guide for new players&lt;br /&gt;
File:BWT ivan windmill.png|A windmill building, housing a few millstones inside for automated grinding&lt;br /&gt;
File:BWT ivan mills.png|Millstones receiving mechanical power from the windmill above&lt;br /&gt;
File:BWT ivan planters.png|A garden of planters - a pottery block that causes the soil within to stay watered permanently. In the middle, this mod&#039;s signature crop, hemp, is growing.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Mods|Better With Time]]&lt;/div&gt;</summary>
		<author><name>Patbox</name></author>
	</entry>
	<entry>
		<id>https://modded.wiki/index.php?title=Mod:Basic_Weapons&amp;diff=12513</id>
		<title>Mod:Basic Weapons</title>
		<link rel="alternate" type="text/html" href="https://modded.wiki/index.php?title=Mod:Basic_Weapons&amp;diff=12513"/>
		<updated>2025-07-09T10:01:00Z</updated>

		<summary type="html">&lt;p&gt;Patbox: Patbox moved page Mod:Basic Weapons to Basic Weapons&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Basic Weapons]]&lt;/div&gt;</summary>
		<author><name>Patbox</name></author>
	</entry>
	<entry>
		<id>https://modded.wiki/index.php?title=Basic_Weapons&amp;diff=12512</id>
		<title>Basic Weapons</title>
		<link rel="alternate" type="text/html" href="https://modded.wiki/index.php?title=Basic_Weapons&amp;diff=12512"/>
		<updated>2025-07-09T10:00:59Z</updated>

		<summary type="html">&lt;p&gt;Patbox: Patbox moved page Mod:Basic Weapons to Basic Weapons&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox mod|title=Basic Weapons|image=Basic_Weapons_Logo.gif|author=Khazoda|latest_release=1.2.7 (2024-06-18)|initial_release=1.0.0 (2023-09-30)|modloader={{Fabric}}|minecraft_version=Active: 1.21&lt;br /&gt;
&lt;br /&gt;
Available: 1.20.6/5, 1.20.4, 1.20.2, 1.20.1, 1.19.2|modrinth=https://modrinth.com/mod/basic-weapons|curseforge=https://curseforge.com/minecraft/mc-mods/basic-weapons|sources=https://github.com/Khazoda/basic-weapons}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Basic Weapons&#039;&#039;&#039; is a Fabric mod created by Khazoda that adds new distinct weapons, each with individual strengths and weaknesses.&lt;br /&gt;
&lt;br /&gt;
This mod aims to reimagine Minecraft&#039;s combat through different vanilla-feeling weapon choices.&lt;br /&gt;
&lt;br /&gt;
== Gameplay ==&lt;br /&gt;
Vanilla Minecraft boasts two distinct melee weapons, the [[Minecraft:Sword|Sword]] and the [[Minecraft:Axe|Axe]]. [[Mods:Basic Weapons|Basic Weapons]] looks to expand on these two weapons with 5 new offerings which have a distinct playstyle and optimal use scenario, much like vanilla weapons.&lt;br /&gt;
&lt;br /&gt;
=== Weapon Types ===&lt;br /&gt;
Basic Weapons adds 5 new distinct weapon types.&lt;br /&gt;
&lt;br /&gt;
* [[File:Iron Dagger.png|frameless|48x48px]][[Basic Weapons:Dagger|Daggers]]&lt;br /&gt;
* [[File:Iron Club.png|frameless|48x48px]][[Basic Weapons:Club|Clubs]]&lt;br /&gt;
* [[File:Iron Hammer.png|frameless|48x48px]][[Basic Weapons:Hammer|Hammers]]&lt;br /&gt;
* [[File:Iron Spear.png|frameless|48x48px]][[Basic Weapons:Spear|Spears]]&lt;br /&gt;
* [[File:Iron Quarterstaff.png|frameless|48x48px]][[Basic Weapons:Quarterstaff|Quarterstaves]]&lt;br /&gt;
&lt;br /&gt;
=== Strengths and Weaknesses ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Weapons&lt;br /&gt;
|&#039;&#039;&#039;Weapon&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Damage&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Attack Speed&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Use Case&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| Dagger &lt;br /&gt;
|Low&lt;br /&gt;
|High|| The dagger works well for adventurers that need to be light on their feet in battle, dashing in and out of combat or pummelling enemies with a flurry of attacks.&lt;br /&gt;
|-&lt;br /&gt;
| Club &lt;br /&gt;
|High&lt;br /&gt;
|Low|| The club slows enemies briefly when hit, and works well as a weapon for those used to the vanilla sword that may want a little more damage and single target utility.&lt;br /&gt;
|-&lt;br /&gt;
| Hammer &lt;br /&gt;
|Very High&lt;br /&gt;
|Very Low|| The hammer can do staggering amounts of damage, and flings targets into the air. This weapon is quite situational - it won&#039;t shine much in most combat situations, but when it does, it &#039;&#039;really&#039;&#039; does.&lt;br /&gt;
|-&lt;br /&gt;
| Spear &lt;br /&gt;
|Medium&lt;br /&gt;
|Medium|| The spear is for those who like to keep their enemies at further than arm&#039;s reach. &lt;br /&gt;
|-&lt;br /&gt;
| Quarterstaff &lt;br /&gt;
|Low&lt;br /&gt;
|Medium|| The quarterstaff excels at multi-target crowd control. Like the vanilla sword, its sweeping attacks keep enemies at bay, but with higher attack speed and reach it is comparatively more effective with large groups of enemies&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Mod Integration ==&lt;br /&gt;
Basic Weapons works as a standalone mod, but really shines when paired with other select mods.&lt;br /&gt;
&lt;br /&gt;
=== Bronze ===&lt;br /&gt;
The [[Mod:Bronze|Bronze]] mod adds bronze weapons, armour and more. When used alongside Basic Weapons, bronze variants of each weapon are available.&lt;br /&gt;
&lt;br /&gt;
=== Better Combat ===&lt;br /&gt;
[https://modrinth.com/mod/better-combat Better Combat] overhauls Minecraft&#039;s combat system, adding fresh new animations and attack patterns for vanilla weapons.&lt;br /&gt;
&lt;br /&gt;
Every weapon from Basic Weapons has its own attack pattern, with some supporting dual wielding such as clubs, daggers and hammers.&lt;br /&gt;
&lt;br /&gt;
Hammers also come with their own custom animation.&lt;br /&gt;
&lt;br /&gt;
[[Category:Mods|Basic Weapons]]&lt;/div&gt;</summary>
		<author><name>Patbox</name></author>
	</entry>
	<entry>
		<id>https://modded.wiki/index.php?title=Mod:Basic_Storage&amp;diff=12511</id>
		<title>Mod:Basic Storage</title>
		<link rel="alternate" type="text/html" href="https://modded.wiki/index.php?title=Mod:Basic_Storage&amp;diff=12511"/>
		<updated>2025-07-09T10:00:51Z</updated>

		<summary type="html">&lt;p&gt;Patbox: Patbox moved page Mod:Basic Storage to Basic Storage&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Basic Storage]]&lt;/div&gt;</summary>
		<author><name>Patbox</name></author>
	</entry>
	<entry>
		<id>https://modded.wiki/index.php?title=Basic_Storage&amp;diff=12510</id>
		<title>Basic Storage</title>
		<link rel="alternate" type="text/html" href="https://modded.wiki/index.php?title=Basic_Storage&amp;diff=12510"/>
		<updated>2025-07-09T10:00:51Z</updated>

		<summary type="html">&lt;p&gt;Patbox: Patbox moved page Mod:Basic Storage to Basic Storage&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox mod|title=Basic Storage|image=Basic Storage Logo.png|author=Khazoda|latest_release=1.0.0 (2024-07-16)|initial_release=1.0.0 (2024-07-16)|modloader={{Fabric}}|minecraft_version=Active: 1.21|modrinth=https://modrinth.com/mod/basic-storage|curseforge=https://curseforge.com/minecraft/mc-mods/basic-storage|sources=https://github.com/Khazoda/basic-storage}}&#039;&#039;&#039;Basic Storage&#039;&#039;&#039; is a Fabric mod created by Khazoda that adds a new storage block, the [[Basic Storage:Crate|Crate]].&lt;br /&gt;
&lt;br /&gt;
This mod aims to supplement vanilla&#039;s existing storage options, rather than render them obsolete.&lt;br /&gt;
&lt;br /&gt;
== Gameplay ==&lt;br /&gt;
Vanilla Minecraft&#039;s general storage options are all accessed through a GUI, and have finite slots which allow for item stacks to be placed in them.&lt;br /&gt;
&lt;br /&gt;
New storage solutions offered by Basic Storage diversify the ways in which storage blocks are interacted with.&lt;br /&gt;
&lt;br /&gt;
== New Items ==&lt;br /&gt;
Basic Storage adds the following items:&lt;br /&gt;
&lt;br /&gt;
[[File:Crate.png|alt=Isometric render of crate block|frameless|48x48px]][[Basic Storage:Crate|Crate]]&lt;br /&gt;
&lt;br /&gt;
{{DEFAULTSORT:Basic Storage}}&lt;br /&gt;
[[Category:Mods]]&lt;/div&gt;</summary>
		<author><name>Patbox</name></author>
	</entry>
	<entry>
		<id>https://modded.wiki/index.php?title=Mod:Astral_Arsenal&amp;diff=12509</id>
		<title>Mod:Astral Arsenal</title>
		<link rel="alternate" type="text/html" href="https://modded.wiki/index.php?title=Mod:Astral_Arsenal&amp;diff=12509"/>
		<updated>2025-07-09T10:00:38Z</updated>

		<summary type="html">&lt;p&gt;Patbox: Patbox moved page Mod:Astral Arsenal to Astral Arsenal&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Astral Arsenal]]&lt;/div&gt;</summary>
		<author><name>Patbox</name></author>
	</entry>
</feed>