Wands are created at the caster level of their creator (rounded down to the nearest odd level). There are two problems that this causes. The first is that the distinction in wand creation between Wands of magic missile (and fireball) of different types is meaningless. No matter which of the different wands of magic missile a 9th level wizard creates, the wand will generate 5 magic missiles (tested). If the wands are *consoled* in they act as you would expect them to. 12591, "Wand of Magic Missiles, 2nd", creates two missiles. 12592, "Wand of Magic Missiles, 3rd" creates three missiles. However, if the wands are *crafted*, then the caster level of the creator overwrites the base level of the wand. So, if a 7th level wizard crafts 12591, it will generate 4 missiles, not 2. This of course means that there is no reason to craft anything above "Wand of Magic Missiles, 1st", as they others simply cost more without yielding additional benefit. The second is that wands of higher caster levels are supposed to cost more to craft, but they do not in the engine. This was the intention in creating the wands of magic missile of different levels, though it didn't work out. A wand of mage armor at caster level 9 should cost three times as much to craft as a wand of mage armor at caster level 3. Yet, it doesn't and, indeed, both cost the same as one at caster level 1. The ideal solution to this is prevent the crafting process from overwriting the caster level of the base item. Frankly, I have no idea if such a thing is even possible, let alone how to go about doing it. I'm posting this in the possibly vain hope that someone else either has an idea as to how to accomplish that, or some workaround to it. The only other option I have thought of is to create duplicate spells for each individual wand, but the scope of that renders it obviously out of the question.
Yeah, it's always bothered me too. Another item for the DLL wishlist This will require quite a thorough overhaul, though - adding UI elements and feedback, handling things like the item merging issue, and probably new properties in the item data fields (though as usual we can take a hacky approach and piggy back on an unused field or something like that).
Well, you wouldn't need UI elements if you simply had each wand use its base level as defined in protos.tab. I think that would also sidestep the merging issue, since all items of the same type would have the same caster level. You could always then add variant items for specific spells you wanted higher level wands/scrolls for, just like for magic missile/fireball. Still, I'm sure that would not be an easy fix, regardless, and I'm certain not the highest priority in the dll wishlist.
There's a good chance this may be possible sooner than expected... DS, we want to add a UI element to the crafting UI - let's say wands - that allows you to select the spell level. I'm thinking an up/down arrow pair with a textbox to show the level. This will in turn influence the cost of crafting (XP and GP), and of course set the actual caster level.
I can try getting the slider from the options UI. Would that be okay? The challenge will probably be setting it up so that it has the right range of values when the UI is opened. How would i open the craft wands action? radial menu?
Yeah the slider would be great too. If you want to test, then as a shortcut for leveling your char you can open console and Code: game.leader.condition_add('Craft Wand') And then radial menu, yeah.
I am salivating at this possibility. I would be useless with regard to dll editing, but if I can help with testing, or anything else, let me know. As a note, the prices of scrolls/potions/wands in protos.tab are based on the minimum caster level you can cast that spell at. So, to get the desired price, you would do: (protos.tab price) / (protos.tab level * 2 - 1) * (desired caster level). protos.tab level gives the spell level of the potion, and so protos.tab level * 2 - 1 translates that to minimum caster level. In essence, you are dividing it by minimum caster level to bring the price down to CL 1, and then multiplying by the desired caster level.