Jump to content
  • 0

[WIP] Mator Smash


Question

Posted

kWdBG.jpg

 

Mator Smash

VIDEO TUTORIAL - For v0.0.7

GamerPoets Video - For v0.4.1

 

 

Mator Smash is now available on Nexus Mods. 

Nexus Mods Mod Page

 

 

As of v1.0.0, Mator Smash has a "Quick Patch" button

As of v0.5.1, Mator Smash will copy records with "errors" in them (such as unresolved/unexpected references)

As of v0.5.0, Mator Smash has new algorithm features and is more stable.

As of v0.4.1, Mator Smash merges redundant plugins properly.

As of v0.4, Mator Smash now produces complete record prototypes

As of v0.3, Mator Smash supports Fallout 4 and Skyrim SE

As of v0.2.2, Mator Smash allows you to modify tags on plugins from within the program.

As of v0.2.1, Mator Smash has Smash Settings for Skyrim for every Bash Tag Wrye Bash offered for Oblivion.

 

Changelog:

 

  Reveal hidden contents

 

 

 

Purpose
Mator Smash is an application built on the xEdit framework developed to replace the primary functionality of Wyre Bash - the creation of patch files to combine (or merge) conflicting overrides to overcome Bethesda's "Rule of One". Wyre Bash used to provide this functionality in the days of Oblivion through the usage of bash tags, keywords that would be put in the description of the mod that would then tell Wyre Bash what types of records it should try patching. However, the current status is that Wyre Bash only provides this for a handful of record types for Skyrim, and this has been the case for quite a while now. There are several users (most notably Sharlikran) who have been working to update Wyre Bash's codebase to work with Skyrim, but it's been an uphill battle. As of now, it's not certain whether Wyre Bash will ever offer the same functionality it did in the days of Oblivion for Skyrim mods. That's where Mator Smash comes in.

 

Why is this necessary?
As per Skyrim's "Rule of One", any two mods that modify the same record but in different ways will conflict with each other in a way that can't be resolved asides from the creation of a compatibility patch. Because the number of Skyrim mods exceeds 40,000, there is no conceivable way to manually build enough compatibility patches to make every possible load order (or even a small fraction of them) work with each mod operating as intended. Mator Smash automates the most important part of the task of compatibility patch creation - the combining of conflicting edits. This is something that we've been needing for a very, very long time.

 

How does it work?
Warning: technical jargon ahead. Where Wyre Bash has separate procedures for the patching of individual record types, Mator Smash has a few generic procedures for the patching of ALL record types. This means that Mator Smash has, with very little development effort, achieved the capacity to patch more records than Wyre Bash has ever been capable of patching. This is achieved through a recursive traversal method which traverses override record structure, comparing subrecords between a master record, a source override record, and a destination override record. Upon the basis of this comparison, certain subrecords are written to the destination record while others are skipped and others are deleted from it.

 

Development Status
I began development of Mator Smash as a standalone application built on top of the xEdit API 10/18/2015. Here's the GitHub repository. Check out the design folder in the repository for various files relating to my design process. I'll be live streaming most of my development on livecoding.tv. I'll be streaming mainly on weekends 9:00AM-9:00PM PST. Because of major code reuse from merge plugins standalone, smash will be entering public beta very soon.

Mator Smash is currently available as a proof of concept script (which is slow and lacking in features/a clean user experience). You can download v0.9.4 of that script here. This script can currently correctly patch a massive number of different types of records. FAR MORE than Wyre Bash or any other currently available solution, and more than any solution that has ever existed for Skyrim or any other game.

 

Implemented Features

  • Dynamic, flexible settings: Smash settings are comprised of a tree which has information on how records/subrecords should be handled. This will allow users to control how a patch is created on a per-subrecord basis. This will make smash relevant regardless of the nature of the mods being patched, or the game the mods come from. Each node (record/subrecord) will have the following data associated with it-
    • Process: Whether or not smash should process this node and perform conflict resolution for it if a conflict is found.
    • Preserve Deletions: If a mod deletes an element inside of this node, that deletion will be preserved in the generated patch.
    • Treat as single entity: If a mod overrides any subrecord in this node, the entire node will be replaced with that mod's version of it.
    • Chaining: Linking allows you to copy multiple side-by-side elements when any one of those elements changes.
    • Override Deletions: Allows a plugin to restore deleted elements.
    • Force Value: Forces values from a particular plugin to be used, and only allows plugins which require this plugin to perform further conflict resolution on affected records.
  • Tags: As of v0.2.1, all Bash tags that were offered with Wrye Bash for Oblivion are now available for Skyrim.  Smash will automatically detect tags and apply smash settings to the plugins that have them, assuming you have smash settings that correspond to the tags.
  • Managed smashed patches: Patches you build will be tracked in the program, so you can quickly and easily rebuild them when your load order changes. You can also have multiple patches for your load order, if you feel that is desirable.
  • Multi-language support: I built a really clean, extensible, and easy to use language system when I developed Merge Plugins Standalone. Smash will use the same language system to support multiple languages out-of-the-box. As a translator, all you have to do is make a text file to create a translation and have users install it in their lang folder. The rest is handled by the program.
  • Fast and easy setting creation: Select some plugins to build a setting to specifically handle the conflicts they are capable of creating in a load order.  Toggle or set flags for multiple nodes at once.  Select similar nodes in a setting tree.  Conflict resolution has never been quite so powerful, flexible, and easy.

 

Planned Features

Smash is now pretty much feature complete.  Further development energy will be spent on porting it to a zEdit application mode, zSmash, which will include a new, streamlined workflow.

  • +1 3

Recommended Posts

  • 0
Posted
  On 11/14/2015 at 4:08 AM, yuser said:

Thanks for your work. Is this tool suitable for just users already? (like bashed patch - just a couple of clicks and it's working)

 

Sorry for my English.

No, it not yet suitable for users in the way you describe.

 

Your english was perfect.  :)

  • 0
Posted

So just installed STEP 2.2.9.2 and finished the intro of the game. So far I really like this software you've made here. Of course it's not as simple as pressing a button with Wrye Bash, but still no harder just a bit more to do to have a proper patch file ready. And the forwarding of records is finally not an issue anymore. Sure I did do some corrections in TES5EDIT, but that was a given. I used the default automatic smash setting to build the patch too.

 

I have yet to see any bugs in it or experienced any in game while using STEP:Extended, but I haven't really "played" that much with it yet too see if anything is out of place, though couldn't see anything in TES5EDIT that would cause issues in the long run.

  • +1 1
  • 0
Posted

OH MY GOD. 

 

Ahem. Sorry for the all caps but OH MY GOD THIS IS AMAZING.

 

You are both a saint and a devil. Demon and Angel. I am going to waste so many hours making my game infinitely more stable.

 

(begins sobbing incoherently in simultaneous relief and horror)

 

In other words I just began experimenting with the custom settings, and I finally figured out what exactly I need to be doing. The answer, a whole goddamn lot. (whimpers) Ce la vie, cruel world. Ce la vie.

 

(Dives back into TES5Edit to make notes on which mods need what things in their settings)

 

Once I have finished going over my mod list with a fine tooth comb I'd be happy to share my custom settings with you, not sure if that would be of interest or not. You just give the word on that. I have a metric ton of mods so my info may be of some use to those fools like me who JUST CAN'T STOP ADDING MORE MODS TO THEIR GAME. (bashes her face into her desk)

 

Anyways, despite my inane mutterings and mad jabberings what I really want to say is thank you so much. Your merge plugin and Mator Smash are making it so I can truly enjoy skyrim in a way I would have never imagined possible. Although there have been many hiccups in my path I know a lot more about modding than I ever have before, and I am confident that when I finally actually play skyrim my game won't be prone to the random crashes and likely not workingness of the days of yore when I was a foolish no Mod Organizer using stick it all in the data folder willy nilly modder.

 

Seriously man, thank you so much.

  • +1 2
  • 0
Posted

Hi EpitomyOfShyness!

 

I recognize you from the Merge Plugins thread on the Nexus, nice to see you stumbled across Smash.  :)

 

I know that using Smash right now is a lot of work, but my hope is that, with more development, that will change.

 

I would love it if you would share the settings you make.  It's really important to me that Smash is built on collaboration, so I want everyone's settings so I can see what people are doing and get a better of idea of what works and what doesn't work.

 

Best Regards,

-Mator

  • 0
Posted

So I'm still in the process of figuring out settings, but I'm not sure if there is currently a way to share setting info through smash. I haven't actually built most of these settings yet, because I'm going through TES5Edit painstakingly to try and figure out what can be solved through adjusting load order, and what needs to be included in the smash patch. So this link is a mega work in progress, but I though I'd share it for now. I'll post again when it is 100% done.

 

https://docs.google.com/document/d/1OUWGwssdfO2Uws6t-awoHPnXcARcxQzsNJzdvhXRwKQ/edit?usp=sharing

 

This is my google doc where I am storing all my notes on what settings I need to make for individual plugins. I imagine if some plugins wind up with identical settings I'll just make a single setting and note both plugins names in the setting. But for now this is where I am. Oh also, I made a similar doc for myself regarding merge plugins. I still need to report in the Merge Plugin but I thought I'd share the info here as well.

 

https://docs.google.com/document/d/1LEee2KL4PzKHkNyaxEUWPaBGZus4EF934EBrdlU3vCk/edit?usp=sharing

 

Seriously thank you so much, you are amazing.

  • +1 1
  • 0
Posted
  On 12/30/2015 at 9:25 PM, EpitomyofShyness said:

So I'm still in the process of figuring out settings, but I'm not sure if there is currently a way to share setting info through smash.

Not yet, but it is planned.

 

  On 12/30/2015 at 9:25 PM, EpitomyofShyness said:

I haven't actually built most of these settings yet, because I'm going through TES5Edit painstakingly to try and figure out what can be solved through adjusting load order, and what needs to be included in the smash patch. So this link is a mega work in progress, but I though I'd share it for now. I'll post again when it is 100% done.

Sounds great! :)

 

  On 12/30/2015 at 9:25 PM, EpitomyofShyness said:

Seriously thank you so much, you are amazing.

You're welcome.

 

I like what I do and I like to think I make a difference for people. Your gratitude is greatly appreciated. :)

  • 0
Posted

So no idea what is causing this, but I think I may have found a bug.

 

None of my settings currently include QUST, but everytime I build the patch with my full load order it creates a QUST category that I have to delete.

 

This behavior is particularly frustrating since I do need to resolve some very minor compatibility issues between some quest mods, but I'm going to have to go through every single item in the qust category when I make my final patch and individually delete the problematic ones.

  • 0
Posted
  On 1/2/2016 at 2:29 AM, EpitomyofShyness said:

So no idea what is causing this, but I think I may have found a bug.

 

None of my settings currently include QUST, but everytime I build the patch with my full load order it creates a QUST category that I have to delete.

 

This behavior is particularly frustrating since I do need to resolve some very minor compatibility issues between some quest mods, but I'm going to have to go through every single item in the qust category when I make my final patch and individually delete the problematic ones.

Can you be more specific/provide screenshots/logs?

  • 0
Posted (edited)

Where can I find the log? For now, these are the settings I use. I do not currently use the NotSoFast setting in my smash patch. I double checked that since that one does use QUST.

 

EDIT: DOH! I am a moron. Let me try removing the QUST category from my USLEEP setting. Argh I can't believe I missed that!

 

EDIT2: Aaaaaand that solved it. >_> I am so sorry. I am also embarrassed. Ignore me while and bash my head against my desk over here.

Edited by EpitomyofShyness
  • 0
Posted (edited)
  On 1/3/2016 at 2:51 AM, EpitomyofShyness said:

Where can I find the log? For now, these are the settings I use. I do not currently use the NotSoFast setting in my smash patch. I double checked that since that one does use QUST.

 

EDIT: DOH! I am a moron. Let me try removing the QUST category from my USLEEP setting. Argh I can't believe I missed that!

 

EDIT2: Aaaaaand that solved it. >_> I am so sorry. I am also embarrassed. Ignore me while and bash my head against my desk over here.

S'all guud.  :}

 

 

BTW, v0.1.1 is here.  Huge update, lots of new stuff/fixed stuff.  You can get it in the OP.

 

EDIT: Also make sure you read the changelog!  Smash no longer looks for settings in the same place, so you're going to have to move your settings to a new location to use them with v0.1.1!

Edited by Mator
  • +1 2
  • 0
Posted

Hey Mator, is there a readme for this somewhere? I watched the video you did, but I still want some documentation. I'm just better with stuff in word form. 

 

Also, is the VMAD bug you mentioned still in v011? 

  • 0
Posted

So... are there any pre-defined settings included in the install? I note the changelog says there is now a game specific folder for them but everything is empty.

Following the tutorial video shows it already populated with some basic 'bash' settings.

  • 0
Posted (edited)

EssArrBe:
No, no readme.  This is an alpha, after all.  If you want to learn more you can read this and the other threads, and I can answer specific questions.

 

 

GrantSP:

Smash settings for Skyrim need to be in .\settings\Skyrim.  If you want additional settings you're in luck, because I just built a smash setting for every bash tag that was present for Oblivion.  It took me a couple of hours, don't know why I didn't do this sooner.  Bash Tag Smash Settings

 

Unfortunately, automatic tagging for these settings won't work unless you rename all of them to remove the "Bash." prefix.  I put this prefix there because I'm going to be changing the tag detection feature to specifically detect bash tags and expect them to have Bash. at the beginning of their name.  This will allow me to change the way smash settings are displayed later down the road.

 

 

Hishutup:

"Barely functional"?  I mean, sure, I haven't completed all of the planned features, but this seems borderline insulting.  What the **** are you talking about?

Edited by Mator
  • Recently Browsing   0 members

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

Important Information

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