FAQ
Q. I enabled Collections in the MCM but nothing is visible.
A. The default SHSE installation is conservative and does not install Collection Groups for plugin load. Check out The Basics item 3. for how to move them to the right location.
Q. I installed the Examples and they still don't work.
A. Collections inevitably depend on a particular Load Order. The Examples are primarily informational, though they may work all or in part out of the box depending on what you have installed. For example, the LoTD Collection Group file for Museum Displays in Collections/Examples/SHSE.Collections.LoTD.json references LoTD Patches Merged.esp from my Load Order. The 'base" LoTD Collections from LegacyoftheDragonborn.esm will probably work but the displays for its patches, which I have merged to that ESP, will be missed. If you have LoTD and patches installed, this Collection Group file can be rebuilt for your own setup by running the supplied Edit Script Collections/Edit Scripts/SHSE Find Collectible FLSTs.pas in SSEEdit. This approach is possible because the LoTD added game data is very well organized, with consistent naming for lists of items in each Museum Display.
Q. Collections works OK but I'd prefer it if it behaved in such and such a way ....
A. v1.5 is a Proof of Concept to avoid baking bad assumptions into game saves without getting user input. V2.0 adds Saved Game persistence so state is not lost on every reload - that's where changes and additions can be made, so please let me know what you do and do not like.
Q. My favourite mod has a bunch of unique items but I don't use LoTD OR there is not a Museum Display for this mod. How can I collect the mod's added uniques?
A. There are two possiblities: clone and customize the supplied Edit Script to get your mod's added items, or manually configure a Collection for those items. I am available to help with both. Right now there is too much manual work in setting this up and it's good for everyone if this is easier.
Q. I reloaded my game and now my Collections are reset in MCM, what's up with that?
A. Prior to v2.0, Collections State is not persisted across a game save/reload. Collections are reset on every saved game load. You can remove items from Followers and Storage locations to player inventory to ensure all your previously-collected items get listed. Pre-v2.0 this is probably an exercise in frustration, though, as it resets on each saved game load.
Q. I bought an item from a Merchant or picked it up by hand. Won't that bypass Collection handling by SHSE?
A. No! Because not all items are auto-looted, Player Inventory is scanned to ensure new items are properly identified as Collection Members.
Q. I enabled Collections and now I see spam output of Collection items being gathered every time I reload from a saved game.
A. Prior to v2.0, Collections State is not persisted across a game save/reload. The periodic scan of Player Inventory must handle the entire Inventory on the first pass after a saved game load. This is verbose if you are carrying a lot of Collectibles waiting to be displayed in your Player House.
Q. How many Collections and Collections Groups are supported?
A. Because Papyrus has a magic number 128 as maximum array size, the limits are 128 Collection Groups (JSON files), and each file can contain up to 128 Collections. [Mod performance is not guaranteed to be maintained at these limits...]
What are Collections?
A Collection is a set of in-game items that can be described in words, but is hard to configure for reliable auto-looting using regular SHSE autoloot rules. With the regular autoloot rules it's provably impossible to guarantee that you will auto-collect every item of interest without compromising in your settings and manual review:
The result is that you have to configure clutter with low Value/Weight and manually sift in inventory for interesting unique items. This really negates the purpose of the mod, which is to prevent the need to manually sift a lot of cruft for cool stuff. It just relocates the item management problem from the container to the player's inventory.
Some possible Collections:
A set of related Collections can be managed using a Collection Group. A typical Collection Group name might be LoTD or My Uniques. Within a Collection Group, a typical Collection name might be All the Circlets, Bad Gremlins, Skyrim Unique Treasures. Check out the example Collection Group files
- Collections/Examples/SHSE.Collections.Samples.json
- Collections/Examples/SHSE.Collections.LoTD.json
to get a better idea of how this fits together.
The Collection Group name is used to manage the grouped Collections in-game via the MCM, so choose a name that makes sense to you in that context.
The Basics
You need the following prerequisites in place for this to work.
- v1.5.0.0 or later installed
- Collections must be enabled in INI or MCM. I hope this is self-explanatory but let me know if not.
- Collections-related JSON files need to be copied to the same directory as the plugin DLL. You must have the Schema file SHSE.SchemaCollections.json as shipped, plus one JSON file per Collection Group containing your Collections. The name of a Collection Group file is always SHSE.Collections.{group name}.json, where your desired Collections Group name goes in the placeholder shown. The screen shot above shows MCM being used to manage Collections from my Collection Group file SHSE.Collections.LoTD.json. A working installation is shown below:
Collection Groups
A Collection Group is represented by text data in a single JSON file. Thees files contain Collection Definitions that conform to the JSON schema shipped with the mod. This schematization means that the mod does not have to worry about hand-validating the JSON for syntax, though an invalid Collection can still be set up if the input values don't match your Load Order, for example.
There are two samples of Collection Group files in the v1.5.0.0 zipfile under Collections/Examples. These files match my Load Order and will almost certainly need tweaking for a particular user's setup.
- SHSE.Collections.LoTD.json - this is generated in SSEEdit by running the Collections/Edit Scripts file SHSE Find Collectible FLSTs.pas and renaming the output. At present this generates a file with one Collection per Legacy of the Dragonborn Museum Display. This Edit Script runs just like any other after being copied to the right place in your SSEEdit installation. It outputs a text file Edit Scripts/SHSE.Collections.PutGroupNameHere.json which should be usable in-game after renaming.
- SHSE.Collections.Samples.json - this was hand generated for my Load Order to show some of the ways items can be filtered into Collections. I plan to get more of them scripted like LoTD. What mods get support depends largely on user requests.
MCM Configuration
There is a new page for Collections to manage and review your configured Collections. This handles
- enabling of the feature
- selection of Colleciton Group to manage from the menu in the left pane
- management of Collections in the currently-selected Collection Group via the right pane
- the Collection to manage is selected via the menu in the right pane.
- what action to take when a Collectible item is detected (leave/take/glow)
- whether to print a message when a Collection member item is received for the fist time
- whether to treat items seen more than once as Cillectible after the first time. If not, they'll be handled using the other SHSE rules you have set up, after the first time.
Troubleshooting
- The SKSE plugin log SmartHarvestSE.log contains information about Collections Load and Contents in the shipping mod. If you cannot get this to work, check there and/or send me the log on the Forum Thread assigned for that purpose and we can review together.
- The validation utility Collections/JSONTest/JSONTest.exe is shipped with the mod. Run this in the directory where your JSON Schema and Collection Groups are saved. This might be the mod directory SKSE/Plugins, but more likely a separate directory where you are defining Collections before trying in-game.
Planned and Possible Enhancements
- v2 of SHSE will persist Collected Item state to the saved game. I did not want to do this without getting feedback on the feature, as once we do this changes will be more work to make.
- automate scan of Player House for Collectibles, to ensure your Collections properly reflect all your Collected items
- expand the Edit Script, or create new ones, to handle more mods. Priority of implementation depends on what people want to see as Collectible out of the box.
- display of Collection Item information for Collected and (optionally) not-yet-Collected items: a list of items, when and where each item was Collected
- mini-game to explore for a random missing item - "I want to complete the LoTD NS Fairies display, give me a hint where I can find one that I don't have yet".
0 comments