Posted by Member woodssaxon on 7/19/13 09:57 PM
#1
Posts: 36
TLDR: I wrote a C++ code to model item crafts. Right now it works for the archon gloves, shoulders, and bracer recipes. It reproduces available craft data pretty well, so I think it's accurate. Using the code, for the first time, we can estimate the probability of crafting a specific set of rolls. If you want me to estimate the probability of particular rolls on gloves, bracers, or shoulders, post here and I'll let you know.
Long version: Hello Diablohub community! I'm a long time lurker, first time poster. I have an interest in reverseengineering and modeling, and lately I've done a lot of research on how crafted items are rolled in d3. I've pulled information from the following sources: Ivan's crafting data: http://us.battle.net/d3/en/forum/topic/9282218600?page=1 Nubtro's crafting data: http://us.battle.net/d3/en/forum/topic/7979989268?page=1 Chazhang's report: https://docs.google.com/file/d/0B0gMgiAJ3WsmN3lJWVFfVnJlVTQ/edit Discussions with Mandlebarb on his site: http://deckardprospectus.blogspot.com/ Affix ilvls and values: http://www.d3own.com/ These sources provide a pretty comprehensive picture of how items are rolled. First, I assume that a random affix is chosen. The probability of choosing a particular affix is given by the number of possible affix ilvls that could be rolled. ilvl 63 gloves can roll affix ilvls between 52 and 63. This makes cc about twice as likely to roll as ias, because there are twice as many ilvl affixes for cc between 52 and 63 than ias. Some affixes seem to be manually adjusted to roll less frequently. For example, chance to stun rolls about 10% of the time as one would expect based on the number of affix ilvls available to it. These manual tweaking factors have been included in my code. After the particular affix has been chosen, the value of the affix must be chosen. Chazhang and Mandlebarb show that the probability of rolling an ilvl 63 affix on an ilvl63 item is around 40%. For ilvl 6062 affixes, this probability drops to ~15% per ilvl, and below ilvl 60 affixes the probability is small (totalling only 15% between affix ilvl 5260). My code randomly picks an affix value according to this distribution. There are some exclusions which are also applied. For example, each item can only have 1 specific resistance. You don't see + fire resist and + physical resist on the same item. In addition, you can only roll 1 doublestat per item. My code includes these restrictions while rolling 5 random affixes for the crafted archon gloves. Finally, I've compared my code with the data taken from Ivan's crafts. Overall the agreement is pretty good for all the categories Ivan tracked: the overall occurrence of a given affix, its average value, and its spread. If there's interest, I'm happy to share my comparison with Ivan's data on a googledoc. Please feel free to ask any questions about how the code works or any other assumptions I made (assuming you've already read the long version). If there's interest, I'm happy to work on modeling the other archon crafts as well. WoodsSaxon#1770 Edit: 7/23  added bracer and shoulder capability 
Item Crafting Calculator
Posted by Admin DHAdmin on 7/20/13 12:40 AM
#2
Posts: 938
This is pretty interesting, I have had horrible luck with my rolls. :(
How many essences am I going to need until I found a trifecta + vitality dexterity roll?! 
Posted by Member douvinsky on 7/20/13 01:33 AM
#3
Posts: 1445
@woodssaxon
I have given up on crafting. As a monk I did get some awesome crafts from time to time. Awesome e.g. Dex Vit AR Fire Resist, Life %, Armor AB Shoulder. However I never get my chosen resist consistently across all craft for the use of OWE. Before I continue to try my luck on crafting, it would be helpful for me to know the "expected number of trials to get a decent craft that I would be happy with". What does it take for me to get the following rolls? Dex Gloves: 1) All Resist 2) Lightning Resist 3) CC of 9.0+ 4) AS After the above, in addition: 5) CD 6) Vital Vital Bracers 1) 5.5+ CC 2) Dex 3) AR 4) Lightning Resist 5) Pick Up Radius 
Posted by Member douvinsky on 7/20/13 01:50 AM
#4
Posts: 1445
Maybe we can start with what I am currently using?
edit: just saw it is for now gloves 1) VileWard  quite happy with the roll 2) Gloves  I don't quite need the str and the MF, might be better with AS, so what's the chance of getting this roll but with str replaced by AR/ lightning resist and MF replaced by AS (or any combination of replacement which is easier to get, if that matters)? 3) Bracer  everything I like. I would love to see 6.0cc, and either a higher vital or higher dex (from AB craft) 
Posted by Member woodssaxon on 7/20/13 08:14 AM
#5
Posts: 36
@Anuiran : on dex gloves, probability of rolling trifecta + vit (any amount of each) are 0.001395. That's just a hair above 0.1%.
@douvinsky : first post: I can't do bracers yet, but for the gloves: probability of getting AR, light resist, IAS, and CC 9%+ on dex gloves are 0.00019075. I don't think you can add both CD and vit onto those, since then you're rolling 6 affixes on 5 affix gloves. If you add just CD to the gloves, the probability is: 7.45e06. Adding vit instead of CD gives a probability of 5.64e05. @douvinsky : second post: those exact gloves, but remove str and MF and add IAS has too small of a probability for me to compute right now. Seriously. You probably hit a double stat roll of str+vit to get the vit that high. If I add IAS and drop the vit down to 60 and drop the dex to 220, the probability is 2.3e05. To calculate how many essences you'll need, you'll have to bust out your calculator and use the following formula: Probability of getting the rolls you want after N tries = 1  (1  P)^N P is the probability of getting the roll that I mentioned above, and N is the # of tries. Happy crafting! 
Posted by Member ninjax on 7/22/13 08:27 AM
#6
Posts: 600
I think gloves (ok well and chests) are the hardest to roll well because the share amount of different affix roles on those particular items. E.g you won't get IAS on either bracer or shoulders, same for CD.
So I always roll bracer till I get roughly what I want, then shoulders (cause these are a bit more expensive with tomes) and then usually just buy my gloves while I keep rolling hoping for better and pick up what i missed on rolls (maybe armor or all res). With ammy's im restricted by brim's.. and I have a fair few decent ones anyway so don't roll them much :) 
Posted by Member woodssaxon on 7/22/13 04:33 PM
#7
Posts: 36
I would think that ammy's would be the hardest to roll, since they can have a ton of affixes. I think they can roll a fair number more affixes than gloves, but I haven't checked lately. For int and dex gloves the guaranteed dex and int doesn't help much, because they can roll up to 200 of those anyways. But for str and vit, the guaranteed roll is pretty nice.

Posted by Member douvinsky on 7/22/13 07:12 PM
#8
Posts: 1445
My best roll at Hardcore for my monk is actually this ammy, and I still miss the single resist of my choice. 
Posted by Member woodssaxon on 7/22/13 08:32 PM
#9
Posts: 36
Pretty nice rolls there. That's a shame it didn't hit light resist or AR though.

Posted by Member woodssaxon on 7/23/13 05:16 PM
#10
Posts: 36
Update: The simulation/calculation now works for gloves, bracers, and shoulders. I'll edit the main post to reflect that.
@anuiran : I was thinking it might be nice to put a version of my code up on a site like this one. That way people could type in values of particular affixes they'd like to see on a crafted item, and my code could be run to calculate the probability of hitting that item. It'd save time for me because I wouldn't have to run the code for each person since they could run it themselves through the site. I don't know anything about web programming but I'd be happy to work with you or the site devs to get my C++ code working as a backend on your site. Let me know if you think that would be possible. 
Posted by Member woodssaxon on 7/24/13 02:53 PM
#11
Posts: 36
@kojasou : I'm not a great Python coder, but I threw together a script that will do the trick. It reads and parses a list of simulated items that I pregenerated with my C++ code. Given the python script and the file with the list of items, I think it should run fine without C++. Would you be interested in trying it out?

Posted by Member Joker on 8/9/13 10:29 PM
#12
Posts: 1
@woodssaxon Hi, it was nice chatting with you ingame
I would like to know what are the probabilities of getting the following rolls: Str Bracers: 290 Str / 150 Vit / 6% Cc / 70AR / (with and without any Pickup) Vit Shoulders: 270 Str / 290 Vit / 9% Life / 70 AR / (with and without any Pickup) Str Gloves: 290 Str / 50 Vit / 60 AR / 9% Cc / 40% CD / 8% IAS Thanks, and looking forward with your amulet model 
Posted by Member woodssaxon on 8/10/13 09:29 PM
#13
Posts: 36
@Joker
Here's some odds for you: bracers: ignoring whether or not it has pickup radius, the odds are 7.8e06. That means you would need about 88k crafts in order to have a 50% chance of getting it. Adding pickup radius would drop these odds by a factor of 0.06 . So you'd need about 1.5M crafts to have a 5050 shot at it. shoulders: Ignoring whether or not it has pickup radius, odds are 1.8e06. So you'd need around 340k crafts for a 5050 shot. Adding pickup drops the odds by 0.06 again, so you'd need around 6.5M crafts for a 5050 shot. gloves: The odds for those gloves are actually lower than my code can do right now. The limit of my code is 2e7, which is about 4M crafts for a 5050 shot. If I get rid of the vit the odds are still ridiculously low. Rolling trifecta gloves is hard enough, but adding AR and an extra str roll really drop the odds. I'm actually thinking about writing a new version of the code without a lower limit to the probability it can calculate. Since it seems like there's interest, maybe I'll give that a shot. And of course amulets, HF rings, chests, etc. 