Oblivion

File information

Last updated

Original upload

Created by

Atkana

Uploaded by

Atkana

Virus scan

Safe to use

About this mod

Limits the number of spells the player can have available at the same time. Also has an optional side-system that allows learning spells from scrolls.

Requirements
Permissions and credits
Apparently Nexus Mods doesn't support markdown (even though I swear I've seen it used before...). If you want to see a pretty formatted version of this, paste it into a markdown viewer ;p


# Prepared Spells
## Introduction
Limits the number of spells the player can have available at the same time. Also has an optional side-system that allows learning spells from scrolls.

## Requirements
This mod requires the following:
-xOBSE
-The Mehrunes Razor DLC

## Description
The mod adds a prepared spell system, similar to what you might find in Dungeons & Dragons. You can only have a certain number of spells prepared (available to cast from your magic menu) at any one time, the amount of which is based on your skills and/or class (depending on how you've configured the mod). Any excess spells are condensed into physical spell memory gems, which can later be used to prepare the spell, or as a regular spell scroll in a pinch (which yes, will consume that spell forever!).

To prepare spells, simply cast the [Prepare spells] lesser power. All your currently prepared spells will be condensed into spell memory gems, then you can equip spell memory gems during the power's duration to prepare them. There's a configuration option to allow spells to be prepared from scrolls too, but I wouldn't exactly call it balanced, since scrolls at base are worth 1/6th of the price of buying a spell... Regardless of the spell's source, you can only prepare spells that you have the skill to cast (so no preparing Journeyman spells when you're only an Apprentice). Once you've prepared spells, you'll have to wait for an in-game day to pass, so choose wisely.

### Design Goals
- Give a feeling of thought and planning. Without immediate access to every spell at your disposal, I hope it'll encourage players to consider what spells may be useful for the challenges ahead, and feel rewarded when their forethought pays off.
- Give a price to adaptability. If you want to have *all* your spells available to you when you adventure, you're going to have to sacrifice some of your encumbrance to do so, since each spell memory gem has a weight which'll add up if you're indecisive. I think it becomes more interesting to consider the trade-off of adaptability versus room for loot, as opposed to just having every single spell available whenever you need it without any downsides. The limitations to available spells might also encourage utilising other items like staves to fill in weaknesses, which also come with the same cost of adaptability vs encumbrance.
- Help encourage sticking to a theme. Not a major consideration, but it might happen. With a more limited available pool available (and so less expectation to fill your spellbook with spells *just in case* you need them), the lowered expectation to always have options for everything might be more freeing for players who want to specialise in a particular theme or school.
- Give a new way to play the game. I'm always big on *small changes that could have a big impact on how you play the game*, and this is one of them. Hopefully it makes things a bit more fresh and interesting.

## Miscellaneous
### Configuration
Configuration is all done on a per-save basis through the use of global variables.

#### Notable Miscellaneous
- `SpellPrepAllowNonTokenScrolls` (Short | Default 0) - Governs whether only spell memories can be prepared, or whether any scroll can be prepared. 0 = Only spell memories, 1 = Scrolls can also be prepared from. (There's also a secret option 2 which bypasses any *this will likely break the game* safeguards I've placed to restrict certain scrolls...)
- `SpellPrepRequireMasteryToPrepare` (Short | Default 1) - Whether the player needs the appropriate skill level to cast the spell being prepared in order to prepare it. 0 = No restriction, 1 = Must have the appropriate skill mastery.
- `SpellPrepTokenWeight` (Float | Default 1.0) -How much spell memories weigh. Changing will only affect new unique spell memories when they're created, not any previously created ones.
#### Miscellaneous
- `SpellPrepCooldownLength` (Float | Default: 2880.0) - How long in seconds it takes after preparing spells before you can do again. The default value amounts to 1 day in-world time at the default timescale.
- `SpellPrepCanPrepareInCombat` (Short | Default 0) - Whether or not the player is allowed to prepare spells during combat. 0 = Disallowed, 1 = Allowed.
- `SpellPrepCanPrepareInCombat` (Short | Default 0) - Whether or not the player is allowed to prepare spells when danger is nearby (approximates the same system preventing waiting or fast travel when there's enemies nearby). 0 = Disallowed, 1 = Allowed.

#### Slots
This section is where most of the configuration options lie. They govern how many spells the player can have prepared at a time (referred to as slots). After calculation, the value is rounded down, and then clamped between `SpellPrepSlotsAbsoluteMinimum` and `SpellPrepSlotsAbsoluteMaximum`. "Protected Spells" (i.e. spells that would break the game if they were removable, like the default spell, or some scripted spells from Daedric shrine quests) don't count against the slot maximum. I'll run through what each option does, then share a few different styles (alongside the default configuration).

I will note that while it may look like a lot of attention has gone into this, most of the values I've decided on haven't been playtested and are more based on gut feelings and similar comparisons than anything informed through play. Hopefully they'll be good values, or if not I'll get around to changing them after some playtime to find what works.

##### What they do
- `SpellPrepSlotsBase` (Float) - The base number of slots available to all characters.
- `SpellPrepSlotBonusPerLevel` (Float) - Slots gained per character level.
- `SpellPrepSlotBonusXSpecialist` (Float) - Slots gained for their character class specialization. Replace X with either `Combat`/`Magic`/`Stealth`
- `SpellPrepSlotBonusXMagicSkill` (Float) - Slots gained for each spellcasting magic school at the exact level of mastery. This applies to each school, so if `SpellPrepSlotBonusApprenticeMagicSkill` awarded 1 slot, a character that is apprentice level at Restoration and Conjuration would receive 2 bonus slots in total. Each tier bonus is mutually exclusive - a character with 50 Destruction will only gain the bonus from `SpellPrepSlotBonusJourneymanMagicSkill`, and *not* the previous Apprentice or Novice rewards. Replace X with either `Novice`/`Apprentice`/`Journeyman`/`Expert`/`Master`.
- `SpellPrepSlotBonusXMagicSkillSingle` (Float) - Slots gained for having at least one spellcasting magic school at the exact level of mastery. Everything from the previous setting applies, except without the cumulative effect of having multiple skills at levels of mastery - if `SpellPrepSlotBonusExpertMagicSkillSingle` awards 1 slot, and a character's highest ranked spellschools are Restoration and Conjuration at Expert level, the character would receive only 1 slot.
- `SpellPrepSlotsAbsoluteMinimum` (Short) - The minimum number of slots a character can have after calculations. Ideally it should be at least 1, otherwise no character would be able to learn spells to get better at them (though I guess you could force them to go through training).
- `SpellPrepSlotsAbsoluteMaximum` (Short) - The maximum number of slots a character can have after calculations. Ideally should still be somewhat low, otherwise what's the point of using a mod that restricts the number of spell slots?

##### Premade Options
Since there's a lot of options to consider and different approaches/philosophies people might prefer, I've provided a few premade flavours you can use as a basis. Most of the time they aim to reach similar values (i.e. similar starting and final slot counts), but through different approaches.

The default approach this mod uses is the "Meritocracy" setup, since it's the most in-keeping with the general philosophy of the game, and probably the most milquetoast variation.

**TIP:** You can easily run these blocks by pasting it into a text file in your Oblivion directory called "myconfig", then in-game running the command `RunBatchScript "myconfig.txt"`.

###### Front-Loaded
Character class determines starting slots: 1/2/4 for Combat/Stealth/Magic specialisations respectively. They can earn 1 additional slot from getting any spellcasting school to Apprentice level (which you'll get from picking one as a major skill). That's all you're getting.

Use this if:
- You only want class to matter
```
set SpellPrepSlotsAbsoluteMinimum to 1
set SpellPrepSlotsAbsoluteMaximum to 5
set SpellPrepSlotsBase to 0.0
set SpellPrepSlotBonusPerLevel to 0.0

set SpellPrepSlotBonusCombatSpecialist to 1.0
set SpellPrepSlotBonusMagicSpecialist to 2.0
set SpellPrepSlotBonusStealthSpecialist to 4.0

set SpellPrepSlotBonusNoviceMagicSkill to 0.0
set SpellPrepSlotBonusApprenticeMagicSkill to 0.0
set SpellPrepSlotBonusJourneymanMagicSkill to 0.0
set SpellPrepSlotBonusExpertMagicSkill to 0.0
set SpellPrepSlotBonusMasterMagicSkill to 0.0

set SpellPrepSlotBonusNoviceMagicSkillSingle to 0.0
set SpellPrepSlotBonusApprenticeMagicSkillSingle to 1.0
set SpellPrepSlotBonusJourneymanMagicSkillSingle to 1.0
set SpellPrepSlotBonusExpertMagicSkillSingle to 1.0
set SpellPrepSlotBonusMasterMagicSkillSingle to 1.0
```

###### Specialisation x2
Character class determines starting slots: 1/2/3 for Combat/Stealth/Magic specialisations respectively. Additional slots are earned based on the mastery of the character's single best spellcasting skill, with each tier above Novice rewarding 1 extra slot.
Under this system, a mage character will usually start with 4 slots (3 for Magic specialisation, 1 for an Apprentice skill) and at best have 7 slots, meaning their slot total is owed roughly 1:1 based on their class vs experience. A combat focused character will have 1/2 slots to start with (depending on if they have an apprentice level magic skill), with a maximum of 5/6 slots.
This system rewards focusing on a single school for extra slots, as only the best school determines slot amount.

Use this if:
- You want class to matter
- You want skill to also matter
- You want to reward specialisation over generalisation
```
set SpellPrepSlotsAbsoluteMinimum to 1
set SpellPrepSlotsAbsoluteMaximum to 8
set SpellPrepSlotsBase to 0.0
set SpellPrepSlotBonusPerLevel to 0.0

set SpellPrepSlotBonusCombatSpecialist to 1.0
set SpellPrepSlotBonusMagicSpecialist to 3.0
set SpellPrepSlotBonusStealthSpecialist to 2.0

set SpellPrepSlotBonusNoviceMagicSkill to 0.0
set SpellPrepSlotBonusApprenticeMagicSkill to 0.0
set SpellPrepSlotBonusJourneymanMagicSkill to 0.0
set SpellPrepSlotBonusExpertMagicSkill to 0.0
set SpellPrepSlotBonusMasterMagicSkill to 0.0

set SpellPrepSlotBonusNoviceMagicSkillSingle to 0.0
set SpellPrepSlotBonusApprenticeMagicSkillSingle to 1.0
set SpellPrepSlotBonusJourneymanMagicSkillSingle to 2.0
set SpellPrepSlotBonusExpertMagicSkillSingle to 3.0
set SpellPrepSlotBonusMasterMagicSkillSingle to 4.0
```

###### Meritocracy (Default)
Skill levels are the only source of slots (except the universal base 1, which anyone gets). Each spellcasting skill provides 0.5/1/2/3 Slots at Apprentice/Journeyman/Expert/Master, with a one-time bonus of an additional slot when the first school reaches Master. This approach allows for both diversity or specialisation when it comes to gaining slots - gain max slots of 8 by solely mastering 2 skills, or bringing all 6 up to Journeyman, or any other combination. The lack of anything class-specific is in keeping with the whole Elder Scrolls ethos of anyone being able to do anything.
This option works out similarly to previous levels in terms of starting slots. Characters who go full-mage (6 spellcasting skills) start off with 4 slots (6 Apprentice skills +1 base), common mages (4 spellcasting skills) start with 3 slots, dabblers (2 spellcasting skills) start with 2 slots, and non-mages start with 1.

Use this if:
- You don't want to be constrained by your starting class
- You want to be free to either specialise or generalise in your magic studies (though some degree of generalisation is necessary)

This is the default option.
```
set SpellPrepSlotsAbsoluteMinimum to 1
set SpellPrepSlotsAbsoluteMaximum to 8
set SpellPrepSlotsBase to 1.0
set SpellPrepSlotBonusPerLevel to 0.0

set SpellPrepSlotBonusCombatSpecialist to 0.0
set SpellPrepSlotBonusMagicSpecialist to 0.0
set SpellPrepSlotBonusStealthSpecialist to 0.0

set SpellPrepSlotBonusNoviceMagicSkill to 0.0
set SpellPrepSlotBonusApprenticeMagicSkill to 0.5
set SpellPrepSlotBonusJourneymanMagicSkill to 1.0
set SpellPrepSlotBonusExpertMagicSkill to 2.0
set SpellPrepSlotBonusMasterMagicSkill to 3.0

set SpellPrepSlotBonusNoviceMagicSkillSingle to 0.0
set SpellPrepSlotBonusApprenticeMagicSkillSingle to 0.0
set SpellPrepSlotBonusJourneymanMagicSkillSingle to 0.0
set SpellPrepSlotBonusExpertMagicSkillSingle to 0.0
set SpellPrepSlotBonusMasterMagicSkillSingle to 1.0
```

###### Casual Escalation
Characters start with 3 slots, with magic specialists getting 1 additional slot. Every 5 character levels (loosely tied with loot tiers increasing), slots increase by 1, up to a maximum of 8.

Use this if:
- You want progression almost solely to be tied to the vanilla game's progression system (hey, I'm not judging)
```
set SpellPrepSlotsAbsoluteMinimum to 1
set SpellPrepSlotsAbsoluteMaximum to 8
set SpellPrepSlotsBase to 3.0
set SpellPrepSlotBonusPerLevel to 0.2

set SpellPrepSlotBonusCombatSpecialist to 0.0
set SpellPrepSlotBonusMagicSpecialist to 1.0
set SpellPrepSlotBonusStealthSpecialist to 0.0

set SpellPrepSlotBonusNoviceMagicSkill to 0.0
set SpellPrepSlotBonusApprenticeMagicSkill to 0.0
set SpellPrepSlotBonusJourneymanMagicSkill to 0.0
set SpellPrepSlotBonusExpertMagicSkill to 0.0
set SpellPrepSlotBonusMasterMagicSkill to 0.0

set SpellPrepSlotBonusNoviceMagicSkillSingle to 0.0
set SpellPrepSlotBonusApprenticeMagicSkillSingle to 0.0
set SpellPrepSlotBonusJourneymanMagicSkillSingle to 0.0
set SpellPrepSlotBonusExpertMagicSkillSingle to 0.0
set SpellPrepSlotBonusMasterMagicSkillSingle to 0.0
```

### Cheats/Debug
- To end the cooldown between preparing spells, you can use `set SpellPrepPrepareCooldown to 1`.

### Known Issues
- After learning a spell from a scroll/memory gem, if you don't then select anything from your spellbook and attempt to cast a spell, you will play the casting animation but nothing will happen. This is linked to an engine bug that OBSE doesn't provide any solutions for that I can find, so there's nothing I can do about it :c. For those curious, the bug is that equipped scrolls stay equipped as usable scrolls even after being removed (and there's no function to actually forcibly unequip an equipped scroll), meaning that if you don't then select a spell and press the cast button, the player will cast the scroll they no longer have. In order to avoid getting cheaty free casts of the last spell you prepared, I forcibly equip a different scroll with a useless effect, so the free cast uses that useless spell instead.

### Notes
- I've gone through all of the official content and marked some spells/scrolls as "protected". What that means is that they're unable to be (un)prepared, and in the case of spells won't count towards your slot maximum. This is to prevent potential game-breaking stuff that may happen when a spell is removed, since the game isn't expecting them to be removable - the most notable example is the starting healing spell, which has some hard-coded assumptions of it always being the player's spellbook, from what I know. It's definitely possible that I've missed some spells, so let me know if that's the case.
- This mod hasn't had any extensive playtesting beyond making sure that all of the systems seem to work properly through any means I can think of. There may be problems tuning-wise, or functionality-wise in niche unforeseen circumstances.