Thrallmaster Posted Sunday at 09:36 PM Posted Sunday at 09:36 PM (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 The current status of slave slots in use can be viewed. 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.) 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 Sunday at 09:42 PM by Thrallmaster 2
TrollAutokill Posted Monday at 02:35 PM Author Posted Monday at 02:35 PM (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 The current status of slave slots in use can be viewed. 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.) 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 Monday at 03:09 PM by TrollAutokill 1
Thrallmaster Posted Monday at 04:57 PM Posted Monday at 04:57 PM (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 Monday at 05:33 PM by Thrallmaster 3
pdd001 Posted Tuesday at 02:03 PM Posted Tuesday at 02:03 PM Hey i tried stable captives and my slaves outfit get delete after sex, is this a new problem or should i do something?
TrollAutokill Posted Tuesday at 02:35 PM Author Posted Tuesday at 02:35 PM 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.
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now