<?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%3AGeneralSeedDropTable</id>
	<title>Module:GeneralSeedDropTable - 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%3AGeneralSeedDropTable"/>
	<link rel="alternate" type="text/html" href="https://wiki.runerealm.org/index.php?title=Module:GeneralSeedDropTable&amp;action=history"/>
	<updated>2026-05-03T19:29:05Z</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:GeneralSeedDropTable&amp;diff=34954&amp;oldid=prev</id>
		<title>Alex: Created page with &quot;local p = {}  local data = { 	[485] = { 		{ item = &#039;Potato seed&#039;, quantity = 4, rate = &#039;368/1008&#039; }, 		{ item = &#039;Onion seed&#039;, quantity = 4, rate = &#039;276/1008&#039; }, 		{ item = &#039;Cabbage seed&#039;, quantity = 4, rate = &#039;184/1008&#039; }, 		{ item = &#039;Tomato seed&#039;, quantity = 3, rate = &#039;92/1008&#039; }, 		{ item = &#039;Sweetcorn seed&#039;, quantity = 3, rate = &#039;46/1008&#039; }, 		{ item = &#039;Strawberry seed&#039;, quantity = 2, rate = &#039;23/1008&#039; }, 		{ item = &#039;Watermelon seed&#039;, quantity = 2, rate = &#039;11/1008&#039; },...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.runerealm.org/index.php?title=Module:GeneralSeedDropTable&amp;diff=34954&amp;oldid=prev"/>
		<updated>2024-10-16T23:12:10Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;local p = {}  local data = { 	[485] = { 		{ item = &amp;#039;Potato seed&amp;#039;, quantity = 4, rate = &amp;#039;368/1008&amp;#039; }, 		{ item = &amp;#039;Onion seed&amp;#039;, quantity = 4, rate = &amp;#039;276/1008&amp;#039; }, 		{ item = &amp;#039;Cabbage seed&amp;#039;, quantity = 4, rate = &amp;#039;184/1008&amp;#039; }, 		{ item = &amp;#039;Tomato seed&amp;#039;, quantity = 3, rate = &amp;#039;92/1008&amp;#039; }, 		{ item = &amp;#039;Sweetcorn seed&amp;#039;, quantity = 3, rate = &amp;#039;46/1008&amp;#039; }, 		{ item = &amp;#039;Strawberry seed&amp;#039;, quantity = 2, rate = &amp;#039;23/1008&amp;#039; }, 		{ item = &amp;#039;Watermelon seed&amp;#039;, quantity = 2, rate = &amp;#039;11/1008&amp;#039; },...&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 data = {&lt;br /&gt;
	[485] = {&lt;br /&gt;
		{ item = &amp;#039;Potato seed&amp;#039;, quantity = 4, rate = &amp;#039;368/1008&amp;#039; },&lt;br /&gt;
		{ item = &amp;#039;Onion seed&amp;#039;, quantity = 4, rate = &amp;#039;276/1008&amp;#039; },&lt;br /&gt;
		{ item = &amp;#039;Cabbage seed&amp;#039;, quantity = 4, rate = &amp;#039;184/1008&amp;#039; },&lt;br /&gt;
		{ item = &amp;#039;Tomato seed&amp;#039;, quantity = 3, rate = &amp;#039;92/1008&amp;#039; },&lt;br /&gt;
		{ item = &amp;#039;Sweetcorn seed&amp;#039;, quantity = 3, rate = &amp;#039;46/1008&amp;#039; },&lt;br /&gt;
		{ item = &amp;#039;Strawberry seed&amp;#039;, quantity = 2, rate = &amp;#039;23/1008&amp;#039; },&lt;br /&gt;
		{ item = &amp;#039;Watermelon seed&amp;#039;, quantity = 2, rate = &amp;#039;11/1008&amp;#039; },&lt;br /&gt;
		{ item = &amp;#039;Snape grass seed&amp;#039;, quantity = 2, rate = &amp;#039;8/1008&amp;#039; }&lt;br /&gt;
	},&lt;br /&gt;
	[728] = {&lt;br /&gt;
		{ item = &amp;#039;Barley seed&amp;#039;, quantity = 4, rate = &amp;#039;229/1000&amp;#039; },&lt;br /&gt;
		{ item = &amp;#039;Hammerstone seed&amp;#039;, quantity = 3, rate = &amp;#039;228/1000&amp;#039; },&lt;br /&gt;
		{ item = &amp;#039;Asgarnian seed&amp;#039;, quantity = 3, rate = &amp;#039;172/1000&amp;#039; },&lt;br /&gt;
		{ item = &amp;#039;Jute seed&amp;#039;, quantity = 2, rate = &amp;#039;171/1000&amp;#039; },&lt;br /&gt;
		{ item = &amp;#039;Yanillian seed&amp;#039;, quantity = 2, rate = &amp;#039;114/1000&amp;#039; },&lt;br /&gt;
		{ item = &amp;#039;Krandorian seed&amp;#039;, quantity = 2, rate = &amp;#039;57/1000&amp;#039; },&lt;br /&gt;
		{ item = &amp;#039;Wildblood seed&amp;#039;, quantity = 1, rate = &amp;#039;29/1000&amp;#039; }&lt;br /&gt;
	},&lt;br /&gt;
	[850] = {&lt;br /&gt;
		{ item = &amp;#039;Marigold seed&amp;#039;, quantity = 1, rate = &amp;#039;376/1000&amp;#039; },&lt;br /&gt;
		{ item = &amp;#039;Nasturtium seed&amp;#039;, quantity = 1, rate = &amp;#039;249/1000&amp;#039; },&lt;br /&gt;
		{ item = &amp;#039;Rosemary seed&amp;#039;, quantity = 1, rate = &amp;#039;161/1000&amp;#039; },&lt;br /&gt;
		{ item = &amp;#039;Woad seed&amp;#039;, quantity = 1, rate = &amp;#039;119/1000&amp;#039; },&lt;br /&gt;
		{ item = &amp;#039;Limpwurt seed&amp;#039;, quantity = 1, rate = &amp;#039;95/1000&amp;#039; }&lt;br /&gt;
	},&lt;br /&gt;
	[947] = {&lt;br /&gt;
		{ item = &amp;#039;Redberry seed&amp;#039;, quantity = 1, rate = &amp;#039;400/1000&amp;#039; },&lt;br /&gt;
		{ item = &amp;#039;Cadavaberry seed&amp;#039;, quantity = 1, rate = &amp;#039;280/1000&amp;#039; },&lt;br /&gt;
		{ item = &amp;#039;Dwellberry seed&amp;#039;, quantity = 1, rate = &amp;#039;200/1000&amp;#039; },&lt;br /&gt;
		{ item = &amp;#039;Jangerberry seed&amp;#039;, quantity = 1, rate = &amp;#039;80/1000&amp;#039; },&lt;br /&gt;
		{ item = &amp;#039;Whiteberry seed&amp;#039;, quantity = 1, rate = &amp;#039;29/1000&amp;#039; },&lt;br /&gt;
		{ item = &amp;#039;Poison ivy seed&amp;#039;, quantity = 1, rate = &amp;#039;11/1000&amp;#039; }&lt;br /&gt;
	},&lt;br /&gt;
	[995] = {&lt;br /&gt;
		{ item = &amp;#039;Guam seed&amp;#039;, quantity = 1, rate = &amp;#039;320/1000&amp;#039; },&lt;br /&gt;
		{ item = &amp;#039;Marrentill seed&amp;#039;, quantity = 1, rate = &amp;#039;218/1000&amp;#039; },&lt;br /&gt;
		{ item = &amp;#039;Tarromin seed&amp;#039;, quantity = 1, rate = &amp;#039;149/1000&amp;#039; },&lt;br /&gt;
		{ item = &amp;#039;Harralander seed&amp;#039;, quantity = 1, rate = &amp;#039;101/1000&amp;#039; },&lt;br /&gt;
		{ item = &amp;#039;Ranarr seed&amp;#039;, quantity = 1, rate = &amp;#039;69/1000&amp;#039; },&lt;br /&gt;
		{ item = &amp;#039;Toadflax seed&amp;#039;, quantity = 1, rate = &amp;#039;47/1000&amp;#039; },&lt;br /&gt;
		{ item = &amp;#039;Irit seed&amp;#039;, quantity = 1, rate = &amp;#039;32/1000&amp;#039; },&lt;br /&gt;
		{ item = &amp;#039;Avantoe seed&amp;#039;, quantity = 1, rate = &amp;#039;22/1000&amp;#039; },&lt;br /&gt;
		{ item = &amp;#039;Kwuarm seed&amp;#039;, quantity = 1, rate = &amp;#039;15/1000&amp;#039; },&lt;br /&gt;
		{ item = &amp;#039;Snapdragon seed&amp;#039;, quantity = 1, rate = &amp;#039;10/1000&amp;#039; },&lt;br /&gt;
		{ item = &amp;#039;Cadantine seed&amp;#039;, quantity = 1, rate = &amp;#039;7/1000&amp;#039; },&lt;br /&gt;
		{ item = &amp;#039;Lantadyme seed&amp;#039;, quantity = 1, rate = &amp;#039;5/1000&amp;#039; },&lt;br /&gt;
		{ item = &amp;#039;Dwarf weed seed&amp;#039;, quantity = 1, rate = &amp;#039;3/1000&amp;#039; },&lt;br /&gt;
		{ item = &amp;#039;Torstol seed&amp;#039;, quantity = 1, rate = &amp;#039;2/1000&amp;#039; },&lt;br /&gt;
	},&lt;br /&gt;
	[99999] = {&lt;br /&gt;
		{ item = &amp;#039;Mushroom spore&amp;#039;, quantity = 1, rate = &amp;#039;500/1100&amp;#039; },&lt;br /&gt;
		{ item = &amp;#039;Belladonna seed&amp;#039;, quantity = 1, rate = &amp;#039;300/1100&amp;#039; },&lt;br /&gt;
		{ item = &amp;#039;Cactus seed&amp;#039;, quantity = 1, rate = &amp;#039;200/1100&amp;#039; },&lt;br /&gt;
		{ item = &amp;#039;Potato cactus seed&amp;#039;, quantity = 1, rate = &amp;#039;100/1100&amp;#039; },&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;
	local dropRate = args[1]&lt;br /&gt;
	local combatCalculation = args[2] * 10&lt;br /&gt;
	local f2p = args.f2p&lt;br /&gt;
	local orderedKeys = sortKeys(data)&lt;br /&gt;
	local seedList = groupSeeds(orderedKeys, combatCalculation, dropRate)&lt;br /&gt;
	local options = {&lt;br /&gt;
		f2p = f2p&lt;br /&gt;
	}&lt;br /&gt;
	local ret = mw.html.create(&amp;#039;tr&amp;#039;)&lt;br /&gt;
	&lt;br /&gt;
	for _, v in ipairs(seedList) do&lt;br /&gt;
		ret:node(makeRow(v, frame, options))&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return tostring(ret)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function sortKeys(data)&lt;br /&gt;
	local orderedKeys = {}&lt;br /&gt;
	for k in pairs(data) do&lt;br /&gt;
	    table.insert(orderedKeys, k)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	table.sort(orderedKeys)&lt;br /&gt;
	&lt;br /&gt;
	return orderedKeys&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function groupSeeds(orderedKeys, combatCalculation, dropRate)&lt;br /&gt;
	local seeds = {}&lt;br /&gt;
	local rv1, rv2 = string.match(dropRate, &amp;#039;([%d%.]+)/([%d%.]+)&amp;#039;)&lt;br /&gt;
	local dropRateRarityValue = rv1 / rv2&lt;br /&gt;
	local previousValue = 0&lt;br /&gt;
	for i = 1, #orderedKeys do&lt;br /&gt;
	    local key, value = orderedKeys[i], data[orderedKeys[i]]&lt;br /&gt;
	    local tableRate&lt;br /&gt;
		&lt;br /&gt;
		if (key &amp;lt;= combatCalculation) then&lt;br /&gt;
			tableRate = (key - previousValue) / combatCalculation&lt;br /&gt;
			for _, seedData in ipairs(value) do&lt;br /&gt;
				local rv1, rv2 = string.match(seedData.rate, &amp;#039;([%d%.]+)/([%d%.]+)&amp;#039;)&lt;br /&gt;
				local multipliedRate = math.floor((1 / (dropRateRarityValue * tableRate * (rv1 / rv2)) * 10) / 10)&lt;br /&gt;
				table.insert(seeds, { item = seedData.item, quantity = seedData.quantity, rate = &amp;#039;1/&amp;#039; .. multipliedRate })&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		if (key &amp;gt; combatCalculation) then&lt;br /&gt;
			tableRate = (combatCalculation - previousValue) / combatCalculation&lt;br /&gt;
			if tableRate == 0 then break end&lt;br /&gt;
			for _, seedData in ipairs(value) do&lt;br /&gt;
				local rv1, rv2 = string.match(seedData.rate, &amp;#039;([%d%.]+)/([%d%.]+)&amp;#039;)&lt;br /&gt;
				local multipliedRate = math.floor((1 / (dropRateRarityValue * tableRate * (rv1 / rv2)) * 10) / 10)&lt;br /&gt;
				table.insert(seeds, { item = seedData.item, quantity = seedData.quantity, rate = &amp;#039;1/&amp;#039; .. multipliedRate })&lt;br /&gt;
			end&lt;br /&gt;
			break&lt;br /&gt;
		end&lt;br /&gt;
		previousValue = key&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return seeds&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function makeRow(seed, frame, options)&lt;br /&gt;
	mw.logObject(options)&lt;br /&gt;
	local ret &lt;br /&gt;
	ret = mw.html.create(&amp;#039;tr&amp;#039;)&lt;br /&gt;
	ret:wikitext(frame:expandTemplate{ title=&amp;#039;DropsLine&amp;#039;, args = { name = seed.item, namenotes = options[&amp;#039;f2p&amp;#039;] ~= nil and frame:expandTemplate{ title=&amp;#039;(m)&amp;#039; } or &amp;#039;&amp;#039;, quantity = seed.quantity, rarity = seed.rate } })&lt;br /&gt;
	return ret&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Alex</name></author>
	</entry>
</feed>