About this mod
A BGSM/BGEM loader for Skyrim as an SKSE plugin for AE/SE.
- Requirements
- Permissions and credits
- Changelogs
This mod is under heavy development and not in a 1.0 state.
What do you mean "1.0"?
The real meat of the plugin is done. The full list of the goals will be below, but active development is going to be very real. Until things get more stable, I'd recommend holding off unless you're a mod-maker that plans on integration.
To the users
This plugin is meant to replicate the functionality seen in Fallout 4 material files.
The problem
Many armor mods come with several entries for the same piece but with varying textures/colors. What if you want to keep your enchantments but want a different look?What about that one piece of gear that you really want to hold on for the whole duration of your New Game+++++++++++? What about making a texture replacer without
actually replacing the texture every time?
The solution
Bethesda solves this in Fallout 4 with material files. They're given to each armor piece and all it takes is crafting or using ScreenArcherMenu (big kudos to Maxie for the help btw). I wanted to bring this functionality into Skyrim with as little friction as possible. Thus this project was born.
Usage
If you have an armor piece supporting material files, you'll be able to modify it in the MSF menu (default key is F10). From there, just pick which one you want and head off to the races!
But how do I know if an armor piece is supported?
All config files for MSF are stored in SKSE/Plugins/MaterialSwapperFramework/config. You could do a cursory glance in it to see if your armor is there but at this current point, it most likely isn't. Another obvious sign is if the mod depends on this.
Is there any risk to my game?
As with all mods, there's always a risk. During development, I've used a very minimal setup so I don't know how it plays with other mods. That being said, here are the key things to note:
- This mod doesn't revolve around its own save data. Instead, it
piggybacks off of extra records from the engine. This ensures that syncing is always looking at the game's data as the source of truth. - All edits to NIF files and NIF materials are done on the fly.
Nothing about the material gets persisted to anywhere except your current save. - MSF won't let you set materials all willy-nilly. There are
constraints and those are in place to make sure data that shouldn't be touched doesn't.
Uninstalling
The answer to this varies based on usage. It is generally
safe to uninstall if:
- You've not used the UI to edit your own inventory's materials
- You've used the UI but have reset the armors to their default
materialsOtherwise, it's safe to uninstall but you will have the material name attached to the end of the armor piece until edited by a save editor.
For armor makers
MSF has 2 main goals for armor makers:
- Enable extending your armors without having to go through the process of new records for each color/texture change (thus saving room for other forms or even allowing your plugin to be ESL flagged).
- Real time material editing while in game instead of going through the Creation Kit (to be implemented, sorry D:)
There are 2 key things to remember when making your armor
sets for usage within MSF.
- Default materials will not be loaded by NifSkope or OutfitStudio/BodySlide. The BGSM/BGEM format is a Fallout 4 format so it's not anticipated these tools will process these changes without a pull request being made. It's perfectly fine to use default textures as you always have in your workflow. BGSM/BGEM files are auxiliary and for the foreseeable future will always be.
- This mod is 100% ESP-less and does not read any data from them. All configuration is done via the nifs and JSON files in SKSE/Plugins/MaterialSwapperFramework/config
Making your armor MSF compatible
MSF requires a basic understanding of the JSON file format.
In the future, a GUI will be made to facilitate this step.
- Ensure you have a form ID and NIF file for your armor. As long asthey exist, you're good to go. Also, download Material Editor
- Using the template provided in optional files, fill in your data as required.
- The Form ID must be "{ESP_NAME}.esp|{SIX_DIGIT_FORM_ID}". It can be from an ESM or ESL as well. ESLs and ESPs flagged as ESL have a special requirement that instead of the last 6 digits of the Form ID, you have to use the last 3.
- The name is what the user will see in the GUI and what will be passed along in any Papyrus scripts.
- The shapes are case-sensitive shapes from the NIF file. You can have as many as you want in here. If the shape isn't found in the NIF, it simply won't be applied.
- "isHidden" determines if the user will be able to see it in the GUI. A material might exist in here and be hidden if it's a conditional material added on spell effect, a default material you don't want switched off of, or any other case.
- "modifyName"determines if the material should modify the name. This should only be used on the material that is set within the NIF as the default material or use the same values as the default textures/shader values for the NIF. Having them mismatch won't cause any errors but your users will see a difference when loading the game or equipping their armor set.
- Distribute the MSF config JSON with your mod. The name of the JSON can be anything as every JSON in that folder is read.
- ???
- Profit
This roadmap is TBD and is subject to change. Things will be added but in versioning releases. Order in the list is not the order being worked on. I work full-time but I intend on trying to blitz the 1.0 release as soon as possible.
pre-1.0
the "get out the door" release
Applying BGEM materials to inventory equipment
Papyrus API to allow scripts to also edit materials
GUI to make config files with little work from mod authors
Material distribution to NPCs
Create an automated way of exporting Fallout 4 material records (in the case you're trying to do Fallout 4 armor ports)
post-1.0
the "everything else and then some" releases
Conditional materials based on rulesets (like Open Animation Replacer)
Add crafting recipes capability (if ya want it, completely optional most likely)
Extend material replacement to actors (skin, hair, animals, etc.)
Extend material replacement to static meshes
Extend material replacement to weapons
VR support (maybe. Big ole maybe.)
Source
As with any of my projects (first one on Nexus though lol), all of the source code is available here on Github. Forks and pull requests are open but must be done under the same GNU GPL license.
Credits
This list is not all-encompassing and will be updated as
necessary.
First, the xSE discord for all their help and answering my generally SKSE-beginner questions. Next, the team at OpenMW. Specifically, this PR to get me started with the file loading. While I didn't interact with them directly, their contribution to open source has been invaluable. CharmedBayron for his work with CommonLib (it's also the fork I used)
Maximusmaxy for answering my questions about NiOverride integration after seeing it's possible with ScreenArcherMenu
shad0wshayd3 for answering my questions about SKSE and CommonLib.
NullBody for API help with save data and being a sounding board for ideas
Expired for RaceMenu and NiOverride. Those projects alone made this truly possible.
Bethesda for making the engine of all time but a game I still love and enjoy to this day.