When it comes to setting game difficulty in the game options, I note that the VERY EASY global setting does not appear available. Is this option not actually available now?
Also, when this option is changed, say to “EASY”, are the spell “differences” (like fireball damage to party or not), governed at a hard-coded level or not?
I ask because some time ago, I thought I altered some aspects of this and may need to alter it back … however, if anybody knows more details on the whether this setting affects hard-coded stuff or not is appreciated, and advise welcome.
Yes, I notice this in the difficulty description. But, I was not sure if these differences were made within scripting of the spells themselves (which we have access to), or if the differences are applied are hard-coded level, in that, for example, a fireball will always behave as described for the setting, irrespective of any scripting we may add or remove to the spell script?
I have never tested this, and wondered if anybody else had.
It’s an interesting subject.
Personally, I prefer the Hard Core rules.
I would like this HC to particularly affect Arcane spells (for example, no free spells when leveling up for mages and bards) and clerics should have the same domains as the god they worship. The torches should go out after 5 minutes of play, instead of being forced to implement a script like I did for my own modules. And so on…
However, I know that’s not your looking and talking about.
In the end it is handled by the following subroutine found in “nw_i0_spells” script.
int GetIsStandardHostileTarget(object oTarget, object oSource)
This subroutine influences another subroutine found in the same scrip when called with the SPELL_TARGET_STANDARDHOSTILE target type parameter (normally, other parameters use different rules and have different checks).
int spellsIsTarget(object oTarget, int nTargetType, object oSource)
Which is generally called inside the impact script of spells, such as Fireball.
The behaviour of these checks can also be altered by changing a parameter in the module load script, by default “x2_mod_def_load”, by altering the following line (instructions commented above in script):
Yes, I think I may have been aware of that to some degree, as I am aware of GetScaledDuration, which I knew had some impact.
My work with spell scripts I did quite some time ago - long enough to “forget” some of what I had worked out what did what then.
When I spotted the Difficulty Settings in the game options and read some of its description, it gave me a moment of wondering how those aspects of the spells differed form what we may or may not have access to in the scripting. i.e. I thought that setting may have altered something we did not have access to.
Thankfully, from what I read now, it seems I have left spells in that area of coding, and so (hopefully) do not have anything to reconsider there.
EDIT: In fact, I realise now that the GetGameDifficulty function simply checks a variable and we have access to set what that actually means by the looks of it.
I am definitely a fan of Hard Cores rules, and try to use them whenever possible. I do have the “torch duration” one in place that you mention. i.e. No infinite light source, although a PC can find a magikal light source that is.
I also make it so a wizard can only scribe a number found spells (from a captured spell book) according to ability in a day. Although, I do allow the “free” ones at levelling.
And clerics in my campaign MUST have a valid Holy Book to be able to study for prayers and wizards require their spell books.
I even ensure the PCs need food and rest - although a cleric will eventually be able to cast Create Food and Water in my campaign at around 5th level for third level spells.
These are all things that I would like to automatically implement by default in my modules.
Personally, even many Arcane spells should have “physical components”. For example, to be able to throw a fireball, you should have some Fairy Dust + Fire Essence on you. Without these physical components, the spell could not be cast. It would be more HC and restrictive but the spell could be more powerful in compensation.
When I first started coding for my campaign, I did start to go through the spell list and begin to code for material components. However, even in PnP, my players could acquire a “Component Pouch”, which was a small magikal bag that automatically conjured the small items requires. The only components I thereafter made the players have for their PCs were the expensive (or unusual) components like a pearl for the Identify spell (iirc), which were the ones I had begun coding for.
However, that was when I decided to make the only caveat the Holy Book or Spell Book being accessible to the PC to be able to “learn” their spells on a rest instead. I know it was a compromise, but as I was already introducing some other aspects to the game (like “Vigour”), I felt the player may find too many mechanics to consider too awkward to have to bear in mind.
Furthermore, many of the spells that required the more involved MCs were no longer in NWN, and so the list became relatively small to the point that I changed such absent spells to something I call “Ritualistic Magic”, and is role-played outside of normal spell usage and can have the PCs find extra materials to cast instead. (Eg: In The Scroll, Orechin asks the PCs to recover the Divining Rods for the divination spell he needs to cast.)
You will note that even though I made that smaller list of spells (that were going to require foci or MCs) at the bottom of the post, which I originally intended to keep in the game, I eventually decided against it for the reasons I stated earlier.
Arcaene Lore spells (which did make it to the campaign) now work in a beneficial way of their own.