<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.hoodedhorse.com/Terra_Invicta/index.php?action=history&amp;feed=atom&amp;title=Module%3AHabSiteInvicta</id>
	<title>Module:HabSiteInvicta - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.hoodedhorse.com/Terra_Invicta/index.php?action=history&amp;feed=atom&amp;title=Module%3AHabSiteInvicta"/>
	<link rel="alternate" type="text/html" href="https://wiki.hoodedhorse.com/Terra_Invicta/index.php?title=Module:HabSiteInvicta&amp;action=history"/>
	<updated>2026-09-26T18:26:38Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.44.5</generator>
	<entry>
		<id>https://wiki.hoodedhorse.com/Terra_Invicta/index.php?title=Module:HabSiteInvicta&amp;diff=10098&amp;oldid=prev</id>
		<title>76561197970425841 at 23:21, 17 December 2025</title>
		<link rel="alternate" type="text/html" href="https://wiki.hoodedhorse.com/Terra_Invicta/index.php?title=Module:HabSiteInvicta&amp;diff=10098&amp;oldid=prev"/>
		<updated>2025-12-17T23:21:53Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 23:21, 17 December 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l70&quot;&gt;Line 70:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 70:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;---@return wiki table of HabSites&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;---@return wiki table of HabSites&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;function HabSiteLister.ListHabSites(mode, specificSpaceBody, restrictInner, restrictOuter)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;function HabSiteLister.ListHabSites(mode, specificSpaceBody, restrictInner, restrictOuter)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	local returnString = &#039;{| &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;class=&quot;wikitable&quot; &lt;/del&gt;style=&quot;margin-left: auto; margin-right: auto; text-align:center;&quot;&#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	local returnString = &#039;{| style=&quot;margin-left: auto; margin-right: auto; text-align:center;&quot;&#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	returnString = returnString .. &amp;#039;\n|-&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	returnString = returnString .. &amp;#039;\n|-&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	returnString = returnString .. &amp;quot;\n! Site Name&amp;lt;ref&amp;gt;Site resource numbers are median values of possible rolls. &amp;#039;&amp;#039;Note: 0 still has 50% roll chance for positive value.&amp;#039;&amp;#039;&amp;lt;/ref&amp;gt;&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	returnString = returnString .. &amp;quot;\n! Site Name&amp;lt;ref&amp;gt;Site resource numbers are median values of possible rolls. &amp;#039;&amp;#039;Note: 0 still has 50% roll chance for positive value.&amp;#039;&amp;#039;&amp;lt;/ref&amp;gt;&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key TI_:diff:1.41:old-10096:rev-10098:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>76561197970425841</name></author>
	</entry>
	<entry>
		<id>https://wiki.hoodedhorse.com/Terra_Invicta/index.php?title=Module:HabSiteInvicta&amp;diff=10096&amp;oldid=prev</id>
		<title>76561197970425841 at 23:19, 17 December 2025</title>
		<link rel="alternate" type="text/html" href="https://wiki.hoodedhorse.com/Terra_Invicta/index.php?title=Module:HabSiteInvicta&amp;diff=10096&amp;oldid=prev"/>
		<updated>2025-12-17T23:19:13Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 23:19, 17 December 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l70&quot;&gt;Line 70:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 70:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;---@return wiki table of HabSites&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;---@return wiki table of HabSites&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;function HabSiteLister.ListHabSites(mode, specificSpaceBody, restrictInner, restrictOuter)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;function HabSiteLister.ListHabSites(mode, specificSpaceBody, restrictInner, restrictOuter)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	local returnString = &#039;{| class=&quot;wikitable &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;mw-collapsible&lt;/del&gt;&quot; style=&quot;margin-left: auto; margin-right: auto; text-align:center;&quot;&#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	local returnString = &#039;{| class=&quot;wikitable&quot; style=&quot;margin-left: auto; margin-right: auto; text-align:center;&quot;&#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	returnString = returnString .. &amp;#039;\n|-&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	returnString = returnString .. &amp;#039;\n|-&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	returnString = returnString .. &amp;quot;\n! Site Name&amp;lt;ref&amp;gt;Site resource numbers are median values of possible rolls. &amp;#039;&amp;#039;Note: 0 still has 50% roll chance for positive value.&amp;#039;&amp;#039;&amp;lt;/ref&amp;gt;&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	returnString = returnString .. &amp;quot;\n! Site Name&amp;lt;ref&amp;gt;Site resource numbers are median values of possible rolls. &amp;#039;&amp;#039;Note: 0 still has 50% roll chance for positive value.&amp;#039;&amp;#039;&amp;lt;/ref&amp;gt;&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key TI_:diff:1.41:old-10095:rev-10096:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>76561197970425841</name></author>
	</entry>
	<entry>
		<id>https://wiki.hoodedhorse.com/Terra_Invicta/index.php?title=Module:HabSiteInvicta&amp;diff=10095&amp;oldid=prev</id>
		<title>76561197970425841 at 23:12, 17 December 2025</title>
		<link rel="alternate" type="text/html" href="https://wiki.hoodedhorse.com/Terra_Invicta/index.php?title=Module:HabSiteInvicta&amp;diff=10095&amp;oldid=prev"/>
		<updated>2025-12-17T23:12:54Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 23:12, 17 December 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l72&quot;&gt;Line 72:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 72:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	local returnString = &amp;#039;{| class=&amp;quot;wikitable mw-collapsible&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; text-align:center;&amp;quot;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	local returnString = &amp;#039;{| class=&amp;quot;wikitable mw-collapsible&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; text-align:center;&amp;quot;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	returnString = returnString .. &amp;#039;\n|-&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	returnString = returnString .. &amp;#039;\n|-&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	returnString = returnString .. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&lt;/del&gt;\n! Site Name&amp;lt;ref&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Numbers &lt;/del&gt;are median values. Note: 0 still has 50% roll chance for positive value.&amp;lt;/ref&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	returnString = returnString .. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&quot;&lt;/ins&gt;\n! Site Name&amp;lt;ref&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Site resource numbers &lt;/ins&gt;are median values &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;of possible rolls&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&lt;/ins&gt;Note: 0 still has 50% roll chance for positive value.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&lt;/ins&gt;&amp;lt;/ref&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&quot;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	returnString = returnString .. &amp;#039;\n!&amp;#039; .. IconModule.Icon({args={&amp;#039;water&amp;#039;}})&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	returnString = returnString .. &amp;#039;\n!&amp;#039; .. IconModule.Icon({args={&amp;#039;water&amp;#039;}})&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	returnString = returnString .. &amp;#039;\n!&amp;#039; .. IconModule.Icon({args={&amp;#039;volatiles&amp;#039;}})&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	returnString = returnString .. &amp;#039;\n!&amp;#039; .. IconModule.Icon({args={&amp;#039;volatiles&amp;#039;}})&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key TI_:diff:1.41:old-10094:rev-10095:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>76561197970425841</name></author>
	</entry>
	<entry>
		<id>https://wiki.hoodedhorse.com/Terra_Invicta/index.php?title=Module:HabSiteInvicta&amp;diff=10094&amp;oldid=prev</id>
		<title>76561197970425841 at 23:08, 17 December 2025</title>
		<link rel="alternate" type="text/html" href="https://wiki.hoodedhorse.com/Terra_Invicta/index.php?title=Module:HabSiteInvicta&amp;diff=10094&amp;oldid=prev"/>
		<updated>2025-12-17T23:08:01Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 23:08, 17 December 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l72&quot;&gt;Line 72:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 72:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	local returnString = &amp;#039;{| class=&amp;quot;wikitable mw-collapsible&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; text-align:center;&amp;quot;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	local returnString = &amp;#039;{| class=&amp;quot;wikitable mw-collapsible&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto; text-align:center;&amp;quot;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	returnString = returnString .. &amp;#039;\n|-&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	returnString = returnString .. &amp;#039;\n|-&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	returnString = returnString .. &#039;\n! Site Name&#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	returnString = returnString .. &#039;\n! Site Name&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;ref&amp;gt;Numbers are median values. Note: 0 still has 50% roll chance for positive value.&amp;lt;/ref&amp;gt;&lt;/ins&gt;&#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	returnString = returnString .. &amp;#039;\n!&amp;#039; .. IconModule.Icon({args={&amp;#039;water&amp;#039;}})&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	returnString = returnString .. &amp;#039;\n!&amp;#039; .. IconModule.Icon({args={&amp;#039;water&amp;#039;}})&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	returnString = returnString .. &amp;#039;\n!&amp;#039; .. IconModule.Icon({args={&amp;#039;volatiles&amp;#039;}})&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	returnString = returnString .. &amp;#039;\n!&amp;#039; .. IconModule.Icon({args={&amp;#039;volatiles&amp;#039;}})&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key TI_:diff:1.41:old-10093:rev-10094:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>76561197970425841</name></author>
	</entry>
	<entry>
		<id>https://wiki.hoodedhorse.com/Terra_Invicta/index.php?title=Module:HabSiteInvicta&amp;diff=10093&amp;oldid=prev</id>
		<title>76561197970425841 at 22:48, 17 December 2025</title>
		<link rel="alternate" type="text/html" href="https://wiki.hoodedhorse.com/Terra_Invicta/index.php?title=Module:HabSiteInvicta&amp;diff=10093&amp;oldid=prev"/>
		<updated>2025-12-17T22:48:29Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 22:48, 17 December 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l70&quot;&gt;Line 70:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 70:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;---@return wiki table of HabSites&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;---@return wiki table of HabSites&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;function HabSiteLister.ListHabSites(mode, specificSpaceBody, restrictInner, restrictOuter)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;function HabSiteLister.ListHabSites(mode, specificSpaceBody, restrictInner, restrictOuter)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	local returnString = &#039;{| class=&quot;wikitable&quot; style=&quot;text-align: center;&quot;&#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	local returnString = &#039;{| class=&quot;wikitable &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;mw-collapsible&lt;/ins&gt;&quot; style=&quot;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;margin-left: auto; margin-right: auto; &lt;/ins&gt;text-align:center;&quot;&#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	returnString = returnString .. &amp;#039;\n|-&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	returnString = returnString .. &amp;#039;\n|-&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	returnString = returnString .. &amp;#039;\n! Site Name&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	returnString = returnString .. &amp;#039;\n! Site Name&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key TI_:diff:1.41:old-10090:rev-10093:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>76561197970425841</name></author>
	</entry>
	<entry>
		<id>https://wiki.hoodedhorse.com/Terra_Invicta/index.php?title=Module:HabSiteInvicta&amp;diff=10090&amp;oldid=prev</id>
		<title>76561197970425841 at 22:41, 17 December 2025</title>
		<link rel="alternate" type="text/html" href="https://wiki.hoodedhorse.com/Terra_Invicta/index.php?title=Module:HabSiteInvicta&amp;diff=10090&amp;oldid=prev"/>
		<updated>2025-12-17T22:41:18Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 22:41, 17 December 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l87&quot;&gt;Line 87:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 87:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			returnString = returnString .. &amp;#039;\n| style=&amp;quot;text-align:left;&amp;quot; |&amp;#039; .. (HabSiteNames[&amp;#039;TIHabSiteTemplate.displayName.&amp;#039; .. rowID] or rowID)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			returnString = returnString .. &amp;#039;\n| style=&amp;quot;text-align:left;&amp;quot; |&amp;#039; .. (HabSiteNames[&amp;#039;TIHabSiteTemplate.displayName.&amp;#039; .. rowID] or rowID)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;			local miningProfileID = row[&#039;miningProfileName&#039;]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			local modifyBySize = MiningProfileData[miningProfileID][&amp;#039;modifyBySize&amp;#039;]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			local modifyBySize = MiningProfileData[miningProfileID][&amp;#039;modifyBySize&amp;#039;]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			local waterMean = tonumber(MiningProfileData[miningProfileID][&amp;#039;water_mean&amp;#039;])&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			local waterMean = tonumber(MiningProfileData[miningProfileID][&amp;#039;water_mean&amp;#039;])&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key TI_:diff:1.41:old-10089:rev-10090:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>76561197970425841</name></author>
	</entry>
	<entry>
		<id>https://wiki.hoodedhorse.com/Terra_Invicta/index.php?title=Module:HabSiteInvicta&amp;diff=10089&amp;oldid=prev</id>
		<title>76561197970425841: Test draft</title>
		<link rel="alternate" type="text/html" href="https://wiki.hoodedhorse.com/Terra_Invicta/index.php?title=Module:HabSiteInvicta&amp;diff=10089&amp;oldid=prev"/>
		<updated>2025-12-17T22:35:54Z</updated>

		<summary type="html">&lt;p&gt;Test draft&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;---&lt;br /&gt;
---This is a variation of Module:HabSiteLister which imitates the format of the site list seen in the game.&lt;br /&gt;
---&lt;br /&gt;
---@module HabSiteLister&lt;br /&gt;
local HabSiteLister = {}&lt;br /&gt;
&lt;br /&gt;
--region Dependencies&lt;br /&gt;
local IconModule = require(&amp;#039;Module:Icon&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
local HabSiteData = mw.loadData(&amp;#039;Module:CSVReader/HabSite&amp;#039;)&lt;br /&gt;
local MiningProfileData = mw.loadData(&amp;#039;Module:CSVReader/MiningProfile&amp;#039;)&lt;br /&gt;
local SpaceBodyData = mw.loadData(&amp;#039;Module:CSVReader/SpaceBody&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
local SpaceBodyMiningData = mw.loadData(&amp;#039;Module:SpaceBodyLister/Mining&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
local HabSiteNames = mw.loadData(&amp;#039;Module:ENReader/HabSite&amp;#039;)&lt;br /&gt;
local MiningProfileNames = mw.loadData(&amp;#039;Module:ENReader/MiningProfile&amp;#039;)&lt;br /&gt;
local SpaceBodyNames = mw.loadData(&amp;#039;Module:ENReader/SpaceBody&amp;#039;)&lt;br /&gt;
--endregion&lt;br /&gt;
&lt;br /&gt;
--region Private constants&lt;br /&gt;
local floor = math.floor&lt;br /&gt;
local round = function(num, decimals)&lt;br /&gt;
    local mult = 10^(decimals or 0)&lt;br /&gt;
    return floor(num * mult + 0.5) / mult&lt;br /&gt;
end&lt;br /&gt;
local outerEffects = {&lt;br /&gt;
	Effect_ExploreJupiter = true,&lt;br /&gt;
	Effect_ExploreSaturn = true,&lt;br /&gt;
	Effect_ExploreOuterPlanets = true,&lt;br /&gt;
	Effect_ExploreKuiperBelt = true&lt;br /&gt;
}&lt;br /&gt;
--endregion&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--region Private member variables&lt;br /&gt;
--none&lt;br /&gt;
--endregion&lt;br /&gt;
&lt;br /&gt;
--region Private methods&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--endregion&lt;br /&gt;
&lt;br /&gt;
--region Public methods&lt;br /&gt;
function HabSiteLister.ListMedians()&lt;br /&gt;
	return HabSiteLister.ListHabSites(1)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function HabSiteLister.ListTopMeans()&lt;br /&gt;
	return HabSiteLister.ListHabSites(2)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--- Example Usage: {{#invoke:HabSiteLister|ListSpecific|mode=1|specificSpaceBody=Mercury}} &lt;br /&gt;
function HabSiteLister.ListSpecific(frame)&lt;br /&gt;
	local mode = tonumber(frame.args[&amp;#039;mode&amp;#039;])&lt;br /&gt;
	local specificSpaceBody = frame.args[&amp;#039;specificSpaceBody&amp;#039;]&lt;br /&gt;
	local restrictInner = frame.args[&amp;#039;restrictInner&amp;#039;]&lt;br /&gt;
	local restrictOuter = frame.args[&amp;#039;restrictOuter&amp;#039;]&lt;br /&gt;
	return HabSiteLister.ListHabSites(mode,specificSpaceBody,restrictInner,restrictOuter)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
---@param mode int what to display&lt;br /&gt;
---- 1: Medians &lt;br /&gt;
---- 2: Top 50% Means &lt;br /&gt;
---@param specificSpaceBody which space body to focus on. Use nil value to show all.&lt;br /&gt;
---@param restrictInner do not show outer solar system space bodies&lt;br /&gt;
---@param restrictOuter do not show inner solar system space bodies&lt;br /&gt;
---@return wiki table of HabSites&lt;br /&gt;
function HabSiteLister.ListHabSites(mode, specificSpaceBody, restrictInner, restrictOuter)&lt;br /&gt;
	local returnString = &amp;#039;{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&amp;#039;&lt;br /&gt;
	returnString = returnString .. &amp;#039;\n|-&amp;#039;&lt;br /&gt;
	returnString = returnString .. &amp;#039;\n! Site Name&amp;#039;&lt;br /&gt;
	returnString = returnString .. &amp;#039;\n!&amp;#039; .. IconModule.Icon({args={&amp;#039;water&amp;#039;}})&lt;br /&gt;
	returnString = returnString .. &amp;#039;\n!&amp;#039; .. IconModule.Icon({args={&amp;#039;volatiles&amp;#039;}})&lt;br /&gt;
	returnString = returnString .. &amp;#039;\n!&amp;#039; .. IconModule.Icon({args={&amp;#039;metals&amp;#039;}})&lt;br /&gt;
	returnString = returnString .. &amp;#039;\n!&amp;#039; .. IconModule.Icon({args={&amp;#039;nobles&amp;#039;}})&lt;br /&gt;
	returnString = returnString .. &amp;#039;\n!&amp;#039; .. IconModule.Icon({args={&amp;#039;fissiles&amp;#039;}})&lt;br /&gt;
	returnString = returnString .. &amp;#039;\n|-&amp;#039;&lt;br /&gt;
	&lt;br /&gt;
	for rowID, row in pairs(HabSiteData) do&lt;br /&gt;
		local spaceBodyID = row[&amp;#039;parentBodyName&amp;#039;] or &amp;#039;&amp;#039;&lt;br /&gt;
		if (not specificSpaceBody or specificSpaceBody == &amp;#039;&amp;#039; or specificSpaceBody == spaceBodyID)&lt;br /&gt;
			and (not restrictInner or restrictInner == &amp;#039;&amp;#039; or not outerEffects[SpaceBodyData[spaceBodyID][&amp;#039;effectToExplore&amp;#039;]])&lt;br /&gt;
			and (not restrictOuter or restrictOuter == &amp;#039;&amp;#039; or outerEffects[SpaceBodyData[spaceBodyID][&amp;#039;effectToExplore&amp;#039;]]) then&lt;br /&gt;
			returnString = returnString .. &amp;#039;\n| style=&amp;quot;text-align:left;&amp;quot; |&amp;#039; .. (HabSiteNames[&amp;#039;TIHabSiteTemplate.displayName.&amp;#039; .. rowID] or rowID)&lt;br /&gt;
				&lt;br /&gt;
			local modifyBySize = MiningProfileData[miningProfileID][&amp;#039;modifyBySize&amp;#039;]&lt;br /&gt;
			local waterMean = tonumber(MiningProfileData[miningProfileID][&amp;#039;water_mean&amp;#039;])&lt;br /&gt;
			local waterWidth = tonumber(MiningProfileData[miningProfileID][&amp;#039;water_width&amp;#039;])&lt;br /&gt;
			local waterMin = tonumber(MiningProfileData[miningProfileID][&amp;#039;water_min&amp;#039;])&lt;br /&gt;
			local waterJump = tonumber(MiningProfileData[miningProfileID][&amp;#039;water_jump&amp;#039;])&lt;br /&gt;
			if waterMean == 0 and waterWidth == 0 then&lt;br /&gt;
				returnString = returnString .. &amp;#039;\n| &amp;#039; &lt;br /&gt;
			elseif not modifyBySize or modifyBySize ~= &amp;#039;true&amp;#039; then&lt;br /&gt;
				if mode == 1 then&lt;br /&gt;
					returnString = returnString .. &amp;#039;\n| &amp;#039; .. tostring(waterMean)&lt;br /&gt;
				elseif mode == 2 then&lt;br /&gt;
					returnString = returnString .. &amp;#039;\n| &amp;#039; .. tostring(round(waterMean + waterWidth * ((1 / (1 - waterJump)) - 1),3))&lt;br /&gt;
				else&lt;br /&gt;
					returnString = returnString .. &amp;#039;\n| &amp;#039; &lt;br /&gt;
				end&lt;br /&gt;
			else&lt;br /&gt;
				if mode == 1 then&lt;br /&gt;
					returnString = returnString .. &amp;#039;\n| &amp;#039; .. tostring(round(waterMean * SpaceBodyMiningData[spaceBodyID][&amp;#039;modifierA&amp;#039;],3))&lt;br /&gt;
				elseif mode == 2 then&lt;br /&gt;
					returnString = returnString .. &amp;#039;\n| &amp;#039; .. tostring(round(waterMean * SpaceBodyMiningData[spaceBodyID][&amp;#039;modifierA&amp;#039;] + waterWidth * ((1 / (1 - waterJump)) - 1),3))&lt;br /&gt;
				else&lt;br /&gt;
					returnString = returnString .. &amp;#039;\n| &amp;#039; &lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			&lt;br /&gt;
			local volatilesMean = tonumber(MiningProfileData[miningProfileID][&amp;#039;volatiles_mean&amp;#039;])&lt;br /&gt;
			local volatilesWidth = tonumber(MiningProfileData[miningProfileID][&amp;#039;volatiles_width&amp;#039;])&lt;br /&gt;
			local volatilesMin = tonumber(MiningProfileData[miningProfileID][&amp;#039;volatiles_min&amp;#039;])&lt;br /&gt;
			local volatilesJump = tonumber(MiningProfileData[miningProfileID][&amp;#039;volatiles_jump&amp;#039;])&lt;br /&gt;
			if volatilesMean == 0 and volatilesWidth == 0 then&lt;br /&gt;
				returnString = returnString .. &amp;#039;\n| &amp;#039; &lt;br /&gt;
			elseif not modifyBySize or modifyBySize ~= &amp;#039;true&amp;#039; then&lt;br /&gt;
				if mode == 1 then&lt;br /&gt;
					returnString = returnString .. &amp;#039;\n| &amp;#039; .. tostring(volatilesMean)&lt;br /&gt;
				elseif mode == 2 then&lt;br /&gt;
					returnString = returnString .. &amp;#039;\n| &amp;#039; .. tostring(round(volatilesMean + volatilesWidth * ((1 / (1 - volatilesJump)) - 1),3))&lt;br /&gt;
				else&lt;br /&gt;
					returnString = returnString .. &amp;#039;\n| &amp;#039; &lt;br /&gt;
				end&lt;br /&gt;
			else&lt;br /&gt;
				if mode == 1 then&lt;br /&gt;
					returnString = returnString .. &amp;#039;\n| &amp;#039; .. tostring(round(volatilesMean * SpaceBodyMiningData[spaceBodyID][&amp;#039;modifierA&amp;#039;],3))&lt;br /&gt;
				elseif mode == 2 then&lt;br /&gt;
					returnString = returnString .. &amp;#039;\n| &amp;#039; .. tostring(round(volatilesMean * SpaceBodyMiningData[spaceBodyID][&amp;#039;modifierA&amp;#039;] + volatilesWidth * ((1 / (1 - volatilesJump)) - 1),3))&lt;br /&gt;
				else&lt;br /&gt;
					returnString = returnString .. &amp;#039;\n| &amp;#039; &lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			&lt;br /&gt;
			&lt;br /&gt;
			local metalsMean = tonumber(MiningProfileData[miningProfileID][&amp;#039;metals_mean&amp;#039;])&lt;br /&gt;
			local metalsWidth = tonumber(MiningProfileData[miningProfileID][&amp;#039;metals_width&amp;#039;])&lt;br /&gt;
			local metalsMin = tonumber(MiningProfileData[miningProfileID][&amp;#039;metals_min&amp;#039;])&lt;br /&gt;
			local metalsJump = tonumber(MiningProfileData[miningProfileID][&amp;#039;metals_jump&amp;#039;])&lt;br /&gt;
			if metalsMean == 0 and metalsWidth == 0 then&lt;br /&gt;
				returnString = returnString .. &amp;#039;\n| &amp;#039; &lt;br /&gt;
			elseif not modifyBySize or modifyBySize ~= &amp;#039;true&amp;#039; then&lt;br /&gt;
				if mode == 1 then&lt;br /&gt;
					returnString = returnString .. &amp;#039;\n| &amp;#039; .. tostring(metalsMean)&lt;br /&gt;
				elseif mode == 2 then&lt;br /&gt;
					returnString = returnString .. &amp;#039;\n| &amp;#039; .. tostring(round(metalsMean + metalsWidth * ((1 / (1 - metalsJump)) - 1),3))&lt;br /&gt;
				else&lt;br /&gt;
					returnString = returnString .. &amp;#039;\n| &amp;#039; &lt;br /&gt;
				end&lt;br /&gt;
			else&lt;br /&gt;
				if mode == 1 then&lt;br /&gt;
					returnString = returnString .. &amp;#039;\n| &amp;#039; .. tostring(round(metalsMean * SpaceBodyMiningData[spaceBodyID][&amp;#039;modifierB&amp;#039;],3))&lt;br /&gt;
				elseif mode == 2 then&lt;br /&gt;
					returnString = returnString .. &amp;#039;\n| &amp;#039; .. tostring(round(metalsMean * SpaceBodyMiningData[spaceBodyID][&amp;#039;modifierB&amp;#039;] + metalsWidth * ((1 / (1 - metalsJump)) - 1),3))&lt;br /&gt;
				else&lt;br /&gt;
					returnString = returnString .. &amp;#039;\n| &amp;#039; &lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			&lt;br /&gt;
			&lt;br /&gt;
			local noblesMean = tonumber(MiningProfileData[miningProfileID][&amp;#039;nobles_mean&amp;#039;])&lt;br /&gt;
			local noblesWidth = tonumber(MiningProfileData[miningProfileID][&amp;#039;nobles_width&amp;#039;])&lt;br /&gt;
			local noblesMin = tonumber(MiningProfileData[miningProfileID][&amp;#039;nobles_min&amp;#039;])&lt;br /&gt;
			local noblesJump = tonumber(MiningProfileData[miningProfileID][&amp;#039;nobles_jump&amp;#039;])&lt;br /&gt;
			if noblesMean == 0 and noblesWidth == 0 then&lt;br /&gt;
				returnString = returnString .. &amp;#039;\n| &amp;#039; &lt;br /&gt;
			elseif not modifyBySize or modifyBySize ~= &amp;#039;true&amp;#039; then&lt;br /&gt;
				if mode == 1 then&lt;br /&gt;
					returnString = returnString .. &amp;#039;\n| &amp;#039; .. tostring(noblesMean)&lt;br /&gt;
				elseif mode == 2 then&lt;br /&gt;
					returnString = returnString .. &amp;#039;\n| &amp;#039; .. tostring(round(noblesMean + noblesWidth * ((1 / (1 - noblesJump)) - 1),3))&lt;br /&gt;
				else&lt;br /&gt;
					returnString = returnString .. &amp;#039;\n| &amp;#039; &lt;br /&gt;
				end&lt;br /&gt;
			else&lt;br /&gt;
				if mode == 1 then&lt;br /&gt;
					returnString = returnString .. &amp;#039;\n| &amp;#039; .. tostring(round(noblesMean * SpaceBodyMiningData[spaceBodyID][&amp;#039;modifierB&amp;#039;],3))&lt;br /&gt;
				elseif mode == 2 then&lt;br /&gt;
					returnString = returnString .. &amp;#039;\n| &amp;#039; .. tostring(round(noblesMean * SpaceBodyMiningData[spaceBodyID][&amp;#039;modifierB&amp;#039;] + noblesWidth * ((1 / (1 - noblesJump)) - 1),3))&lt;br /&gt;
				else&lt;br /&gt;
					returnString = returnString .. &amp;#039;\n| &amp;#039; &lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			&lt;br /&gt;
			&lt;br /&gt;
			local fissilesMean = tonumber(MiningProfileData[miningProfileID][&amp;#039;fissiles_mean&amp;#039;])&lt;br /&gt;
			local fissilesWidth = tonumber(MiningProfileData[miningProfileID][&amp;#039;fissiles_width&amp;#039;])&lt;br /&gt;
			local fissilesMin = tonumber(MiningProfileData[miningProfileID][&amp;#039;fissiles_min&amp;#039;])&lt;br /&gt;
			local fissilesJump = tonumber(MiningProfileData[miningProfileID][&amp;#039;fissiles_jump&amp;#039;])&lt;br /&gt;
			if fissilesMean == 0 and fissilesWidth == 0 then&lt;br /&gt;
				returnString = returnString .. &amp;#039;\n| &amp;#039; &lt;br /&gt;
			elseif not modifyBySize or modifyBySize ~= &amp;#039;true&amp;#039; then&lt;br /&gt;
				if mode == 1 then&lt;br /&gt;
					returnString = returnString .. &amp;#039;\n| &amp;#039; .. tostring(fissilesMean)&lt;br /&gt;
				elseif mode == 2 then&lt;br /&gt;
					returnString = returnString .. &amp;#039;\n| &amp;#039; .. tostring(round(fissilesMean + fissilesWidth * ((1 / (1 - fissilesJump)) - 1),3))&lt;br /&gt;
				else&lt;br /&gt;
					returnString = returnString .. &amp;#039;\n| &amp;#039; &lt;br /&gt;
				end&lt;br /&gt;
			else&lt;br /&gt;
				if mode == 1 then&lt;br /&gt;
					returnString = returnString .. &amp;#039;\n| &amp;#039; .. tostring(round(fissilesMean * SpaceBodyMiningData[spaceBodyID][&amp;#039;modifierB&amp;#039;],3))&lt;br /&gt;
				elseif mode == 2 then&lt;br /&gt;
					returnString = returnString .. &amp;#039;\n| &amp;#039; .. tostring(round(fissilesMean * SpaceBodyMiningData[spaceBodyID][&amp;#039;modifierB&amp;#039;] + fissilesWidth * ((1 / (1 - fissilesJump)) - 1),3))&lt;br /&gt;
				else&lt;br /&gt;
					returnString = returnString .. &amp;#039;\n| &amp;#039; &lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			&lt;br /&gt;
	    	returnString = returnString .. &amp;#039;\n|-&amp;#039;&lt;br /&gt;
	    end&lt;br /&gt;
	end&lt;br /&gt;
	returnString = returnString .. &amp;#039;\n|}&amp;#039;&lt;br /&gt;
	&lt;br /&gt;
	return returnString&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--endregion&lt;br /&gt;
&lt;br /&gt;
return HabSiteLister&lt;/div&gt;</summary>
		<author><name>76561197970425841</name></author>
	</entry>
</feed>