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.
I was able to get it to calculate correctly with the hit missing but when I went to hit reforge the list of reforges came up and there was no gear in any of my slots and it told me that reforging was going to cost me over 8k gold. Went back to v1.21 for now :)
Last Update ---> Error
Hunter 85 Lvl
1x ReforgeLite\ReforgeLite-v1.22.lua:1415: bad argument #3 to "format" (string expected, got nil)
<in C code>
ReforgeLite\ReforgeLite-v1.22.lua:1415: in function "ShowMethodWindow"
ReforgeLite\ReforgeLite-v1.22.lua:1086: in function <ReforgeLite\ReforgeLite.lua:1085>
Locals:
self = <unnamed> {
PrioToWeights = <func> @..\TaskUI.lua:580
itemTable = <unnamed> {}
CapUpdater = <func> @..\TaskUI.lua:130
IsReforgeMatching = <func> @..\ReforgeLite.lua:1426
InitPresets = <func> @..\Presets.lua:537
MovePriorityItem = <func> @..\TaskUI.lua:248
GetCapScore = <func> @..\ReforgeLite.lua:396
CapAllows = <func> @..\ReforgeEngine.lua:198
UpdateTask = <func> @..\TaskUI.lua:314
dbkey = "Айанор - Вечная Песня"
ReorderCapPoint = <func> @..\TaskUI.lua:86
UpgradeDB = <func> @..\ReforgeLite.lua:128
methodReset = ReforgeLiteMethodResetButton {}
UpdateMethodChecks = <func> @..\ReforgeLite.lua:1473
ComputeReforgeCore = <func> @..\ReforgeEngine.lua:516
debugButton = ReforgeLiteDebugButton {}
db = <table> {}
initialized = true
presets = <table> {}
deletePresetButton = ReforgeLiteDeletePresetButton {}
statWeightsCategory = <unnamed> {}
GetNeededMeleeHit = <func> @..\Presets.lua:30
UpdateMethodCategory = <func> @..\ReforgeLite.lua:1044
pawnButton = ReforgeLiteDeletePresetButton {}
IsMethodValid = <func> @..\ReforgeEngine.lua:114
UpdateWindowSize = <func> @..\ReforgeLite.lua:391
presetMenu = ReforgeLitePresetMenu {}
UpdatePriorityItem = <func> @..\TaskUI.lua:276
GetMethodScore = <func> @..\ReforgeEngine.lua:81
CreateFrame = <func> @..\ReforgeLite.lua:690
SetAnchor = <func> @..\ReforgeLite.lua:579
IsItemLocked = <func> @..\ReforgeEngine.lua:209
deleteMethodPresetButton = ReforgeLiteDeleteMethodPresetButton {}
pdb = <table> {}
AddPriorityItem = <func> @..\TaskUI.lua:170
itemSlots = <table> {}
methodOverride = <table> {}
STATS = <table> {}
methodPresetDelMenu = ReforgeLiteMethodPresetDelMenu {}
ParsePawnString = <func> @..\ReforgeLite.lua:417
UpdateMethodStats = <func> @..\ReforgeEngine.lua:130
methodStats = <unnamed> {}
SetStatWeights = <func> @..\TaskUI.lua:341
GetConversion = <func> @..\ReforgeEngine.lua:37
scrollBarShown = false
RemoveCapPoint = <func> @..\TaskUI.lua:77
GetExpertiseBonus = <func> @..\Presets.lua:22
MakeReforgeOption = <func> @..\ReforgeEngine.lua:219
settingsCategory = <unnamed> {}
UpdateContentSize = <func> @..\ReforgeLite.lua:1179
capPresets = <table> {}
close = <unnamed> {}
QueueUpdate = <func> @..\ReforgeLite.lua:1233
UpdatePriorityPreset = <func> @..\TaskUI.lua:260
methodPresetMenu = ReforgeLiteMethodPresetMenu {}
UpdateCapPreset = <func> @..\TaskUI.lua:93
UpdateStatWeightList = <func> @..\TaskUI.lua:136
isWeights = ReforgeLiteWidget3 {}
itemStats = <table> {}
AddCapPoint = <func> @..\TaskUI.lua:30
reforgeTable = <table> {}
title = <unnamed> {}
scrollValue = 0
scrollBg = <unnamed> {}
Compute = <func> @..\ReforgeEngine.lua:587
l
Hi, just updated to 1.22, and with that version my hit is gone. It's hidden sorta, like it's deleted from the stat choices. Gonna use 1.21 until it's fixed. Tryed reinstalling twice, same problem. I dunno if it's only me who's having the problem, sorry if it's something on my side. I'm a mage btw!
Date: 2012-12-24 14:03:05
ID: -1
Error occured in: Global
Count: 7
Message: ..\AddOns\ReforgeLite\ReforgeLite.lua line 1415:
bad argument #4 to 'format' (string expected, got nil)
Debug:
[C]: format()
ReforgeLite\ReforgeLite.lua:1415: ShowMethodWindow()
ReforgeLite\ReforgeLite.lua:1086:
ReforgeLite\ReforgeLite.lua:1085
Locals:
(*temporary) = "%d %s > %s"
(*temporary) = 168
(*temporary) = "Tempowertung"
(*temporary) = nil
(*temporary) = "string expected, got nil"
AddOns:
Swatter, v5.15.5383 (LikeableLyrebird)
AucAdvanced, v5.15.5383 (LikeableLyrebird)
AucFilterBasic, v5.15.5383 (LikeableLyrebird)
AucFilterOutlier, v5.15.5383.5381(5.15/embedded)
AucMatchUndercut, v5.15.5383.5381(5.15/embedded)
AucStatHistogram, v5.15.5383 (LikeableLyrebird)
AucStatiLevel, v5.15.5383 (LikeableLyrebird)
AucStatPurchased, v5.15.5383 (LikeableLyrebird)
AucStatSales, v5.15.5383.5381(5.15/embedded)
AucStatSimple, v5.15.5383 (LikeableLyrebird)
AucStatStdDev, v5.15.5383 (LikeableLyrebird)
AucStatWOWEcon, v5.15.5383.5323(5.15/embedded)
AucUtilAHWindowControl, v5.15.5383.5381(5.15/embedded)
AucUtilAppraiser, v5.15.5383.5381(5.15/embedded)
AucUtilAskPrice, v5.15.5383.5381(5.15/embedded)
AucUtilAutoMagic, v5.15.5383.5381(5.15/embedded)
AucUtilCompactUI, v5.15.5383.5381(5.15/embedded)
AucUtilEasyBuyout, v5.15.5383.5381(5.15/embedded)
AucUtilFixAH, v5.15.5383 (LikeableLyrebird)
AucUtilItemSuggest, v5.15.5383.5381(5.15/embedded)
AucUtilPriceLevel, v5.15.5383.5381(5.15/embedded)
AucUtilScanButton, v5.15.5383.5320(5.15/embedded)
AucUtilScanFinish, v5.15.5383.5381(5.15/embedded)
AucUtilScanProgress, v5.15.5383.4979(5.15/embedded)
AucUtilScanStart, v5.15.5383.5381(5.15/embedded)
AucUtilSearchUI, v5.15.5383.5381(5.15/embedded)
AucUtilSimpleAuction, v5.15.5383.5381(5.15/embedded)
AucUtilVendMarkup, v5.15.5383.4828(5.15/embedded)
Babylonian, v5.1.DEV.332(/embedded)
BagBrother, v
Bartender4, v4.5.8
BeanCounter, v5.15.5383 (LikeableLyrebird)
Combuctor, v5.1.2
CombuctorSets, v
Configator, v5.1.DEV.344(/embedded)
CooldownCount, v4.0
DBMCore, v
DebugLib, v5.1.DEV.337(/embedded)
GatherMate2, v1.23.1
Informant, v5.15.5383 (LikeableLyrebird)
LibExtraTip, v5.12.DEV.342(/embedded)
Recount, v
ReforgeLite, v1.22
SlideBar, v5.15.5383 (LikeableLyrebird)
Stubby, v5.15.5383 (LikeableLyrebird)
TidyPlates, v6.8.2 (R559)
TidyPlatesGraphite, v
TidyPlatesGrey, v
TidyPlatesNeon, v
TidyPlatesQuatre, v
TidyPlatesHub, v
TidyPlatesWidgets, v
TipHelper, v5.12.DEV.343(/embedded)
TipTac, v12.10.30
TipTacItemRef, v12.08.30
TipTacTalents, v12.09.05
TomTom, vv50100-1.0.1
BlizRuntimeLib_deDE v5.1.0.50100 <eu>
(ck=8b0)
<p>i use 1.22 reforgelite and this is an error was started with 1.22 before i had no problems please fix it</p>
Date: 2012-12-24 14:03:05 ID: -1 Error occured in: Global Count: 7 Message: ..\AddOns\ReforgeLite\ReforgeLite.lua line 1415: bad argument #4 to 'format' (string expected, got nil) Debug: [C]: format() ReforgeLite\ReforgeLite.lua:1415: ShowMethodWindow() ReforgeLite\ReforgeLite.lua:1086: ReforgeLite\ReforgeLite.lua:1085 Locals: (*temporary) = "%d %s > %s" (*temporary) = 168 (*temporary) = "Tempowertung" (*temporary) = nil (*temporary) = "string expected, got nil" AddOns: Swatter, v5.15.5383 (LikeableLyrebird) AucAdvanced, v5.15.5383 (LikeableLyrebird) AucFilterBasic, v5.15.5383 (LikeableLyrebird) AucFilterOutlier, v5.15.5383.5381(5.15/embedded) AucMatchUndercut, v5.15.5383.5381(5.15/embedded) AucStatHistogram, v5.15.5383 (LikeableLyrebird) AucStatiLevel, v5.15.5383 (LikeableLyrebird) AucStatPurchased, v5.15.5383 (LikeableLyrebird) AucStatSales, v5.15.5383.5381(5.15/embedded) AucStatSimple, v5.15.5383 (LikeableLyrebird) AucStatStdDev, v5.15.5383 (LikeableLyrebird) AucStatWOWEcon, v5.15.5383.5323(5.15/embedded) AucUtilAHWindowControl, v5.15.5383.5381(5.15/embedded) AucUtilAppraiser, v5.15.5383.5381(5.15/embedded) AucUtilAskPrice, v5.15.5383.5381(5.15/embedded) AucUtilAutoMagic, v5.15.5383.5381(5.15/embedded) AucUtilCompactUI, v5.15.5383.5381(5.15/embedded) AucUtilEasyBuyout, v5.15.5383.5381(5.15/embedded) AucUtilFixAH, v5.15.5383 (LikeableLyrebird) AucUtilItemSuggest, v5.15.5383.5381(5.15/embedded) AucUtilPriceLevel, v5.15.5383.5381(5.15/embedded) AucUtilScanButton, v5.15.5383.5320(5.15/embedded) AucUtilScanFinish, v5.15.5383.5381(5.15/embedded) AucUtilScanProgress, v5.15.5383.4979(5.15/embedded) AucUtilScanStart, v5.15.5383.5381(5.15/embedded) AucUtilSearchUI, v5.15.5383.5381(5.15/embedded) AucUtilSimpleAuction, v5.15.5383.5381(5.15/embedded) AucUtilVendMarkup, v5.15.5383.4828(5.15/embedded) Babylonian, v5.1.DEV.332(/embedded) BagBrother, v Bartender4, v4.5.8 BeanCounter, v5.15.5383 (LikeableLyrebird) Combuctor, v5.1.2 CombuctorSets, v Configator, v5.1.DEV.344(/embedded) CooldownCount, v4.0 DBMCore, v DebugLib, v5.1.DEV.337(/embedded) GatherMate2, v1.23.1 Informant, v5.15.5383 (LikeableLyrebird) LibExtraTip, v5.12.DEV.342(/embedded) Recount, v ReforgeLite, v1.22 SlideBar, v5.15.5383 (LikeableLyrebird) Stubby, v5.15.5383 (LikeableLyrebird) TidyPlates, v6.8.2 (R559) TidyPlatesGraphite, v TidyPlatesGrey, v TidyPlatesNeon, v TidyPlatesQuatre, v TidyPlatesHub, v TidyPlatesWidgets, v TipHelper, v5.12.DEV.343(/embedded) TipTac, v12.10.30 TipTacItemRef, v12.08.30 TipTacTalents, v12.09.05 TomTom, vv50100-1.0.1 BlizRuntimeLib_deDE v5.1.0.50100 (ck=8b0
Still no word on the integer overflow error, I'll just upload the fix for caster expertise bug then.
ReforgeLite is not showing the right stats for upgraded Arena (and possibly Honor aswell) items. it works for standard PvE gear though.
Are you sure you are using 1.21? I missed pvp items in 1.20, but fixed them later.
Oh right, my bad then.
For some reason reforge lite doesnt work on my priest. But works on my DK...
Message: integer overflow attempting to store 4822152440
Time: 12/18/12 21:10:08
Count: 2
Stack: [C]: ?
[C]: in function `format'
Interface\AddOns\ReforgeLite\ReforgeLite.lua:632: in function <Interface\AddOns\ReforgeLite\ReforgeLite.lua:620>
Interface\AddOns\ReforgeLite\ReforgeLite.lua:1214: in function `RefreshMethodStats'
Interface\AddOns\ReforgeLite\ReforgeLite.lua:1286: in function `UpdateItems'
Interface\AddOns\ReforgeLite\ReforgeLite.lua:1680: in function <Interface\AddOns\ReforgeLite\ReforgeLite.lua:1669>
[C]: in function `TurnOrActionStop'
[string "TURNORACTION"]:4: in function <[string "TURNORACTION"]:1>
Locals:
This isn't the first report of this happening. I've looked through the relevant code over and over again and can't see why this would happen, unless your profile somehow got bugged. Could you please send me your WTF/Account/<name>/SavedVariables/ReforgeLite.lua - I suspect there might be something wrong with it.
Also, if you delete that file it should (temporarily) fix the problem, but I'd still like to know the cause.
Hello there.
Have a lilttle problem. i'm protpaladin with haste/mastery build, when i try to set cap for haste at 5700 and reforge - addon reforge all what he can in hast and dont stop at needed limit. Thx for support and sorry for my bad english.
See the post below. You can't have more than two caps, though the current interface doesn't make it clear enough.
Do you have any plans to allow more than 2 caps? I need to set 3 caps for my mage in PvP (spell hit, haste breakpoints, crit cap), and unfortunately I can't do that with ReforgeLite, which is quite sad as I've been using it since MoP and it served me well up until now :<
This would be lovely. Hit and expertise already take the 2 caps for me so would really love to be able to have a third one.
I need to throw a hat in for this also. Playing a BrM Monk, I want to be able to use advanced mode for reforging, but need Hit, Expertise and Haste caps to set which I currently cannot do.
Please allow more caps in advanced mode!
I explained this multiple times already, the current algorithm can't allow third cap due to memory and time constraints. Websites that allow more caps (such as wowreforge) use brute force methods that are simply not possible in a lua engine.
I know the computation gets exponentially slower for each constraint you add, but for my part I don't mind waiting even a few minutes for a result. I mean, there is no workaround - I need more than two caps, and if RL doesn't allow more than two, then I can't use it. I would much rather wait a few minutes to have a result with RL than use an external website for my reforges :). And I believe I'm not outspeaking myself when I say that many people probably feel the same.
It's your choice, of course - but if the only thing that's stopping you from doing it is because it'll take more time, you can do it without any remorse: it won't affect people that don't need more than two caps, and people who need more than two will understand that it'll make the computation take much more time - it's already the case with external tools anyway :)
I think I've narrowed down the problem as to why people have to reforge multiple times. The addon is not recognizing spirit as hit properly, now I don't mean it does not count it towards your total hit rating - because it does, but rather it forgets that spirit is hit when looking to maximize your stats.
Here is an example: I have 300 too much hit. I get 800 of my 5400 hit from spirit. Reforgelite asks me to reforge out of 300 hit as well as all the spirit it can, because it knows haste is greater than spirit. Unfortunately it does not seem to take into account these effects on hit rating.
Here is a screenshot: http://i.imgur.com/xDofG.jpg
I don't think that is the case here - it wants you to reforge to 4770 hit including the loss of spirit, which is what you wanted. There might be a problem with expertise reforging because it works differently, but not with spirit.