Jump to content
  • 0

Wrye Bash/Smash/Flash Patcher updates


Sharlikran

Question

Wrye Bash 307-Experimental Fallout 3/Fallout New Vegas/Oblivion/Skyrim patcher Update

This thread is to discuss and troubleshoot implementation of Fallout 3, Fallout New Vegas, Oblivion and Skyrim patcher updates. This will be done using three different versions of Wrye Bash/Flash/Smash. Version 307.x will be primarily for Oblivion and Skyrim but anyone is more then welcome to test this version with Fallout. Since the current official releases for Fallout by Valda are working rather well and just need updating I will be providing links to those versions as well. I will use them as a baseline for the updates I am making to 307.x.

New releases will be on my OneDrive or a Mediafire Link. Version 307.x also marks the beginning of implementing Fallout 3 and Fallout NV support thanks to WrinklyNinja's previous efforts and starting the process for version 304.3. Valda updated Wrye Flash for Fallout 3 (30.x) and Fallout New Vegas (16.0) based off of a much older version of Wrye Bash (292 I think). Valda is not currently helping me with updates so if I can't make the changes myself they will remain unresolved. Please be patient while I wait for new volunteers that have time to help make updates.

To help with Bash Tags fireundubh has been kind enough to provide us with a beta script for xEdit that should work with all four versions. You can obtain Generate Bash Tags.pas from his GitHub repo. I am unaware of where you can post questions and bug reports at this time and I do not maintain that file so posting here will not get you the help you are looking for.

find updates to the script in this thread. Please post all bug reports and requests in that thread.

ATTN for Skyrim version: This version's Skyrim patcher is very new. Unless you know how to use TES5Edit and understand a great deal about plugins you may not want to use this version. Manual editing may be needed for the Bash patch to function correctly. Both Python and Standalone versions are available.

Fallout 3 and Fallout New Vegas: If you are using 306.x for Fallout 3 or Fallout New Vegas the Bash Patch should not have many issues since the code already existed to handle all the routines in the previous versions. Please report any issues so they can be corrected.

If you are using the official releases for FO3 and FNV they are very stable and quite usable in game. However, they do need updating so feel free to post issues you encounter with the Bash Patch.


Links to 307.x for FO3/FNV/Oblivion/Skyrim/FO4:

Wrye Bash 307.09_EXP - Python Source.7z - MediaFire, OneDrive
Wrye Bash 307.09_EXP - Standalone Executable.7z - MediaFire, OneDrive

Links to Wrye Flash by Valda:

Wrye Flash for FO3 v31.5 - Python Source.7z - MediaFire, OneDrive
Wrye Flash for FO3 v31.5 - Standalone Executable.7z - MediaFire, OneDrive
Wrye Flash for FNV v17.4 - Python Source.7z - MediaFire, OneDrive
Wrye Flash for FNV v17.4 - Standalone Executable.7z - MediaFire, OneDrive

Bethesda WIpz threads for FO3/FNV/Skyrim/Oblivion/FO4 Updates:

Skyrim
Oblivion
Fallout 3
Fallout NV
Fallout 4

STEP Thread:

Wrye Bash/Smash/Flash Experemental Patcher Updates

What kind of testing am I looking for?

I need people with a great deal of knowledge with Bash Tags and plugins to report errors with the Bash Patch for it's respective patchers. For example if a sound from a mod should have ended up in the bash patch but didn't, I need to know. The only bugs I am not interested in are Unicode related bugs. So if you go to install a mod and you get a Unicode error post that in the Wrye Bash thread.

What I am not looking for in regards to version 306.x:

The Python based patchers have never been updated that I am aware of. At least not for the last three years. If records do not carry over into the Bash Patch that clearly should be there I am not directly causing this. I am not experienced with Python enough to change the patcher's behaviour. I can only assign or update records and subrecords to their respective patchers. Once there are volunteers willing to help hopefully the patchers can be updated to produce a more accurate patch. In the meantime rather then assuming the patcher is buggy, I suggest checking all the Bash Tags by using the provided script.

In regards to CBash for Oblivion, I will consider updating the Python code that tells CBash what to do. However, if after I make updates, if the same issue is still occurring, I will not be able to update CBash itself. 99% of the time any issues with CBash will originate from flawed Python code.

Error reporting:

Post the Game you are using (FO3/FNV/TES4/TES5) the FormID of the record, what type of record it is (MGEF, INGR), the Subrecord involved, and the name of the field in xEdit. For example, "Skyrim SNDD - Sounds, Sound".

If I can't find a similar type of setup for the record in the CK/CS/GECK I may ask for a link to the mod.

Record structures:

Documentation for Fallout 3 and Fallout: New Vegas plugin file formats can be found on GitHub/fopdoc courtesy of WrinklyNinja

Documentation for Oblivion and Skyrim file formats can be found on UESP Wiki

Bash Tags

If you have forgotten the Bash Tags most of them are in this list. As I update Wrye Bash I will update that section to reflect changes I have made.

Supported Bash tags for 306.x:

Oblivion: Body-F, Body-M, Body-Size-M, Body-Size-F, C.Climate, C.Light, C.Music, C.Name, C.RecordFlags, C.Owner, C.Water, Deactivate, Delev, Eyes, Factions, Relations, Filter, Graphics, Hair, IIM, Invent, Names, NoMerge, NpcFaces, R.Relations, Relev, Scripts, ScriptContents, Sound, SpellStats, Stats, Voice-F, Voice-M, R.Teeth, R.Mouth, R.Ears, R.Head, R.Attributes-F, R.Attributes-M, R.Skills, R.Description, R.AddSpells, R.ChangeSpells, Roads, Actors.Anims, Actors.AIData, Actors.DeathItem, Actors.AIPackages, Actors.AIPackagesForceAdd, Actors.Stats, Actors.ACBS, NPC.Class, Actors.CombatStyle, Creatures.Blood, Actors.Spells, Actors.SpellsForceAdd, NPC.Race, Actors.Skeleton, NpcFacesForceFullImport, MustBeActiveIfImported, Npc.HairOnly, Npc.EyesOnly
Skyrim: C.Acoustic, C.Climate, C.Encounter, C.ImageSpace, C.Light, C.Location, C.Music, C.Name, C.Owner, C.RecordFlags, C.Regions, C.SkyLighting, C.Water, Deactivate, Delev, Filter, Graphics, Invent, Names, NoMerge, Relev, Sound, Stats
Fallout 3: C.Acoustic, C.Climate, C.Encounter, C.ImageSpace, C.Light, C.Music, C.Name, C.Owner, C.RecordFlags, C.Water, Deactivate, Deflst, Delev, Destructible, Factions, Filter, Graphics, Invent, Names, NoMerge, Relations, Relev, Sound, Stats
Fallout New Vegas: C.Acoustic, C.Climate, C.Encounter, C.ImageSpace, C.Light, C.Music, C.Name, C.Owner, C.RecordFlags, C.Water, Deactivate, Deflst, Delev, Destructible, Factions, Filter, Graphics, Invent, Names, NoMerge, Relations, Relev, Sound, Stats, WeaponMods

Supported Bash tags for Wrye Flash FNV:

Fallout New Vegas: Body-F, Body-M, Body-Size-M, Body-Size-F, C.Acoustic, C.Climate, C.Encounter, C.ImageSpace, C.Light, C.Music, C.Name, C.RecordFlags, C.Owner, C.Water, Deactivate, Delev, Eyes, Factions, Relations, Filter, Graphics, Hair, IIM, Invent, Names, NoMerge, NpcFaces, R.Relations, Relev, Scripts, ScriptContents, Sound, Stats, Voice-F, Voice-M, R.Teeth, R.Mouth, R.Ears, R.Head, R.Attributes-F, R.Attributes-M, R.Skills, R.Description, Actors.Anims, Actors.AIData, Actors.DeathItem, Actors.AIPackages, Actors.AIPackagesForceAdd, Actors.Stats, Actors.ACBS, NPC.Class, Actors.CombatStyle, Creatures.Blood, NPC.Race, Actors.Skeleton, NpcFacesForceFullImport, MustBeActiveIfImported, Deflst, Destructible, WeaponMods

Supported Bash tags for Wrye Flash FO3:

Fallout 3: Body-F, Body-M, Body-Size-M, Body-Size-F, C.Acoustic, C.Climate, C.Encounter, C.ImageSpace, C.Light, C.Music, C.Name, C.RecordFlags, C.Owner, C.Water, Deactivate, Delev, Eyes, Factions, Relations, Filter, Graphics, Hair, IIM, Invent, Names, NoMerge, NpcFaces, R.Relations, Relev, Scripts, ScriptContents, Sound, Stats, Voice-F, Voice-M, R.Teeth, R.Mouth, R.Ears, R.Head, R.Attributes-F, R.Attributes-M, R.Skills, R.Description, Actors.Anims, Actors.AIData, Actors.DeathItem, Actors.AIPackages, Actors.AIPackagesForceAdd, Actors.Stats, Actors.ACBS, NPC.Class, Actors.CombatStyle, Creatures.Blood, NPC.Race, Actors.Skeleton, NpcFacesForceFullImport, MustBeActiveIfImported, Deflst, Destructible

Patcher Progress:
A link detailing which records are not functioning in Wrye Bash and an update of what is and isn't finished at this time is available on the Wrye Bash GitHub.

Skyrim Progress
Fallout Progress

I have a very limited knowledge of Python. I will need help if it involves more complex routines. Updating the records is pretty straight forward and sometimes the patchers make sense including reading the specific fields in a record like MGEF or whatever. So I will be able to update some things on my own. I will be posting in the Known Issues section things that have been reported that I cannot update or have not been updated.

Known Issues:

Oblivion:

None at this time.

Skyrim:

  • Keywords are not copied into the Bash Patch.
  • VMAD records from loosing plugins are not copied into the Bash Patch.
  • Some records with repeating sounds like SNDR:ANAM are not carried over into the Bash Patch.
  • Special routine needed to handle INAM for Outfits.
  • LVLD - Chance None is not always utilized. Needs verification because code does look at this value.
  • CTDA conditions not always carried over into bash patch from loosing plugins.

CELL:

Interior cells

XCLW - Field is being blanked out, which may lead to Bash adding unnecessary records. If Bash needs to make a record for the cell, set it to the huge negative value. Otherwise don't import it at all.

Fallout 3:

None at this time.

Fallout New Vegas:

None at this time.

Version numbers will start with 306 but since this is a beta and not an official release I will make incremental updates, 306.0.01, and so on.

Volunteers Needed:

Currently I am looking for volunteers to contribute Wrye Bash. The main focus is updating Wrye Bash's Skyrim Patcher. However, this version also has limited Fallout 3 and Fallout NV support. Wrye Bash is written in Python so I am looking for people who are fairly knowledgeable with that programming language. You need to have Skyrim installed on your system so that you can test your updates to the code. If you wish to help with Fallout support then you should own a copy of Fallout 3 or New Vegas.

If you wish to help please PM me with your GitHub account name and which game mode you are willing to help with. P.S. please be willing to at least proofread my attempts to write Python code for Skyrim even if you prefer not to help with that and don't own a copy of Skyrim.

  • +1 1
Link to comment
Share on other sites

Recommended Posts

  • 0

I could have sworn I made a thread like this (well, not as thorough), but I can't find it. Anyways, I remember testing a while back, but real life got way to crazy for me. I'll get back to testing again. I don't even remember what version I was testing, so is there a change log for the experimental versions?

 

Also, I used to run WB through the debug.bat with the Python version. Is that still needed?

Link to comment
Share on other sites

  • 0

I suggest using Debug mode for testing since it will catch errors as they happen. If you don't do it that way, then you may not see the error again but it should still be looked at.

 

As for change logs, no I don't have one. I only have the little posts I made in the thread each time I made an update to 306.x. For now just assume it's not working, and look at the known issues. If it's a known issue you don't need to report it. If it's not under known issues tell me so I can try to resolve it. In the event I can't resolve it due to my lack of Python programming knowledge I will add it to the known issues section. Once a volunteer has time to look at the issues, they can be addressed as time permits.

Edited by Sharlikran
Link to comment
Share on other sites

  • 0

I have to make a change to my request for testing these versions.  For now until I get some help with the refactored Skyrim/Oblivon code, If you are testing Skyrim or Oblivion Patchers only use 306.x.  If you are testing Fallout only use the official version that are based off of Valda's versions.

Link to comment
Share on other sites

  • 0

Long post. Too long for experts, I'm sorry about that, but probably about right for novices that know nothing about Wrye Bash.

I was recently asked about the names patcher in regards to the AVIF record.  In that record there are Nodes listed that start with the header "Perk Tree" in TES5Edit.  Under them is an SNAM record.  What TES5Edit does it is goes out to the AVIF record indicated by the FormID and displays the name of that FormID.  The example I was given was 00000454 [AVIF] and the FULL record is Lockpicking in Skyrim.esm.  For this post I am going to give two examples.  The first example is that the Names patcher might be bugged because issues with it started in the original dev thread.  The second is a conflict that simply can't be resolved.
 
The first example is that there is nothing loaded between Prema and the bash Patch.  We know that with Wrye Bash the last plugin with the winning Bash Tag will have it's values written into the Bash Patch.  10 mods with the Names Bash tag means the one loaded last wins.  So the winning plugin with the Names Bash Tag is 70 in your load order.  The other 9 plugins loaded before it loose out.  Then at 80 in your load order there is a plugin with altered records that are the same as the previous mods with the Names Bash Tag. However, this mod does not have a Names Bash Tag and alters different information. It will not effect the the Names Patcher since it has no Names Bash Tag.  We also know that if the record is already correct for what would end up in the Bash patch, that Wrye Bash will not add the record because it's already correct in the winning plugin.  It would be redundant to add it again because it's basically an ITM of the winning plugin.
 
It is considered to be important in every game prior to Skyrim that the main master is used as a reference to compare against for the FULL records.  It is inserted into the list of mods by force in the first few lines of the Names Patcher.  This may need to change.  However, for now just try and uncheck Skyrim.esm.  Does that fix the issue or create more issues?  The names Patcher might be bugged.  However, before assuming that read on.
 
In my second example I have some made up plugin names that includes a made up mod, and an alteration to an existing mod that is not present in the original Mod.  All this is just for screen shots and examples.
 
So lets say you have a mod called Sneaking, Lockpicking, and Poison Crafting.  The author felt that Poisons did not get the love they deserve.  In fact he may have been a chemist and really knows his stuff.  He makes a well balanced mod that alters the names of the Vanilla DLC and he adds 30 new types of Poison.  Because of this his mod needs the Names Bash Tag.  This will become important for my summary.  Along with the Sneaking, Lockpicking, and Poison Crafting mod you have Perma installed.  It changes the FULL record for all sorts of stuff and really creates a new level of Immersion for the player.  (I don't use it I just assume this, pardon me if I offended anyone) Because it alters so many names for things it needs the Names tag as well.  The third mod I have is Radiant and Unique Potions Poisons and BOOZE.esp and the author changed the weight of a Poison but not the names.  So it just needs the Stats Bash Tag. (that is the part that is untrue in the mod. The mod changes graphics not stats.)
 
So here we have a screen shot of Radiant and Unique Potions Poisons and BOOZE.esp and SneakPickPoison.esp.  So we see that the name changed and it's the winning plugin.  So at first glance it should not be in the Bash Patch because it's already the winning plugin.  Then we remember that the Stats Bash Tag was needed so it is going to catch the weight change that is showing up in Red.  The Bash Patch will have the Name change and the Weight change because the two tags are different.
 
Now lets look at the AVIF record.  So now we see in this screen shot that SneakPickPoison.esp is loaded after PermaCore.esp.  (again I just made that up, if that's not the name or if it's an ESM ignore that)  Remember that SneaksAndPicks alters any thief and lockpick aspect of the game along with Poisions to give more balance or immersion.  Perma is a totally different mod and alters way more things so it's assumed there should be no conflicts with Sneaking, Lockpicking, and Poison Crafting since it's such a small mod and changes so little compared to Perma.  Here is where the fun begins and where the issue lies.
 
For the first screen shot everything is happening as intended and it would have done that for Oblivion as well.  The second screen shot is also following the rules as previously explained.  The result is not desirable but it is correct and expected behavior.  It is expected because in the first screen shot the tags were different.  In the second screen shot the Bash Tags were the same so now the rule of one applies. This is also a perfect example because the names Bash Tag applies to the entire mod not just the records you want it to manage. Which is why it provides a beneficial result for the Poision but not the AVIF record.  

 

EDIT: This might be a bug and I could be wrong.  I will ask volunteers to take a look at the patchers and make sure the they are working as intended.
 
Skyrim is localized and has over 40 records that have FULL records.  With 120 records in Skyrim that is 1/3rd of the recods that can exist in any Skyrim plugin.  Will that be an issue?  Not sure because the patcher never worked with more then 18 records up until now.  Now as noted in the OP if you follow the link to the status of the records and patchers on GitHub I have all the records entered except LAND, PERK, PACK, RACE, SCEN. Do I think there is any alternative?  Would a new patcher work?  Nope, because it has to follow the same behavior.  

Would LOOT or BOSS be a solution?  Well sure, you can alter your user rules for your setup and Add Perma based mods last.  Could the LOOT team adjust them? Sure moving one or two mods is fine but this is only the beginning, the discovery stage of Wrye Bash's patch capabilities if you will.  Will there be other mods that have to load lower, maybe.  Are there mods now that have to load after Perma that end up resetting the names and mods that have to load Before perma that cause issues, probably.  You simply can't have it both ways unfortunately.  Having too much LOOT metadata to force it to load after a lot of other plugins will force countless plugins to load lower as well. So that is probably not the best approach.

Unless the current behavior is incorrect another solution might be a CSV file. I have never played Oblivion and I have not played Fallout enough to use Tweaks and Overhaul mods that require them.  There are examples of them for Oblivion.  You would put them in Mopy\Bash Patches\Skyrim and check them as part of the names patcher just like you do for Oblivion.  However, I did not enable that for Skyrim so either it won't work at all, or if it does work and it is enabled, it may not be working correctly.  Also since I am new to the project I have never made a CSV file so someone with knowledge of that for Oblivion would probably be the most suited to make one.  Then it's added as part of the names patcher and could offer a solution.

With 120 records for Skyrim creating a bash Patch without CBash will be the greatest pain to wait for and will make trying to patch everything the way people want it the biggest nightmare.

Edited by Sharlikran
Link to comment
Share on other sites

  • 0

Skyrim: C.Acoustic, C.Climate, C.Encounter, C.ImageSpace, C.Light, C.Location, C.Music, C.Name, C.Owner, C.RecordFlags, C.Water, Deactivate, Delev, Filter, Graphics, Invent, Names, NoMerge, Relev, Sound, Stats

Thank you soooo much! This is simply gorgeous!

 

Two tags that come to mind that would significantly help compatibility are keywords (for stuff like WAF) maybe with a special tag for mods that remove keywords and scripts (for stuff like BOYD).

Link to comment
Share on other sites

  • 0

The easiest solution is to not propagate tagged values into bashed patch that are indentical to master record.

That is why I am hoping that the patcher is bugged. However, Lojack is busy so I don't know when I will get confirmation on it.

Two tags that come to mind that would significantly help compatibility are keywords (for stuff like WAF) maybe with a special tag for mods that remove keywords and scripts (for stuff like BOYD).

These are planed but not initially because I can't program in python so I will need a volunteer that is willing to alter an existing patcher to handle this. I also dislike the fact that the patcher does not manage Keywords. If you ever need to see the status of things refer to the Known Issues section and the links to the status of the patchers.
Link to comment
Share on other sites

  • 0

Uploaded 306.0.16 links are updated in OP.  Updated to 306 refactored code by Utumno. Added C.Regions for Skyrim Patcher. Various records updated to FO3/FNV/TES5.


 


With over 112 records the bash patch takes a while to build.  About 4 minutes for me.  It will take longer as I add more things.  When you start the patcher it will look like the program failed.  It didn't.  It will also look like it is going to close for some random reason.  Ignore that and just let it finish.  Have you ever noticed the number of references when you filter mods in TES5Edit?  There is a number in the title bar that usually exceeds 1,000,000.  Well there are over 1,000,000 if not over double or triple that depending on how many mods you have installed.  So it will take a while to process.


Link to comment
Share on other sites

  • 0

I will test it out just as soon as I get back into managing mods ... way busy with site related stuff lately though. Rest assured I am watching and appreciative of this work, as are others.

 

Thanks for taking the time to post news here, and always feel welcome to post a single link to another post on another forum (or copy/paste BB code from) if it ever feels like you are recreating the wheel.

 

;)

Link to comment
Share on other sites

  • 0
Uploaded 306.0.17 links are updated in OP.  Updated to current 306 refactored code by Utumno from the dev branch. For Skyrim updated MreWeap to eliminate DNAM and CRDT errors.  For fallout updated class MelModel to handle Alternate Textures better.  Not sure if it's mitigating the changes or not, needs testing.

 

With over 112 records the bash patch takes a while to build.  About 4 minutes for me.  It will take longer as I add more things.  When you start the patcher it will look like the program failed.  It didn't.  It will also look like it is going to close for some random reason.  Ignore that and just let it finish.  Have you ever noticed the number of references when you filter mods in TES5Edit?  There is a number in the title bar that usually exceeds 1,000,000.  Well there are over 1,000,000 if not over double or triple that depending on how many mods you have installed.  So it will take a while to process.

Link to comment
Share on other sites

  • 0

We should start by updating the advanced readme to get it in line with your current version. It would help people that know what they are looking at in xEdit, but not necessarily what the tags are supposed to do. That is probably the category DY falls in. I learned almost everything I needed to know about tagging from the readme. It just needs to be updated. 

Link to comment
Share on other sites

  • 0

The first thing is that only the online version or the link in the OP has been changed. As far as the sections for the Graphics patcher and the Sounds patcher I could update those sections that's true. However, for the patchers that are not active, or for the bash tags that are not supported for Skyrim I don't want to update those.

 

The patchers are:

 

Merge Patcher - Merges plugins into the bash patch if they don't introduce new records.

Import Cells - That section is updated (except maybe c.Region)

Import Graphics - Could be updated, but I want people to share if they feel a subrecord is not included that should be covered by this patcher since it will be different then Oblivion

Import Inventory - This is kind of self explanatory and hasn't changed. However, I don't have RACE decoded.

Import Names - Only FULL records

Import Sounds - Could be updated, but I want people to share if they feel a subrecord is not included that should be covered by this patcher since it will be different then Oblivion

Import Stats - Might be updated fully I would have to check. However, I still want people to share if they feel a subrecord is not included that should be covered by this patcher since it will be different then Oblivion

 

So really after making that list, I only need to update the Graphics and Sounds patchers and the Stats patcher just needs to be verified. For the subrecords that people feel should be included, first look in the OP under known issues. I can't patch some records yet until I have a volunteer to help with that. For example the SNDR records, repeating ANAM subrecords can't be patched yet.

Edited by Sharlikran
Link to comment
Share on other sites

  • 0

A thing I've noticed, the two Fallout version Wrye Flashs don't generate a blank bashed patch when you first run them.

Or if, as some do, you de-activate your existing patch and want to make a new one, you can't. Is this intentional or is just my installs that are wonky?

 

If you want different profiles with different patches you need to do a bit of backroom copy/paste to make folders and copy a blank bashed patch first and then run Wrye.

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.