Jump to content

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


fireundubh

Recommended Posts

At the risk of exposing my ignorance to the masses

That is not ignorance. The question is valid.

 

if someone was only ever using WB to generate a bashed patch, will this tool eventually be used to assist xEdit to apply these tags and generate a 'bashed' patch from within xEdit? Or am I completely missing the purpose of this tool?

EDIT: This isn't really on topic and I should not have responded to it. My apologizes. Edited by Sharlikran
Link to comment
Share on other sites

What people don't realize is that the CK will change a lot of things depending on what you do in the CK. It happens all behind the scenes. Since we don't have the source code for the CK we can't make xEdit do all the extra stuff the CK does.

Thankfully. The CK changes a lot of things that shouldn't be changed, and it does so because it's an internal development tool meant for internal use. Internal dev tools always have problems. It's okay for internal development tools to be janky though. Large game development teams have dedicated tools programmers whose sole purpose is to keep the tools working and to build new tools when needed.

 

Personally, I've always found the messaging that xEdit is "just a conflict resolution tool" to be wrong. I've made all of my mods almost exclusively in xEdit, and I could do that because I don't make content mods. I desperately avoid the CK whenever I can. But towing the line that xEdit is just for conflict resolution probably scares off a lot of users who might not otherwise know what they're doing, so I usually let it be. But this is my thread. In this thread, xEdit has a lot more uses than just conflict resolution. ;)

 

PS. v1.3.9 now checks only the cell record flags that Wrye Bash cares about.

Edited by fireundubh
Link to comment
Share on other sites

Creating a bashed patch with an xEdit script, while possible, would probably take at least 20 minutes for 100-200 plugins. I'm probably being overly optimistic about that number, too.

Thank you, I wasn't expecting that as an answer. Is that due to the inadequacies of the script implementation over a purposely built tool such as WB?

Maybe someone could strip out the code from the WB repo and create a specific tool just to create patches? Or not! ::P:

Since the future of WB and its variants hinges on a hodge-podge of code maintained by people not fluent in either the languages or the code itself, it may be simpler to strip it for parts and move on. xEdit seems to be moving nicely along, I was hoping it might be an alternative.

Link to comment
Share on other sites

I have plans to implement DBash directly in xEdit so it will take less than a minute probably, just don't know when it'll happen though. This will require some time (and extensive testing) which I don't have right now.

By the way I confirmed bug with SortKey, nice catch.

Link to comment
Share on other sites

v1.3.9 is up. Changelog:

  • Requires xEdit svn1839 or older (SortKey is broken in later versions of xEdit; no ETA on fix)
  • Uses SortKeys to evaluate records for tags instead of iterating through every element by index
  • As a result, tag generation is more accurate (e.g., [FNV] YUM loses the Relations tag)
  • Improved conflict detection through the magic of mteFunctions
  • Significant performance improvement (e.g., [FNV] YUM processing time down from 35-40s to 21-22s)
  • Refactored code and added some useful functions/procedures
  • Added a counter to the final message output so you know right away how many tags were generated

I think the accuracy of tag generation can be improved a little bit further, if it's not already 100%, but I have to do some more testing during the day.

 

v1.3.9.1 hotfix is up. Changelog:

  • C.Water: This tag was being generated in error by interior cells whose water heights had been changed. For the purposes of generating the C.Water tag, interior cells are now ignored.
Edited by fireundubh
Link to comment
Share on other sites

At the risk of exposing my ignorance to the masses, if someone was only ever using WB to generate a bashed patch, will this tool eventually be used to assist xEdit to apply these tags and generate a 'bashed' patch from within xEdit? Or am I completely missing the purpose of this tool?

 

Since one of the major functions of WB is the management of mods and that is now handled by MO with STEP users, as I see it the only other function left with WB, and the only reason why I have it installed at this moment, is to generate bashed patches. If that too can be handled by another more robust tool, such as xEdit, why the need for WB and its variants?

Since this is asking about the functionality of the tool that is being discussed/tested within this topic, I think it is perfectly on topic.

 

The OP links to the tool's description and download. Use this tool to modify the headers of your plugins to include the 'correct' bash tags so that WB can (more) appropriately construct the Bashed Patch without having to enter the bash tags manually (and possibly incorrectly or incompletely), since LOOT-WB apparently don't handle this ideally right now:

 

This script detects up to 49 bash tags in FO3, FNV, and Skyrim plugins. Tags automatically replace the Description in the File Header. Wrye Bash/Flash can then use these tags to help you create more intelligent bashed patches.

Link to comment
Share on other sites

When I run script v1.3.9.1 with xEdit svn1876 on "FO3 Wanderers Edition - Main File.esm", shortly after starting I get an error box: Error in BashTagsDetection  line 69  Type mismatch. I haven't seen this on any of the other plugin files I'm testing with.

Link to comment
Share on other sites

When I run script v1.3.9.1 with xEdit svn1876 on "FO3 Wanderers Edition - Main File.esm", shortly after starting I get an error box: Error in BashTagsDetection  line 69  Type mismatch. I haven't seen this on any of the other plugin files I'm testing with.

I'll check it out. Thanks for the report.

Link to comment
Share on other sites

This is pretty cool.  Keep up the good work!

 

EDIT: Also, in response to "Improved conflict detection through the magic of mteFunctions", all I did in regards to conflicts is condense four already existing TES5Edit functions down to two and made the return type a string so comparisons, lists, and log messages are easier to work with.  The real magic is in the handiwork of zilav.  ^_^

 

EDIT 2: Also, you should provide a link to download mteFunctions.pas for those people who don't have it (what blasphemy!).

Edited by Mator
Link to comment
Share on other sites

With SVN v1876 of xEdit, the latest version of the script 1.3.9.1, and Mator's latest mteFunctions.pas from his GitHub when the script finishes it does not say "No tags suggested".

 

Instead you see this:

Applying script...

-------------------------------------------------------------------------------
Using record structure for The Elder Scrolls V: Skyrim
-------------------------------------------------------------------------------
[Apply Script done]  Processed Records: 213, Elapsed Time: 00:02
However, if there are tags like for Update.esm it will say the follwoing:

Applying script...

-------------------------------------------------------------------------------
Using record structure for The Elder Scrolls V: Skyrim
-------------------------------------------------------------------------------

Update.esm
Suggesting 6 tags: 
{{BASH:C.Encounter,C.Location,Delev,Invent,Names,Stats}}

-------------------------------------------------------------------------------

[Apply Script done]  Processed Records: 1081, Elapsed Time: 00:34
Link to comment
Share on other sites

With SVN v1876 of xEdit, the latest version of the script 1.3.9.1, and Mator's latest mteFunctions.pas from his GitHub when the script finishes it does not say "No tags suggested".

 

Instead you see this:

Applying script...

-------------------------------------------------------------------------------
Using record structure for The Elder Scrolls V: Skyrim
-------------------------------------------------------------------------------
[Apply Script done]  Processed Records: 213, Elapsed Time: 00:02
However, if there are tags like for Update.esm it will say the follwoing:

Applying script...

-------------------------------------------------------------------------------
Using record structure for The Elder Scrolls V: Skyrim
-------------------------------------------------------------------------------

Update.esm
Suggesting 6 tags: 
{{BASH:C.Encounter,C.Location,Delev,Invent,Names,Stats}}

-------------------------------------------------------------------------------

[Apply Script done]  Processed Records: 1081, Elapsed Time: 00:34

 

Sounds like an early exit, to me.

Link to comment
Share on other sites

Sounds like an early exit, to me.

Yup. 1.4 is a bit different and has complete TES4/TES5 support. 1.3.9.1 and older don't even look at records for things like Stats when working with Skyrim. I'm not even sure how some of those tags are being generated for Skyrim plugins because the code says "if Fallout 3 or Fallout NV" not "if Fallout 3 or Fallout NV or Skyrim."

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.