Jump to content
  • entries
    62
  • comments
    118
  • views
    8216

When during planning Future and Past meets


Nonseen

261 views

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

BigOnes69

Posted

Dont allow items in certain slots when player is slave. That way its simple. I think all the systems recognize the slots for clothing. Correct??????

Nonseen

Posted

30 minutes ago, BigOnes69 said:

Dont allow items in certain slots when player is slave. That way its simple. I think all the systems recognize the slots for clothing. Correct??????

vannila papyrus has no function to check slots. at least not originaly, if i use slot check with papyrus command:

Function UnequipItemSlot(int aiSlot) native

i might lose SE, LE compatibility.( creation kit wiki i have acces statates 1.6 version or higher required, SE is 1.5.97 version.... )

if i use any other slot aminpulating script i need use SKSE.

killer905

Posted

Everything is taken from the PC, right? So I think you can use simple functions like PC in Collar, and what he has in EQ will be strictly controlled. You can also try searching the PC for items he cannot have.

 

In my opinion, there is no point in adding the requirement for 2 DLCs from (1.6.XXXX). You will unnecessarily limit the audience for your mod.

 

The ESL flag only makes sense if the mod doesn't add too much, but if you want to think long term, then in my opinion you have to stick with esm and esp. You never know how big a mod can be at end 2026, right?

Nonseen

Posted

7 hours ago, killer905 said:

Everything is taken from the PC, right? So I think you can use simple functions like PC in Collar, and what he has in EQ will be strictly controlled. You can also try searching the PC for items he cannot have.

 

In my opinion, there is no point in adding the requirement for 2 DLCs from (1.6.XXXX). You will unnecessarily limit the audience for your mod.

 

The ESL flag only makes sense if the mod doesn't add too much, but if you want to think long term, then in my opinion you have to stick with esm and esp. You never know how big a mod can be at end 2026, right?

i thinked a lot and probably the solution is this:

 

consider the LE,SE and AE support files are separate mod, make a new interface function to my main API controler module to handle this files.

AE file of corse need contain LE,SE file. this way only one extra file put in use ( need duble think of corse ).

 

the ESL file probably need gone yes and use esp file. for long term solution in case thigns go grow... curently the mod( SlaversOfSkyrim.esm) nearing the limit of AE LSE form count limit 352 form id to go. I reaching this point with prototype level content not even full. so yes esp is the way in case growing.

 

this sulition make maximum flexibility and if one wish to save esp slots realtive easy to use xedit to merge form lists. i probably go this rute but still continue thinking for better ways.

sfdrake

Posted

you need certain items ignored?? key item distributor maybe??? make an ignore list.....
you could also look into compatiblity with captive follower and captive player....bothbydarkdesire

Nonseen

Posted

15 hours ago, sfdrake said:

you need certain items ignored?? key item distributor maybe???

what is key item distributor? i never heard about it.

 

15 hours ago, sfdrake said:

you could also look into compatiblity with captive follower and captive player....bothbydarkdesire

the mods you referenced has some special solution to make the mod it self compatible with others?

a_random_user

Posted (edited)

  

On 8/6/2025 at 8:47 PM, Nonseen said:

vannila papyrus has no function to check slots. at least not originaly, if i use slot check with papyrus command:

Function UnequipItemSlot(int aiSlot) native

i might lose SE, LE compatibility.( creation kit wiki i have acces statates 1.6 version or higher required, SE is 1.5.97 version.... )

if i use any other slot aminpulating script i need use SKSE.

 

This didn't seem right to me, and I went and checked. It mentions Skyrim version 1.6, not Skyrim Special Edition version 1.6.

Those are not the same thing, Skyrim version 1.6 came out in 2012. Everything in it is included in special edition. Using that function will not lose you any compatibility (unless you find someone who hasn't updated their version of oldrim for 13 years)

In fact, that page hasn't been updated since 2019, before Special Edition 1.6 even existed.

 

Skyrim's version numbers are cursed. And it doesn't help that we as a community use different names than Bethesda does.

Edited by a_random_user
Nonseen

Posted

On 8/8/2025 at 1:36 AM, a_random_user said:

  

 

This didn't seem right to me, and I went and checked. It mentions Skyrim version 1.6, not Skyrim Special Edition version 1.6.

Those are not the same thing, Skyrim version 1.6 came out in 2012. Everything in it is included in special edition. Using that function will not lose you any compatibility (unless you find someone who hasn't updated their version of oldrim for 13 years)

In fact, that page hasn't been updated since 2019, before Special Edition 1.6 even existed.

 

Skyrim's version numbers are cursed. And it doesn't help that we as a community use different names than Bethesda does.

https://en.uesp.net/wiki/Skyrim:Skyrim

 

says:

oldrim realised 2011

LE realised 2013

SE realised 2016

AE realised 2021

 

you right the wiki page for this function write this:

Quote

UnequipItemSlot - Actor
Jump to navigationJump to search
Member of: Actor Script (Requires 1.6)

 

i not sure its refers skyrim version 1.6 or Special Edition 1.6.xxx

i aggree with you to many version of skyrim exist.. not counting the version numbers. :( 

On 8/8/2025 at 9:30 AM, sfdrake said:

thank you for the link!

this SKSE plugin i belive work wonders in many cases. :) i not sure i going to use it but good to know its exist.

 

at least i found a solution to my problems, in my latest bog post i write it down in detail.

a_random_user

Posted

2 hours ago, Nonseen said:

i not sure its refers skyrim version 1.6 or Special Edition 1.6.xxx

I'm 100% certain that it refers to Skyrim 1.6, not Special Edition 1.6 (aka AE). I went through the history of that page, and the (Requires 1.6)  was written in June 2012. 

I have also tested this with other functions that say they require 1.6, and they worked on my unupdated Special Edition 1.5.97.

 

I still don't understand why Bethesda didn't start their version numbering of SE on 2.0. Skyrim's last update version was even 1.9, it would have been so logical, but no, they reset their version numbering.

×
×
  • Create New...