I haven't been playing Daggerfall in 4 years much and I haven't got back into modding at all since then. The next time I have some interest in modding, I'll read through all mods feedback and release updates.
This Mod answers one of my dreams that I recall having had some time in the previous millennium. I just (re)started with Daggerfall after these 2 decades and was very thrilled about your Mod. I found it a lot of fun tinkering with the values provided and trying out the spell with different mage characters of different ability to see what values for price progression would feel to have the best balance for me.
Seems I might get my values closer to what I am aiming at if especially the per-level portion casting cost could be increased more than the 100 setting allows, I would also be very interested in the ability to tinker with the values that adjust the accumulation of price progression when adding magnitude and duration and the starting price/effect to see if I could come up with settings that produce a Levitation that is mostly unattainable for the first few levels of game characters, becoming attainable but slow Levitation for fairly advanced lvl 8 mage and not too moon-rocket but definitely rewarding expensive speedy Levitation and a cheap as dirt basic speed one for the most advanced 28+lvl 100 Thaumaturgy Mages. Currently it seems there is no way to make the cost high enough to not have a lvl 12 advanced mage already have the ability to handle versions that are too fast to even function reasonably. However, most of the magic in Vanilla Daggerfall has a very similar balance of being rather overpowered and cheap already for a highly skilled mid-level character, so you mod, with 100-100 values, already seems well adjusted to be in line with vanilla Daggerfall.
I am so inspired I may even try to download the modding tools myself and see if I can tweak the values to my liking for personal use if I find the time for that.
I'm not sure what the conflict is, but when this mod is enabled, creating a custom spellcaster results in my spellbook freezing the game, most oft having buoyancy as the only listed spell.
DivideByZeroException: Attempted to divide by zero. at MTMMM.MMMFormulaHelper.GetEffectComponentCosts (DaggerfallWorkshop.Game.MagicAndEffects.EffectCosts costs, System.Int32 starting, System.Int32 increase, System.Int32 perLevel, System.Int32 skillValue) [0x00000] in <5163719cf6a64b00bb47e88bfd2ea060>:0 at MTMMM.MMMFormulaHelper.CalculateEffectCosts (DaggerfallWorkshop.Game.MagicAndEffects.IEntityEffect effect, DaggerfallWorkshop.Game.MagicAndEffects.EffectSettings settings, DaggerfallWorkshop.Game.Entity.DaggerfallEntity casterEntity) [0x000e4] in <5163719cf6a64b00bb47e88bfd2ea060>:0 at (wrapper delegate-invoke) System.Func`4[DaggerfallWorkshop.Game.MagicAndEffects.IEntityEffect,DaggerfallWorkshop.Game.MagicAndEffects.EffectSettings,DaggerfallWorkshop.Game.Entity.DaggerfallEntity,DaggerfallWorkshop.Game.Formulas.FormulaHelper+SpellCost].invoke_TResult_T1_T2_T3(DaggerfallWorkshop.Game.MagicAndEffects.IEntityEffect,DaggerfallWorkshop.Game.MagicAndEffects.EffectSettings,DaggerfallWorkshop.Game.Entity.DaggerfallEntity) at DaggerfallWorkshop.Game.Formulas.FormulaHelper.CalculateEffectCosts (DaggerfallWorkshop.Game.MagicAndEffects.IEntityEffect effect, DaggerfallWorkshop.Game.MagicAndEffects.EffectSettings settings, DaggerfallWorkshop.Game.Entity.DaggerfallEntity casterEntity) [0x0000e] in <d0275bf2c7274c16b0f9895a02995993>:0 at DaggerfallWorkshop.Game.Formulas.FormulaHelper.CalculateEffectCosts (DaggerfallWorkshop.Game.MagicAndEffects.EffectEntry effectEntry, DaggerfallWorkshop.Game.Entity.DaggerfallEntity casterEntity) [0x00033] in <d0275bf2c7274c16b0f9895a02995993>:0 at DaggerfallWorkshop.Game.Formulas.FormulaHelper.CalculateTotalEffectCosts (DaggerfallWorkshop.Game.MagicAndEffects.EffectEntry[] effectEntries, DaggerfallWorkshop.Game.MagicAndEffects.TargetTypes targetType, DaggerfallWorkshop.Game.Entity.DaggerfallEntity casterEntity, System.Boolean minimumCastingCost) [0x00049] in <d0275bf2c7274c16b0f9895a02995993>:0 at DaggerfallWorkshop.Game.UserInterfaceWindows.DaggerfallSpellBookWindow.PopulateSpellsList (System.Collections.Generic.List`1[T] spells, System.Nullable`1[T] availableSpellPoints) [0x00014] in <d0275bf2c7274c16b0f9895a02995993>:0 at DaggerfallWorkshop.Game.UserInterfaceWindows.DaggerfallSpellBookWindow.RefreshSpellsList (System.Boolean preservePosition) [0x00076] in <d0275bf2c7274c16b0f9895a02995993>:0 at DaggerfallWorkshop.Game.UserInterfaceWindows.DaggerfallSpellBookWindow.Setup () [0x00059] in <d0275bf2c7274c16b0f9895a02995993>:0 at DaggerfallWorkshop.Game.UserInterfaceWindows.DaggerfallBaseWindow.Update () [0x00069] in <d0275bf2c7274c16b0f9895a02995993>:0 at DaggerfallWorkshop.Game.UserInterfaceWindows.DaggerfallPopupWindow.Update () [0x00000] in <d0275bf2c7274c16b0f9895a02995993>:0 at DaggerfallWorkshop.Game.UserInterfaceWindows.DaggerfallSpellBookWindow.Update () [0x00000] in <d0275bf2c7274c16b0f9895a02995993>:0 at DaggerfallWorkshop.Game.DaggerfallUI.Update () [0x000d8] in <d0275bf2c7274c16b0f9895a02995993>:0
(Filename: <d0275bf2c7274c16b0f9895a02995993> Line: 0) DivideByZeroException: Attempted to divide by zero. at DaggerfallWorkshop.Game.Formulas.FormulaHelper.GetEffectComponentCosts (DaggerfallWorkshop.Game.MagicAndEffects.EffectCosts costs, System.Int32 starting, System.Int32 increase, System.Int32 perLevel, System.Int32 skillValue) [0x00000] in <d0275bf2c7274c16b0f9895a02995993>:0 at DaggerfallWorkshop.Game.Formulas.FormulaHelper.CalculateEffectCosts (DaggerfallWorkshop.Game.MagicAndEffects.IEntityEffect effect, DaggerfallWorkshop.Game.MagicAndEffects.EffectSettings settings, DaggerfallWorkshop.Game.Entity.DaggerfallEntity casterEntity) [0x000fe] in <d0275bf2c7274c16b0f9895a02995993>:0 at DaggerfallWorkshop.Game.Formulas.FormulaHelper.CalculateEffectCosts (DaggerfallWorkshop.Game.MagicAndEffects.EffectEntry effectEntry, DaggerfallWorkshop.Game.Entity.DaggerfallEntity casterEntity) [0x00033] in <d0275bf2c7274c16b0f9895a02995993>:0 at DaggerfallWorkshop.Game.Formulas.FormulaHelper.CalculateTotalEffectCosts (DaggerfallWorkshop.Game.MagicAndEffects.EffectEntry[] effectEntries, DaggerfallWorkshop.Game.MagicAndEffects.TargetTypes targetType, DaggerfallWorkshop.Game.Entity.DaggerfallEntity casterEntity, System.Boolean minimumCastingCost) [0x00049] in <d0275bf2c7274c16b0f9895a02995993>:0 at DaggerfallWorkshop.Game.UserInterfaceWindows.DaggerfallSpellBookWindow.PopulateSpellsList (System.Collections.Generic.List`1[T] spells, System.Nullable`1[T] availableSpellPoints) [0x00014] in <d0275bf2c7274c16b0f9895a02995993>:0 at DaggerfallWorkshop.Game.UserInterfaceWindows.DaggerfallSpellBookWindow.RefreshSpellsList (System.Boolean preservePosition) [0x00076] in <d0275bf2c7274c16b0f9895a02995993>:0 at DaggerfallWorkshop.Game.UserInterfaceWindows.DaggerfallSpellBookWindow.Setup () [0x00059] in <d0275bf2c7274c16b0f9895a02995993>:0 at DaggerfallWorkshop.Game.UserInterfaceWindows.DaggerfallBaseWindow.Update () [0x00069] in <d0275bf2c7274c16b0f9895a02995993>:0 at DaggerfallWorkshop.Game.UserInterfaceWindows.DaggerfallPopupWindow.Update () [0x00000] in <d0275bf2c7274c16b0f9895a02995993>:0 at DaggerfallWorkshop.Game.UserInterfaceWindows.DaggerfallSpellBookWindow.Update () [0x00000] in <d0275bf2c7274c16b0f9895a02995993>:0 at DaggerfallWorkshop.Game.DaggerfallUI.Update () [0x000d8] in <d0275bf2c7274c16b0f9895a02995993>:0
I have the same problem with freezing spell book in the gog cut and the latest unity build, it is not interference from other mods either...... I hope this is updated soon.....
There is really no division in my code. Are you using unleveled spells mod, by any chance? That sets the "per level" component of the magnitude and duration to 0.
Spell point cost is ludicrous. Making a 5 round Levitate with near comparable speed to vanilla(around 10 magnitude) is 282 spell points. Idk if you balanced this around the mods that give you over 2k SP in your demo video, but even on a pure mage character with 400 natural SP, anything higher than 5 magnitude is not worth the cost.
You basically have to settle with worse than vanilla levitate if you're playing with standard spell point gain. Even with Thaumaturgy as a Primary the costs are too prohibitive to make much use of even in the mid-game. Enchantments/stupid amounts of SP is required to make use of 10 magnitude or higher on pure mages.
Yes, this was intentional, but perhaps I didn't explain it in the mod description. But I've just uploaded version 0.3 which has a mod settings where you can set whatever you like.
I feel levitate is a very OP spell, which makes climbing useless. A novice mage shouldn't be able to levitate in the first place imo. And apprentice should be able to hover in place when falling down from climbing, but still should use climbing as a primary transport mod.
Only really high level mages should fly around dungeon chasms cheaply, and only god-level mages should fly around the overworld like a jet plane.
Spell costs are difficult to balance. Normally you have 300 spell cost as max and only as a custom class or a sorcerer, mostly its 100-200. But grind mages guild for 1-2 hours for rank 6, get a loan and slap some enchants and you can easily get to the thousands.
Years ago when I made this mod I also made Mighty Magick which was meant to be used alongside this one to nerf enchants and raise natural magicka count.
Magicka cost increase for this spell is over 1500% just to break even and fly at original speed. This makes little to no difference early to mid game, particularly for non mage related classes who are left completely neutered, unable to cast even the slowest version of this spell! This definitely needs some rebalancing.
Thamaturgy 59: A rise spell with duration 1+1 per 2 levels and magnitude 1-1 + 1-1 per 1 level costs 89 SP to cast. That seems a bit extreme.
With that spell cost, effectively the only way to make the spell effect useful is to exploit the "spells all cost 5 SP at skill 110 and above" mechanic of the somewhat ill-chosen "110 - skill level" SP cost scaling formula. (Rewards overly biased towards the upper end of the skill levels.)
Just a suggestion but would it be possible to add this to enchanting? Because if I could have a constant levitate effect that isn't slow as hell that would amazing.
Hey there, just noticed that I believe your mod has a common bug that happens when default spell effects are changed in some way. Basically activatable objects that give a spell effect to the player like a chain in a dungeon or something. When this mod is installed, any object that gives the "levitation" effect in a dungeon seems to just freeze you place until the effect ends.
This is likely due to the default spell effect attached to said object not having the magnitude property that you mod added causing you to just be frozen essentially. I'm not 100% sure how one might fix this, but I think it has been done by other mods who have this sort of problem, just wanted to report, thanks.
An easy simple fix is to add a +1 to the calculation, so it would be ((magnitude/4)+1) that way, even if the item has no magnitude set, the script will allow the spell to work at any given time, but at reduced effect. What it essentially means is that your movement will be slower, but you can levitate ;) And for free :D
Shame nothing has been done since this mod was made posted... (it's a simple math) Just add a +1 AFTER the original math (as above) and it will solve the issue.
Despite the warnings below, this mod works flawlessly, I can finally travel across towns at an acceptable mach 3 speed. Even the chain in the dungeon and existing levitation spells work fine, they seem to apply a default magnitude that scales with your speed or something? I had an acceptably fast levitation on 200 speed with a default 1 magnitude spell.
24 comments
You asked for feedback, but most of the comments here are complaining about exactly this and it's been 4 years. Why are you so against adjustingit?
This Mod answers one of my dreams that I recall having had some time in the previous millennium.
I just (re)started with Daggerfall after these 2 decades and was very thrilled about your Mod. I found it a lot of fun tinkering with the values provided and trying out the spell with different mage characters of different ability to see what values for price progression would feel to have the best balance for me.
Seems I might get my values closer to what I am aiming at if especially the per-level portion casting cost could be increased more than the 100 setting allows, I would also be very interested in the ability to tinker with the values that adjust the accumulation of price progression when adding magnitude and duration and the starting price/effect to see if I could come up with settings that produce a Levitation that is mostly unattainable for the first few levels of game characters, becoming attainable but slow Levitation for fairly advanced lvl 8 mage and not too moon-rocket but definitely rewarding expensive speedy Levitation and a cheap as dirt basic speed one for the most advanced 28+lvl 100 Thaumaturgy Mages. Currently it seems there is no way to make the cost high enough to not have a lvl 12 advanced mage already have the ability to handle versions that are too fast to even function reasonably. However, most of the magic in Vanilla Daggerfall has a very similar balance of being rather overpowered and cheap already for a highly skilled mid-level character, so you mod, with 100-100 values, already seems well adjusted to be in line with vanilla Daggerfall.
I am so inspired I may even try to download the modding tools myself and see if I can tweak the values to my liking for personal use if I find the time for that.
DivideByZeroException: Attempted to divide by zero.
at MTMMM.MMMFormulaHelper.GetEffectComponentCosts (DaggerfallWorkshop.Game.MagicAndEffects.EffectCosts costs, System.Int32 starting, System.Int32 increase, System.Int32 perLevel, System.Int32 skillValue) [0x00000] in <5163719cf6a64b00bb47e88bfd2ea060>:0
at MTMMM.MMMFormulaHelper.CalculateEffectCosts (DaggerfallWorkshop.Game.MagicAndEffects.IEntityEffect effect, DaggerfallWorkshop.Game.MagicAndEffects.EffectSettings settings, DaggerfallWorkshop.Game.Entity.DaggerfallEntity casterEntity) [0x000e4] in <5163719cf6a64b00bb47e88bfd2ea060>:0
at (wrapper delegate-invoke) System.Func`4[DaggerfallWorkshop.Game.MagicAndEffects.IEntityEffect,DaggerfallWorkshop.Game.MagicAndEffects.EffectSettings,DaggerfallWorkshop.Game.Entity.DaggerfallEntity,DaggerfallWorkshop.Game.Formulas.FormulaHelper+SpellCost].invoke_TResult_T1_T2_T3(DaggerfallWorkshop.Game.MagicAndEffects.IEntityEffect,DaggerfallWorkshop.Game.MagicAndEffects.EffectSettings,DaggerfallWorkshop.Game.Entity.DaggerfallEntity)
at DaggerfallWorkshop.Game.Formulas.FormulaHelper.CalculateEffectCosts (DaggerfallWorkshop.Game.MagicAndEffects.IEntityEffect effect, DaggerfallWorkshop.Game.MagicAndEffects.EffectSettings settings, DaggerfallWorkshop.Game.Entity.DaggerfallEntity casterEntity) [0x0000e] in <d0275bf2c7274c16b0f9895a02995993>:0
at DaggerfallWorkshop.Game.Formulas.FormulaHelper.CalculateEffectCosts (DaggerfallWorkshop.Game.MagicAndEffects.EffectEntry effectEntry, DaggerfallWorkshop.Game.Entity.DaggerfallEntity casterEntity) [0x00033] in <d0275bf2c7274c16b0f9895a02995993>:0
at DaggerfallWorkshop.Game.Formulas.FormulaHelper.CalculateTotalEffectCosts (DaggerfallWorkshop.Game.MagicAndEffects.EffectEntry[] effectEntries, DaggerfallWorkshop.Game.MagicAndEffects.TargetTypes targetType, DaggerfallWorkshop.Game.Entity.DaggerfallEntity casterEntity, System.Boolean minimumCastingCost) [0x00049] in <d0275bf2c7274c16b0f9895a02995993>:0
at DaggerfallWorkshop.Game.UserInterfaceWindows.DaggerfallSpellBookWindow.PopulateSpellsList (System.Collections.Generic.List`1[T] spells, System.Nullable`1[T] availableSpellPoints) [0x00014] in <d0275bf2c7274c16b0f9895a02995993>:0
at DaggerfallWorkshop.Game.UserInterfaceWindows.DaggerfallSpellBookWindow.RefreshSpellsList (System.Boolean preservePosition) [0x00076] in <d0275bf2c7274c16b0f9895a02995993>:0
at DaggerfallWorkshop.Game.UserInterfaceWindows.DaggerfallSpellBookWindow.Setup () [0x00059] in <d0275bf2c7274c16b0f9895a02995993>:0
at DaggerfallWorkshop.Game.UserInterfaceWindows.DaggerfallBaseWindow.Update () [0x00069] in <d0275bf2c7274c16b0f9895a02995993>:0
at DaggerfallWorkshop.Game.UserInterfaceWindows.DaggerfallPopupWindow.Update () [0x00000] in <d0275bf2c7274c16b0f9895a02995993>:0
at DaggerfallWorkshop.Game.UserInterfaceWindows.DaggerfallSpellBookWindow.Update () [0x00000] in <d0275bf2c7274c16b0f9895a02995993>:0
at DaggerfallWorkshop.Game.DaggerfallUI.Update () [0x000d8] in <d0275bf2c7274c16b0f9895a02995993>:0
(Filename: <d0275bf2c7274c16b0f9895a02995993> Line: 0)
DivideByZeroException: Attempted to divide by zero.
at DaggerfallWorkshop.Game.Formulas.FormulaHelper.GetEffectComponentCosts (DaggerfallWorkshop.Game.MagicAndEffects.EffectCosts costs, System.Int32 starting, System.Int32 increase, System.Int32 perLevel, System.Int32 skillValue) [0x00000] in <d0275bf2c7274c16b0f9895a02995993>:0
at DaggerfallWorkshop.Game.Formulas.FormulaHelper.CalculateEffectCosts (DaggerfallWorkshop.Game.MagicAndEffects.IEntityEffect effect, DaggerfallWorkshop.Game.MagicAndEffects.EffectSettings settings, DaggerfallWorkshop.Game.Entity.DaggerfallEntity casterEntity) [0x000fe] in <d0275bf2c7274c16b0f9895a02995993>:0
at DaggerfallWorkshop.Game.Formulas.FormulaHelper.CalculateEffectCosts (DaggerfallWorkshop.Game.MagicAndEffects.EffectEntry effectEntry, DaggerfallWorkshop.Game.Entity.DaggerfallEntity casterEntity) [0x00033] in <d0275bf2c7274c16b0f9895a02995993>:0
at DaggerfallWorkshop.Game.Formulas.FormulaHelper.CalculateTotalEffectCosts (DaggerfallWorkshop.Game.MagicAndEffects.EffectEntry[] effectEntries, DaggerfallWorkshop.Game.MagicAndEffects.TargetTypes targetType, DaggerfallWorkshop.Game.Entity.DaggerfallEntity casterEntity, System.Boolean minimumCastingCost) [0x00049] in <d0275bf2c7274c16b0f9895a02995993>:0
at DaggerfallWorkshop.Game.UserInterfaceWindows.DaggerfallSpellBookWindow.PopulateSpellsList (System.Collections.Generic.List`1[T] spells, System.Nullable`1[T] availableSpellPoints) [0x00014] in <d0275bf2c7274c16b0f9895a02995993>:0
at DaggerfallWorkshop.Game.UserInterfaceWindows.DaggerfallSpellBookWindow.RefreshSpellsList (System.Boolean preservePosition) [0x00076] in <d0275bf2c7274c16b0f9895a02995993>:0
at DaggerfallWorkshop.Game.UserInterfaceWindows.DaggerfallSpellBookWindow.Setup () [0x00059] in <d0275bf2c7274c16b0f9895a02995993>:0
at DaggerfallWorkshop.Game.UserInterfaceWindows.DaggerfallBaseWindow.Update () [0x00069] in <d0275bf2c7274c16b0f9895a02995993>:0
at DaggerfallWorkshop.Game.UserInterfaceWindows.DaggerfallPopupWindow.Update () [0x00000] in <d0275bf2c7274c16b0f9895a02995993>:0
at DaggerfallWorkshop.Game.UserInterfaceWindows.DaggerfallSpellBookWindow.Update () [0x00000] in <d0275bf2c7274c16b0f9895a02995993>:0
at DaggerfallWorkshop.Game.DaggerfallUI.Update () [0x000d8] in <d0275bf2c7274c16b0f9895a02995993>:0
You basically have to settle with worse than vanilla levitate if you're playing with standard spell point gain. Even with Thaumaturgy as a Primary the costs are too prohibitive to make much use of even in the mid-game. Enchantments/stupid amounts of SP is required to make use of 10 magnitude or higher on pure mages.
I feel levitate is a very OP spell, which makes climbing useless. A novice mage shouldn't be able to levitate in the first place imo. And apprentice should be able to hover in place when falling down from climbing, but still should use climbing as a primary transport mod.
Only really high level mages should fly around dungeon chasms cheaply, and only god-level mages should fly around the overworld like a jet plane.
Spell costs are difficult to balance. Normally you have 300 spell cost as max and only as a custom class or a sorcerer, mostly its 100-200. But grind mages guild for 1-2 hours for rank 6, get a loan and slap some enchants and you can easily get to the thousands.
Years ago when I made this mod I also made Mighty Magick which was meant to be used alongside this one to nerf enchants and raise natural magicka count.
With that spell cost, effectively the only way to make the spell effect useful is to exploit the "spells all cost 5 SP at skill 110 and above" mechanic of the somewhat ill-chosen "110 - skill level" SP cost scaling formula. (Rewards overly biased towards the upper end of the skill levels.)
This is likely due to the default spell effect attached to said object not having the magnitude property that you mod added causing you to just be frozen essentially. I'm not 100% sure how one might fix this, but I think it has been done by other mods who have this sort of problem, just wanted to report, thanks.
And for free :D
Shame nothing has been done since this mod was made posted... (it's a simple math) Just add a +1 AFTER the original math (as above) and it will solve the issue.