Can the extended header tooltip be modded via .tp2? For some reason it is not on Near Infinity (as far as I can tell) and only DLTCEP even has an option to edit it. It'd be nice to distinguish melee vs. ranged toggles for weapons but I have no idea how to mod it.
Can the extended header tooltip be modded via .tp2? For some reason it is not on Near Infinity (as far as I can tell) and only DLTCEP even has an option to edit it. It'd be nice to distinguish melee vs. ranged toggles for weapons but I have no idea how to mod it.
This is what I'm talking about:
The tooltip strings are listed in TOOLTIP.2DA, not in the items themselves. If you want to change the tooltip string of an item, or add a tooltip string for a new item, you must edit TOOLTIP.2DA.
NI game load speed is directly related to amount of files in override directory. If you biff override resources NI will load the game immediately. Use this, if you don't want to wait: http://www.shsforums.net/files/file/741-generalized-biffing/
I have a question and I'm sure the answer is somewhere on my side. If I look at a modded game, NI often does not display mod added text strings but displays them as "No such index" instead. This is also true for the BG1 ressources in EET, for example. If I export e.g. AMNIS4.dlg file as weidu-d file, it looks like this:
BEGIN ~AMNIS4~
//////////////////////////////////////////////////
// WARNING: this file contains non-trivial WEIGHTs
//////////////////////////////////////////////////
IF ~~ THEN BEGIN 0 // from:
SAY #200763 /* ~No such index~ */
IF ~~ THEN EXIT
END
IF WEIGHT #7 /* Triggers after states #: 9 8 7 6 5 4 3 even though they appear after this state */
~ GlobalLT("Chapter","GLOBAL",8)
StateCheck(Myself,STATE_CHARMED)
~ THEN BEGIN 1 // from:
SAY #205753 /* ~No such index~ */
IF ~~ THEN UNSOLVED_JOURNAL #226840 /* ~No such index~ */ EXIT
IF ~ GlobalGT("CHAPTER","GLOBAL",2)
~ THEN EXIT
END
IF ~~ THEN BEGIN 2 // from:
SAY #208910 /* ~No such index~ */
IF ~~ THEN EXIT
END
I guess I forgot to tick something somwhere or what can I do so all ressources are shown properly?
@jastey Did you select the right game language (Options -> TLK Language (EE only))? Selecting "Autodetect" will scan the baldur.lua for a language entry and use it if available, otherwise it'll fall back to "English".
About the slowness: Couldn't it be related to an antivirus aggressive real-time scanning?
I.e. a ton of small files multiplied by a extra delay in accessing them each time (AV getting in the way with the RT scanning) and you get a big slowdowns.
Just make sure that your AV has excluded from RT scanning all the BG folders that has tons of files (override, data, probably all mods folders, etc.)
As far as "it's an OS thing," that's why I thought it is pertinebt to mention that the MacOS-specific version of ~2017 vintage NI did not have this kind of delay. So I think it is related to a change in NI itself. (Or maybe something about the unserlying version of Java?)
The most direct comparison I did between the two NI versions was on my old 2012 laptop, which I think is running Sierra. I'll try to do a more controlled test on my new system.
Back in early 2016 (when NI was redesigned from scratch) I had to switch to a more modern API for dealing with files and folders. It was necessary for implementing native DLC support as well as case-insensitive file operations on Linux and for fixing the countless hacks needed to handle EE games.
This API had a different runtime behavior which resulted in longer loading times if NI has to scan a great number of files. When I added more override locations to check for NI later on the situation worsened even more.
I tried to optimize performance several times with little success in the past. I'm not yet out of ideas how to fix it, but they are quite time-consuming to implement. I can't say when I'll find the time to work on them though.
The current situation is quite annoying for me as well, even though my games are installed on a fast NVMs SSD. For now biffing the override is probably the most efficient work-around to reduce loading times.
Quick question: What's the meaning of Natural/Nonmagical in effects descriptions?
It's the same thing as "Not dispel/Bypass resistance" except when used in the Dispel Effects opcode. In most instances, option 0 and option 2 are the same.
I've another, not so quick one: Is there a way to find out in NI what spells are available to party members and what spells are not (because they are exclusive of a monster or for any other reason)?
The only difference I know of between 0 and 2 is that 0 will automatically convert to 2 when targeting yourself.
BIT0 = Effect is dispellable and checks Magic Resistance
BIT1 = Effect ignores Magic Resistance, which it does anyway if BIT0 is not set.
BIT2 = Effect bypasses deflection/reflection/trap opcodes (only in V2.0 / external EFF's)
BIT31 = Effect was applied by an item (only present in V2.0 / external EFF's, unknown function, but recently added)
BIT1 is set both manually (by friendly buff spells, to bypass allies MR) and automatically (by targeting yourself, to automatically bypass the caster's MR).
BIT31 = Effect was applied by an item (only present in V2.0 / external EFF's, unknown function, but recently added)
BIT31 is set by the engine if the effect's source item is identified. This bit is only used by Opcode #324, which checks it to determine whether it should set STRREF_FEEDBACK_IMMUNE_RESOURCE's <RESOURCE> token to the item's general or identified name.
BIT31 is set by the engine if the effect's source item is identified. This bit is only used by Opcode #324, which checks it to determine whether it should set STRREF_FEEDBACK_IMMUNE_RESOURCE's <RESOURCE> token to the item's general or identified name.
Interesting.
Definitely explains why I had trouble figuring out what it did - most item abilities cannot be used without identifying them first.
Is there a way to find out in NI what spells are available to party members and what spells are not (because they are exclusive of a monster or for any other reason)?
Maybe an example would help here: There are six Magic Missile spell files in a vanilla BG2 installation: BALTH06, SPIN685, SPIN962, SPWI003, SPWI112, SPWI998. How can I find out which is the one used by party wizards?
The default spells for wizards/priests are named such:
"SPWI[LEVEL][01-50]" and "SPPR[LEVEL][01-50]", so it would be SPWI112
This naming scheme is a hardcoded mechanic.
Such spells can however be hidden from the player through "HIDESPL.2DA", such as Dimension Door, "SPWI402", which is why it is not available during spell selection.
Is there a way to find out in NI what spells are available to party members and what spells are not (because they are exclusive of a monster or for any other reason)?
Maybe an example would help here: There are six Magic Missile spell files in a vanilla BG2 installation: BALTH06, SPIN685, SPIN962, SPWI003, SPWI112, SPWI998. How can I find out which is the one used by party wizards?
Look at a normally rolled wizard?
Anyway, you can write off all the ones not beginning with SPWI immediately. Spells normally gained by a class have an indication in the name: for instance, SP WI, where WI stands for WIzard. There are always exceptions, but as a good rule of thumb, SPIN = innate, SPPR = priest. The script name gives the next clue:
- SPWI003: "Trap Magic Missile", used for traps
- SPWI998: "Gorion Magic Missile" used in his cutscenes,
likely the one involving the shade while searching for Yaga Shura's heart
- SPWI112: "Wizard Magic Missile", this is the one.
The others are likely used for non-joinable NPCs or monsters.
The ones that begin with SPWI can be learned by wizards, unless the first digit after SPWI is a 0 or the last two digits are 50 or higher (unless a mod specifically gives a party member that spell).
In this case, SPWI112 is the real Magic Missile spell.
I'm asking these questions because I'm trying to figure out which spell effects are dispellable and which ones bypass magic resistance. Sometimes it's easy to tell with a quick look at the effects, but sometimes it's trickier. I'm checking Dark Taint (BHAAL2B) and it's hard to tell. It has several effects and most are Dispel/Not bypass resistance. However, the last effect, Use EFF file (I think that's the poison damage), is confusing. When you open it, you see again Dispel/Not bypass resistance. But the EFF file itself (SPWI411E.EFF) is Natural/Nonmagical. So which one applies?
@argent77
It's probably not something that concerns many modders but newer versions of NI seem to still have issues with the palette of animation bams. It appears as if the color index number is just randomly changed, at least for the shadow color.
(Repro: use bam converter, switch the palette's shadow color from a different index number to #2, save bam. -> Shadow color index will NOT be #2 but some other (random?) #index.)
Using an older version of NI to change the index number works fine.
(I have a faint memory of reporting this before but couldn't find my post, so apologies is this is a known issue.)
Spells normally gained by a class have an indication in the name: for instance, SP WI, where WI stands for WIzard. There are always exceptions, but as a good rule of thumb, SPIN = innate, SPPR = priest.
Continuing with this, there are two other file name prefixes that are used very often: oh, and SPCL. Do you know the meaning of these? I want to find out who (or what) uses Animal Rage, file name ohrrage.
oh = Overhaul, as in "2016 Overhaul Games, a division of Beamdog." (most beamdog content added before SoD was released)
bd = Beamdog (most beamdog content added with/after SoD release)
SPCL = Class ability (including HLA's, except the wizard/priest spells)
SPIN = Innate ability (NPC's, bhaalspawn, monster)
SPDD = Dragon Disciple
SPRA = Ranger Spells (Beastmaster, Stalker)
SPDR = Druid Spells (Avenger)
SPSD = Shadowdancer
SPDM = Dark Moon Monk
SPJA = Jaheira
SPSH = Shaman
SPWISH = Wish Spells
SPWM = Wild Magic Surge
Aside from SPWISH, none of these naming schemes have any real significance - it's for convenience only.
SPIN and SPCL can be used with non-RES actions/triggers, but I believe all such actions/triggers have RES versions in the EE's.
Spells normally gained by a class have an indication in the name: for instance, SP WI, where WI stands for WIzard. There are always exceptions, but as a good rule of thumb, SPIN = innate, SPPR = priest.
Continuing with this, there are two other file name prefixes that are used very often: oh, and SPCL. Do you know the meaning of these? I want to find out who (or what) uses Animal Rage, file name ohrrage.
I might have been confusing SPIN and SPCL. SPIN seem to be mostly monster innates, while SPCL seem to be class or (class group) specific.
SPIN includes a dragon's breath weapon, a lich's specific spells, but also the effects of the 'Deck of Many Things', the Hell Trial effects, but also some shapechange effects.
SPCL seems to have the HLAs, the shadowdancer specifics, and the paladin innates.
As to what "ohrrage" is... or OH-R-Rage...
OH is EE specific, R is Rasaad specific. Rage, in this case, is animal rage. Probably from Wilson, who is technically a part of Rasaad's storyline.
In general, when attached through op177, the fields in the EFF contribute to blocking the effect, but not removing the effect.
It will check Magic Resistance if either effect does (op177 or the EFF).
It will be Dispellable only if op177 is dispellable.
Does this also apply to Cast Spell (op146) and other similar opcodes (if any)? I'm looking at Absorb Health now (SPCL102). Op146 here is Dispel/Bypass Resistance, but the attached spell is Natural/Nonmagical.
By the way, I'm asking these questions in this thread because I'm using NI to check all of this. If there is a better thread to discuss this, let me know.
Does this also apply to Cast Spell (op146) and other similar opcodes (if any)? I'm looking at Absorb Health now (SPCL102). Op146 here is Dispel/Bypass Resistance, but the attached spell is Natural/Nonmagical.
No, it's specific to op177 and op283(use EFF file as curse).
Opcodes that cast spells will check Magic Resistance if that effect is flagged for it. The spell those opcodes cast will then check Magic Resistance again for it's effects if any of them are flagged to. If the referenced spell is applied instantly (including the projectile), both will use the same roll for Magic Resistance (barring the pause bug).
Dispelling works similar, except that dispelling is only relevant if the casting opcode is delayed or is op333 (Static Charge), as otherwise they are instantaneous, not sticking around to be dispelled.
In general, when attached through op177, the fields in the EFF contribute to blocking the effect, but not removing the effect.
It will check Magic Resistance if either effect does (op177 or the EFF).
It will be Dispellable only if op177 is dispellable.
And yet another clarification about this: Animate Dead (SPCL106) uses a dispellable op177 for the effect SPANDE01. SPANDE01 itself is not dispellable, as you'd expect from a summoning effect, but following what you said, what matters here is that op177 is dispellable, so it follows that the spell as a whole is dispellable (which means, I guess, that the summoned skeleton can be banished with Dispel Magic). Is that correct?
Comments
This is what I'm talking about:
The tooltip strings are listed in TOOLTIP.2DA, not in the items themselves. If you want to change the tooltip string of an item, or add a tooltip string for a new item, you must edit TOOLTIP.2DA.
Thanks. This'll be great to know in the future.
Back in early 2016 (when NI was redesigned from scratch) I had to switch to a more modern API for dealing with files and folders. It was necessary for implementing native DLC support as well as case-insensitive file operations on Linux and for fixing the countless hacks needed to handle EE games.
This API had a different runtime behavior which resulted in longer loading times if NI has to scan a great number of files. When I added more override locations to check for NI later on the situation worsened even more.
I tried to optimize performance several times with little success in the past. I'm not yet out of ideas how to fix it, but they are quite time-consuming to implement. I can't say when I'll find the time to work on them though.
The current situation is quite annoying for me as well, even though my games are installed on a fast NVMs SSD. For now biffing the override is probably the most efficient work-around to reduce loading times.
It's the same thing as "Not dispel/Bypass resistance" except when used in the Dispel Effects opcode. In most instances, option 0 and option 2 are the same.
I've another, not so quick one: Is there a way to find out in NI what spells are available to party members and what spells are not (because they are exclusive of a monster or for any other reason)?
BIT0 = Effect is dispellable and checks Magic Resistance
BIT1 = Effect ignores Magic Resistance, which it does anyway if BIT0 is not set.
BIT2 = Effect bypasses deflection/reflection/trap opcodes (only in V2.0 / external EFF's)
BIT31 = Effect was applied by an item (only present in V2.0 / external EFF's, unknown function, but recently added)
BIT1 is set both manually (by friendly buff spells, to bypass allies MR) and automatically (by targeting yourself, to automatically bypass the caster's MR).
BIT31 is set by the engine if the effect's source item is identified. This bit is only used by Opcode #324, which checks it to determine whether it should set STRREF_FEEDBACK_IMMUNE_RESOURCE's <RESOURCE> token to the item's general or identified name.
Definitely explains why I had trouble figuring out what it did - most item abilities cannot be used without identifying them first.
"SPWI[LEVEL][01-50]" and "SPPR[LEVEL][01-50]", so it would be SPWI112
This naming scheme is a hardcoded mechanic.
Such spells can however be hidden from the player through "HIDESPL.2DA", such as Dimension Door, "SPWI402", which is why it is not available during spell selection.
Look at a normally rolled wizard?
Anyway, you can write off all the ones not beginning with SPWI immediately. Spells normally gained by a class have an indication in the name: for instance, SP WI, where WI stands for WIzard. There are always exceptions, but as a good rule of thumb, SPIN = innate, SPPR = priest. The script name gives the next clue:
- SPWI003: "Trap Magic Missile", used for traps
- SPWI998: "Gorion Magic Missile" used in his cutscenes,
The others are likely used for non-joinable NPCs or monsters.
In this case, SPWI112 is the real Magic Missile spell.
I'm asking these questions because I'm trying to figure out which spell effects are dispellable and which ones bypass magic resistance. Sometimes it's easy to tell with a quick look at the effects, but sometimes it's trickier. I'm checking Dark Taint (BHAAL2B) and it's hard to tell. It has several effects and most are Dispel/Not bypass resistance. However, the last effect, Use EFF file (I think that's the poison damage), is confusing. When you open it, you see again Dispel/Not bypass resistance. But the EFF file itself (SPWI411E.EFF) is Natural/Nonmagical. So which one applies?
In general, when attached through op177, the fields in the EFF contribute to blocking the effect, but not removing the effect.
It will check Magic Resistance if either effect does (op177 or the EFF).
It will be Dispellable only if op177 is dispellable.
It's probably not something that concerns many modders but newer versions of NI seem to still have issues with the palette of animation bams. It appears as if the color index number is just randomly changed, at least for the shadow color.
(Repro: use bam converter, switch the palette's shadow color from a different index number to #2, save bam. -> Shadow color index will NOT be #2 but some other (random?) #index.)
Using an older version of NI to change the index number works fine.
(I have a faint memory of reporting this before but couldn't find my post, so apologies is this is a known issue.)
Continuing with this, there are two other file name prefixes that are used very often: oh, and SPCL. Do you know the meaning of these? I want to find out who (or what) uses Animal Rage, file name ohrrage.
bd = Beamdog (most beamdog content added with/after SoD release)
SPCL = Class ability (including HLA's, except the wizard/priest spells)
SPIN = Innate ability (NPC's, bhaalspawn, monster)
SPDD = Dragon Disciple
SPRA = Ranger Spells (Beastmaster, Stalker)
SPDR = Druid Spells (Avenger)
SPSD = Shadowdancer
SPDM = Dark Moon Monk
SPJA = Jaheira
SPSH = Shaman
SPWISH = Wish Spells
SPWM = Wild Magic Surge
Aside from SPWISH, none of these naming schemes have any real significance - it's for convenience only.
SPIN and SPCL can be used with non-RES actions/triggers, but I believe all such actions/triggers have RES versions in the EE's.
I might have been confusing SPIN and SPCL. SPIN seem to be mostly monster innates, while SPCL seem to be class or (class group) specific.
SPIN includes a dragon's breath weapon, a lich's specific spells, but also the effects of the 'Deck of Many Things', the Hell Trial effects, but also some shapechange effects.
SPCL seems to have the HLAs, the shadowdancer specifics, and the paladin innates.
As to what "ohrrage" is... or OH-R-Rage...
OH is EE specific, R is Rasaad specific. Rage, in this case, is animal rage. Probably from Wilson, who is technically a part of Rasaad's storyline.
By the way, I'm asking these questions in this thread because I'm using NI to check all of this. If there is a better thread to discuss this, let me know.
Opcodes that cast spells will check Magic Resistance if that effect is flagged for it. The spell those opcodes cast will then check Magic Resistance again for it's effects if any of them are flagged to. If the referenced spell is applied instantly (including the projectile), both will use the same roll for Magic Resistance (barring the pause bug).
Dispelling works similar, except that dispelling is only relevant if the casting opcode is delayed or is op333 (Static Charge), as otherwise they are instantaneous, not sticking around to be dispelled.
And yet another clarification about this: Animate Dead (SPCL106) uses a dispellable op177 for the effect SPANDE01. SPANDE01 itself is not dispellable, as you'd expect from a summoning effect, but following what you said, what matters here is that op177 is dispellable, so it follows that the spell as a whole is dispellable (which means, I guess, that the summoned skeleton can be banished with Dispel Magic). Is that correct?