Hello, i believe this mod alters the casting time of the cinematic dragon soul absorb effect. In order to prevent interferences like this, I advertise that you implement a default keyword into your mod that prevents changes via DMMF. Suggestions: Keyword "noDmmfApply". Would you update your (very cool!) mod that way? :) I'm working on a patch for said mod and would like to implement the keyword right away then.
I replied to your other comment, but there is already a built in way to exclude spells. You just add the exclusion as an Override and set excluded to true. "Overrides":[{ "parameter": "time", "excluded": true, "conditions":[ { "condition": "form", "operator":"==", "value": "insert the editorID of spell in question here" } ], "conditionsOperator": "and" } ]
Question: I am hoping for NPCs to "telegraph" when they are about to release their spell. As in, they have the varied charge times that this mod gives, then they give some visual hint right before they fire the spell. This would add to skill-based combat with powerful enemy mages as you could have a chance to dive for cover. At least if your reflexes are good enough.
Is it possible to make that work with this or another mod?
As far as I know, enemy mages typically fire their spells as soon as it is charged. I don't think my mods would do anything to help know exactly when they would fire. I will say, giving a charge time for concentration spells certainly helps with avoiding those attacks.
Honestly, I think what would be a good idea is to make a Casting Bar mod but for NPCs. It could use one of the extra bars provided by TrueHUD maybe. I'd be willing to look into it, but if someone sees this and wants to make it first go ahead.
Noted. I don't have a lot of time to film things currently but I am more than willing to host user submitted videos.
I know it's not helpful, but the best I can offer currently is to just try it out in game and see what you think. I recommend Casting Bar so that it can be easier to see the charge time progress.
Hi! This is an awesome idea. For the first formula, are master level spells considered to have a difficulty level of 90 (when you can first unlock the spells) or 100 (when you can unlock the master perks)?
If the answer is the latter, is there a way to change it on my end? I'd like to use the first formula in such a way that master spells can be cast ~10% faster at skill level 100 (without messing up the curve for lower difficulty spells), which would require master spells to be calculated with a difficulty of 90.
If the value for spell difficulty is 100 and can't be changed, I can use this formula as an alternative: (-1*(((Skill+10)-Difficulty)/100) That said, it would make lower level skills a bit faster than I'd like, which is why calculating master spells at 90 difficulty would be the ideal solution for my specific use case.
It is based on the value assigned for difficulty in the costliest magic effect. In vanilla, this tends to be 100. Mod added spells may vary.
If you look at the configuration file itself, you'll see that I already added a second function for when your skill level is less than 15. You could add a similar function and set the conditions to be for when the difficulty > 90.
Ah, thanks! I hadn't opened the config file yet, so I didn't notice that you could use different functions based on conditions. I'm not familiar with the proper format for coding outside of programs like the Creation Kit (which does the formatting for me), so I'm not sure if I have this set up correctly: { "Multipliers" : [ { "parameter" : "Time", "valueType": "function", "function":"exp(-1 * ((a-b)/100))", "variables":[ { "name":"a", "source":"skill" }, { "name":"b", "source":"difficulty" } ], "conditions":[ { "condition": "magicType", "operator":"==", "value": "Spell" }, { "condition": "difficulty", "operator":">=", "value": 15.0 }, { "condition": "difficulty", "operator":"<=", "value": 90.0 } ], "conditionsOperator" : "and" }, { "parameter": "time", "valueType": "function", "function":"exp(-1 * ((a-15)/100))", "variables":[ { "name":"a", "source":"skill" }, { "name":"b", "source":"difficulty" } ], "conditions":[ { "condition": "magicType", "operator":"==", "value": "Spell" }, { "condition": "difficulty", "operator":"<", "value": 15.0 } ], "conditionsOperator" : "and" }, { "parameter": "time", "valueType": "function", "function":"exp(-1 * ((a-90)/100))", "variables":[ { "name":"a", "source":"skill" }, { "name":"b", "source":"difficulty" } ], "conditions":[ { "condition": "magicType", "operator":"==", "value": "Spell" }, { "condition": "difficulty", "operator":">", "value": 90.0 } ], "conditionsOperator" : "and" }
]
} Does this look right? I had to guess where to insert the new section based on context, so I want to be sure I didn't break anything in the process.
[Edit: Added a comma that I missed between conditions]
[Edit 2: Moved the aforementioned comma because I put it on the wrong line. Moved a couple of "{" fancy bracket thingies that somehow got left aligned when they shouldn't have been.]
If you start the game and look at the DynamicMagicModificationFramework.log file, it should give some information that should indicate if things seemed to load correctly.
If you ever want to make sure that the file has valid json formatting, you can use a website like https://jsonformatter.org/.
By default, yes. If you don't want it to, you can add an additional condition in the configuration file.
The condition would look like: { "condition": "caster", "operator":"==", "value": "player" } Look at the DMMF page for more info on changing the config file.
24 comments
"Overrides":[{
"parameter": "time",
"excluded": true,
"conditions":[
{
"condition": "form",
"operator":"==",
"value": "insert the editorID of spell in question here"
}
],
"conditionsOperator": "and"
}
]
Question:
I am hoping for NPCs to "telegraph" when they are about to release their spell. As in, they have the varied charge times that this mod gives, then they give some visual hint right before they fire the spell. This would add to skill-based combat with powerful enemy mages as you could have a chance to dive for cover. At least if your reflexes are good enough.
Is it possible to make that work with this or another mod?
Honestly, I think what would be a good idea is to make a Casting Bar mod but for NPCs. It could use one of the extra bars provided by TrueHUD maybe. I'd be willing to look into it, but if someone sees this and wants to make it first go ahead.
I know it's not helpful, but the best I can offer currently is to just try it out in game and see what you think. I recommend Casting Bar so that it can be easier to see the charge time progress.
If the answer is the latter, is there a way to change it on my end? I'd like to use the first formula in such a way that master spells can be cast ~10% faster at skill level 100 (without messing up the curve for lower difficulty spells), which would require master spells to be calculated with a difficulty of 90.
If the value for spell difficulty is 100 and can't be changed, I can use this formula as an alternative:
(-1*(((Skill+10)-Difficulty)/100)
That said, it would make lower level skills a bit faster than I'd like, which is why calculating master spells at 90 difficulty would be the ideal solution for my specific use case.If you look at the configuration file itself, you'll see that I already added a second function for when your skill level is less than 15. You could add a similar function and set the conditions to be for when the difficulty > 90.
For example:
{
"parameter": "time",
"valueType": "function",
"function":"exp(-1 * ((a-90)/100))",
"variables":[
{
"name":"a",
"source":"skill"
},
{
"name":"b",
"source":"difficulty"
}
],
"conditions":[
{
"condition": "magicType",
"operator":"==",
"value": "Spell"
},
{
"condition": "difficulty",
"operator":">",
"value": 90.0
}
],
"conditionsOperator" : "and"
}
You should also change the first multiplier to only work when the spell is greater than or equal to 15 and less than 90.
Like this:
{
"parameter" : "Time",
"valueType": "function",
"function":"exp(-1 * ((a-b)/100))",
"variables":[
{
"name":"a",
"source":"skill"
},
{
"name":"b",
"source":"difficulty"
}
],
"conditions":[
{
"condition": "magicType",
"operator":"==",
"value": "Spell"
},
{
"condition": "difficulty",
"operator":">=",
"value": 15.0
},
{
"condition": "difficulty",
"operator":"<=",
"value": 90.0
}
],
"conditionsOperator" : "and"
}
Let me know if you have questions
{
Does this look right? I had to guess where to insert the new section based on context, so I want to be sure I didn't break anything in the process."Multipliers" : [
{
"parameter" : "Time",
"valueType": "function",
"function":"exp(-1 * ((a-b)/100))",
"variables":[
{
"name":"a",
"source":"skill"
},
{
"name":"b",
"source":"difficulty"
}
],
"conditions":[
{
"condition": "magicType",
"operator":"==",
"value": "Spell"
},
{
"condition": "difficulty",
"operator":">=",
"value": 15.0
},
{
"condition": "difficulty",
"operator":"<=",
"value": 90.0
}
],
"conditionsOperator" : "and"
},
{
"parameter": "time",
"valueType": "function",
"function":"exp(-1 * ((a-15)/100))",
"variables":[
{
"name":"a",
"source":"skill"
},
{
"name":"b",
"source":"difficulty"
}
],
"conditions":[
{
"condition": "magicType",
"operator":"==",
"value": "Spell"
},
{
"condition": "difficulty",
"operator":"<",
"value": 15.0
}
],
"conditionsOperator" : "and"
},
{
"parameter": "time",
"valueType": "function",
"function":"exp(-1 * ((a-90)/100))",
"variables":[
{
"name":"a",
"source":"skill"
},
{
"name":"b",
"source":"difficulty"
}
],
"conditions":[
{
"condition": "magicType",
"operator":"==",
"value": "Spell"
},
{
"condition": "difficulty",
"operator":">",
"value": 90.0
}
],
"conditionsOperator" : "and"
}
]
}
[Edit: Added a comma that I missed between conditions]
[Edit 2: Moved the aforementioned comma because I put it on the wrong line. Moved a couple of "{" fancy bracket thingies that somehow got left aligned when they shouldn't have been.]
If you start the game and look at the DynamicMagicModificationFramework.log file, it should give some information that should indicate if things seemed to load correctly.
If you ever want to make sure that the file has valid json formatting, you can use a website like https://jsonformatter.org/.
If you use this with the Dual Casting Effects Charge Time mod, the multipliers will be cumulative.
Can't wait to see the update of your "Unattuned" mod!
It's still in the works. I may release one other smaller mod first, but then Unattuned will likely be my next project.
Nevertheless, greatly innovative work!
https://www.wolframalpha.com/input?i=interpolating+polynomial+calculator&assumption=%7B%22F%22%2C+%22InterpolatingPolynomialCalculator%22%2C+%22data2%22%7D+-%3E%22%7B%7B15%2C.25%7D%2C%7B30%2C1%7D%2C%7B50%2C2%7D%2C%7B75%2C2.5%7D%2C%7B100%2C3%7D%7D%22
The condition would look like:
{
"condition": "caster",
"operator":"==",
"value": "player"
}
Look at the DMMF page for more info on changing the config file.