ReforgeLite
Overview
ReforgeLite is a lightweight reforging calculator that helps you figure out the optimal strategy to reforge your gear given your stat weights and caps without leaving the game.
The addon now has its own project page, located at http://www.rivsoft.net/projects/reforgelite/
Downloads are still only available through Curse page.
What to do if you're not happy with the results
The quickest way to get response is to e-mail me directly at [email protected]
Please describe your problem, and, most importantly, attach a debug log that you can find by scrolling to the bottom of the main UI window (the "Debug" button inside settings section).
How to use it
To open the addon window, type /reforge or talk to the reforging master. On the left half of the window you can see your current item stats for reference.
On the right side you can set up stat weights/caps, or select an existing preset (presets are regularly updated from http://www.noxxic.com, which in turn gets its information from Elitist Jerks).
In the simplified mode, you can specify the stat priority, along with up to two capped stats (each capped stats can have an arbitrary number of breakpoints). If you want more control, you can go into advanced mode and enter the exact stats specific for your gear, obtained from a tool such as SimulationCraft.
Behind the hood, simplified mode sets the lowest stat to a weight of 100, and each next stat adds 20. When you switch between the two modes, ReforgeLite converts your current weights to the other format.
When you're done setting up weights/caps, press Calculate. The calculations are fairly memory/time intensive, so ReforgeLite might trade some precision for speed, though the losses should be minimal. You can press the Calculate button a few times if you want to try getting a better result, the output will always display the best result so far.
Once the calculation finishes, you will see a section with your stats after reforging, and the difference from your current stats. Click on the Show button to see which items should be reforged.
If the reforging UI is open, you can click on the Reforge button to automatically reforge all items in the selected way. Do not interfere in the process (clicking the cancel button or closing the reforging UI is fine). Caution: I'm only human, so while I try my best, I can not guarantee that this process is absolutely bug free, so its recommended to watch over the process. If you leave to make some tea and come back to find it spending thousands of gold reforging your boots over and over again, don't tell me I didn't warn you.
FAQ: The results seem incorrect. I'm getting too much/too little hit/expertise/etc.
First of all, with Mists of Pandaria, expertise now affects spell hit, so it is not uncommon for casters to reforge into some expertise (on items that already have hit) to reach the cap, especially at lower gear levels. Note that ReforgeLite directly adds your expertise rating to hit rating, which is not the way it is displayed in the game, but it is more convenient when verifying the result.
Also, keep in mind that ReforgeLite uses your currently active spec to decide which stat conversions are in place, so if you're a Paladin trying to reforge your Protection gear while in Holy spec, you will likely get very little hit because it thinks you get enough from expertise.
If you are still not satisfied with the results, feel free to e-mail me (at [email protected]) with a brief description of the problem and a debug log (found at the bottom of the scrollable arera, in the options category).
FAQ: I'm using certain items for my off-spec and I don't want their reforge changed.
Simply click on an item icon in the large stats table, this will lock the item's reforge.
FAQ: More caps?
This is a very popular demand, and I'm sorry to tell you that it is not possible with the algorithm I'm currently using. I'm fairly sure the only other way to go is a brute force approach, which is simply way too slow to work in a Lua environment. There are plenty of external tools that employ it, such as http://www.wowreforge.com. I will be adding an import option in the near future to make it easier to use their results.
FAQ: Decimal weights?
You might notice that you can't enter anything besides digits in the weight boxes. This was done for simplicity's sake, and it does not limit you at all - you can multiply all your weights by a 100 (or whatever you prefer) to make them integers, and that would not affect the result at all.
FAQ: My reforge/results window isn't showing up. What do?
There are a few possible reasons.
First, ensure that the addon is enabled (and not marked as outdated if you haven't checked the box to load out-of-date addons). If the addon isn't loaded, you should get an error when trying to type /reforge in chat.
Second, try enabling Lua errors in the game options. If this causes error messages to show up when you try to open the reforge window, then send me the text of the error and I'll figure something out.
Third, it is possible that you accidentally moved the window off-screen. The easiest way to fix this is by deleting the addon config file located at <game folder>/WTF/Account/<your account>/SavedVariables/ReforgeLite.lua - this should reset the addon settings to default (make sure you're in game when doing that, or the file will simply reappear). This will also delete your custom weight and reforge presets - if you want to avoid that, you can try editing the said file, by changing the values of variables "windowX", "windowY", "methodWindowX" and "methodWindowY". Values such as 100 for X and 500 for Y should make the window(s) visible at least.
Are they significantly different, or just a little bit? The reforging process is slightly randomized to compensate for the loss of precision, so clicking the button a few times should yield slightly different results, while the table will always show the best one so far. The differences should be minimal - for example, you might get a little closer to hit/exp caps and exchange some crit for haste etc.
If its something different, or if values after reforging don't match what was promised, then its a bug, though I haven't noticed this happening myself so far.
Hi. Fantastic addon!!
It's just missing an "Item level cap" for 463 gear (Challenge modes and Proving grounds), similar to how you do it for pvp (522 cap).
Sucks not being able to reforge inside CM or PG :(
Keep up the good work! :)
Challenge modes have different rules for item scaling - they scale your total stats, but do not modify your hit/exp. So if your items are reforged for regular caps, they should work fine for CMs.
Lightweight? I must be missing something or misunderstanding what you mean by that... On my machine ReforgeLite is using up over 7 MB addon memory - more than double that of the next highest addon I have installed. Is this normal?
Hmm you bring a good point, I'm guessing that is due to the item table is quite large. I'll try to find a way around it.
Any plans to get this addon to account properly for the amplifying trinkets (+x% to secondary stats, inc spirit for hybrid casters which means hit)? I had to reforge and recalculate 3 times to get decently close to my hit and haste cap after acquiring purified bindings of immerseus, which is a bit obnoxious (although I mostly blame Blizzard).
Oh, uh, it was supposed to but I made a typo which prevents it from working. I can't test them anyway as I no longer pve.
Anyway, if you change the "[iLvl]" in line 109 of ReforgeEngine.lua to "[id]", it should fix the issue. I already uploaded several versions recently so I don't think I should be re-uploading it just for this, at least for now.
Changing that fixes the if on line 109, but the addon crashes on the next line with:
ReforgeLite-v1.35\ReforgeEngine.lua:110: attempt to call global "GetRandPropPoints" (a nil value)
ReforgeLite-v1.35\ReforgeEngine.lua:110: in function "GetStatMultipliers"
ReforgeLite-v1.35\ReforgeEngine.lua:174: in function "UpdateMethodStats"
ReforgeLite\ReforgeLite-v1.35.lua:1176: in function "RefreshMethodStats"
ReforgeLite\ReforgeLite-v1.35.lua:1256: in function "UpdateItems"
ReforgeLite\ReforgeLite-v1.35.lua:1655: in function <ReforgeLite\ReforgeLite.lua:1644>
<in C code>
<string>:"TURNORACTION":4: in function <string>:"TURNORACTION":1
Locals:
self = <unnamed> {
PrioToWeights = <func> @..\TaskUI.lua:610
itemTable = <unnamed> {}
CapUpdater = <func> @..\TaskUI.lua:130
IsReforgeMatching = <func> @..\ReforgeLite.lua:1451
InitPresets = <func> @..\Presets.lua:580
MovePriorityItem = <func> @..\TaskUI.lua:249
GetCapScore = <func> @..\ReforgeLite.lua:410
CapAllows = <func> @..\ReforgeEngine.lua:247
UpdateTask = <func> @..\TaskUI.lua:333
dbkey = "Fabiana - Twisting Nether"
ReorderCapPoint = <func> @..\TaskUI.lua:86
UpgradeDB = <func> @..\ReforgeLite.lua:129
methodImportMenu = ReforgeLiteMethodImportMenu {}
WeightsToPrio = <func> @..\TaskUI.lua:679
importFuncs = <table> {}
debugButton = ReforgeLiteDebugButton {}
db = <table> {}
initialized = true
presets = <table> {}
deletePresetButton = ReforgeLiteDeletePresetButton {}
statWeightsCategory = <unnamed> {}
GetNeededMeleeHit = <func> @..\Presets.lua:30
UpdateMethodCategory = <func> @..\ReforgeLite.lua:1058
pawnButton = ReforgeLiteImportButton {}
IsMethodValid = <func> @..\ReforgeEngine.lua:153
UpdateWindowSize = <func> @..\ReforgeLite.lua:405
presetMenu = ReforgeLitePresetMenu {}
UpdatePriorityItem = <func> @..\TaskUI.lua:277
GetMethodScore = <func> @..\ReforgeEngine.lua:120
CreateFrame = <func> @..\ReforgeLite.lua:704
SetAnchor = <func> @..\ReforgeLite.lua:593
IsItemLocked = <func> @..\ReforgeEngine.lua:258
deleteMethodPresetButton = ReforgeLiteDeleteMethodPresetButton {}
pdb = <table> {}
AddPriorityItem = <func> @..\TaskUI.lua:170
RunImport = <func> @..\Parsers.lua:113
itemSlots = <table> {}
STATS = <table> {}
methodPresetDelMenu = ReforgeLiteMethodPresetDelMenu {}
GetStatMultipliers = <func> @..\ReforgeEngine.lua:100
ParsePawnString = <func> @..\ReforgeLite.lua:431
UpdateMethodStats = <func> @..\ReforgeEngine.lua:172
methodStats = <unnamed> {}
SetStatWeights = <func> @..\TaskUI.lua:360
GetConversion = <func> @..\ReforgeEngine.lua:37
scrollBarShown = false
RemoveCapPoint = <func> @..\TaskUI.lua:77
GetExpertiseBonus = <func> @..\Presets.lua:22
MakeReforgeOption = <func> @..\ReforgeEngine.lua:268
settingsCategory = <unnamed> {}
UpdateContentSize = <func> @..\ReforgeLite.lua:1204
methodImportButton = ReforgeLiteImportMethodButton {}
capPresets = <table> {}
close = <unnamed> {}
QueueUpdate = <func> @..\ReforgeLite.lua:1258
UpdatePriorityPreset = <func> @..\TaskUI.lua:261
methodPresetMenu = ReforgeLiteMethodPresetMenu {}
UpdateCapPreset = <func> @..\TaskUI.lua:93
UpdateStatWeightList = <func> @..\TaskUI.lua:136
ParseWowReforge = <func> @..\Parsers.lua:38
isWeights = ReforgeLiteWidget4 {}
itemStats = <table> {}
AddCapPoint = <func> @..\TaskU
Ow, that's because I accidentally reverted the changes to another file, I'll try to get a fix out asap then.
Does the addon calculate based on the unreforged stats of gear that is already reforged (in a sense treating it all like a clean slate)? Or does it take into account what is already reforged and try to fix/optimize from there?
Btw, I don't have the upgrade IDs for new asian items, anyone knows those?
@limyle
First of all, check if the new version works, in eu client data there is a new upgrade path that goes to +16, maybe its the one asian versions use. Doubt it though, because same thing happened last month and asian clients had yet another upgrade path for this.
Anywho, typing in a command like /dump GetInventoryItemLink("player",10) will print the link text for an item in the given slot (10 is gloves i think, try different values from 1 to 16). The link is something like "\Hitem:12341:32:324:2:3:4:3\h\cff00ccff[Gloves of Whatever]\r\h" etc (just typing random numbers here). One of the last numbers is the upgrade ID, it should be around 400. If you could find the values for asian items with different upgrade levels, that would help.
The new version (1.3.4) is still broken. Upgraded items from the new raid, Siege of Orgrimmar, are not handled correctly. For example, if my double upgraded neck from SoO shows that it reforges off 350 spirit, ReforgeLite incorrectly displays 315 spirit because it does not take into account that the item is upgraded. This causes the addon to be useless because it will never reforge correctly.
Wow, it seems I managed to lose the changes I made to item upgrade data, I'll fix that asap..
edit: uploaded new version, the only difference is the (re-)added data for new items. I'll make sure to double-check the incorrect stats after reforging issue soon as that seems to be the major show-stopper for everyone.
I appreciate the persistance Iroared. I think the main reason everyone got all pissy was due to the fact you don't really notice it unless you were paying close attention, or that you saw it right away and reforged multiple times wasting 100's of gold :( Then came the frustration when you realize you would just have to reforge *gasp* manually just like the good old days :D
One suggestion I could make however, maybe put in a check at the end of the reforge sequence to confirm it finished reforging properly. Maybe like a "success ding", or simply a error popup if it fails.
The fact that its giving incorrect values is a bug anyway that I'm trying to fix, adding an extra check would be like admitting defeat =(
I can't see the new version.
I get this bug very often where ReforgeLite will show me an optimal reforge and when I finish and check the character pane it will have me under or over the shown stat. This happens mostly with Hit where in the RL window I will have 5104 (caster cap 5100) for example which is very good and once I hit reforge I check my character and it will be under the hit cap.
I tried reload and logging off before and after every reforge and it doesn't make a difference. Might be an addon clash, RL bug or misscalculations?
Thanks for updating! But I can't see the new version anywhere :(
Updated, sorry for the delay, just got my sub back. I haven't investigated the wrong cap calculation yet, not sure if its caused by outdated item data or not, so be careful.