Jump to content

[WIP] Mator Smash - The Conflict Resolution Revolution


matortheeternal

Recommended Posts

Ok, I think I'm starting to get a hang of this. Use the smash.all or a custom smash all for most stuff. But if I want to make sure ONLY one thing from a mod gets smashed, use a bash tag instead. E.g. For Another Sorting Mod, don't bash all or it will bash attributes, use the bash.names. But WAF use smash.all.

 

So with Smash it is better to think of the tags as a filter? Well, I've gotten the best results so far doing it that way at least. At least when there are only one or two standard things I want to preserve from a mod.

 

I also made a custom smash settings for imp_helm_legendary, since none of the pre-made tags fit the bill, since I'm now thinking of the smash tags as filters not inclusions. So I'll probably end up with a number of tailor made smash settings for specific mods, in addition to the modified smash.alll.

 

Hopefully this is the right approach, fingers crossed.

Link to comment
Share on other sites

  • Replies 196
  • Created
  • Last Reply

Top Posters In This Topic

Ok, I think I'm starting to get a hang of this. Use the smash.all or a custom smash all for most stuff. But if I want to make sure ONLY one thing from a mod gets smashed, use a bash tag instead. E.g. For Another Sorting Mod, don't bash all or it will bash attributes, use the bash.names. But WAF use smash.all.

 

So with Smash it is better to think of the tags as a filter? Well, I've gotten the best results so far doing it that way at least. At least when there are only one or two standard things I want to preserve from a mod.

 

I also made a custom smash settings for imp_helm_legendary, since none of the pre-made tags fit the bill, since I'm now thinking of the smash tags as filters not inclusions. So I'll probably end up with a number of tailor made smash settings for specific mods, in addition to the modified smash.alll.

 

Hopefully this is the right approach, fingers crossed.

Yup, sounds about right. :smile:

Link to comment
Share on other sites

Ok, I'm still trying to eliminate user error here, but I think I have a bug.

http://i.imgur.com/jHbrPa4.jpg

WAFR Changes ARMA/BOD2/Armor Type to Light. Smash does not retain this change. I tried to take the pic so that my settings were included.

 

Sexy Armor replacer. I tried it with the provided bash.graphics, and I tried cloning the bash.graphics and checking male and female world model. It seemed to work fine without checking, was just experimenting. Mainly, I'm showing that BOD2 is unchecked.

http://i.imgur.com/qx5eo3P.jpg

 

Even if WAFR is the last mod, Smash reverts the armor type. Not sure what is going on, is it my settings?

Thank you.

Link to comment
Share on other sites

  • 2 weeks later...

I also made a custom smash settings for imp_helm_legendary, since none of the pre-made tags fit the bill, since I'm now thinking of the smash tags as filters not inclusions. So I'll probably end up with a number of tailor made smash settings for specific mods, in addition to the modified smash.alll.

 

Can you please share your imp_help_legendary smash? It should be located in MatorSmash\settings\Skyrim\

 

Thanks

Link to comment
Share on other sites

  • 3 weeks later...

Alright, I can definitely see huge potential in this tool, but as of now it's unable to produce the same results for leveled lists merging as Wrye Bash.

 

As a reference here's how Wrye Bash's leveled list patcher and tags work: https://wrye-bash.github.io/docs/Wrye%20Bash%20Advanced%20Readme.html#patch-lists

 

 

Leveled Lists

 

The leveled list patcher is slightly odd in comparison to the others: it's effectively an Import... patcher, but its options are decided automatically by default.

 

First, a bit of background. When different plugins alter the same leveled list, only the last loaded plugin's changes get applied. This tends not to be what is wanted. The leveled list patcher circumvents the issue by instead merging all the changes made to leveled lists and having this merged set of changes applied.

 

The leveled list merging is dictated by related Bash Tags, and functions as follows.

 

  • The load order of plugins is still important to the result of the leveled list patcher. It decides what plugins' effects override others.
  • Untagged plugins can only add new entries to leveled lists. If such a plugin adds an entry that already exists, it will be ignored. Furthermore, even if another plugin has already marked that entry as removed, it will not be re-added.
  • Delev tagged plugins can remove entries from leveled lists. Any items present in such a plugin's masters but not in the plugin itself will be removed.
  • Relev tagged plugins can relevel an existing entry (ie. change its levels and/or counts in the list), and can also override previous deletions of entries from leveled lists. However, it does not prevent a later-loading Delev tagged plugin from then removing an entry again.
  • Delev and Relev tagged mods simply combines the effects of the Delev and Relev Bash Tags.
  • In addition to the above, the leveled list patcher removes any empty sublists from leveled lists, as these would otherwise cause the leveled list to select nothing if such a sublist was picked in-game.

 

As of now in Mator Smash 0.2.2:

  • At least viewed from the GUI (somehow when I diff the setting files with a json diff tool they're not the same), Delev and Relev tags have exactly the same settings, and most importantly, they both preserve deletes. Only Delev tags should preserve deletes.
  • Relev tags cannot add back to a level list an entry removed by a previous setting with "preserve deletes". Looks like you want another parameter "override deletes" if your goal is to provide a functional Wrye Bash replacement.

So you end up with this, where Immersive Weapons (alternate esp from PaMa patches) is tagged Relev: Wrye Bash correctly puts back the vanilla Iron Sword in the leveled lists, while Mator Smash incorrectly preserves the delete from previous mods marked Delev.

 

 

Something that's unclear to me (more testing needed) is whether a file with the "Skip" setting is completely ignored by the patch. For Wrye Bash's leveled list patcher, every mod has an implicit "Add" tag in addition to the eventual Delev and Relev. Not sure which kind of setting I should apply to a mod in Mator Smash to ensure basic "Add" functionality as described in the Wrye Bash readme quoted above.

 

EDIT: What's the best forum to discuss this tool, BTW? I might be interested in further testing and maybe even participating in development, depending on my time (and how repulsive Delphi ends up being :P ).

Link to comment
Share on other sites

Alright, I can definitely see huge potential in this tool, but as of now it's unable to produce the same results for leveled lists merging as Wrye Bash.

 

As a reference here's how Wrye Bash's leveled list patcher and tags work: https://wrye-bash.github.io/docs/Wrye%20Bash%20Advanced%20Readme.html#patch-lists

 

 

Leveled Lists

 

The leveled list patcher is slightly odd in comparison to the others: it's effectively an Import... patcher, but its options are decided automatically by default.

 

First, a bit of background. When different plugins alter the same leveled list, only the last loaded plugin's changes get applied. This tends not to be what is wanted. The leveled list patcher circumvents the issue by instead merging all the changes made to leveled lists and having this merged set of changes applied.

 

The leveled list merging is dictated by related Bash Tags, and functions as follows.

 

  • The load order of plugins is still important to the result of the leveled list patcher. It decides what plugins' effects override others.
  • Untagged plugins can only add new entries to leveled lists. If such a plugin adds an entry that already exists, it will be ignored. Furthermore, even if another plugin has already marked that entry as removed, it will not be re-added.
  • Delev tagged plugins can remove entries from leveled lists. Any items present in such a plugin's masters but not in the plugin itself will be removed.
  • Relev tagged plugins can relevel an existing entry (ie. change its levels and/or counts in the list), and can also override previous deletions of entries from leveled lists. However, it does not prevent a later-loading Delev tagged plugin from then removing an entry again.
  • Delev and Relev tagged mods simply combines the effects of the Delev and Relev Bash Tags.
  • In addition to the above, the leveled list patcher removes any empty sublists from leveled lists, as these would otherwise cause the leveled list to select nothing if such a sublist was picked in-game.

 

As of now in Mator Smash 0.2.2:

  • At least viewed from the GUI (somehow when I diff the setting files with a json diff tool they're not the same), Delev and Relev tags have exactly the same settings, and most importantly, they both preserve deletes. Only Delev tags should preserve deletes.
  • Relev tags cannot add back to a level list an entry removed by a previous setting with "preserve deletes". Looks like you want another parameter "override deletes" if your goal is to provide a functional Wrye Bash replacement.

So you end up with this, where Immersive Weapons (alternate esp from PaMa patches) is tagged Relev: Wrye Bash correctly puts back the vanilla Iron Sword in the leveled lists, while Mator Smash incorrectly preserves the delete from previous mods marked Delev.

attachicon.gifMator Smash Relev not working.jpg

 

Something that's unclear to me (more testing needed) is whether a file with the "Skip" setting is completely ignored by the patch. For Wrye Bash's leveled list patcher, every mod has an implicit "Add" tag in addition to the eventual Delev and Relev. Not sure which kind of setting I should apply to a mod in Mator Smash to ensure basic "Add" functionality as described in the Wrye Bash readme quoted above.

 

EDIT: What's the best forum to discuss this tool, BTW? I might be interested in further testing and maybe even participating in development, depending on my time (and how repulsive Delphi ends up being :tongue: ).

 

Hi gabba, welcome to the thread! :smile:

 

So I never found that explanation on how the leveled list patcher worked, so I never knew exactly what RELEV and DELEV did (though I had an idea from what people had said).

 

I think the only piece which is missing from Smash in terms of leveled list handling is the re-adding of deleted items. The only way Smash can do that is if you make the entire leveled list element "treat as single entity", but that will also override any additions in overrides that came before it. Making an option to re-add deleted elements would be possible.

 

You have to understand, while smash may not precisely emulate the way Wrye Bash patches leveled lists, it gets pretty darn close, and the way Wrye Bash does it isn't necessarily the best/correct way to do things. It really comes down to what a deletion means, from a design standpoint, and when it should be respected/not respected.

 

The RELEV smash setting having preserve deletions set is a mistake, easy enough to fix.

 

You can discuss Mator Smash here or on STEP, Bethesda Softworks Forums, or AFKMods. I don't mind much where the discussion happens, though I definitely check Nexus Mods more often.

 

 

Regards,

- Mator

Edited by matortheeternal
Link to comment
Share on other sites

re: Leveled Lists and Relev/Delev

 

Personally I just excluded Mator Smash from affecting Leveled Lists and rely on Wrye Bash and my load order to get it right.

 

Mator Smash is really great at virtually everything but right now Wrye Bash handles Leveled Lists in a more consistent way, particularly for removing things.

Link to comment
Share on other sites

Funnily enough, looking again at my screenshot in the previous post I realized that Immersive Weapons has probably no business being tagged Relev (or even Delev). It just adds stuff to the leveled lists and shouldn't be putting back or removing anything - more investigation needed. It currently works as intended in Wrye Bash given the assigned tags though, so it's still a good example.

 

 

 

I think the only piece which is missing from Smash in terms of leveled list handling is the re-adding of deleted items. The only way Smash can do that is if you make the entire leveled list element "treat as single entity", but that will also override any additions in overrides that came before it. Making an option to re-add deleted elements would be possible.

 

You have to understand, while smash may not precisely emulate the way Wrye Bash patches leveled lists, it gets pretty darn close, and the way Wrye Bash does it isn't necessarily the best/correct way to do things. It really comes down to what a deletion means, from a design standpoint, and when it should be respected/not respected.

I agree that Smash is probably only missing the re-adding of deleted items in order to replicate Bashed Patch functionality for leveled lists. Will you add it in a short timeframe? You claim to implement all Wrye Bash tags, which at the moment is rather misleading.

 

Wrye Bash's way might not even be the best or most correct way to do things, as you say, but a lot of mods have been organized around it's capabilities, so I think it's very important to perfectly match its functionality before proposing a different, potentially better way of doing things. It'll ease the transition and drive adoption of your tool.

 

It's pretty simple to find a use case for re-adding leveled lists elements though. Mod A (Delev) removes vanilla items from leveled lists and replaces them with its own variants. Mod B just adds some cool new weapons to the lists. Mod C (Relev+Delev) loads last and is a big overhaul that wants to integrate some changes from mod A but completely rebalances the leveled list, so it puts back its own twist on the vanilla weapons in the list, keeps some weapons from mod A and removes others. The bashed/mashed outcome should logically be Mod C's list + mod B's additions. With your current setup a full rebalancing patch like mod C can't work properly, the best you can get is mod C's list without mod B's additions.

Link to comment
Share on other sites

Hey Mator, thanks for this very neat utility! I have been using it with great success, UNTIL I tried to delete some of my patches (in patches tab). The program would freeze up I would have to task in task manager. Lastly I tried deleting the whole folder and downloading it again, but now the program disappears when building a new patch! Actually it goes into background processes (a whopping 500mb!) but never comes back up. Really bizarre. Any help you can give me would be greatly appreciated. ^^

Edit. Not sure what I did, if anything, but it's working again.

Edited by fajoaq
Link to comment
Share on other sites

I've recently started using Mator Smash, and I'm at a bit of a loss as to how to produce the results I want. I've watched your tutorial a few times, but the smash examples weren't very specific regarding how to accomplish a particular desired outcome. I feel like I'm missing something fundamental. Namely, how do you teach MatorSmash when to follow the 'rule of one' and when to break it for specific mods?

For example, take the following load order with respect to ALCH - ingestibles:

USLEEP

Legacy of the Dragonborn

CACO

Radiant and Unique Potions and Poisons

Pretty Animated Potions - Small Bottles Edition

Potion Replacer 0.2 (animated potions mod, no DLC by Aleanne)

Unique Booze Bottles

Unique Booze Bottles Alternate Names Version

 

With this load order I'm already getting the EXACT visual effects that I was aiming for on all potions and alcohol. The trick, of course, is to find a Mator Smash setting that correctly forwards all of CACO's non-visual elements, such as Value, Weight, and especially Effects, into a new patch, even though they would normally be overwritten by everything below CACO, all while preserving the visual effects provided by the potion mods found lower in the list.

Now, I already have several patches made by other people that nearly accomplish this goal, but it seems that I should be able to use Mator Smash to do this even without those patches.

Looking at my complete load order I anticipate similar issues occuring when I try to smash any NPC AI overhaul with a face mod, such as:
Immersive College of Winterhold <==> Makeovers by Mizzog - College of Winterhold, or
Enhanced Skyrim Factions - The Companions Guild <==> Bijin's Warmaidens,
etc...

It's basically the same issue right? How do you use Mator Smash to preserve both the AI of the NPC overhaul as well as the beautiful faces found in facial mods?

I feel like once I understand how to solve even one of these conflicts I'll be able to resolve just about anything. Ideally, I'd like to see another video tutorial demonstrating how to resolve this type of conflict using specific mods with a specific outcome in mind, just like the examples I listed. I understand that's a lot to ask, so any help you could give would be greatly appreciated!

Edited by vlainstrike
Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.

×
×
  • Create New...