Jump to content

lessons to learn from NV Game Stabilizer?


Recommended Posts

The mod NV Game Stabilizer by ccmechanic2 seems to have attracted a lot of attention. The author says that he has some techniques which reduce the number of crashes found by players, especially players with a lot of mods loaded. There are many replies where the mod caused the game to fail to load; but there are some success stories posted. The author seems unwilling or unable to explain the techniques, but the mod is there to look at. I would like some help to understand what the mod has done, so that all of us can use these techniques in our own mods. Anything that reduces the number of crashes introduced by mods seems like a good idea.

 

I am using geck 1.3, fallout 1.3 with no other mods installed, and fnvedit 3.0.19. I am looking at the "A2B" version of the stabilizer released May 15.

 

1. Injection messages from fnvedit

 

When I load the mod in fnvedit there are 13 messages like these two:

 

<Note: [NAVM:00179352] (for OVNorthSewers01 "North Sewers" [CELL:0012BE35]) was injected into FalloutNV.esm>

<Note: [REFR:001776C7] (places CollisionMarker [sTAT:00000021] in GRUP Cell Persistent Children of [CELL:000846EA] (in WastelandNV "Mojave Wasteland" [WRLD:000DA726] at 0,0)) was injected into FalloutNV.esm>

 

I am not familiar with the message "injected". If a mod changes an object, or adds a new object, this message does not appear. What does this mean?

 

2. "Identical to master" records

 

When I use the fnvedit menu choice "remove identical to master records" it says that it processed 14894 records and removed 9114 as identical. Is it possible that fnvedit does not understand all the fields, so when fnvedit compares the records, it does not "see" a real difference? If so then fnvedit is not "enough" for us to understand the techniques.

 

Saving the file after removing identical records reduces the filesize from 22 MB to 2 MB. The rest of my investigation is done using the reduced one. This has about 5000 changed objects (14894 - 9114).

 

3. Collision marker geometry changed

 

The changes shown by fnvedit are in three areas: cell, static, worldspace. In static, there is only one entry; the collision marker is changed as shown in this screenshot. It is 4x smaller and much thinner.

 

 

 

4. Thousands of collision markers changed

 

The majority of the changes shown by fnvedit are on instances of collision markers. The only change I can see is that they are changed to persistent, quest, initially disabled. Maybe this reduces stress on garbage collection; if the objects aren't needed for gameplay, then this seems like a good idea. I don't see why a modder would need to mod these objects. But one lesson might be, if you edit a collision marker then make it a persistent, quest item, initially disabled.

 

 

 

5. Door + navmesh with no visible changes

 

I am not sure how to filter out the collision marker changes to focus on the other changes. But, by clicking around, I can see a few objects marked as changed by fnvedit. The first one I found is a door and navmesh in the room SouthVegasAntMound. In fnvedit, I am not able to see any difference between the two door objects. Possibly the door is marked as changed, because the room navmesh is changed. Navmesh data displayed in fnvedit is very hard to read, but I cannot see any difference.

 

I suppose the base game could have had some navmesh problem, and the mod contains a new mavmesh which is "better"; then if a modder had changed this room and re-included the old navmesh the problem would be re-introduced. But unless we know how to tell a "bad" navmesh I am not sure how we can find this problem on our own.

 

 

 

(continued in next post due to image filesize limit)

Link to comment
Share on other sites

6. Door with changed teleport location

 

Now I am clicking around at random to see any changes which are not like #4 or #5. The first one I found is a door in the Gomorrah. There is no changed navmesh in this room but there are dozens of changed collision markers. The only change I can see on the door is a small change in the teleport location, changing the X value by 0.01 and the Y value by around 122. This may mean something, but it is hard to tell what.

 

 

 

I'd like to be able to count up the different types of changes; for example, to compare the number of changed vs unchanged collision markers; to see which rooms had their navmeshes changed; and to filter out those two changes to see any other ones. But, I am not quite good enough with fnvedit to do this. Any additional suggestions to help track down these changes would be interesting.

Link to comment
Share on other sites

There are about 4600 collision markers in the base game. It is possible that *all* of these are edited by the mod. Is there a way, either in geck or in fnvedit (or some other tool) to remove all the changed collision markers from the mod, knowing that there are thousands of them? This will allow me to see what *else* is changed in the mod.
Link to comment
Share on other sites

I'm not sure what to think about why it does things like it does but I think the concept of the mod itself is worth looking into. I can't help on a lot of these questions, but there are a few I can perhaps shed light onto:

 

1. Injection messages from fnvedit

 

When I load the mod in fnvedit there are 13 messages like these two:

 

<Note: [NAVM:00179352] (for OVNorthSewers01 "North Sewers" [CELL:0012BE35]) was injected into FalloutNV.esm>

<Note: [REFR:001776C7] (places CollisionMarker [sTAT:00000021] in GRUP Cell Persistent Children of [CELL:000846EA] (in WastelandNV "Mojave Wasteland" [WRLD:000DA726] at 0,0)) was injected into FalloutNV.esm>

 

I am not familiar with the message "injected". If a mod changes an object, or adds a new object, this message does not appear. What does this mean?

 

It occurs when you take one object from a plugin, and put it one of the masters that plugin has. In this case, the only one is FalloutNV.esm, which is why it does that. So the changes that it makes are going into the .esm perhaps... which is actually bad news as any official plugins should never be touched.

 

2. "Identical to master" records

 

When I use the fnvedit menu choice "remove identical to master records" it says that it processed 14894 records and removed 9114 as identical. Is it possible that fnvedit does not understand all the fields, so when fnvedit compares the records, it does not "see" a real difference? If so then fnvedit is not "enough" for us to understand the techniques.

 

Saving the file after removing identical records reduces the filesize from 22 MB to 2 MB. The rest of my investigation is done using the reduced one. This has about 5000 changed objects (14894 - 9114).

 

I would have to agree on you. FNVEdit can't tell the whole story of what it does. It's a lot like comparing two nearly identical apples but they went through several major differences in their development. It may look the same but it may be like that for a reason.

 

4. Thousands of collision markers changed

 

The majority of the changes shown by fnvedit are on instances of collision markers. The only change I can see is that they are changed to persistent, quest, initially disabled. Maybe this reduces stress on garbage collection; if the objects aren't needed for gameplay, then this seems like a good idea. I don't see why a modder would need to mod these objects. But one lesson might be, if you edit a collision marker then make it a persistent, quest item, initially disabled.

 

Perhaps the reasoning behind it, now I think about it, is that since it's a quest item, it remains in the world permanently unless tampered with (which is what persistent reference may mean). Disabling it with that, may just make it "disappear" from the game world, which may, or may not, free up space for the game to process other things.

 

-----

 

It's really hard to know unless there is word from the author himself on it.

 

------

 

Edit:

 

@Your latest post:

 

It may be possible with FNVEdit. You would need to setup the filters correctly in order for it to just show the ones it changes and perhaps then you can select them all and delete it. The mass select function, hold mouse button and spread a highlighted rectangle over all of them, should work and then you just press delete.

 

Of course, this is in the event that it actually shows all 4600 collision markers in the .esp.

Edited by skyline99
Link to comment
Share on other sites

It occurs when you take one object from a plugin, and put it one of the masters that plugin has. In this case, the only one is FalloutNV.esm, which is why it does that. So the changes that it makes are going into the .esm perhaps...

 

Thanks; but sorry, I did not understand. My own esp file has dozens of new items, they do not show up with an "injected" message. How does a esp file "inject" something into another file?

 

It may be possible with FNVEdit. You would need to setup the filters correctly in order for it to just show the ones it changes and perhaps then you can select them all and delete it. The mass select function, hold mouse button and spread a highlighted rectangle over all of them, and then press delete.

 

I tried that, and it partly works, but it is still a little too hard to actually perform. I added a filter criterion "name contains : collision" and filtered as shown below.

 

 

 

This limits the display to the collision markers, but it is still a hierarchical list with the cells as parents. So I need to expand the hierarchical list down to all the leaf cells. For cells, it is a little time consuming, I was able to expand everything. Then I clicked on the first collision marker, shift clicked on the last, and the deletion dialog said I had 196 objects selected. That appears to have worked.

 

But there are dozens of worldspaces, hundreds of cells, and probably several hundred of mouse clicks would be required to expand that part of the tree all the way down. If I don't expand all of the tree, then I can delete *all* the changes in the cells (not what I want) or I can delete only the items under the parts which I did expand (also not what I want.)

Link to comment
Share on other sites

I am really skeptical there is anything to learn from this, other than that people really want their game to be stable and will download anything if they think it will make it happen.

I am skeptical also. The stabilizer download thread is growing at a huge rate and it can be very hard to understand. But, at least 2-3 people have posted to say that they get a significant decrease in the number of CTD they get.

Link to comment
Share on other sites

It occurs when you take one object from a plugin, and put it one of the masters that plugin has. In this case, the only one is FalloutNV.esm, which is why it does that. So the changes that it makes are going into the .esm perhaps...

 

Thanks; but sorry, I did not understand. My own esp file has dozens of new items, they do not show up with an "injected" message. How does a esp file "inject" something into another file?

 

Let's say you have three files, one's a plugin and requires the other two as masters.

So it's:

Plugin #1 - 01

Plugin #2 - 02

Plugin #3 - 03

 

Let's say you want to merge Plugins #2 and #3. What you have to do is expand all of the trees in FNVEdit, select the items that have a FormID starting with 03, and change then so that they are 02. This effectively "injects" them into the targeted plugin. In this case, from what I can tell, whatever NV Game Stabilizer does, it's trying to make it so that it has the same FormID as FalloutNV.esm, which may or may not work.

 

You can read it in detail in the FNVEdit Training Manual. It's under "Merging a plugin with another plugin or master."

 

It may not be all that bad though, as it doesn't do the force override step of merging.

It may be possible with FNVEdit. You would need to setup the filters correctly in order for it to just show the ones it changes and perhaps then you can select them all and delete it. The mass select function, hold mouse button and spread a highlighted rectangle over all of them, and then press delete.

 

I tried that, and it partly works, but it is still a little too hard to actually perform. I added a filter criterion "name contains : collision" and filtered as shown below.

 

 

 

This limits the display to the collision markers, but it is still a hierarchical list with the cells as parents. So I need to expand the hierarchical list down to all the leaf cells. For cells, it is a little time consuming, I was able to expand everything. Then I clicked on the first collision marker, shift clicked on the last, and the deletion dialog said I had 196 objects selected. That appears to have worked.

 

But there are dozens of worldspaces, hundreds of cells, and probably several hundred of mouse clicks would be required to expand that part of the tree all the way down. If I don't expand all of the tree, then I can delete *all* the changes in the cells (not what I want) or I can delete only the items under the parts which I did expand (also not what I want.)

 

That's unfortunately a limitation of FNVEdit as far as I can tell.. and since the GECK, again as far as I can tell, splits the Wasteland into cells, and the "use info" function on any items placed is divided per cell, it'll be very time consuming...

 

I am really skeptical there is anything to learn from this, other than that people really want their game to be stable and will download anything if they think it will make it happen.

I am skeptical also. The stabilizer download thread is growing at a huge rate and it can be very hard to understand. But, at least 2-3 people have posted to say that they get a significant decrease in the number of CTD they get.

 

I'm actually one of those who said that but at the same time, I encountered a really nasty bug with it when I reloaded a save in one instance soon afterwards in one of the previous releases.

 

Right now, I would rather just deal with my freezing issues by either removing plugins I don't really need, or attempt to merge plugins in the event that it's strictly a # of plugins instance, which it may or may not.

Link to comment
Share on other sites

Let's say you want to merge Plugins #2 and #3. What you have to do is expand all of the trees in FNVEdit, select the items that have a FormID starting with 03, and change then so that they are 02. This effectively "injects" them into the targeted plugin. In this case, from what I can tell, whatever NV Game Stabilizer does, it's trying to make it so that it has the same FormID as FalloutNV.esm, which may or may not work.

 

You can read it in detail in the FNVEdit Training Manual. It's under "Merging a plugin with another plugin or master."

I think I understand, but I don't see why this would make any difference. I have only falloutnv.esm and stabilizer.esp loaded in fnvedit so objects in falloutnv are 00xxxxxx and objects in stabilizer "should normally be" 01xxxxxx. I suppose that somehow, these 13 objects in stabilizer are set up to be 00xxxxxx so they more directly replace their corresponding objects in falloutnv. But, any mod author could override the object in falloutnv.esm without needing to "inject" it.

 

What is the benefit of "injecting" with a 00xxxxxx code instead of the normal approach of "overriding" with a 01xxxxxx code? Only these 13 objects are "injected" compared to either 5000 or 14000 objects the mod "overrides".

Edited by davidlallen
Link to comment
Share on other sites

And that's what I'm wondering really.

 

Injecting is mainly only used for merging plugins together, to either bypass the plugin limit, or for simply less plugins. I haven't found any other uses for injecting other than that. And when you do inject items into a plugin, it's generally all of it, not just a select few. The only exceptions would be when it refers a master object. In that case, it would be copying the item as an override to the plugin above.

Link to comment
Share on other sites

  • Recently Browsing   0 members

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