Oblivion
0 of 0

File information

Last updated

Original upload

Created by

Malurth

Uploaded by

Malurth

Virus scan

Safe to use

About this mod

Mod to provide magic school experience gain based on magicka cost of the spell cast, among other options, and is incredibly customizable/configurable while remaining user-friendly.

Requirements
Permissions and credits
Changelogs
Intro/Description

Hi. This mod is aimed at addressing one of Oblivion's most glaring flaws, in my opinion: how you have to spam the ever-loving fuck out of spells in order to get skill increases, and how the whole system seems to be skewed in favor of allowing you to advance by crafting custom 1-3 MP spells that you just continually spam while going about your business. I find this system both incredibly tedious and slow. It occurred to me that this could be fixed just by making the spell experience gain magicka-cost based, while providing little gain for cheap skills and lot of gain for expensive skills.

So, to address this, I sought out other user's scripts, hoping to find something to my liking. I found Fundament, which provides a lot of configurability but is really confusing, has a much broader scope, and doesn't allow me to configure what I actually want to. I also found Natural Magic Skills Improvement, which has the right idea, but uses his own hardcoded formula that I didn't want, in addition to having some really befuddling source code.

So I just made my own mod. With this mod, such concerns should by and large be put to rest, because now you can make your own damned formula, and set your own variables, or don't and just use what I packaged for you. Do as you please. I've exposed both the variables and the algorithm in their own .ini files, and tried to explain them the best I could, so you may edit to your heart's content.

The Default Algorithm

Before explaining how this mod calculates XP gains by default, let's look at oblivion's default algorithm:

schoolMult

Yeah, that's it. The XP you gain is equal to whatever that school of magic's XP gain is coded as. They do this so some skills advance faster than others; Conjuration gains ten times as much experience as Restoration, and so it levels ten times faster. I prefer to think of it as:

XPvalue * schoolMult

Where by default Oblivion just always has a XPvalue of exactly 1 for every single spell cast. By default, this mod doesn't touch the schoolMult at all. Whatever vanilla oblivion has it as, or whatever other mods you're using changed it to, that's what this mod works off of (though if you prefer, you may now edit the included MagickaXPbases.ini file to overwrite them and set them to whatever you like). Instead, it calculates a new XPvalue based on your magicka and several other variables, and then multiplies it by the schoolMult, as shown above.

Now, how is XPvalue calculated? Well, you can configure it however you like (and then some), but by default I have it calculated as:

(((spellCost * xpPerMana) + baseXP) ^ exponentialDecay) + offset

Where spellCost is your currently equipped spell's magicka cost, and all the other four are just customizable variables that can be set to pretty much whatever you like. As of this writing, I have them default to xpPerMana = 0.1, baseXP = 1, exponentialDecay = 0.75, and offset = -1. These may be a touch too high for your tastes, significantly advancing XP gain rates for higher-cost spells (though the exponential decay dampens that to make sure it doesn't get out of hand), but I found that I really barely had to use these spells for the most part anyway, at least not nearly as often as the game seems to think I do, so I liked the XP gain to be pretty high since I wasn't making up for it by spamming cheap spells anymore. Of course, if you don't like it, feel free to change it! That's half the point of this mod.

The included .ini configuration files go into great detail to how all of these are used if you want some more info on how they're used and why. That's not quite the full algorithm, though. The full one is:

(((((spellCost * xpPerMana) + baseXP) ^ exponentialDecay) + offset) * schoolMult) * customMult

It's multiplied by the school multiplier so that it maintains the same ratios as before (and won't interfere with mods that changed this), and I also slapped on a custom multiplier on the end if you want to change overall magic XP gains in one variable. By default it's just set to 1, doing nothing.

Finally, the code to implement this algorithm is exposed in its own separate .ini file as well, and even contains a number of extra unused game-state variables you can use to change it into whatever you please (currently, myMaxMagicka, myCurMagicka, and schoolSkill are all there if you want to use them). All of the customizable variables (with the notable exception of the variable "finalIncrement") aren't special in any way, and are just simple floating point variables, so you can repurpose them for any use in any algorithm as long as you keep the names the same.

A word of warning, though: It's not too hard to understand, and I tried to leave helpful comments inside the file, but it is liable to stop working if you make erroneous changes in there. Further, since the algorithm is exposed as an external .ini file, multi-line statements were impossible to implement (as far as I know), so I couldn't check for a negative number to zero it out before the exponent is applied to it. So either try and make sure that you aren't raising a negative XP value to an exponent, or just paste it back into the script in the appropriate spot and implement it in there (should be trivial if you know what you are doing).

Installation

It's just the .esp file and the .inis, so extract the contents of the .zip to your \Data\ folder and you should be good to go. I'm pretty sure Wyre Bash will auto-install it fine too. Just make sure the .ini files aren't renamed, and are located in your \Data\ini\ folder.

It does require OBSE, though. You should already be on board that train.

Load Order

Should come pretty much dead last; it's just one always-running script that changes experience gain values for magic skills on the fly, so as long as it loads after any other mod that changes those values it'll be good to go.