[RELz] Oblivion Magic Extender v1.0

Post » Wed Mar 30, 2011 10:42 am

On a totally unrelated note, is it necessary for OBME to add its override records even to spells which don't use them?

Not really, no. It's just that when I was planning the thing, I never considered that active mod developers would be the most likely to have it installed :) I will address this in the next version.
User avatar
Isabella X
 
Posts: 3373
Joined: Sat Dec 02, 2006 3:44 am

Post » Wed Mar 30, 2011 11:24 am

A little idea: could you improve "Resist Normal Weapons" and "Weakness to Normal Weapons" effects?
Actually they only reduce/increase melee damage. It would be great if these effects influence also arrows damage.
User avatar
.X chantelle .x Smith
 
Posts: 3399
Joined: Thu Jun 15, 2006 6:25 pm

Post » Wed Mar 30, 2011 7:24 am

A little idea: could you improve "Resist Normal Weapons" and "Weakness to Normal Weapons" effects?
Actually they only reduce/increase melee damage. It would be great if these effects influence also arrows damage.

I think this might fit better in my http://www.tesnexus.com/downloads/file.php?id=34841 mod, which already does something similar for Reflect Damage. The reason I say that is that the magic system just changes your characters "Resist to Normal Weapons" stat. Using this stat to change the damage you take is done by another part of the engine, which OBME doesn't touch.

That having been said, this is a very simple modification. I will add it to the next version of AV Uncapper, when I get a chance to work on it again.
User avatar
James Hate
 
Posts: 3531
Joined: Sun Jun 24, 2007 5:55 am

Post » Tue Mar 29, 2011 10:09 pm

Two feature requests I thought of while lying awake last night:

1. (should be simple) Add an "Inverse Enchant Factor" field to the CS Magic Effects dialog, which does all the math for you to determine the correct Enchant Factor. So you just fill this field with the magnitude you want the effect to have with a Petty Soul constant enchant. The actual Enchant Factor field updates itself accordingly (and if you edit that one, this field updates). Should probably allow floats.

2. (could be implausible) Add a checkbox to magic effects which causes them to be immune to Resist Magic. The idea is to allow a system similar to Morrowind's, where fire damage only cares about fire resistance, not general magic resistance. This box should be selectable even if Resist Magic is the selected resistance -- that would just mean that nothing resists the effect.
User avatar
Daniel Holgate
 
Posts: 3538
Joined: Tue May 29, 2007 1:02 am

Post » Wed Mar 30, 2011 8:09 am

Two feature requests I thought of while lying awake last night:

1. (should be simple) Add an "Inverse Enchant Factor" field to the CS Magic Effects dialog, which does all the math for you to determine the correct Enchant Factor. So you just fill this field with the magnitude you want the effect to have with a Petty Soul constant enchant. The actual Enchant Factor field updates itself accordingly (and if you edit that one, this field updates). Should probably allow floats.

2. (could be implausible) Add a checkbox to magic effects which causes them to be immune to Resist Magic. The idea is to allow a system similar to Morrowind's, where fire damage only cares about fire resistance, not general magic resistance. This box should be selectable even if Resist Magic is the selected resistance -- that would just mean that nothing resists the effect.

1. Done. Although it won't work if the effect uses a magicka cost script callback.

2. Individual magic effects can choose their Magic Effect resistance, and (as of OBME 2.0) individual magic items will be able to choose their Magic Item resistance (including none, if that's what you want). I'm reluctant to bring Item resistance into the scope of individual effects, though, if you see what I mean. But I can add a game setting to disable the magic item resistance mechanic entirely.
User avatar
Sunny Under
 
Posts: 3368
Joined: Wed Apr 11, 2007 5:31 pm

Post » Wed Mar 30, 2011 3:31 am

2. Individual magic effects can choose their Magic Effect resistance

Wait... does this already work differently than in Vanilla, then? I only see the same single drop-down for resistance, which doesn't stop Resist Magic from affecting all spells. You can pick an additional resist, but not remove that one. I don't want None, I want to remove Resist Magic while picking another. Am I missing something?

This doesn't need to be on individual items for my purposes, just MGEFs.

If that global you're talking about would make it so that Resist Magic applies only to effects which specify it, I think that'll do for me, but I can definitely imagine cases where it wouldn't be adequate...
User avatar
gary lee
 
Posts: 3436
Joined: Tue Jul 03, 2007 7:49 pm

Post » Wed Mar 30, 2011 8:46 am

Wait... does this already work differently than in Vanilla, then? I only see the same single drop-down for resistance, which doesn't stop Resist Magic from affecting all spells. You can pick an additional resist, but not remove that one. I don't want None, I want to remove Resist Magic while picking another. Am I missing something?

This doesn't need to be on individual items for my purposes, just MGEFs.

If that global you're talking about would make it so that Resist Magic applies only to effects which specify it, I think that'll do for me, but I can definitely imagine cases where it wouldn't be adequate...


I can add a game setting that can completely remove the "Resist Magic affects all spells" mechanic without breaking poison resistances or anything else. Even so, I think it's worth noting that resistances in Oblivion are (and are intended to be) more complex than in Morrowind.

Here's my original post on the subject:
Spoiler

There are two levels of resistance in Oblivion.
  • Magic Effect Resistance - this is the value you pick in the Magic Effects dialog - each effect can choose it's own resistance, or none at all.
  • Magic Item Resistance - this value depends on the magic item type: Resist Magic for spells & scroll/staff/weapon enchantments, Resist Poison for poisons *


The formula for complete damage reduction due to resistance is
Fraction of Damage Blocked, if the two resistances are different = 1 - (1 - Magic Item resistance/100) * (1 - Magic Effect resistance/100)Fraction of Damage Blocked, if the two resistances are the same = 1 - (1 - Magic Item resistance/100)


Examples, for a character has 10% Resist Fire, 20% Resist Magic, 30% Resist Poison:
  • Fire Damage Spell: Effect resistance is Resist Fire, Item resistance is Resist Magic, Fraction of damage blocked = 1 - (1 - 10/100)*(1 - 20/100) = 28%
  • Fire Damage Poison: Effect resistance is Resist Fire, Item resistance is Resist Magic, Fraction of damage blocked = 1 - (1 - 10/100)*(1 - 30/100) = 37%
  • Damage Health Spell: Effect resistance is Resist Magic, Item resistance is Resist Magic (so they're the same), Fraction of damage blocked = 1 - (1 - 20/100) = 20%


The point is that there are two independent (more or less) layers of resistance. One is specific to the effect, and one is specific to the item. If you want Morrowind style resistance, that is to say just the effect layer, then you need to disable the magic item resistance. Note that this would also disable poison resistances.

* you might also include Resist Disease for diseases, but this affects the player's chances of getting the disease, not the magnitude of the effects.

User avatar
Cesar Gomez
 
Posts: 3344
Joined: Thu Aug 02, 2007 11:06 am

Post » Wed Mar 30, 2011 6:41 am

Hum. I get what you're saying -- and the fact that poison resistance can't be separately extracted from the system does toss a wrench in my ideas.

This will take additional consideration, I think. Consider it shelved for now.

Thanks for the inverse enchantment factor, that'll save me a reasonable amount of time as I go through balance passes later. :)
User avatar
Meghan Terry
 
Posts: 3414
Joined: Sun Aug 12, 2007 11:53 am

Post » Wed Mar 30, 2011 5:05 am

Hum. I get what you're saying -- and the fact that poison resistance can't be separately extracted from the system does toss a wrench in my ideas.

This will take additional consideration, I think. Consider it shelved for now.

Thanks for the inverse enchantment factor, that'll save me a reasonable amount of time as I go through balance passes later. :)

:laugh: I think you took my griping too much to heart. I can do what you ultimately asking for - and I should have just said so, and left it at that. Disabling all magic item resistance would indeed throw a monkey wrench in the works, but I'm rewriting it anyway, so there's no reason I can't disable the parts with Resist Magic and leave Resist Poison untouched.
User avatar
Lily Something
 
Posts: 3327
Joined: Thu Jun 15, 2006 12:21 pm

Post » Wed Mar 30, 2011 3:27 am

:rolleyes:

Okay, so let's shift gears to hyperoptimistic. :D Could you create a set of GMSTs which specify the magic item resistance AV for each item type, -1 to disable?

Edit: Oh, I said HYPERoptimistic, right. And per-effect overrides so I can prevent Weakness to Magic from stacking multiplicatively even if I leave Resist Magic applying to all spells. ;)
User avatar
gemma
 
Posts: 3441
Joined: Tue Jul 25, 2006 7:10 am

Post » Wed Mar 30, 2011 9:36 am

:rolleyes:

Okay, so let's shift gears to hyperoptimistic. :D Could you create a set of GMSTs which specify the magic item resistance AV for each item type, -1 to disable?

Edit: Oh, I said HYPERoptimistic, right. And per-effect overrides so I can prevent Weakness to Magic from stacking multiplicatively even if I leave Resist Magic applying to all spells. ;)

Probably not, no. I mean, you could do something like that for the vanilla AVs, but I'm trying to maintain compatibility with AddActorValues to support new resistances and magic schools.

I'm not sure what you mean by weakness stacking multiplicatively.
User avatar
Monique Cameron
 
Posts: 3430
Joined: Fri Jun 23, 2006 6:30 am

Post » Wed Mar 30, 2011 6:21 am

I'm not sure what you mean by weakness stacking multiplicatively.

As long as the effects don't come from the same spell, Weakness to Magic amplifies Weakness to Magic. You wind up with http://www.uesp.net/wiki/Oblivion:Spell_Making#Spell_Stacking.

Edit: Correction, this works even with a single spell, it's just far less efficient.
User avatar
Laura Hicks
 
Posts: 3395
Joined: Wed Jun 06, 2007 9:21 am

Post » Wed Mar 30, 2011 1:29 am

Heh, so now I'm thinking about a resistance scheme where I'd actually want to disable the item-global effect of Resist Poison, too.

Might as well toss in toggle options for whatever's straightforward... I think some playtesting is needed to figure out what actually feels right.

Edit: Related request -- the ability to use armor rating as an effect's resistance value. If nothing else, this can be done using AddActorValues and a token script which constantly sets a new AV to GetArmorRating; but if there's an easier way it'd be nice!

Unrelated request -- a GMST which forces "Touch Spell Explodes With No Target" to be enabled for all spells.
User avatar
Adam
 
Posts: 3446
Joined: Sat Jun 02, 2007 2:56 pm

Post » Wed Mar 30, 2011 11:11 am

As long as the effects don't come from the same spell, Weakness to Magic amplifies Weakness to Magic. You wind up with http://www.uesp.net/wiki/Oblivion:Spell_Making#Spell_Stacking.

New stacking behaviors, as per http://www.gamesas.com/index.php?/topic/1110827-relz-oblivion-magic-extender-v1beta4/page__view__findpost__p__16323317, are scheduled to be implemented in v2.
Also, I should point out that this is one of the things that AV Uncapper was specifically designed to address.

Heh, so now I'm thinking about a resistance scheme where I'd actually want to disable the item-global effect of Resist Poison, too.
Might as well toss in toggle options for whatever's straightforward... I think some playtesting is needed to figure out what actually feels right.
...
Unrelated request -- a GMST which forces "Touch Spell Explodes With No Target" to be enabled for all spells.

Disabling RP is no more trouble than disabling RM.
I might have a better idea, though. Request, from Scruggs, a new function script hook that fires once for each loaded form that matches a particular filter (e.g. all spells, or all references to a particular base form). This will allow you to make sweeping changes of the form "give all X the property Y" without compatibility issues or new mechanics.

Related request -- the ability to use armor rating as an effect's resistance value. If nothing else, this can be done using AddActorValues and a token script which constantly sets a new AV to GetArmorRating; but if there's an easier way it'd be nice!

I think what you suggested is the most straightforward suggestion. Scripts on AV Tokens don't run constantly, they run once each time the value of the AV is computed.
User avatar
Chloe Yarnall
 
Posts: 3461
Joined: Sun Oct 08, 2006 3:26 am

Post » Wed Mar 30, 2011 9:55 am

New stacking behaviors, as per http://www.gamesas.com/index.php?/topic/1110827-relz-oblivion-magic-extender-v1beta4/page__view__findpost__p__16323317, are scheduled to be implemented in v2.

That still doesn't address the single-spell case, though. The problem is that if the ResistMagic AV (which is also the weakness AV) applies to all spells, and if resistances apply before the stacking calculation is performed (which they should for various other reasons), then Weakness to Magic will always amplify itself. The new incoming effect, even if it's from the same spell, is modified by the target's ResistMagic which was increased by the previous cast. Granted, with the changes discussed above plus AVUncapper, this isn't as cheaply and easily exploited as it used to be -- but I'm fairly sure that making it completely unexploitable will require weakening it below the threshold of usefulness. Then again, I haven't yet put everything on the same page and checked the numbers, and if you have, I'll trust that for now! :goodjob:

I've been thinking through the consequences of various mechanical tweaks over the past couple of days and the only one I've come up with that doesn't annoy me somewhere along the line is a per-MGEF "item type resistance does not apply" flag -- preferably separate flags per item type, just in case. From both this conversation and earlier ones I get the feeling that's a very tall order, but I may as well float the idea to be sure. (Of course this could be even more complicated if Spell Reflection and Absorption are handled by the same code as Resist Magic and Poison. Not sure on that.)

I might have a better idea, though. Request, from Scruggs, a new function script hook that fires once for each loaded form that matches a particular filter (e.g. all spells, or all references to a particular base form). This will allow you to make sweeping changes of the form "give all X the property Y" without compatibility issues or new mechanics.

Hmm... interesting idea. At the moment I'm using a much simpler solution -- set all premade spells to explode in the CS, and edit new spells on the player as they're added/created. On the one hand, the requested GMST would turn "one script" into "no script" and that satisfies my instincts about minimizing the amount of code I have to personally maintain. On the other hand, that hook would be pretty damn useful for a lot of things. Decisions, decisions... ;)

I think what you suggested is the most straightforward suggestion. Scripts on AV Tokens don't run constantly, they run once each time the value of the AV is computed.

Huh. "AV Tokens" sounds like I need to go read the docs... since AVUncapper got split out, I haven't really been following AddActorValues.
User avatar
Anna Kyselova
 
Posts: 3431
Joined: Sun Apr 01, 2007 9:42 am

Post » Tue Mar 29, 2011 9:09 pm

I'm fairly sure that making it completely unexploitable will require weakening it below the threshold of usefulness

Here are some plots of damage multiplier vs. time for repeatedly casting weakness to magic spells: http://img140.imageshack.us/img140/293/plot50.jpg, http://img716.imageshack.us/img716/9601/plot100.jpg, http://img691.imageshack.us/img691/723/plot200.jpg. Each plot includes a progression for: repeatedly casting a single spell and alternating between two identical spells, both in vanilla Oblivion and using the Diminished Returns mechanic. Note that the plots are on a semi-log scale.

As you can see, in vanilla oblivion the damage multiplier grows (almost) exponentially. With DR, however, the damage multiplier quickly levels out to a maximum value (about 2.9 for alternating two 100pt spells). Were you playing with DR turned on, there would be virtually no benefit to casting the spells more than once. In fact, given the additional time and magicka costs, it would probably hurt the player to do so.

If you doubt my math, try actually playing with the DR enabled. You'll find that a 100% weakness to magic spell is pretty handy, and everything else is a waste.

I've been thinking through the consequences of various mechanical tweaks over the past couple of days and the only one I've come up with that doesn't annoy me somewhere along the line is a per-MGEF "item type resistance does not apply" flag

Magic item resistance is something that, by definition, should be determined for a entire magic item. It can't (or at least it won't) vary between effects on the item.
User avatar
dean Cutler
 
Posts: 3411
Joined: Wed Jul 18, 2007 7:29 am

Post » Tue Mar 29, 2011 9:23 pm

Magic item resistance is something that, by definition, should be determined for a entire magic item. It can't (or at least it won't) vary between effects on the item.

Ah, right, multiple effects on an item totally slipped my mind. Yuck. No further arguments in that department.

You'll find that a 100% weakness to magic spell is pretty handy, and everything else is a waste.

Of course, that raises the question of why lower magnitudes even exist. Might as well be a single-state effect like paralysis. But at that point, it's bordering dangerously close to being a busywork mechanic. Particularly since (in vanilla) it's a Destruction effect, so there's not even a skill cost.

A tough nut, this! But either way I think it's time for me to step back and work with what I've got. I was content with compromise before you showed up dressed as the options fairy, and in the interest of not holding up any of the other wonderful toys you'll soon bring, I should probably go back to that for the time being. :icecream:
User avatar
maddison
 
Posts: 3498
Joined: Sat Mar 10, 2007 9:22 pm

Post » Wed Mar 30, 2011 10:04 am

Of course, that raises the question of why lower magnitudes even exist. Might as well be a single-state effect like paralysis.

Magnitudes lower than 100% serve a purpose too - they're far more efficient in terms of magicka, and they're available at lower skill levels. I just meant that there was no real reason to get multiple weakness spells, or cast any of them more than once.
User avatar
Amelia Pritchard
 
Posts: 3445
Joined: Mon Jul 24, 2006 2:40 am

Post » Wed Mar 30, 2011 9:43 am

I just meant that there was no real reason to get multiple weakness spells, or cast any of them more than once.

Ah! That's a bit better then. :)
User avatar
Samantha Wood
 
Posts: 3286
Joined: Sun Oct 15, 2006 5:03 am

Post » Wed Mar 30, 2011 12:27 pm

It may be the Morrowind modder in me, but the lack of a Cancel button in the new (holy cow amazing) MGEF window is really disconcerting. I assume Reset, Done would have the same effect, but I thought I'd mention it. Mostly because it's the first time I've actually opened OBME's thing, and it is amazing.
User avatar
Lyd
 
Posts: 3335
Joined: Sat Aug 26, 2006 2:56 pm

Post » Wed Mar 30, 2011 9:25 am

It may be the Morrowind modder in me, but the lack of a Cancel button in the new (holy cow amazing) MGEF window is really disconcerting. I assume Reset, Done would have the same effect, but I thought I'd mention it. Mostly because it's the first time I've actually opened OBME's thing, and it is amazing.

'Reset', then 'Done' will work. 'Done', then 'No' (to the "Save your unsaved changes?" prompt) will work too.

I think this scheme is better than the OK/Cancel setup - it certainly gives you a better idea of what's actually happening - but I'm considering reverting back in v2.
User avatar
Alan Whiston
 
Posts: 3358
Joined: Sun May 06, 2007 4:07 pm

Post » Wed Mar 30, 2011 12:06 am

Morrowind modding ingrained in me that you always always always hit Cancel unless you absolutely know you want something else.
User avatar
Matt Gammond
 
Posts: 3410
Joined: Mon Jul 02, 2007 2:38 pm

Post » Wed Mar 30, 2011 8:59 am

Morrowind modding ingrained in me that you always always always hit Cancel unless you absolutely know you want something else.

The (v1) OBME magic effects dialog is designed differently than other CS dialogs. There is no chance of unintentional edits - you always have to consciously acknowledge any changes that are made. There should be no issues with 'dirty' records.
User avatar
Jade Payton
 
Posts: 3417
Joined: Mon Sep 11, 2006 1:01 pm

Post » Wed Mar 30, 2011 2:13 am

I absolutely and without reservation prefer "not saved until you save it" over "it's taken care of, trust me!"

Edit: oh right, the point. ;) I vote keep it as you've got it for v2.
User avatar
ZANEY82
 
Posts: 3314
Joined: Mon Dec 18, 2006 3:10 am

Post » Wed Mar 30, 2011 4:16 am

I just had a quick look through the documentation - is it possible to set spell icons yet? I enjoy using the customspellicons mod and I'm also interested in developing something using OBME. I was thinking of porting the customspellicons scripts over to use the OBME set spell icon function, but I can't seem to find it. I see _effect_ icon handlers, but no spell icon handler.
User avatar
Robert Jr
 
Posts: 3447
Joined: Fri Nov 23, 2007 7:49 pm

PreviousNext

Return to IV - Oblivion