<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.runerealm.org/index.php?action=history&amp;feed=atom&amp;title=Module%3AProfitable_alchemy_list</id>
	<title>Module:Profitable alchemy list - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.runerealm.org/index.php?action=history&amp;feed=atom&amp;title=Module%3AProfitable_alchemy_list"/>
	<link rel="alternate" type="text/html" href="https://wiki.runerealm.org/index.php?title=Module:Profitable_alchemy_list&amp;action=history"/>
	<updated>2026-05-01T18:17:48Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.41.1</generator>
	<entry>
		<id>https://wiki.runerealm.org/index.php?title=Module:Profitable_alchemy_list&amp;diff=35078&amp;oldid=prev</id>
		<title>Alex: Created page with &quot;local p = {}  local prices = mw.loadJsonData(&#039;Module:GEPrices/data.json&#039;) local values = mw.loadJsonData(&#039;Module:GEValues/data.json&#039;) local limits = mw.loadJsonData(&#039;Module:GELimits/data.json&#039;) local volumes = mw.loadJsonData(&#039;Module:GEVolumes/data.json&#039;) local members = mw.loadJsonData(&#039;Module:GEMembers/data.json&#039;)  local paramTest = require(&#039;Module:Paramtest&#039;) local yesNo = require(&#039;Module:Yesno&#039;)  function getData(minBuyLimit, minVolume, f2pOnly) 	local natureRunePric...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.runerealm.org/index.php?title=Module:Profitable_alchemy_list&amp;diff=35078&amp;oldid=prev"/>
		<updated>2024-10-16T23:12:50Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;local p = {}  local prices = mw.loadJsonData(&amp;#039;Module:GEPrices/data.json&amp;#039;) local values = mw.loadJsonData(&amp;#039;Module:GEValues/data.json&amp;#039;) local limits = mw.loadJsonData(&amp;#039;Module:GELimits/data.json&amp;#039;) local volumes = mw.loadJsonData(&amp;#039;Module:GEVolumes/data.json&amp;#039;) local members = mw.loadJsonData(&amp;#039;Module:GEMembers/data.json&amp;#039;)  local paramTest = require(&amp;#039;Module:Paramtest&amp;#039;) local yesNo = require(&amp;#039;Module:Yesno&amp;#039;)  function getData(minBuyLimit, minVolume, f2pOnly) 	local natureRunePric...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
local prices = mw.loadJsonData(&amp;#039;Module:GEPrices/data.json&amp;#039;)&lt;br /&gt;
local values = mw.loadJsonData(&amp;#039;Module:GEValues/data.json&amp;#039;)&lt;br /&gt;
local limits = mw.loadJsonData(&amp;#039;Module:GELimits/data.json&amp;#039;)&lt;br /&gt;
local volumes = mw.loadJsonData(&amp;#039;Module:GEVolumes/data.json&amp;#039;)&lt;br /&gt;
local members = mw.loadJsonData(&amp;#039;Module:GEMembers/data.json&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
local paramTest = require(&amp;#039;Module:Paramtest&amp;#039;)&lt;br /&gt;
local yesNo = require(&amp;#039;Module:Yesno&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
function getData(minBuyLimit, minVolume, f2pOnly)&lt;br /&gt;
	local natureRunePrice = prices[&amp;#039;Nature rune&amp;#039;]&lt;br /&gt;
	local items = {}&lt;br /&gt;
	for item, price in pairs(prices) do&lt;br /&gt;
		-- If it has a GE price, a valid value, a volume and buy limit over the minimum, and it is the right members/f2p distinction&lt;br /&gt;
		if(tonumber(price) and values[item] and (tonumber(volumes[item]) or 1) &amp;gt; minVolume and (tonumber(limits[item]) or 1) &amp;gt; minBuyLimit) then&lt;br /&gt;
			if(not f2pOnly or (f2pOnly and not members[item])) then&lt;br /&gt;
				local profit = math.floor(values[item] * 0.6) - (price + natureRunePrice)&lt;br /&gt;
				if(profit &amp;gt; 0) then&lt;br /&gt;
					table.insert(items, { item, profit })&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	table.sort(items, function(itemOne, itemTwo) return itemOne[2] &amp;gt; itemTwo[2] end)&lt;br /&gt;
	&lt;br /&gt;
	return items&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._main(args)&lt;br /&gt;
	local numOfItems = paramTest.default_to(tonumber(args.num) or 1) --or inf&lt;br /&gt;
	local minBuyLimit = paramTest.default_to(tonumber(args.buylimit) or 0)&lt;br /&gt;
	local minVolume = paramTest.default_to(tonumber(args.volume) or 0)&lt;br /&gt;
	local f2pOnly = yesNo(args.f2p or &amp;#039;&amp;#039;, false)&lt;br /&gt;
	&lt;br /&gt;
	local profitableAlchs = getData(minBuyLimit, minVolume, f2pOnly)&lt;br /&gt;
&lt;br /&gt;
	local ret = &amp;#039;&amp;#039;&lt;br /&gt;
	for i = 1, numOfItems, 1 do&lt;br /&gt;
		ret = ret .. &amp;#039;,&amp;#039; .. profitableAlchs[i][1]&lt;br /&gt;
	end&lt;br /&gt;
	return ret&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[ DEBUG&lt;br /&gt;
p._main({&lt;br /&gt;
  [&amp;#039;num&amp;#039;] = &amp;quot;1&amp;quot;,&lt;br /&gt;
  [&amp;#039;buylimit&amp;#039;] = &amp;quot;0&amp;quot;,&lt;br /&gt;
  [&amp;#039;volume&amp;#039;] = &amp;quot;0&amp;quot;,&lt;br /&gt;
  [&amp;#039;f2pOnly&amp;#039;] = &amp;quot;yes&amp;quot;,&lt;br /&gt;
})&lt;br /&gt;
--]]&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	local args = frame:getParent().args&lt;br /&gt;
	--mw.logObject(args)&lt;br /&gt;
	return p._main(args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Alex</name></author>
	</entry>
</feed>