About this mod
Framework to open up the settlement system to editing by the community.
For Players: New controls and faster, more stable workshop scripts.
For Modders: Add new resource types, override settings, and generally change the way settlements work dynamically.
- Requirements
- Permissions and credits
-
Translations
- Ukrainian
- Turkish
- Spanish
- Russian
- Portuguese
- Polish
- Mandarin
- Italian
- German
- French
- Changelogs
If you use the Unofficial Patch - be certain that Workshop Framework comes AFTER it in your load order.
Next Gen Update Information
As of 2.4.0, Workshop Framework now works with the Next-gen update of Fallout 4. Players who have opted to stick with the pre-next gen version of Fallout 4 should still update, but also download the "Old-Gen Replacers" file, and overwrite the base mods files with those. This will ensure you have the latest fixes from WSFW, but still have the dll/pex files that support previous versions of F4SE.
Player Focused Features
- Faster and more stable Workshop scripts
- Settlement Import/Export system
- Automatically open/close doors in and out of Workshop mode
- Automatic Workshop Menu protection
- Fixes Pipboy Data screen issues
- Fixes the "Spectacle Island" problem
- No DLC requirements
- New Options via MCM/Holotape
- > Auto assign controls
- > Adjust max amount of food and defense settlers can operate
- > Adjust base robot happiness (eliminate the penalty if you like)
- > Make robots not count against your max population
- > and more!
Mod Author Focused Features
- Rewritten Workshop Scripts - faster and more open
- Completely backwards compatible* - no property names or function signatures were altered
- Adjust any workshop value on the fly - no more hard coded variables
- Simple API for advanced functionality for folks who can only code a little (ex. Dynamically place workshop items like Sim Settlements does with just a few lines of code)
- 50+ new workshop values you can apply to workshop items to create new more interesting bonuses for players
- Add your own workshop values for production and consumption with just a single line of code
- High-capacity, easily expandable threading system
- New Container System to route production to more than just the Workshop Container
- Uninstall-safe injection to change workshop production, settler pool, and more
- Automatic workshop menu protection means no more need for uninstall chems for workshop mods.
- Settlement Layout Import/Export system can be extended and code driven for powerful automated settlement building.
- UIManager system to offer simple access to complex UI interactions such as using barter menus for player option selection.
- Easy-to-use scripts for complex workshop items such as display racks, cluttered surfaces, and vendor inventory display.
- HUDFramework abstraction layer to handle automatic detection, throttling, and communication so you can include HUDFramework calls throughout your code without worrying if the player has it installed or not.
- Including new easy-to-use Progress Meters system!
- Completely open-source and community driven
* Any other mods that altered workshop scripts will break this and are likely incompatible. The exception is the Unofficial Patch which should be placed before this in your load order so that the additional script changes made by Workshop Framework will overwrite the UFO4P versions.
New in 2020 - Settlement Layout System
Overall Goal
The goal of Workshop Framework is to open up the settlement system so we can do more interesting things with it.
Adjusting most of the behavior of settlements requires adjusting the Workshop scripts - and as soon as you do that, you are incompatible with all other mods that want to edit that same script. Since the Settlements are controlled with just a few scripts - many things you may have thought would be simple, basically never got made into mods because people don't want to deal with the hassle of having edited vanilla scripts.
No more! Workshop Framework completely rewrites many of the base workshop scripts and introduces tons of hooks, new options, and eliminates most hard-coded variables so that tons of mod authors can release mods editing just the part of the settlement system they want to change.
Easy-to-Use Advanced Systems
On top of opening up the scripts, I've added several advanced systems presented in a simple way, so that even people without a massive programming background can contribute new mods and functionality that add very powerful changes to settlements. For example, much of the code that makes the Sim Settlements City Plan's work is now a core system in Workshop Framework so that anyone with a little bit of coding experience can dynamically place large swathes of objects in a settlement on the fly!
Design Philosophy
When designing this, it was important to me that the core gameplay functionality of settlements is completely unaltered by this framework. If you install this in your game, you should notice no difference other than the few bugs it fixes and an overall performance increase with settlement related activities. All gameplay options are left intact, and always will be.
That said, somethings will work wildly different behind the scenes in order to open new options for adjustment, so while players can safely install this without thinking about it, if you are a mod author - you are likely very concerned about what this is doing! So to alleviate your fears, I offer the following:
- I have not altered any vanilla property or function signatures. If you are currently expecting a function or property from the existing workshop scripts - it's still there, so your code will not break.
- I will never alter property names or function signatures of anything in Workshop Framework now that it is released. Any time I'm forced to adjust a function, I will leave the original version in tact and simply point it to the updated version. This way you can be confident your mods based on WSFW will continue to work from version to version.
- I will do everything in my power to keep this code bug-free, and am open to suggestions and improvements to the code base so that we can all have a flexible, powerful core to work from.
Documentation
For complete documentation, head to the Github repo.
Demo Mod
The optional file is a demo mod, not meant for widespread usage. It is designed to show the potential of certain parts of the code, and allow people who want to see these features expanded on and improved test them out quickly to help give me feedback and bug reports.
v1.0.0 - All friendly NPCs will have an alternate activation called Recruit. This will allow you to convert virtually any NPC to a settler and send them to one of your settlements. (This is made possible by a code overhaul in version 2.0.0 of Workshop Framework). Note that these NPCs will not work with Sim Settlements plots due to the way plots are coded currently (this will change in some future version of Sim Settlements).
Script Override
The optional file "Workshop Framework Script Override" will allow you to fix an issue that comes up from other mods accidentally including versions of the Workshop Scripts that Workshop Framework updates. (Including vanilla scripts is a common problem for new mod authors as the Creation Kit will automatically include many vanilla files when it packages up mods for upload).
When you load into the game with Workshop Framework version 2.2.2 or higher, it will test your workshop scripts to see if any are overwriting it's versions, and if so will recommend this file to you as a potential solution.
The esp file itself is empty and is merely there to ensure you can load up its ba2 file which has additional copies of the 4 major workshop scripts. If you are using this file, it should always be the very last file in your load order!
Open Source and Permissions
While this is open-source, and anyone has permission to make use of pieces of code found inside of these scripts, please do not release new versions of the exact same named scripts, or release things based on the code that would interfere with what this mod is trying to achieve. The idea is that this framework will become a central staple we can all build on without compatibility issues.
The Future
- Continue Improving the speed and stability of the Workshop scripts.
- Flesh out and expand the API.
- Add more hooks to allow doing other things the community dreams up (drop by the Github repo to join in the discussion or even get in on the development!).
- Add additional advanced systems that more mod authors can take advantage of to add extra functionality to their mods without the need for a programming background.
Special Thanks
1000101 - For helping me develop the threading system and allowing me to use his thread locking code!
Arthmoor and the rest of the Unofficial Patch team for allowing me to use their Workshop fixes!
Woodfuzzy, Krazyhorse, and Moonbeam for testing the crap out of this so I could feel comfortable releasing it...