About this mod
Turns spell learning into a 10 second magical trial with trial difficulty proportional to the cost of the spell. Pass the trial and you learn the spell. Fail and you suffer the consequences.
- Requirements
- Permissions and credits
- Changelogs
SE version available here
tldr
Learn spells by completing a short ritual that drains your magicka
The magicka cost of the ritual is proportional to the magicka cost of the spell, and can be adjusted in the MCM
Keep the book after the ritual and re-read it to try again or to forget a learned spell
Includes auto-patching xEdit script for 100% compatibility with everything*
Here's a video showing the mod in action. First a low level warrior fails to learn a novice destruction spell, then a low mage tries the same but succeeds because of their perks and gear. Finally, the same mage tries to learn an apprentice alteration spell but fails.
How it works
When you read a spell book for the first time, a menu opens asking you if you want to try to learn the spell. If you select "yes" your inventory will close and your character will start the learning ritual (complete with pretty animations and visual effects). During the ritual you are unable to control your character and their magicka will drain at a rate proportional to the cost of the spell. After 10 seconds, if your character has any magicka remaining they will acquire the spell and regain their lost magicka. However, if they have run out of magicka they will be struck down and suffer mental exhaustion, a disease that reduces total magicka and greatly reduces magicka regeneration rate.
The rate at which magicka is lost during the ritual is proportional to the casting cost of the spell and can be configured via the MCM (see configuration section below). The ritual cost takes into account any relevant perks, enchantments, spells and potions affecting your character. So if you have perks that reduce the casting cost of the spell you are trying to learn, they will similarly reduce the rate of magicka loss during the ritual. The magicka drain can also be resisted by resist magic potions or enchantments. Accordingly, to learn a master spell you will want to have taken any relevant perks, wear gear with suitable enchantments, drink a restore magicka and/or resist magic potion and have invested in your total magicka pool when leveling up.
After the ritual you keep the spell tome. So if you failed you can try again when your character is better prepared. If you succeeded, reading the spell tome again will cause you to forget the spell, which is useful for de-cluttering you spell inventory (this doesn't work for flames or healing which are baked into your character).
Configuration
The MCM allows you to change various aspects of the spell learning ritual. Ritual cost can be changed via two parameters: the exponent and multiplier, where
Higher values of the exponent cause spells to get much harder to learn as their casting cost increases (as well as making spells harder to learn in general), whereas lower values make all spell rituals similarly costly regardless of the spell's casting cost (as well as making spells easier to learn in general). The multiplier makes spells easier or harder to learn, but without changing the importance of spell casting cost. The default values (exponent = 1.00, multiplier = 2.5) are intended to remain challenging throughout the game, with master spells being off limits to all except high level mages.
For those interested in changing the values of the exponent and multiplier, open the spoiler below for more info:
First note that the base cost of any ritual is 75 (7.5 magicka per second for 10 seconds), so even a free-to-cast spell would require 75 magicka to learn. The rest of the ritual cost is based on the casting cost of the spell (taking into account your skill, perks, gear etc). Note that this cost is divided by 12. This is the cost of the healing spell. So if the multiplier is 2.5 (the default) then healing (without perks, gear, skill etc) would require 10 magicka per second, for a total of 100, to learn.
Let's look at the multiplier. A spell that costs 24 magicka to cast (twice healing) would cost 12.5 per second (7.5 + 2*2.5), for a total of 125. Changing the multiplier scales these values up and down. So setting it to 5 would make healing cost 125 magicka to learn and the 24 magicka spell cost 175 to learn.
Now let's look at the exponent. This effectively stretches or compresses how fast spells get difficult to learn. So, with the exponent set to 2, the spell that costs 24 magicka would now need 175 magicka to learn (7.5 + 2^2*2.5 = 7.5 + 4*2.5 = 7.5 + 10 = 17.5 per second). But bear in mind that the most expensive spells are over 100 times as costly as healing, and so with an exponent of 2, their ritual would become (almost) 100^2 (i.e. 10,000) times harder. This would basically make ti impossible to learn these spells, so if you increase the mult you will need to lower the multiplier accordingly.
Finally, if you want to do some testing yourself, here's some R code that you can paste here to see some example ritual costs:
ritual_cost <- function(cost, mults, skill) {
skill_mult = 1 - (skill/400)^0.65
exp <- 1
mult <- 2.5
base <- 75
div <- 12
ritual <- base + (((cost*mults*skill_mult)/div)^exp)*mult*10
return(ritual)
}
# ADD TO THIS LIST IF YOU WANT TO SEE MORE CASES
# name, rank, cost, mults from gear etc, skill
rituals <- list()
rituals[[1]] <- c("flames", "novice", 14, 1, 15)
rituals[[2]] <- c("oakflesh", "novice", 103, 1, 15)
rituals[[3]] <- c("oakflesh", "novice", 103, 0.5, 15)
rituals[[4]] <- c("oakflesh", "novice", 103, 0.5*0.75, 15)
rituals[[5]] <- c("candlelight", "novice", 21, 1, 15)
rituals[[6]] <- c("stoneflesh", "apprentice", 194, 1, 30)
rituals[[7]] <- c("stoneflesh", "apprentice", 194, 0.5*0.75, 30)
rituals[[8]] <- c("mass paralysis", "master", 937, 0.5, 75)
rituals[[9]] <- c("mass paralysis", "master", 937, 0.5*0.75*0.75, 75)
rituals[[10]] <- c("storm thrall", "master", 1200, 0.5*0.75*0.75, 75)
rituals[[11]] <- c("frostbite", "novice", 16, 1, 15)
for (i in 1:length(rituals)) {
ritual <- rituals[[i]]
name = ritual[1]
rank = ritual[2]
base_cost = strtoi(ritual[3])
cost_mult = as.numeric(ritual[4])
skill = as.numeric(ritual[5])
output = paste0(name, " (", rank, "): ", round(ritual_cost(base_cost, cost_mult, skill)), " (mult: ", cost_mult, ", skill: ", skill, ")")
print(output)
}
The MCM includes two additional toggles. The first turns mental exhaustion into a 10 minute debuff, as opposed to a disease, this is for players who use mods that make diseases much harder to cure than in vanilla. The second allows you to remain in first person view during the ritual. This is only for players who use a mod than enables first person animations as otherwise you'll just stand there.
SKSE - the ability to set the rate of magicka loss during the ritual as a function of the cost of the spell you are trying to learn relies on new functions added by SKSE.
SkyUI - only needed if you want to access the MCM.
Installation
This mod installs via a zEdit patcher to automatically accommodate any other mods in your load order. This means that spell tomes added by other mods will automatically be affected by Challenging Spell Learning. It also automatically resolves conflicts between Challenging Spell Learning and other mods that edit spell tomes, like Book Covers Skyrim. To install Challenging Spell Learning and make the patch follow these instructions:
1. Install the mod
- Download and install the mod into your data directory. Make sure challenging_spell_learning.esp is active.
2. Install zEdit
- Download, and install zEdit.
3. Add the patchers to zEdit
- Open zEdit.
- Load your full load order, including challenging_spell_learning.esp. The position of the CSL esp does not matter.
- In the top right is a button that looks like 3 little cubes, click it and it will show a list of currently installed patchers.
- Click to install a new patcher. Navigate to the CSL patcher: it is where-ever you installed the mod, inside a folder called "zEdit patchers". Install it then click the button to restart zEdit.
4. Run the patcher
- Load your full load order in zEdit, including challenging_spell_learning.esp. The position of the CSL esp does not matter.
- In the top right is a button that looks like a jigsaw puzzle, click it to see a list of installed patchers.
- Build the patch, it will take a couple of seconds.
- Watch the logs as the patchers run, they give you warnings if its not sure how to patch any of the spell tomes. In the patcher config page you can turn on "verbose" which triggers more detailed logging.
- Exit zEdit saving the newly created patch esps.
5. Play your game
- Make sure the patch is below all the mods they patched.
Notes:
- The mod also comes with an xEdit script if you prefer. It is located in the install directory inside a folder called "xEdit scripts". However, I cannot provide help concerning the xEdit script as I did not make it.
Performance impact
None
Thanks to the patcher, I believe that Challenging Spell Learning is compatible with everything*.
*... except mods that add scripts to the spell tomes. These are basically only other spell learning mods though (e.g. Better Spell Learning), and there's no easy way to somehow combine their effects, so you're just going to have to choose between these mods.
*... if you are already using apocalypse spells you will need to start a new game after installing CSL, otherwise looking at spell tomes in your inventory or vendors' inventories will cause CTDs.
Know Your Enemy - A resistance and weakness overhaul for enemies and armors
Trainers Galore - An expansion of the training system designed for "training only" leveling
Challenging Spell Learning - Spell Tomes trigger a costly ritual you must pass to learn spells
Pick Your Poison - An alchemical handbook to support strategic foraging
NPC Stat Rescaler - A patcher that adjusts NPC stats for faster, fairer, and less spongy combat.
XP Editor - A patcher that adjust xp gain and leveling
Overwhelming thanks to Mator for creating zEdit, without which the zEdit patcher would not be possible. A huge thank you to cdcooley who provided the xedit script and suggested changes to the ritual script. Thanks also to several users who provided patches before the script was available: agentw, Rokendov, FetorMortem, and Nyrhi. Finally, thanks to everyone who contributes to the creation kit wiki and nexus forums. It took a lot of googling to get the animations working the way I wanted.