Welcome to the AFK Mods bug tracker. In order to report an issue, you need to have a VALIDATED account to post one. Once you have followed the link the registration email sent you, please select a project from the drop down menu below. Select “Open New Issue” and fill out the form with as many details as possible.

Please also consider sending your bug report to Bethesda if you are reporting on an issue with Skyrim Special Edition, Fallout 4, or Starfield. Doing so will help everyone on all platforms.

Issue Data
Status: Closed
Issue Type: Bug Report
Project: Unofficial Fallout 4 Patch
Component: Fallout 4: Vanilla
Category: Text
Assigned To: Sclerocephalus
Platform: All
Severity: Low
Votes: 0
Watching: N/A
Opened By VaultDuke on May 18, 2021 12:01 pm
Last Edited By BlackPete on Jun 5, 2021 6:20 pm
Closed By Arthmoor on Jun 22, 2022 11:48 pm
Resolution: Not Feasible
Comment: Messing with INNRs will bork everyone's saves. Let's not.

Issue #31324: Nanofiliment -> Nanofilament Item and loose mod description issues

 
The following loose mods contain the word "Nanofiliment" in their description, which should be "Nanofilament":

miscmod_mod_armor_Synth_Arm_Material_4 "Synth Nanofiliment Arm Mod" [MISC:00047066]
miscmod_mod_armor_Synth_Helmet_Material_4 "Synth Nanofiliment Helmet Mod" [MISC:0019D668]
miscmod_mod_armor_Synth_Leg_Material_4 "Synth Nanofiliment Leg Mod" [MISC:0004706A]
miscmod_mod_armor_Synth_Torso_Material_4 "Synth Nanofiliment Torso Mod" [MISC:0004706F]

Their "FULL - Name" Fields should be updated accordingly.

The associated material mods have already been addressed by issue 23132 in UFO4P 2.0.3

On a side note: The material mods seem to correlate with the descriptions of the mods shown in the workbench. These currently correctly show as "Nanofilament".

The actual issue I observed is, that item descriptions, of items with the mods attached contain the string "Nanofiliment" still.
Looking in XEdit i found the loose mods still lacking the correction.
I do however not know, whether this will fix the item descriptions, or if this would be a separate third entry somewhere governing that.
The fix would however definitely take effect for loose mods.

Related Issues: 23132  

Comments

10 comment(s) [Closed]
BlackPete said:
 
I looked into this a bit. When searching with the CK, the only four records that show having "Nanofilament" misspelled as "Nanofiliment" are the four records you have listed. Now, that doesn't necessarily mean that there's not some other hidden record somewhere in the game data that is also causing what you're describing, but those can be very difficult to find (like in Issue #23438). Not sure if you've tried correcting the four MISC records yourself yet or not, but I can fix those and then attach a fix plugin for you to check and see whether it solves all of the issues or not.

Comment #1 Jun 4, 2021 8:04 pm  Edited by BlackPete on Jun 4, 2021 8:04 pm
VaultDuke said:
 
I'm already testing a plugin like this in my playthrough.
It didn't fix the item names.


After your reply I decided to look into it once more, too and a search brought me to this article:
https://www.nexusmods.com/fallout4/articles/161/

With that knowledge I found the following record:
dn_CommonArmor [INNR:00184BC1]

Lo and behold, the very last entry in this list spelled: Nanofiliment.
I changed it to Nanofilament in a plugin and will report back tomorrow about the ingame effect.

Comment #2 Jun 4, 2021 8:58 pm  Edited by VaultDuke on Jun 4, 2021 9:27 pm
VaultDuke said:
 
that did the trick. The fix is only partially retroactive though. You need to remove and reattach each nanofilament mod to update the item description.

BlackPete said:
 
The four MISC records are corrected. Turns out the other part to this is a lot more complicated to fix than it originally seemed since it involves editing an INNR record. Sclerocephalus can explain any further details regarding that since he understands how it works way better than I do.

Comment #4 Jun 5, 2021 6:20 pm  Edited by BlackPete on Jun 5, 2021 6:25 pm
VaultDuke said:
 
I had no trouble editing the INNR record with XEdit. Is that not advised?

Sclerocephalus said:
 
Your observations are correct:
- The names appearing in the workbench menus are those of the actual mods (i.e. the OMOD records)
- The names of loose mods in your inventory are those of the misc mods (i.e. the MISC records). OMODs are purely virtual objects; the misc mods are their world objects, so to say.
- The names on the actual items (e.g. weapons or armors) are generated at run time by different processes.

These 'different processes' are the instance naming rules (INNR). An INNR consists of a long list of rules, and each rule consists of a string, a priority value and at least one keyword; if the game finds the listed keyword(s) on an item, it adds the associated string to the item name. For this to work, every OMOD adds a specific keyword to the item it is attached to. These keywords are only used for naming purposes and they all have a "dn_" prefix.
Within an INNR, the individual rules are grouped in rule sets. Each rule set applies to a specific mod slot and thus to a specific part of the name, and the order of the rule sets specifies in which order these parts are applied to the base item name. If you look at the INNR for armors, for example, the rule set on top is for the legendary mods, the next one is for linings mods and the third one is for materials mods. This means that the name of an item with mods in all three slots will look as follows: [Legendary mod name] [Lining mod name] [Material mod name] item name. You can move the rule sets around (in both the CK and xEdit) to alter the order in which the mod names appear on the final item name, and you even can move them after the base item name.
The last rule set in a vanilla INNR looks somewhat odd: it has only one rule, with no keywords specified and a string with a single asterisk: this rule set is a placeholder that defines where the base item name should appear. Note that this rule set is mandatory; if it is missing, the INNR will not work.

Since every mod slot on an item can be occupied by only one mod at a time, the rules within the individual rule sets are mutually exclusive (i.e. only one or none will apply), and therefore, the priority values are not normally used [in fact, I haven't seen them used anywhere in the vanilla game files].

The game processes the INNRs every time a mod is added to or removed from an item, either by a script or at a workbench. The generated names are then baked on the reference (together with the OMOD lists, btw) and written to your save game. They are not updated however if the INNRs or the OMODs are altered (and also not if a mod that added OMODs is removed from a running game while these OMODs are still used on items). To accomplish this, the game would have to reprocess all modded items it finds in your save game every time a save is loaded. Considering that the game creates plenty of modded items at run time (by adding OMODs through leveled lists via instantiation filter keywords and related object templates), there would be hundreds of items to take care of,and loading times would likely increase considerably, so it is understandable why the game is not doing that.

Now to the DLCs: Far Harbor and Nuka World both add new OMODs. Among these are many legendary mods that can be used on both base game and DLC added items, so the devs had to find a way to add the new legendary naming rules to the base game INNRs, and they also had to make sure that this procedure would work irrespective of which combination of DLCs is installed. For this purpose, they implemented a papyrus function, which allows to merge new rules into an existing INNR. This function can also merge entir new rule sets; however, it cannot remove nor modify existing rules in any way.

If you start a new game with the DLCs enabled, scripts that came with the DLCs merge their naming rules into the base game INNRs and the results are stored in your save game. Now, if you edit a base game INNR in any way, this INNR will be reverted to the modified INNR as soon as you activate the plugin and any rules merged into it at run time are instantly gone [btw, congrats for breaking your game unknowingly ....and welcome to FO4 modding where you have to check everything thrice.].

Now, since UFO4P requires all DLCs anyway, one might assume that the fix is still quite simple because we only would have to add a retro script that recreates merged lists from the base game INNRs and the naming rules of all of the DLCs. This might even work if it were only the DLCs that add new rules. Unfortunately though, plenty of CC creations come with new rules and some mods do it too ....

To put it short: any edit to a base game INNR creates a compatibility nightmare.

Comment #6 Jul 15, 2021 6:52 am  Edited by Sclerocephalus on Jul 15, 2021 7:28 am
VaultDuke said:
 
"[btw, congrats for breaking your game unknowingly ....and welcome to FO4 modding where you have to check everything thrice.]"

Oof, hah. Having done that now, I directly feel like a more established modder :lmao:


On a serious note: If INNRs can be manipulated at runtime, what kind of manipulations are possible? Only additions? or also deletions and exchanges of entries?

Sclerocephalus said:
 
Only additions.

Sclerocephalus said:
 
There is a workaround, of course, but it's a lot of work for a tucking fypo. It's one of these cases where we gain little benefit from a disproportionally big effort.

(1) We need a new naming keyword, e.g. "dn_Nanofilament_NoTypo"
(2) We set up a new INNR with a single rule for the correct naming of the nanofilament mod. This is essentially a copy of the vanilla rule, with the typo corrected in the string. Though, we also replace the keyword entry: instead of using the vanilla keyword, we make this rule depend on the new keyword (see above).
(3) We modify all nanofilament OMODs to add the new keyword (instead of the vanilla one) to the items the mods get attached to.
(4) We also need a script to merge our new INNR into the respective base game INNR.

As a result of these operations, the INNR will contain two rules for nanofilament mods: the old (vanilla) one with the typo that depends on the vanilla keyword, and the new one without the typo that depends on the new keyword. The old one however will never be used again because the OMODs will no longer add the vanilla naming keyword, so the condition to apply the faulty string is no longer fulfilled.

Alternatively, we could simply merge a higher priority rule with the typo fixed. That would save us the keyword modifications on the OMODs.
Though, I don't know whether those priority values do work as intended and whether they do even work at all. I played around with them about two years ago and my results were inconclusive at best.

Comment #9 Jul 16, 2021 8:09 am  Edited by Sclerocephalus on Jul 16, 2021 8:34 am
Arthmoor said:
 
Ok, so yeah. Given that altering the INNR record will bork everyone's saves, this isn't worth it. Not even close. So we'll not be making these changes at all.

Further, since the game has already spelled it as "Nanofiliment" everywhere, I'm also going to back out the 4 previous edits to the OMOD objects we did back in 2.0.2. For once their consistently bad spelling works in everyone's favor.

Probably best if we just don't ever mess with INNRs again if we can help it :P

Showing Comments 1 - 10 of 10