In a bluesky post Tyler Glaiel describes a drop rate issue which he terms the “Paradox of Rarity”.

For a simplifed straw-man example imagine we have monsters that drop two classes of items:

  1. common which drop 90% of the time
  2. uncommon which drop 10% of the time

and some given monster’s table has 9 common and 1 uncommon items. Individually each of the the tens items end up occuring 10% of the time which is certainly not the design intent. The problem here is that the category rates are being defined independently from the number of items in each. I suggested using “per item weights” as a correction and in this mini-post I’ll expand on the idea into something (hopefully) meaningful.

Sticking with the above example let’s say we assign a weight of 1 for uncommon and 10 for common. We have nine common items so the total weight of the common items is $\left(9 \cdot 10\right)$, one uncommon so its weight is $\left(1 \cdot 1\right)$ and a total weight of $91$. We then have:

  1. select from the common set with probability of $\frac{90}{91}$ which is approximately $0.989011$. Each of the common items occur at $\frac{10}{91}$ which is approximately $0.10989$.
  2. the single uncommon item will occur at $\frac{1}{91}$ which is approximately $0.010989$.

So starting with an empty inventory and griding this monster we expect to see 10 times as many of each of the common items per uncommon. This what our selected weights are defining.

If we add an item to the uncommon list then rate of each common/uncommon becomes: $ \left( \frac{10}{92}, \frac{1}{92} \right) $ which maintains the desired per item rates which is $10:1$.

To generalize let’s say we have $j$ categories where $n_c$ is the number of items and $w_c$ is the weight of category $c$ respectively then the total weight of the category is:

\[t_c = w_c n_c\]

the sum of all category weights is:

\[T = \sum_{k=0}^{j-1} t_k\]

the rate at which we choose from category $c$ is:

\[r_c = \frac{t_c}{T}\]

the rate of an individual item from category $c$ is:

\[i_c = \frac{w_c}{T}\]

Now this “collection” of numbers can be simply examined using a spreadsheet. As an example choosing to have four categories where each “more common” one is 10 times more likely than the previous then we have:


Notice that each $i_c$ is $10 \times$ more likely than the next. This “spreadsheet” is interactive so if you go an modifiy the $n_c$ entry for any of the categories then all of them update to a new values but the $10 \times$ relationship is maintained (well I’m disallowing zero because that’s boring). FWIW: clicking on a computed value shows the EXCEL style equation.

And there’s nothing special about this $10 \times$ relationship other than being easy to eyeball the probabilities are doing “the expected thing”.

There is alot more that could be said on this topic but I think this is sufficient to spitball my comment about item weights.



Comments





© 2025 Marc B. Reynolds
all original content is public domain under UNLICENSE