Jump to content

[WIP] Bash Tagger (detects up to 49 bash tags!)


fireundubh

Recommended Posts

I completed my update to the bash tag autodetection script.
 
Behold: Bash Tagger! View/Download
 
Supported games:

  • Fallout 3
  • Fallout: New Vegas
  • Skyrim*

*Not completely tested; limited support currently

If anyone is willing test, I'd be grateful for your feedback. Suggestions for a better name are welcome, too.
 
Requirements:

Instructions:

  • Download the script to your FNVEdit "Edit Scripts" directory.
  • Run FNVEdit and load the plugin you want to test.
  • Right-click that plugin and click Apply Script. Select the script and click OK.

Like the original script, you can run the script on only one plugin at a time.

 

Roadmap:

  • v1.1 - Initial release (based on zilav's BASH tags autodetection v1.0 script)
  • v1.4 - Mostly complete TES4 and TES5 support
  • v2.0 - No bugs whatsoever
  • +1 1
Link to comment
Share on other sites

The R.Head tag doesn't appear to be implemented in Wrye Flash NV, so any plugins with that tag are likely to cause Wrye Flash NV to throw an error while generating a bashed patch.

Traceback (most recent call last):
  File "bash\basher.pyo", line 5834, in Execute
  File "bash\bosh.pyo", line 20582, in initData
  File "bash\bosh.pyo", line 34990, in initData
AttributeError: 'MreRace' object has no attribute 'head'

I've informed Sharlikran.

Edited by fireundubh
Link to comment
Share on other sites

It would certainly be interesting to see how it works with Fallout 3 since there are a lot of similarities in the record structures across FO3 and FNV.

For the most part, 100% compatible.

  • FO3 has Upper Teeth and Lower Teeth in the RACE record type, so for R.Teeth, I just need to add one more validator for 100% R.Teeth coverage.
  • FO3 doesn't have an RNAM element in the CONT record type, but the script just exits the RNAM validator in that case. Probably negligible performance impact.
  • FO3 doesn't have a DAT2 element in the AMMO record type, but the script just exits the DAT2 validator in that case. Probably negligible performance impact.

edit: I updated the script to v1.2.

  • FO3: Both the Upper Teeth and Lower Teeth elements in the RACE record type are validated for the R.Teeth bash tag.
  • FO3: No longer checks the RNAM and DAT2 elements above if Fallout3.esm is loaded.
  • Fully validates the EFSH record. v1.1 validated only the DATA element.
Edited by fireundubh
Link to comment
Share on other sites

Here's what the script gives me for YUP:

YUP - Base Game + All DLC.esm:
Added tags to header: 
{{BASH:Actors.ACBS,Actors.AIData,Actors.AIPackages,Actors.DeathItem,Actors.Skeleton,C.Owner,C.Water,Delev,Factions,Graphics,Hair,Invent,Names,Relations,Relev,Scripts,Sound,SpellStats,Stats}}

Here's some things I noticed when comparing to the tags in LOOT and what I saw double checking the mod myself:

  • Actors.AIPackages, Actors.Skeleton - Script detected these, but they should not be there.
  • SpellStats - can't find in FNV. I don't think SPEL exists in FNV. Maybe it is called something that isn't obvious, but FNVEdit doesn't have a record type listed for SPEL.
  • Factions - Script caught this, but wasn't in LOOT masterlist, but it should be.
  • C.Light - Script missed the tag
Link to comment
Share on other sites

I really appreciate the update to this script.  It will be a blessing for Skyrim once it can process the limited amount of tags that are available. I would appreciate it if any requests for updates for Valda's Wrye Flash are made to the following threads so I can keep things organized. I would like to avoid reading posts on multiple sites.

 

Fallout 3

Fallout NV

 

For Skyrim you can use the following thread but keep in mind that I have limited programming knowledge. Unless other people volunteer the available patchers will be limited.

 

Skyrim

Edited by Sharlikran
Link to comment
Share on other sites

 

Here's what the script gives me for YUP:

YUP - Base Game + All DLC.esm:
Added tags to header: 
{{BASH:Actors.ACBS,Actors.AIData,Actors.AIPackages,Actors.DeathItem,Actors.Skeleton,C.Owner,C.Water,Delev,Factions,Graphics,Hair,Invent,Names,Relations,Relev,Scripts,Sound,SpellStats,Stats}}

Here's some things I noticed when comparing to the tags in LOOT and what I saw double checking the mod myself:

  • Actors.AIPackages, Actors.Skeleton - Script detected these, but they should not be there.
  • SpellStats - can't find in FNV. I don't think SPEL exists in FNV. Maybe it is called something that isn't obvious, but FNVEdit doesn't have a record type listed for SPEL.
  • Factions - Script caught this, but wasn't in LOOT masterlist, but it should be.
  • C.Light - Script missed the tag

 

 

I'll look into them, although Wrye Bash doesn't support Actors.* for FO3/FNV/Skyrim anyway.

 

SPEL is under Actor Effects in FNV. Base Effects = MGEF, Actor Effects = SPEL.

 

 

I really appreciate the update to this script.  It will be a blessing for Skyrim once it can process the limited amount of tags that are available. I would appreciate it if any requests for updates for Valda's Wrye Flash are made to the following threads so I can keep things organized. I would like to avoid reading posts on multiple sites.

 

Fallout 3

Fallout NV

 

For Skyrim you can use the following thread but keep in mind that I have limited programming knowledge. Unless other people volunteer the available patchers will be limited.

 

Skyrim

 

Based on this link you gave me, I think I implemented way more bash tags than Wrye Bash supports for FO3, FNV, and Skyrim. What tags are supported for Morrowind and Oblivion? Anyone?

Edited by fireundubh
Link to comment
Share on other sites

There are currently two versions of Wrye. The beta version is a standalone program that can be installed for Oblivion, FO3, FNV, and Skyrim. It is currently supporting Cell records, graphics (but currently hidden), invent, and the other stuff that was already supported like names and stats. The release version is divided into three programs, one that works for Oblivion and Skyrim, Wrye Flash for FO3, and Wyre Flash NV for FNV. The release versions for Oblivion, FO3, and FNV support many more records than the beta versions. I think they were updating the code for the patcher from an older version, but it isn't fully implemented.

 

For the release version of Wrye Flash NV, it works for many more records than the beta. It even added Deflst and WeaponMods tags that didn't exist before. Deflst is like a Delev for FormID lists (may want to ask Sharlikran about that one though) and WeaponMods is for the possible weapon mod mesh slots a weapon record can have. 

Link to comment
Share on other sites

 

Here's what the script gives me for YUP:

YUP - Base Game + All DLC.esm:
Added tags to header: 
{{BASH:Actors.ACBS,Actors.AIData,Actors.AIPackages,Actors.DeathItem,Actors.Skeleton,C.Owner,C.Water,Delev,Factions,Graphics,Hair,Invent,Names,Relations,Relev,Scripts,Sound,SpellStats,Stats}}

Here's some things I noticed when comparing to the tags in LOOT and what I saw double checking the mod myself:

  • Actors.AIPackages, Actors.Skeleton - Script detected these, but they should not be there.
  • SpellStats - can't find in FNV. I don't think SPEL exists in FNV. Maybe it is called something that isn't obvious, but FNVEdit doesn't have a record type listed for SPEL.
  • Factions - Script caught this, but wasn't in LOOT masterlist, but it should be.
  • C.Light - Script missed the tag

 

 

Actors.AIPackages: This is correct. I added a debug flag in 1.3 and this is the first record found that warrants the tag:

Actors.AIPackages:  \ [0A] YUP - Base Game + All DLC.esm \ [26] GRUP Top "CREA" \ [73] NVCrFireGeckoDEAD "Fire Gecko" [CREA:001411BA] \ [16] Packages

I checked the Packages element manually and, yup, YUP makes a change to the second AI package.

  • Actors.Skeleton was detected for mysterious reasons. The element returned null and was compared against another null element, but somehow they're different nulls? Solved though.
  • Actors.AIData was incorrect though. The script was too aggressive, detecting a change between the Unused elements. I narrowed the validation to specific elements under AIDT.
  • SpellStats is, as before, correct. SPEL is Actor Effects.
  • Nothing I can do about Factions.
  • Versions 1.1, 1.2, and 1.3 of the script don't miss the C.Light tag for me.
Edited by fireundubh
Link to comment
Share on other sites

 

Actors.AIPackages: This is correct. I added a debug flag in 1.3 and this is the first record found that warrants the tag:

Actors.AIPackages:  \ [0A] YUP - Base Game + All DLC.esm \ [26] GRUP Top "CREA" \ [73] NVCrFireGeckoDEAD "Fire Gecko" [CREA:001411BA] \ [16] Packages

I checked the Packages element manually and, yup, YUP makes a change to the second AI package.

  • Actors.Skeleton was detected for mysterious reasons. The element returned null and was compared against another null element, but somehow they're different nulls? Solved though.
  • Actors.AIData was incorrect though. The script was too aggressive, detecting a change between the Unused elements. I narrowed the validation to specific elements under AIDT.
  • SpellStats is, as before, correct. SPEL is Actor Effects. Okay, then that looks like it was correct in the script. 
  • Nothing I can do about FactionsYeah, I'll try to add it to the masterlist. 
  • Versions 1.1, 1.2, and 1.3 of the script don't miss the C.Light tag for me. It didn't work for 1.1 and 1.2 for me. I'll try another mod like ILO and see what happens.

 

That record, 001411BA, is for dead fire geckos. I don't think it has packages. I checked record and saw the Use AI Packages flag, but I didn't see any PKID sub-records. Maybe I'm just going crazy or drank to much.

 

EDIT: C.Light worked for ILO. Not sure what's happening with YUP.

Link to comment
Share on other sites

v1.3 is up. Changelog:

  • Now detects up to 49 bash tags for FO3, FNV, and TESV*!
  • Improved game detection per tag support documentation
  • Added debug boolean. In Process, change "false" to "true" where needed to output full paths to triggering elements.
  • FO3, FNV: Implemented Actors.Stats validation
  • FO3, FNV, TESV: Implemented C.Acoustic validation
  • FO3, FNV, TESV: Implemented C.Encounter validation
  • FO3, FNV, TESV: Implemented C.ImageSpace validation
  • TESV: Implemented C.Location validation
  • FO3, FNV: Implemented Destructible validation
  • FO3, FNV: Actors.AIData validation is more precise
  • FO3, FNV: Actors.Skeleton validation now fires only when the Model element exists
  • FO3, FNV: Disabled R.Head validation due to Wrye Flash NV bug
  • FO3, FNV: Renamed Actors.Animations to Actors.Anims per garybash source code
  • FNV: Added WeaponMods

* I still need to verify the entire record structure for TESV but most of the validators look good.

Edited by fireundubh
Link to comment
Share on other sites

That record, 001411BA, is for dead fire geckos. I don't think it has packages. I checked record and saw the Use AI Packages flag, but I didn't see any PKID sub-records. Maybe I'm just going crazy or drank to much.

 

EDIT: C.Light worked for ILO. Not sure what's happening with YUP.

 

This is what I see:

 

pL5QEtJ.png

 

Hmm, if you go to xEdit Options and turn off the Hide* options, you'll see that.

 

I think the problem here is that xEdit has a bug where if you check a template flag like "Use AI Packages," the Packages data either doesn't clear or remains accessible via scripts. I'll have to check if the template flags exist before validating the associated elements.

Edited by fireundubh
Link to comment
Share on other sites

EssArrBee is correct. The release versions of Wrye Flash for FO3 and FNV patch a lot of things. The official versions from Valda are on the Fallout Nexus sites. Only the 306.0.14 Beta has less patchers and Bash tags because it is the TES4/TES5 version and I am adding Fallout support. Once 306 can patch the same records as Valda's versions then it will become the new official version. That will be a while because I want to update Valda's versions so that it can be used as a baseline to verify that the 306 update produces an accurate patch compared to Valda's versions.

Link to comment
Share on other sites

v1.3.1 hotfix is up. The main validator was returning too many tags. Oops.

 

Working on forcing AI Data and AI Packages validation to fire only when the respective Template Flags in ACBS don't exist, and now there's a weird problem with xEdit not being able to see two identical PKIDs as identical.

Edited by fireundubh
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site, you agree to our Guidelines, Privacy Policy, and Terms of Use.