Only required if you have other spell mod(s) in your load order
Permissions and credits
Credits and distribution permission
Other user's assetsAll the assets in this file belong to the author, or are from free-to-use modder's resources
Upload permissionYou can upload this file to other sites but you must credit me as the creator of the file
Modification permissionYou must get permission from me before you are allowed to modify my files to improve it
Conversion permissionYou can convert this file to work with other games as long as you credit me as the creator of the file
Asset use permissionYou are allowed to use the assets in this file without permission as long as you credit me
Asset use permission in mods/files that are being soldYou are not allowed to use assets from this file in any mods/files that are being sold, for money, on Steam Workshop or other platforms
Asset use permission in mods/files that earn donation pointsYou are allowed to earn Donation Points for your mods if they use my assets
Author notes
This author has not provided any additional notes regarding file permissions
File credits
Special thanks to Norbyte for the script extender!
Donation Points system
Please log in to find out whether this mod is receiving Donation Points
Changelogs
Version 1.4.4
Fixed host Spell Lists not replicating to clients in multiplayer (hopefully)
Changed when load order is acquired (fixes mid-game loading)
Changed `custom_lsj` config variable to `custom_lsj_files` for clarity
Removed `custom_lsj_files` default value
Added visible output to some console commands so it's obvious they succeeded
Fixed error caused by spell with no DisplayName
Version 1.4.3
Mod load order is now retrieved separately from updating Spell Lists
Added "update_all" config variable (config files are still in testing)
Changed how mod spells are mapped; VanillaCache.lsj is no longer used for updating Spell Lists
Fixed error in `!uuidHelper` when a Spell List has no comment
Fixed console command registration logic
XMLParser: element text fields are now desanitized after parsing is complete
Version 1.4.2
*Really* fixed 5e Spells compatibility this time
Spell Lists are now only cached in server context
A valid cache file is now required to update Spell Lists in client context
Spell Lists that aren't updated will no longer be added to the cache
Changes to how console commands are registered
Added a use_cache config variable (config files are still in testing)
Consistency: "Spell List"
Version 1.4.1
Spell List updating is no longer stopped after running into one non-existent UUID
Version 1.4.0
Fixed 5e Spells incompatibility due to similar implementation
Moved more things around internally
Added two new console commands: !ReloadConfig and !UpdateSpellLists
Slightly changed config file reading logic
Added bugs
Version 1.3.1
Fixed sorting function trying to compare to a nil value
Added config file reading; file will be created on first game start
Moved things around internally
Version 1.3.0
The "Using file at ..." message now appears before attempting to read the file, in order to aid in debugging
Fixed some logical errors in dependency parsing
Fixed XMLParser not escaping magic characters
Fixed XMLParser comment handling
Version 1.2.0
Spells are now sorted by level (descending), and then name (ascending)
Spells are now sorted by localized Display Name instead of SpellData name
Fixed the 5e Spells mod modifying Spell Lists after they were sorted by Spell List Combiner
Console commands can be used in Server or Client context
Confirmation is logged in the console as console commands are registered
Empty UUID fields in SpellList lsj files will now be ignored
Fixed dependency version checking
Version 1.1.1
Fixes sorting for SpellData IDs with prefixes.
Version 1.1.0
Fixed Spell Lists getting truncated because of nil values
Console reports number of non-existent spells
Version 1.0.1
Added comment handling to my xml parser... oops
Version 1
Multiplayer support (hopefully)
Support for custom user-editable Spell Lists
Rewrote my xml parsing functions into a module
Spell Lists will now be cached, for quicker reading on subsequent runs; the cache will be rebuilt if the mod load order changes at all
Spells will be sorted by their spell level within Spell Lists
I tried to include a small comment to describe the use of each function
Lots of small changes to the underlying scripts
Version 0.9
Initial release
Allows mods to add spells to Spell Lists without overwriting each other. Note: This mod doesn't change spells themselves, only which Spell Lists they appear on. If you have multiple mods that overwrite the same spell, Spell List Combiner will have no effect on which one appears in-game. This mod is for Spell Lists, e.g. the list of spells that a sorcerer can pick from when they level up.
Combines Spell Lists from all installed mods together
Allows user-level custom Spell List edits without the need to make a mod
Supports a simple JSON format for Spell Lists
Sorts spells by level and then name within their Spell Lists
Spell Lists are cached after the first time they're read, for faster updating on subsequent runs
Load Order You can place Spell List Combiner anywhere in your load order. Since the important code is executed based on engine events (after all mods are already loaded), whether SLC is loaded before or after your spell mods shouldn't matter at all.
Multiplayer It does work in multiplayer! From my (limited) testing, only the host needs to have Spell List Combiner and spell mods installed, and the Spell Lists will be shared across all clients. You must have a valid cache file before hosting a multiplayer session. Cache files are created when loading a game, and become invalid when your mod load order changes in any way. If it doesn't work for you, please make a bug report! My understanding of how multiplayer works is limited, and there's only so much multiplayer testing one man can do.
If you don't play the game in English... ...and you get any errors your suspect are due to localized name sorting, please make a bug report! I didn't test every language.
Why It's Needed Without this mod, mod makers have to include all previously added spells for each Spell List they want to change. This is a nightmare for compatibility, because any mods that adds spells to the same Spell Lists would overwrite each other's changes! This mod will automatically merge Spell Lists together, so mod makers can write Spell Lists with only the spells they add to the game, without worrying about Spell List compatibility. This is accomplished using Lua scripting with the script extender.
Custom Spell List Edits Using Spell List Combiner, it is possible to add spells to Spell Lists without creating a new mod. To do so, place a valid lsj file at Script Extender/SpellListCombiner/Custom.lsj (from the game documents folder). See the ReadMe for more details.