<?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%3AMaster_farmer_special_seed_calculator</id>
	<title>Module:Master farmer special seed calculator - 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%3AMaster_farmer_special_seed_calculator"/>
	<link rel="alternate" type="text/html" href="https://wiki.runerealm.org/index.php?title=Module:Master_farmer_special_seed_calculator&amp;action=history"/>
	<updated>2026-05-03T03:29:41Z</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:Master_farmer_special_seed_calculator&amp;diff=35044&amp;oldid=prev</id>
		<title>Alex: Created page with &quot;local p = {}  local prices = mw.loadJsonData(&#039;Module:GEPrices/data.json&#039;) local commas = require(&#039;Module:Addcommas&#039;)._add  local HerbSeedTable = { 	{ name = &#039;Guam seed&#039;, image = &#039;File:Guam seed.png&#039;, qty = 1, numerator = 320, denom = 1000 }, 	{ name = &#039;Ranarr seed&#039;, image = &#039;File:Ranarr seed.png&#039;, qty = 1, numerator = 69, denom = 81 }, 	{ name = &#039;Snapdragon seed&#039;, image = &#039;File:Snapdragon seed.png&#039;, qty = 1, numerator = 10, denom = 81 }, 	{ name = &#039;Torstol seed&#039;, image =...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.runerealm.org/index.php?title=Module:Master_farmer_special_seed_calculator&amp;diff=35044&amp;oldid=prev"/>
		<updated>2024-10-16T23:12:40Z</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 commas = require(&amp;#039;Module:Addcommas&amp;#039;)._add  local HerbSeedTable = { 	{ name = &amp;#039;Guam seed&amp;#039;, image = &amp;#039;File:Guam seed.png&amp;#039;, qty = 1, numerator = 320, denom = 1000 }, 	{ name = &amp;#039;Ranarr seed&amp;#039;, image = &amp;#039;File:Ranarr seed.png&amp;#039;, qty = 1, numerator = 69, denom = 81 }, 	{ name = &amp;#039;Snapdragon seed&amp;#039;, image = &amp;#039;File:Snapdragon seed.png&amp;#039;, qty = 1, numerator = 10, denom = 81 }, 	{ name = &amp;#039;Torstol seed&amp;#039;, image =...&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 commas = require(&amp;#039;Module:Addcommas&amp;#039;)._add&lt;br /&gt;
&lt;br /&gt;
local HerbSeedTable = {&lt;br /&gt;
	{ name = &amp;#039;Guam seed&amp;#039;, image = &amp;#039;File:Guam seed.png&amp;#039;, qty = 1, numerator = 320, denom = 1000 },&lt;br /&gt;
	{ name = &amp;#039;Ranarr seed&amp;#039;, image = &amp;#039;File:Ranarr seed.png&amp;#039;, qty = 1, numerator = 69, denom = 81 },&lt;br /&gt;
	{ name = &amp;#039;Snapdragon seed&amp;#039;, image = &amp;#039;File:Snapdragon seed.png&amp;#039;, qty = 1, numerator = 10, denom = 81 },&lt;br /&gt;
	{ name = &amp;#039;Torstol seed&amp;#039;, image = &amp;#039;File:Torstol seed.png&amp;#039;, qty = 1, numerator = 2, denom = 81 },&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local raritiesClass = {&lt;br /&gt;
    { 1, &amp;#039;table-bg-blue&amp;#039; },&lt;br /&gt;
    { 1/25, &amp;#039;table-bg-green&amp;#039; },&lt;br /&gt;
    { 1/99.99, &amp;#039;table-bg-yellow&amp;#039; },&lt;br /&gt;
    { 1/999.99, &amp;#039;table-bg-orange&amp;#039; },&lt;br /&gt;
    { 1/9999999, &amp;#039;table-bg-red&amp;#039; }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function getRarityClass(val)&lt;br /&gt;
    for _, rarity in ipairs(raritiesClass) do&lt;br /&gt;
        if(val &amp;gt;= rarity[1]) then&lt;br /&gt;
            return rarity[2]&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function buildRow(seed, rarity, rarityValue)&lt;br /&gt;
	local row = mw.html.create(&amp;#039;tr&amp;#039;)&lt;br /&gt;
	row:tag(&amp;#039;td&amp;#039;):wikitext(&amp;#039;[[&amp;#039; .. seed.image .. &amp;#039;]]&amp;#039;):done()&lt;br /&gt;
		:tag(&amp;#039;td&amp;#039;):wikitext(&amp;#039;[[&amp;#039; .. seed.name .. &amp;#039;]]&amp;#039;):done()&lt;br /&gt;
		:tag(&amp;#039;td&amp;#039;):wikitext(seed.qty):done()&lt;br /&gt;
		:tag(&amp;#039;td&amp;#039;):addClass(getRarityClass(rarityValue)):wikitext(rarity):done()&lt;br /&gt;
		:tag(&amp;#039;td&amp;#039;):wikitext(commas(prices[seed.name])):done()&lt;br /&gt;
	return row&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function specialHerbTableChance(farmingLevel)&lt;br /&gt;
	return (6 + math.min(85, farmingLevel)) / 1000&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._main(args)&lt;br /&gt;
	local farmingLevel = tonumber(args.farmingLevel) or 1&lt;br /&gt;
&lt;br /&gt;
	local ret = mw.html.create(&amp;#039;table&amp;#039;):addClass(&amp;#039;wikitable sortable filterable autosort=4,a align-center-1 align-left-2 align-center-3 align-center-4 align-right-5 align-right-6&amp;#039;):done()&lt;br /&gt;
	ret:tag(&amp;#039;tr&amp;#039;):tag(&amp;#039;th&amp;#039;):attr(&amp;#039;colspan&amp;#039;, &amp;#039;2&amp;#039;):wikitext(&amp;#039;Item&amp;#039;):done()&lt;br /&gt;
		:tag(&amp;#039;th&amp;#039;):wikitext(&amp;#039;Quantity&amp;#039;):done()&lt;br /&gt;
		:tag(&amp;#039;th&amp;#039;):wikitext(&amp;#039;Rarity&amp;#039;):done()&lt;br /&gt;
		:tag(&amp;#039;th&amp;#039;):wikitext(&amp;#039;Price&amp;#039;):done()&lt;br /&gt;
&lt;br /&gt;
	for _, seed in ipairs(HerbSeedTable) do&lt;br /&gt;
		-- Slots are either added to or subtracted from guam seeds&lt;br /&gt;
		-- Then 81 of guam&amp;#039;s slots are redistributed to other seeds&lt;br /&gt;
		baseRarity = seed.numerator / seed.denom&lt;br /&gt;
		if(seed.name == &amp;#039;Guam seed&amp;#039;) then&lt;br /&gt;
			rarity = baseRarity + 81/1000 - specialHerbTableChance(farmingLevel)&lt;br /&gt;
		else&lt;br /&gt;
			rarity = baseRarity * specialHerbTableChance(farmingLevel)&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		local rarityValue = rarity * 48/1000&lt;br /&gt;
		seed.denom = 1 / rarityValue&lt;br /&gt;
&lt;br /&gt;
		local denomTxt = string.format(&amp;quot;%.2f&amp;quot;, seed.denom)&lt;br /&gt;
		local rarityText = &amp;#039;1/&amp;#039; .. commas(denomTxt)&lt;br /&gt;
&lt;br /&gt;
		ret:node(buildRow(seed, rarityText, rarityValue))&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return ret&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	local args = frame.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>