Jump to content

Recommended Posts

Posted (edited)

Stable Captives is now released in its first official version.
 

This mod was developed on DoM 8.4.1b and was created solely to fix the naked bandit bug in DoM/PAH/HSH/AYGAS. (It cannot be used with PAHE alone.)
 

It supports not only bandits, but all hostile spawning NPCs, including Forsworn.

In MO2’s mod order, this mod must be placed below DoM so that it overwrites DoM’s files.

1. MCM

 

Spoiler


image.png.6536c3f9dfe6e1ee4a44ca4f4846fb20.png

The current status of slave slots in use can be viewed.

image.png.571060461b9c8dfe04a535a86c468d93.png

Options are available for cleaning up slave slots and resetting all data.

(The Reset All Data option is a type of factory reset. FaceGen data will not be deleted, but all slave data from every save will be erased. This option must therefore be used with extreme caution. This action can never be undone.)

image.png.30a631f53b3c745e091a4d30f00cdbd5.png

A debug mode is available.
With the cursor aimed at an NPC, pressing F10 while the console is open displays the FaceGen path and ActorBase information.
 


2. Mechanism


The mechanism used to prevent naked bandit NPCs is relatively simple.
 

Player + DoM knocks down a bandit → DoM duplicates the bandit and enslaves the duplicate, while the original is marked for deletion →
Stable Captives mod captures the duplicated bandit in a unique ActorBase slot → Stable Captives loads all information for that NPC, including its FaceGen data →
The loaded slave data is treated as a unique NPC → The slot is saved and locked → DoM resumes full management of the NPC stored in the locked slot.

3. Slot Cycling + Cleanup and Management
 

Spoiler

All slots are used in a cyclic rotation system, with a maximum of 1,024 available slots.

When a slave is released and disappears from Tamriel, the slot previously occupied by that slave can be reused.
 

However, release through the DoM MCM was not modified because the DoM source code appears to use specific conditions to determine whether an NPC disappears. At present, slaves appear to disappear only when released through dialogue, but even this does not guarantee that they will disappear. Depending on their Mood state, they may return to being normal NPCs instead, so caution is required.
 

When a slave disappears, the corresponding slot is moved to the Retiring state. The slot can then be cleaned through the Reclaim option in the Stable Captives MCM. Alternatively, saving and reloading the game will clear the Retiring state and empty the slot.


(Warning: DoM/PAHE contains several items that can restrain slaves. (Example: “Iron Slave Collar of Leashing”)

If a slave is released while wearing an item of this kind, the slot will not be reclaimed. The slave’s inventory must therefore be completely emptied before release.)


4. For DoM developers
 

Spoiler

Stable Captives now works as follows:
 

- It copies the resolved spawned NPC’s ActorBase into one private template without modifying the original shared ActorBase.

- One NPC keeps the same slot while moving through DOM, PAHE, HSH and AYGAS.

- The pool contains 1024 templates with circular allocation.

- The DLL handles only ActorBase, FaceGen, visual scale and slot ownership. It does not modify factions, dialogue, aliases, AI or slave state.


The clone flags are:

0 = copy neither inventory nor ActorBase outfit 1 = allow DOM to copy the live inventory 2 = copy the ActorBase default/sleep outfit 3 = copy both


Example:

ActorBase targetBase = NoeActorClone.CloneBaseWithFlags(original, 0)
 

API 6 can optionally configure ActorBase flags and leveling after CloneBaseWithFlags() and before PlaceActorAtMe().

Player level ×4:

NoeActorClone.ConfigureActorBase( targetBase, 128, 0, 4.0, -1, -1, -1 )

Player level ×1, limited to levels 10–100:

NoeActorClone.ConfigureActorBase( targetBase, 128, 0, 1.0, -1, 10, 100 )

Fixed level 25:

NoeActorClone.ConfigureActorBase( targetBase, 0, 128, -1.0, 25, -1, -1 )
 

If ConfigureActorBase() is not called, the resolved source values are preserved. I think DOM should decide the preferred follower flags, leveling values and defaults.


Regarding release handling: if a released NPC remains in the world, its slot must remain Active.
If DOM permanently deletes it, DOM should call: NoeActorClone.ReleaseActorBase(actor)
 

The slot then enters Retiring and becomes Free only after deletion is confirmed.

If useful, DOM could provide an option for managed spawned clones:

- Existing DOM release behavior
- Always permanently delete managed spawned clones on release


The second option would use ReleaseActorBase() before DOM disables and deletes the actor. The exact option and default behavior are entirely your decision.

For more detailed information, please refer to For_Devs.txt.

 

A detailed mod manual is also included.
 

No further features will be added.
My role ends here, But for the time being, only bug reports will be accepted.


I hope this mod proves useful.

Stable_Captives_V1.0.zip

Edited by Thrallmaster
Posted (edited)
17 hours ago, Thrallmaster said:

Stable Captives is now released in its first official version.
 

This mod was developed on DoM 8.4.1b and was created solely to fix the naked bandit bug in DoM/PAH/HSH/AYGAS. (It cannot be used with PAHE alone.)
 

It supports not only bandits, but all hostile spawning NPCs, including Forsworn.

In MO2’s mod order, this mod must be placed below DoM so that it overwrites DoM’s files.

1. MCM

 

  Reveal hidden contents


image.png.6536c3f9dfe6e1ee4a44ca4f4846fb20.png

The current status of slave slots in use can be viewed.

image.png.571060461b9c8dfe04a535a86c468d93.png

Options are available for cleaning up slave slots and resetting all data.

(The Reset All Data option is a type of factory reset. FaceGen data will not be deleted, but all slave data from every save will be erased. This option must therefore be used with extreme caution. This action can never be undone.)

image.png.30a631f53b3c745e091a4d30f00cdbd5.png

A debug mode is available.
With the cursor aimed at an NPC, pressing F10 while the console is open displays the FaceGen path and ActorBase information.
 


2. Mechanism


The mechanism used to prevent naked bandit NPCs is relatively simple.
 

Player + DoM knocks down a bandit → DoM duplicates the bandit and enslaves the duplicate, while the original is marked for deletion →
Stable Captives mod captures the duplicated bandit in a unique ActorBase slot → Stable Captives loads all information for that NPC, including its FaceGen data →
The loaded slave data is treated as a unique NPC → The slot is saved and locked → DoM resumes full management of the NPC stored in the locked slot.

3. Slot Cycling + Cleanup and Management
 

  Reveal hidden contents

All slots are used in a cyclic rotation system, with a maximum of 1,024 available slots.

When a slave is released and disappears from Tamriel, the slot previously occupied by that slave can be reused.
 

However, release through the DoM MCM was not modified because the DoM source code appears to use specific conditions to determine whether an NPC disappears. At present, slaves appear to disappear only when released through dialogue, but even this does not guarantee that they will disappear. Depending on their Mood state, they may return to being normal NPCs instead, so caution is required.
 

When a slave disappears, the corresponding slot is moved to the Retiring state. The slot can then be cleaned through the Reclaim option in the Stable Captives MCM. Alternatively, saving and reloading the game will clear the Retiring state and empty the slot.


(Warning: DoM/PAHE contains several items that can restrain slaves. (Example: “Iron Slave Collar of Leashing”)

If a slave is released while wearing an item of this kind, the slot will not be reclaimed. The slave’s inventory must therefore be completely emptied before release.)


4. For DoM developers
 

  Reveal hidden contents

Stable Captives now works as follows:
 

- It copies the resolved spawned NPC’s ActorBase into one private template without modifying the original shared ActorBase.

- One NPC keeps the same slot while moving through DOM, PAHE, HSH and AYGAS.

- The pool contains 1024 templates with circular allocation.

- The DLL handles only ActorBase, FaceGen, visual scale and slot ownership. It does not modify factions, dialogue, aliases, AI or slave state.


The clone flags are:

0 = copy neither inventory nor ActorBase outfit 1 = allow DOM to copy the live inventory 2 = copy the ActorBase default/sleep outfit 3 = copy both


Example:

ActorBase targetBase = NoeActorClone.CloneBaseWithFlags(original, 0)
 

API 6 can optionally configure ActorBase flags and leveling after CloneBaseWithFlags() and before PlaceActorAtMe().

Player level ×4:

NoeActorClone.ConfigureActorBase( targetBase, 128, 0, 4.0, -1, -1, -1 )

Player level ×1, limited to levels 10–100:

NoeActorClone.ConfigureActorBase( targetBase, 128, 0, 1.0, -1, 10, 100 )

Fixed level 25:

NoeActorClone.ConfigureActorBase( targetBase, 0, 128, -1.0, 25, -1, -1 )
 

If ConfigureActorBase() is not called, the resolved source values are preserved. I think DOM should decide the preferred follower flags, leveling values and defaults.


Regarding release handling: if a released NPC remains in the world, its slot must remain Active.
If DOM permanently deletes it, DOM should call: NoeActorClone.ReleaseActorBase(actor)
 

The slot then enters Retiring and becomes Free only after deletion is confirmed.

If useful, DOM could provide an option for managed spawned clones:

- Existing DOM release behavior
- Always permanently delete managed spawned clones on release


The second option would use ReleaseActorBase() before DOM disables and deletes the actor. The exact option and default behavior are entirely your decision.

For more detailed information, please refer to For_Devs.txt.

 

A detailed mod manual is also included.
 

No further features will be added.
My role ends here, But for the time being, only bug reports will be accepted.


I hope this mod proves useful.

Stable_Captives_V1.0.zip 1.73 MB · 1 download

 

Checking your code, I see you edited DOM_Actor wrong. An actor in transfer or with high training can now be deleted. Also the delete should happen before the actorbase is released.

 

Anyhow I am going to implement your changes in DOM 8.5. So you don't need to include modded scripts. Just include the Stable Captives scripts.

 

You should create a page with just the mod files, like this:

 

 

 

Stable Captives V1.1.7z

Edited by TrollAutokill
Posted (edited)

 

2 hours ago, TrollAutokill said:

 

Checking your code, I see you edited DOM_Actor wrong. An actor in transfer or with high training can now be deleted. Also the delete should happen before the actorbase is released.

 

Anyhow I am going to implement your changes in DOM 8.5. So you don't need to include modded scripts. Just include the Stable Captives scripts.

 

You should create a page with just the mod files, like this:

 

 

 

Stable Captives V1.1.7z 407.27 kB · 1 download


OK.
I’ll make a few minor adjustments and create a separate mod page based on the files you provided. Any future bug fixes and related discussions will continue there.
 

 

Edited by Thrallmaster
Posted
31 minutes ago, pdd001 said:

Hey i tried stable captives and my slaves outfit get delete after sex, is this a new problem or should i do something?

 

Try to disable the bundle inventory in the DOM MCM equipment. Your outfit is probably in there.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...