#56 Matching ItemQuests with rarity


I developed a metric which describes the rarity of a particular item. It gives the number of minutes spent waiting for creatures to respawn (on average) while trying to find the item. This would not include time spent finding or killing the creatures that drop the item. It is also generous in its assumptions: 1) the player can kill any creature (even a dark archangel); 2) the player knows where every creature that drops the item is and can instantly kill them all simultaneously. Ergo, any ultra-common (i.e. cheese) or moderately rare (i.e. shadow armor) would have a score of zero (because if you killed everything in the world that drops such an item, at least one of the creatures should drop it the first time around).

The rarest item in the game is, not surprisingly, the golden blade, with a score of 236136. This means that if someone played all day every day it would take the player (on average) a year to find a single golden blade. The rarest items are as follows (keep in mind these are drops):

mithril bar (1687540) (only Dhohr Nuggetcutter drops this item at a rate of 0.001%)
golden blade (236136)
golden orc sword (117488) (this is a pretty crappy weapon for being so rare)
black halberd (71809)
emerald ring (69588)
chaos axe (56246)
mithril boots (54645)
soul dagger (32838)
mithril legs (20786)
jewelled legs (9122)
orcish sword (8289)
magic plate armor (8284)
ugmash (7829)
ice war hammer (7264)
demon fire sword (6991)
black sword (6285)
magic chain helmet (5594)
immortal sword (5558)
mithril nugget (5346)
nihonto (5169)
vulcano hammer (4474)
durin axe (4331)
black scythe (3918)
green thing boots (3324)
black armor (2834)
imperator sword (2393)
black dragon cloak (2221)
black legs (1886)
chaos dagger (1691)
black shield (1571)
xeno sword (1347)
spotted egg (1344)
black cloak (1018)
magic twoside axe (1010)
vampire cloak (927)
chaos armor (740)
xeno shield (672)
xeno armor (562)
liberty helmet (536)
black helmet (525)
xeno legs (516)
xeno cloak (504)

I did this exercise because I got stuck with "magic plate armor" as my WeeklyItemQuest. I knew intuitively that this was a ridiculously hard item to find, but I wanted to prove it mathematically. As you can see from the list above, this item is much much harder to find than black armor or a black shield, neither of which are not on the WeeklyItemQuest list with good reason. It is because of this that I am submitting a patch which delists the magic items (magic plate armor, magic plate shield, magic chain helmet) and replaces them with items not currently on the list (stone armor, demon sword, mainio helmet)

While I was at it, I also evaluated the DailyItemQuest list. There are 1 or 2 extreme outliers there as well.

studded helmet (56)
studded shield (30)
green dragon cloak (22)
blue elf cloak (17)
scythe (16)
biting sword (13)

The studded helmet and studded shield might be replaced by common items not yet on the list, such as chain boots and viking helmet.

See the attached zip file for updated versions of the following files


  • Katie Russell
    Katie Russell

    Logged In: YES
    Originator: NO

    studded helmet (56) <- can be bought in a shop (wrvil)
    so it should have rarity zero. I think the metric is a great idea, but should set any which are in shop lists to zero.

    items have a value set in items.xml. the value could be corrected using your metric.

  • depo

    Logged In: YES
    Originator: YES

    Agreed. I forgot Wrvil sold that. The DailyItemQuest is probably fine the way it was then.

    I just looked at the list above again and noticed that the xeno sword should also be delisted (it's right next to black shield and above black cloak). I just reattached that file with that one removed.

    I'm going to add a few more factors to the metric (e.g. level needed to acquire and NPC buy/sell prices) and then do some regression analyses with the value field in items.xml. That value isn't used yet, is it? Was it designed for something in particular?
    File Added: WeeklyItemQuest.java

  • Katie Russell
    Katie Russell

    Logged In: YES
    Originator: NO

    The value field in items.xml will have been largely assigned at will and not such a good metric as yours.

    I think it was used in the creaturesxmlcreator - a tool which miguel made a while back when he wanted to add a lot of new creatures and balance the drops a bit. the trouble was that a lot of drops are chosen for each creature class, so i wasn't too keen on the tool. and also the value seemed to have been set somewhat arbitrarily.

    Once value is set nicely it could be the neat way to generate the list of items for these items quests. So the daily one only asks for items with value < blah and weekly one only blah < value < superblah. what did non dropped items come up as (quest items?) For the non repeatable quests we wouldn't want to ask to get these. E.g. obsidian knife. Oh and there's also items gettable from the ground like herbs, vegetables and fishes.

    Finally, your value measure details how easy the item is to get - I would propose that another type of value is the usefulness. E.g. for a defense weapon its def, for an attack weapon its damage value (kiheru has created lists of these for the new refactoring). But I think to have the value mean 'how easy it is to get' is a good way, and we need not complicate it with usefulness. I think it'd be nice to compare the damage value with how easy it is to get, though, and check if we should do any refactoring of drops or attributes there.

  • Katie Russell
    Katie Russell

    Logged In: YES
    Originator: NO

    oh, and i applied the changes you suggested to weekly item quest, thank you.

  • Katie Russell
    Katie Russell

    Would you mind sharing with us the code used for the metric? Some drops and so on have changed and I'd be interested to know the updated rarities

  • Kimmo Rundelin
    Kimmo Rundelin

    Update: There's now ItemRarity script for checking relative drop rarities. The metric is slightly different, but should produce roughly the same order for the rare items. The script produces meaningful results for common items too, so hopefully it'll be useful for DailyItemQuest and other tasks that should not require unusual items.

  • Markus

    At the moment I try to use the script mentioned by kiheru to calculate repairing prices, which should base on the actual value of the item to repair. Value calculation is at this stage only applicable for weapons and defensive items, as the value is based on two factors: rarity and effectiveness. For a weapon effectiveness means ATK divided by RATE. For a defensive item it is just the DEF value. (See the attached ODS with some formula experiments for value calculation)



Cancel   Add attachments