Jump to content

Is there a reason for plugin id in a FormID to be higher than the master count?


primem0ver

Recommended Posts

Please read the details of my question before you answer.

 

From my experience with form ids in plugins, the number of masters always determine the final plugin id because a formid inside the plugin may refer to a master's id. For example, if a plugin has 3 masters, the id for the plugin when saving formids will be 3 (Skyrim.esm will be number 0, some other master 1, and the third master 2, making the plugins form id's saved with a plugin id of 3). So if an item originating in the plugin as the form id of 0x1a9f, the id stored in the plugin file will be 03001a9f.

 

I have noticed that on occasion however,that a plugin will sometimes contain form ids whose plugin number EXCEEDS the number of the plugin (for example 04001a9f). Is there a specific reason for this? Or did someone remove a master that originally existed?

 

EDIT: It you are not quite certain what I am referring too, it might help to read my explanation in my response to Hanaisse below.

Edited by primem0ver
Link to comment
Share on other sites

Most people include Update.esm which is always 01, therefore bumping up the ID.

 

Just to be clear though, the first two digits of a form ID have nothing to do with the number of masters a mod has. It is a designation of where the file sits in a persons load order. It might be 04 to you, it might be 08 to someone else (because all the DLC's load before it), it might be 32 if it sits lower in the load order, etc, etc.

Link to comment
Share on other sites

Most people include Update.esm which is always 01, therefore bumping up the ID.

This is sort of correct but the way you say it implies that either you don't understand my question, or you don't understand how form ID's work inside a plugin file. See my explanation below.

 

 

Just to be clear though, the first two digits of a form ID have nothing to do with the number of masters a mod has. It is a designation of where the file sits in a persons load order. It might be 04 to you, it might be 08 to someone else (because all the DLC's load before it), it

might be 32 if it sits lower in the load order, etc, etc.

I don't know what your experience is with the internals and details of the insides of a mod file but this assertion is incorrect. I have been working on a major utility (which is why I ask this question) for over a year now and an alpha version nearly complete. I am trying to understand an anomaly I have encountered on occasion. In my original question, I am not speaking of the first two digits of a formID in game. I am speaking of the first two digits of form IDs as they are stored in the ESP/ESL/ESM. For almost ALL records it works like this.

 

You seem to know how FormID's work in game. Here is how they work inside a plugin file. The number stored for the form ID inside the plugin file has two parts. The first part is the master ID (the first two hex digits). The second part is the form id. This is how the game knows which file is the source of the form id. A specific example:

 

Let say you create three new npcs in a plugin. Lets say that one NPC has a custom outfit whose chest/body piece is laid out in your mod. The second NPC is part of the Dawnguard faction and wears their clothing. The third is a commoner. To help illustrate how this all works, the number of masters and and their order is ESSENTIAL to the form id put into the plugin. So here they are:

 

The masters in the plugins master list are as follows (in order of appearance):

Skyrim.esm (assigned the master ID 00)

Update.esm (assigned the master ID 01)

Dawnguard.esm (assigned the master ID 02)

 

There are three plugins so the master ID of your new plugin (for its creation) is 03. 03 refers to forms internal to this new plugin.

As mentioned above, each internal form id inside a plugin file follows the format: MMXXXXXX where MM is the master ID and the X's are the raw form id (without the plugin reference). For the purpose of illustration, lets say in our example that our chest piece has the form ID of 003c4f

 

Now, in regards to the Form ID's which are stored in the plugin are as follows:

The first character's chest piece will have the form ID 03003c4f (the self-reference followed by the raw form id).

The second character's chest piece will have a form ID starting with 02 because Dawnguard is the third master and is assigned to master id 02.

The third character's chest piece's form ID will start with 00 because we are assigning them a commoner piece of clothing that is defined in Skyrim.esm

 

As an FYI (in reference to your first statement) For any plugin that has Update.esm as a master, it will always have the master id of 01 (since Skyrim.esm is (almost?) ALWAYS a master and is always assigned the id of 00).

 

My original question is that sometimes these internal ID's have a value HIGHER than internal plugin id (in this case 03). I have encountered plugins where the number is sometimes one higher (so in this situation 04), From what I have seen, the chest itself will have the correct id. However, references to the chest piece might have the id 04003c4f. This is either by some design that I am not currently aware of (and need to understand), OR it is because the user removed a master with an external tool and that tool missed renumbering the id... in which case I am not going to worry about it as far as my utility is concerned. Actually... my utility CORRECTS this issue and that is why I ask the question. I want to make sure that there isn't a specific reason the the number is one higher (by design).

Edited by primem0ver
Link to comment
Share on other sites

  • 2 weeks later...

Ha! It looks like SSEEdit now notifies you about these errors as well. It calls them "HITME" Warnings and so I guess I was right. They are not supposed to be numbered one higher. I am still curious how they get like that though.

ilGRvJF.png

Link to comment
Share on other sites

Could you give a link to a mod with a plugin that does this? Perhaps seeing it will help us to better understand what is actually happening. I'm suspecting that the parent masters were in one order when the plugin / records were created and the masters are now in a different order.

Link to comment
Share on other sites

  • 2 weeks later...

I have a feeling this is similar to what WryeBash does if you click on a mod where the masters are

 

Skyrim.esm

Dragonborn.esm

Hearthfires.esm

 

But the mod was created with this order

 

Skyrim.esm

Hearthfires.esm

Dragonborn.esm

 

So it shows the mod with a red checkbox

Hmmm... not really. I suppose it is similar, but if the master list is out of order, that would produce a whole mess of invalid references. Almost any reference that pointed to a form ID of a master that was out of order would result in a reference error. I am talking about "internal" references. In the above example, 03 is the id of the mod being tested for errors, rather than one of its masters (it refers to a form ID within the mod itself). However, each of the internal references listed above start with 04. SSEEdit has detected this problem and reported it.

 

As for an example? I can't remember what mod that scan was for. However, next time I see the issue I will list the example mod here.

Link to comment
Share on other sites

Ok. Found it. LOL. Its the hilarious looking "skimpy Boba Fet" armor called "Monster Armor." That mod is full of this particular type of error.

That mod Monster Armor, unless I found the wrong one, does not have any records with a different number than should be there. It loads into my xEdit in the 01 spot (only Skyrim and the plugin load as there are no other required masters) and all records within are marked as 01.

 

Some google searching on "internal file formid is HITIME" yielded several people asking about it after having merged some mods. There doesn't appear to be a clear answer. Someone did mention that Merge Plugins can fix some errors created during the merging process. Whether this is one such error, no idea as I have never merged any plugins.

Link to comment
Share on other sites

That is the wrong mod. Sorry about that. I was in a hurry and posted the wrong mod. I did another check and the quotes in the picture come from a modified version of a mod that is now hidden on Nexus: a voiced follower named Victoria Velina. However, please look at the ids in what I posted before you try and "disprove" me. It is very clear what is going on from the picture if you understand how IDs work. I have been working with the modification of FormIDs along with an ESL conversion utility for over a year now. I KNOW how they work and I know what I am talking about. The only thing I don't know about them is the question I asked. My utility is the FIRST I know of to automatically turn a Voiced Follower mod into an ESL at the click of a button successfully. I can tell you with certainty that those people on those discussions with wild theories are wrong. This IS what the HITME warning refers to.

Edited by primem0ver
Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...