<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.fightorder.net/wiki/index.php?action=history&amp;feed=atom&amp;title=Module%3AWeaponData</id>
	<title>Module:WeaponData - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://www.fightorder.net/wiki/index.php?action=history&amp;feed=atom&amp;title=Module%3AWeaponData"/>
	<link rel="alternate" type="text/html" href="https://www.fightorder.net/wiki/index.php?title=Module:WeaponData&amp;action=history"/>
	<updated>2026-04-21T07:54:28Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://www.fightorder.net/wiki/index.php?title=Module:WeaponData&amp;diff=2076&amp;oldid=prev</id>
		<title>Qrow: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://www.fightorder.net/wiki/index.php?title=Module:WeaponData&amp;diff=2076&amp;oldid=prev"/>
		<updated>2026-02-24T06:18:56Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 23:18, 23 February 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Qrow</name></author>
	</entry>
	<entry>
		<id>https://www.fightorder.net/wiki/index.php?title=Module:WeaponData&amp;diff=359&amp;oldid=prev</id>
		<title>Qrow: Created page with &quot;local getArgs = require(&#039;Module:Arguments&#039;).getArgs local weapon = {} local weaponData = mw.loadData(&#039;Module:WeaponData/data&#039;)  local function addCustomLabel(templateArgs, key, value, index) 	if key then 		templateArgs[&quot;customlabel&quot;..index] = key 		templateArgs[&quot;customdata&quot;..index] = value 	else 		templateArgs[&quot;special&quot;..index] = value 	end 	index = index + 1 	return index end  function weapon.getData(frame) 	if not frame then return &#039;&#039; end 	local weaponDefName = frame.a...&quot;</title>
		<link rel="alternate" type="text/html" href="https://www.fightorder.net/wiki/index.php?title=Module:WeaponData&amp;diff=359&amp;oldid=prev"/>
		<updated>2025-11-12T06:11:15Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;local getArgs = require(&amp;#039;Module:Arguments&amp;#039;).getArgs local weapon = {} local weaponData = mw.loadData(&amp;#039;Module:WeaponData/data&amp;#039;)  local function addCustomLabel(templateArgs, key, value, index) 	if key then 		templateArgs[&amp;quot;customlabel&amp;quot;..index] = key 		templateArgs[&amp;quot;customdata&amp;quot;..index] = value 	else 		templateArgs[&amp;quot;special&amp;quot;..index] = value 	end 	index = index + 1 	return index end  function weapon.getData(frame) 	if not frame then return &amp;#039;&amp;#039; end 	local weaponDefName = frame.a...&amp;quot;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 23:11, 11 November 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Qrow</name></author>
	</entry>
	<entry>
		<id>https://www.fightorder.net/wiki/index.php?title=Module:WeaponData&amp;diff=2075&amp;oldid=prev</id>
		<title>zkunitinter&gt;RandomX: Attempt to use slowdamage for proper labeling...</title>
		<link rel="alternate" type="text/html" href="https://www.fightorder.net/wiki/index.php?title=Module:WeaponData&amp;diff=2075&amp;oldid=prev"/>
		<updated>2024-09-01T22:14:06Z</updated>

		<summary type="html">&lt;p&gt;Attempt to use slowdamage for proper labeling...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local getArgs = require(&amp;#039;Module:Arguments&amp;#039;).getArgs&lt;br /&gt;
local weapon = {}&lt;br /&gt;
local weaponData = mw.loadData(&amp;#039;Module:WeaponData/data&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
local function addCustomLabel(templateArgs, key, value, index)&lt;br /&gt;
	if key then&lt;br /&gt;
		templateArgs[&amp;quot;customlabel&amp;quot;..index] = key&lt;br /&gt;
		templateArgs[&amp;quot;customdata&amp;quot;..index] = value&lt;br /&gt;
	else&lt;br /&gt;
		templateArgs[&amp;quot;special&amp;quot;..index] = value&lt;br /&gt;
	end&lt;br /&gt;
	index = index + 1&lt;br /&gt;
	return index&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function weapon.getData(frame)&lt;br /&gt;
	if not frame then return &amp;#039;&amp;#039; end&lt;br /&gt;
	local weaponDefName = frame.args.defname or frame.args[1] or &amp;quot;&amp;lt;no name specified&amp;gt;&amp;quot;&lt;br /&gt;
	local wd = weaponData[weaponDefName]&lt;br /&gt;
	if not (wd) then return &amp;#039;weapondef &amp;#039; .. weaponDefName .. &amp;#039; not found&amp;#039; end&lt;br /&gt;
	local property = (frame.args.defname == nil) and frame.args[2] or frame.args[1]&lt;br /&gt;
	local result = wd[property]&lt;br /&gt;
	if not result then result = &amp;#039;&amp;#039; end&lt;br /&gt;
	return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function addSpecialDataToTemplate(templateArgs, wd)&lt;br /&gt;
	local num = 1&lt;br /&gt;
	for index, entry in ipairs(wd.extraData or {}) do&lt;br /&gt;
		if type(entry) == &amp;#039;table&amp;#039; then&lt;br /&gt;
			if entry.type == &amp;#039;shielddrain&amp;#039; then&lt;br /&gt;
				num = addCustomLabel(templateArgs, &amp;quot;Shield drain (HP/shot)&amp;quot;, entry.drain, num)&lt;br /&gt;
			elseif entry.type == &amp;#039;needs_link&amp;#039; then&lt;br /&gt;
				num = addCustomLabel(templateArgs, &amp;quot;Grid needed&amp;quot;, entry.power, num)&lt;br /&gt;
			elseif entry.type == &amp;#039;spawn&amp;#039; then&lt;br /&gt;
				num = addCustomLabel(templateArgs, &amp;quot;Spawns Unit&amp;quot;, &amp;quot;[[&amp;quot; .. entry.name .. &amp;quot;]]&amp;quot;, num)&lt;br /&gt;
				num = addCustomLabel(templateArgs, &amp;quot;Spawn Life (s)&amp;quot;, entry.expire, num)&lt;br /&gt;
			elseif entry.type == &amp;#039;areadamage&amp;#039; then			&lt;br /&gt;
				local typeName = entry.grav and &amp;quot;Gravity Well&amp;quot; or wd.slowdamage and &amp;quot;Ground Slow&amp;quot; or &amp;quot;Ground Burn&amp;quot;&lt;br /&gt;
				if not grav then&lt;br /&gt;
					num = addCustomLabel(templateArgs, typeName .. &amp;quot; DPS&amp;quot;, entry.dps, num)&lt;br /&gt;
				end&lt;br /&gt;
				num = addCustomLabel(templateArgs, typeName .. &amp;quot; radius (elmo)&amp;quot;, entry.radius, num)&lt;br /&gt;
				num = addCustomLabel(templateArgs, typeName .. &amp;quot; duration (s)&amp;quot;, entry.duration, num)&lt;br /&gt;
&lt;br /&gt;
			elseif entry.type == &amp;#039;stockpile&amp;#039; then&lt;br /&gt;
				num = addCustomLabel(templateArgs, &amp;quot;Stockpile time (s)&amp;quot;, entry.time, num)&lt;br /&gt;
				if (entry.cost) then&lt;br /&gt;
					num = addCustomLabel(templateArgs, &amp;quot;Stockpile cost (M)&amp;quot;, entry.cost, num)&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			if entry == &amp;#039;hitscan&amp;#039; then&lt;br /&gt;
				num = addCustomLabel(templateArgs, nil, &amp;quot;Instantly hits&amp;quot;, num)&lt;br /&gt;
			elseif entry == &amp;#039;ignoreshield&amp;#039; then&lt;br /&gt;
				num = addCustomLabel(templateArgs, nil, &amp;quot;Ignores shields&amp;quot;, num)&lt;br /&gt;
			elseif entry == &amp;#039;smoothsground&amp;#039; then&lt;br /&gt;
				num = addCustomLabel(templateArgs, nil, &amp;quot;Smooths ground&amp;quot;, num)&lt;br /&gt;
			elseif entry == &amp;#039;hightraj&amp;#039; then&lt;br /&gt;
				num = addCustomLabel(templateArgs, nil, &amp;quot;High trajectory&amp;quot;, num)&lt;br /&gt;
			elseif entry == &amp;#039;trajtoggle&amp;#039; then&lt;br /&gt;
				num = addCustomLabel(templateArgs, nil, &amp;quot;Trajectory toggle&amp;quot;, num)&lt;br /&gt;
			elseif entry == &amp;#039;watercapable&amp;#039; then&lt;br /&gt;
				num = addCustomLabel(templateArgs, nil, &amp;quot;Water capable&amp;quot;, num)&lt;br /&gt;
			elseif entry == &amp;#039;friendlyfire&amp;#039; then&lt;br /&gt;
				num = addCustomLabel(templateArgs, nil, &amp;quot;Potential friendly fire&amp;quot;, num)&lt;br /&gt;
			elseif entry == &amp;#039;nofriendlyfire&amp;#039; then&lt;br /&gt;
				num = addCustomLabel(templateArgs, nil, &amp;quot;No friendly fire&amp;quot;, num)&lt;br /&gt;
			elseif entry == &amp;#039;nogroundcollide&amp;#039; then&lt;br /&gt;
				num = addCustomLabel(templateArgs, nil, &amp;quot;Passes through ground&amp;quot;, num)&lt;br /&gt;
			elseif entry == &amp;#039;piercing&amp;#039; then&lt;br /&gt;
				num = addCustomLabel(templateArgs, nil, &amp;quot;Damage increase vs large units&amp;quot;, num)&lt;br /&gt;
			elseif entry == &amp;#039;damagefalloff&amp;#039; then&lt;br /&gt;
				num = addCustomLabel(templateArgs, nil, &amp;quot;Damage falls off with range&amp;quot;, num)&lt;br /&gt;
			elseif entry == &amp;#039;inaccuratevsmoving&amp;#039; then&lt;br /&gt;
				num = addCustomLabel(templateArgs, nil, &amp;quot;Inaccuracy vs moving targets&amp;quot;, num)&lt;br /&gt;
			elseif entry == &amp;#039;interceptedbyantinuke&amp;#039; then&lt;br /&gt;
				num = addCustomLabel(templateArgs, nil, &amp;quot;Can be shot down by antinukes&amp;quot;, num)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function weapon.getInfoboxTemplate(frame)&lt;br /&gt;
	local args = frame.args&lt;br /&gt;
	local tbl = {title = &amp;quot;Infobox zkweapon&amp;quot;, args = {}}&lt;br /&gt;
	local w = tbl.args&lt;br /&gt;
	local defName = args.defname or args[1] or &amp;quot;&amp;lt;no name specified&amp;gt;&amp;quot;&lt;br /&gt;
	local wd = weaponData[defName]&lt;br /&gt;
	if not (wd) then return &amp;#039;weapondef &amp;#039; .. defName .. &amp;#039; not found&amp;#039; end&lt;br /&gt;
	&lt;br /&gt;
	addSpecialDataToTemplate(w, wd)&lt;br /&gt;
	&lt;br /&gt;
	for key, value in pairs(wd) do&lt;br /&gt;
		w[key] = args[key] or value&lt;br /&gt;
	end&lt;br /&gt;
	w.extraData = nil&lt;br /&gt;
	if (w.count and w.count &amp;gt; 1) then&lt;br /&gt;
		w.name = w.name .. &amp;quot;&amp;amp;nbsp;&amp;amp;times;&amp;amp;nbsp;&amp;quot; .. w.count	&lt;br /&gt;
	end&lt;br /&gt;
	if (w.projectiles and w.projectiles &amp;gt; 1) then&lt;br /&gt;
		local append = &amp;quot;&amp;amp;nbsp;&amp;amp;times;&amp;amp;nbsp;&amp;quot; ..  w.projectiles&lt;br /&gt;
		if w.damage then w.damage = w.damage .. append end&lt;br /&gt;
		if w.empdamage then w.empdamage = w.empdamage .. append end&lt;br /&gt;
		if w.slowdamage then w.slowdamage = w.slowdamage .. append end&lt;br /&gt;
		if w.disarmdamage then w.disarmdamage = w.disarmdamage .. append end&lt;br /&gt;
		if w.shielddamage then w.shielddamage = w.shielddamage .. append end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return tbl&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function weapon.printInfobox(frame)&lt;br /&gt;
	return frame:expandTemplate(weapon.getInfoboxTemplate(frame))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return weapon&lt;/div&gt;</summary>
		<author><name>zkunitinter&gt;RandomX</name></author>
	</entry>
</feed>