When during planning Future and Past meets
Dear Readers!
I hit a wall again, this alone not a new thing, I always do it. This wall called compatibility.
This big wall of text i explain the problem, possible sulutions, and my conclusions. I open to any suggestion how to solve this!
-------------------
The Context:
-------------------
As you may know I working on an item management system that makes possible to limit what items player allowed to carry/wear and what is not. To keep my mod fully independent from other mods I not use SKSE.
This means I have no access to a lot of papyrus functions that make a lot easier any item management, and may or may not be compatible with LE or Oldrim (I not checked).
So my solution for item management is the following:
Using basic papyrus functions I can only ask:
- player wearing a specific item
- player inventory contain a specific item and if yes how many?
To ask the system these questions I need to know the item I wish to ask. The item identification number (official name: FormID).
This means I need a list of all possible items. Plus need a list of items that player ALLOWED to carry/use during slavery.
All in all my system 4 type of items:
1. All inventory item lists
2. All allowed inventory item lists
3. Player added item lists
4. Items that not on any list
Point 1, 2 type of items made and managed in Creation Kit, or XEdit. Point 3 items managed in game by player, point 4 is the items that not on any list but exist in game. These items ignored by my system.
I done this on purpose: so many mods exist and many unique items with unique purposes. My mod may cause various problems if remove specific items from player inventory or equipped items.
So if my system don't know an item ignore it, this way not cause problems.
I on purpose separate player added item list to normal item lists. Player more probable make mistake and add items to wrong item list.
For this reason I made separate list so more easy to reverse any error made during in-game play.
All inventory and allowed inventory item lists made in Creation Kit by hand. These items expected safe to manipulate. These item lists edited during run time when supported mod detected that adds new items to game.
(at the time of writing only Zaz items managed, this going to extended later to Toys too (as this mod supported)).
-------------------
The Problem:
-------------------
Currently the mod requires only Skyrim.esm
This makes possible the mod should work well with Oldrim, LE (confirmed), SE (confirmed), AE (confirmed).
Nearly all DLC added new items. If I add these items to my lists in SlaversOfSkyrim.esm this file going to depend on the DLCs.
This means I lose Oldrim compatibility (ok LE compatibility remain).
It's maybe okay for many as Oldrim 11+ year old...
The recently patched Special Edition (1.6.XXXX) come with 2 new "DLC" both come with new items. If I add these items to my SlaveryOfSkyrim.esm my mod lose LE, SE compatibility.
This probably not okay many-many users...
-------------------
Solutions:
-------------------
A. Make a script that checks what original master file available and based on form ID load and add the items to relevant form list.
This probably provide the best compatibility with all versions, in theory it can work. But what cost?
We talking here lot of items, all item form ID need found manually and placed to the script. This script probably going very very long, insane hard to manage change, plus relatively long time to run.
Okay probably not need run very often only when for any reason need reset the item lists.
Making this script not feasible due time constraints.
B. Make ESL flagged ESL files that edit SlaversOfSkyrim.esm.
- One for LE
- One for AE
Well this is a solution yes, it solves all problems, at least in short term.
True this 2 file adds the required items to the item lists. In future may become a road block for many, here is why:
- LE case the ESL files need used as ESP. So LE users need merge the LE version .ESL file to SlaversOfSkyrim.esm to slave slot.
-SE, AE case: when the content production time comes I might add slaver bases to Solstheim too. This means I need Dragonborn.esm... I not sure SE ESL file format limit can handle that record number. I might able to use tricks like: Create interiors in SlaversOfSkyrim.esm and place entrances to it within the .ESL files. This maybe a way. But it's still a strong limiting factor.
Other problem: what if I chose to merge the ESL flagged files to main file? The save files that made during the ESL flagged file era not going to receive support and unable to play with the newest versions.
I need think long term...
C. Make Oldrim compatible and LE+SE and AE compatible version and keep them up to date all the time.
This means 3 separate versions of the same mod. In theory it's possible, to always copy from one version to another the forms... but it's soul killing and this means I need test 3 different versions of the same mod.
D. Ignore all items that come with new officially released versions, if player wish to be handled player may use in-game option to add the lists.
This way full compatibility preserved.
E. Make an ESL flagged ESL file that contain XEdit or Creation Kit usable form lists. Users need add to these form lists the armors that they wish to add to the system. This requires XEdit or Creation Kit usage.
User-made files can be shared freely with my permission. These ESL files as long as use different name do not conflict. The ESL flagged file contain a very simple universal script that adds the form list content to SlaversOfSkyrim.esm main lists.
This way "patching" the master file to the user needs. This should provide maximum flexibility and meet all user preference but the cost of user's time and energy.
-------------------
Conclusion:
-------------------
There is no perfect, HELL even good solution to this. Only acceptable ones, if any.
I still thinking and looking for solutions, minimum good one. If any of you know any good solution let me know!
10 Comments
Recommended Comments