<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.bconomy.net/w/index.php?action=history&amp;feed=atom&amp;title=Module%3AHistoricalItem</id>
	<title>Module:HistoricalItem - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.bconomy.net/w/index.php?action=history&amp;feed=atom&amp;title=Module%3AHistoricalItem"/>
	<link rel="alternate" type="text/html" href="https://wiki.bconomy.net/w/index.php?title=Module:HistoricalItem&amp;action=history"/>
	<updated>2026-11-06T04:51:49Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.46.2</generator>
	<entry>
		<id>https://wiki.bconomy.net/w/index.php?title=Module:HistoricalItem&amp;diff=7448&amp;oldid=prev</id>
		<title>GameReferenceSync at 23:52, 5 November 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.bconomy.net/w/index.php?title=Module:HistoricalItem&amp;diff=7448&amp;oldid=prev"/>
		<updated>2026-11-05T23:52:08Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&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:52, 5 November 2026&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-l33&quot;&gt;Line 33:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 33:&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;         tr:tag(&amp;#039;td&amp;#039;):wikitext(value)&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;         tr:tag(&amp;#039;td&amp;#039;):wikitext(value)&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;     end&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;     end&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;    if entry.status == &#039;removed&#039; then row(&#039;Status&#039;, &#039;Removed&#039;) end&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;     row(&amp;#039;Type&amp;#039;, escape(entry.type))&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     row(&amp;#039;Type&amp;#039;, escape(entry.type))&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;     row(&#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Status&lt;/del&gt;&#039;, entry.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;status == &#039;removed&#039; and &#039;Removed&#039; or &#039;Former name&#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;     &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;if entry.effect then &lt;/ins&gt;row(&#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Effect&lt;/ins&gt;&#039;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;escape(&lt;/ins&gt;entry.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;effect)&lt;/ins&gt;) &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;end&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;     if entry.cost then row(&amp;#039;Worth&amp;#039;, compact(entry.cost) .. &amp;#039; BC&amp;#039;) end&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;     if entry.cost then row(&amp;#039;Worth&amp;#039;, compact(entry.cost) .. &amp;#039; BC&amp;#039;) end&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;     if entry.properties then row(&amp;#039;Properties&amp;#039;, escape(entry.properties)) end&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;     if entry.properties then row(&amp;#039;Properties&amp;#039;, escape(entry.properties)) end&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;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    if entry.effect then row(&#039;Effect&#039;, escape(entry.effect)) end&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&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 recipe = {}&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 recipe = {}&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;     for _, ingredient in ipairs(entry.recipe or {}) do table.insert(recipe, itemLink(ingredient) .. &amp;#039; × &amp;#039; .. number(ingredient.amount)) end&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;     for _, ingredient in ipairs(entry.recipe or {}) do table.insert(recipe, itemLink(ingredient) .. &amp;#039; × &amp;#039; .. number(ingredient.amount)) end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wiki:diff:1.41:old-5161:rev-7448:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>GameReferenceSync</name></author>
	</entry>
	<entry>
		<id>https://wiki.bconomy.net/w/index.php?title=Module:HistoricalItem&amp;diff=5161&amp;oldid=prev</id>
		<title>Wewert at 23:41, 4 November 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.bconomy.net/w/index.php?title=Module:HistoricalItem&amp;diff=5161&amp;oldid=prev"/>
		<updated>2026-11-04T23:41:59Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p = {}&lt;br /&gt;
local function escape(value) return mw.text.nowiki(tostring(value)) end&lt;br /&gt;
local function number(value) return mw.language.getContentLanguage():formatNum(value) end&lt;br /&gt;
local function compact(value)&lt;br /&gt;
    for _, unit in ipairs({{1e12, &amp;#039;T&amp;#039;}, {1e9, &amp;#039;B&amp;#039;}, {1e6, &amp;#039;M&amp;#039;}, {1e3, &amp;#039;K&amp;#039;}}) do&lt;br /&gt;
        if value &amp;gt;= unit[1] then&lt;br /&gt;
            local amount = math.floor(value / unit[1] * 100 + 0.5) / 100&lt;br /&gt;
            return tostring(mw.html.create(&amp;#039;abbr&amp;#039;):attr(&amp;#039;title&amp;#039;, number(value)):wikitext(number(amount) .. unit[2]))&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    return number(value)&lt;br /&gt;
end&lt;br /&gt;
local function itemLink(entry)&lt;br /&gt;
    local icon = entry.imageFile and &amp;#039;&amp;lt;span class=&amp;quot;bc-item-inline-icon&amp;quot;&amp;gt;[[File:&amp;#039; .. escape(entry.imageFile) .. &amp;#039;|20x20px|middle|link=|alt=]]&amp;lt;/span&amp;gt;&amp;#039; or &amp;#039;&amp;#039;&lt;br /&gt;
    return icon .. &amp;#039;[[&amp;#039; .. escape(entry.article or entry.name) .. &amp;#039;|&amp;#039; .. escape(entry.name) .. &amp;#039;]]&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
function p.infobox(frame)&lt;br /&gt;
    local a = frame:getParent() and frame:getParent().args or frame.args&lt;br /&gt;
    local key = mw.text.trim(a.key or a[1] or &amp;#039;&amp;#039;)&lt;br /&gt;
    local entry = mw.loadJsonData(&amp;#039;GameData:Historical items.json&amp;#039;).items[key]&lt;br /&gt;
    if not entry then return &amp;#039;&amp;lt;strong class=&amp;quot;error&amp;quot;&amp;gt;Missing historical Item.&amp;lt;/strong&amp;gt;&amp;#039; end&lt;br /&gt;
    local box = mw.html.create(&amp;#039;table&amp;#039;):addClass(&amp;#039;wikitable bc-infobox bc-item-infobox&amp;#039;)&lt;br /&gt;
    box:tag(&amp;#039;caption&amp;#039;):wikitext(escape(entry.name))&lt;br /&gt;
    if entry.imageFile or entry.desc then&lt;br /&gt;
        local picture = box:tag(&amp;#039;tr&amp;#039;):tag(&amp;#039;td&amp;#039;):attr(&amp;#039;colspan&amp;#039;, 2):addClass(&amp;#039;bc-item-picture&amp;#039;)&lt;br /&gt;
        if entry.imageFile then picture:wikitext(&amp;#039;[[File:&amp;#039; .. escape(entry.imageFile) .. &amp;#039;|frameless|alt=&amp;#039; .. escape(entry.name) .. &amp;#039;]]&amp;#039;) end&lt;br /&gt;
        if entry.desc then picture:tag(&amp;#039;blockquote&amp;#039;):addClass(&amp;#039;bc-item-flavor&amp;#039;):wikitext(escape(entry.desc)) end&lt;br /&gt;
    end&lt;br /&gt;
    local function row(label, value)&lt;br /&gt;
        if not value or value == &amp;#039;&amp;#039; then return end&lt;br /&gt;
        local tr = box:tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
        tr:tag(&amp;#039;th&amp;#039;):attr(&amp;#039;scope&amp;#039;, &amp;#039;row&amp;#039;):wikitext(label)&lt;br /&gt;
        tr:tag(&amp;#039;td&amp;#039;):wikitext(value)&lt;br /&gt;
    end&lt;br /&gt;
    row(&amp;#039;Type&amp;#039;, escape(entry.type))&lt;br /&gt;
    row(&amp;#039;Status&amp;#039;, entry.status == &amp;#039;removed&amp;#039; and &amp;#039;Removed&amp;#039; or &amp;#039;Former name&amp;#039;)&lt;br /&gt;
    if entry.cost then row(&amp;#039;Worth&amp;#039;, compact(entry.cost) .. &amp;#039; BC&amp;#039;) end&lt;br /&gt;
    if entry.properties then row(&amp;#039;Properties&amp;#039;, escape(entry.properties)) end&lt;br /&gt;
    if entry.effect then row(&amp;#039;Effect&amp;#039;, escape(entry.effect)) end&lt;br /&gt;
    local recipe = {}&lt;br /&gt;
    for _, ingredient in ipairs(entry.recipe or {}) do table.insert(recipe, itemLink(ingredient) .. &amp;#039; × &amp;#039; .. number(ingredient.amount)) end&lt;br /&gt;
    if #recipe &amp;gt; 0 then row(&amp;#039;Recipe&amp;#039;, table.concat(recipe, &amp;#039;&amp;lt;br /&amp;gt;&amp;#039;)) end&lt;br /&gt;
    row(&amp;#039;Internal ID&amp;#039;, &amp;#039;&amp;lt;code&amp;gt;&amp;#039; .. escape(entry.id) .. &amp;#039;&amp;lt;/code&amp;gt;&amp;#039;)&lt;br /&gt;
    return tostring(box)&lt;br /&gt;
end&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Wewert</name></author>
	</entry>
</feed>