Jump to content

Recommended Posts

Posted
9 hours ago, Bane Master said:

If you send me your modified detection code I'll compile it - then you can test (I don't have VR)

 

Bear in mind though that isModInstalled uses IsPluginInstalled because it detects both normal and light plugins - GetModByName does not, so it's not an option for Non-VR SE/AE users 

 

I've attached my version of fsm_utilityscript.psc (renamed to a text file) which changes the isModInstalled function with detection of SkyrimVR, while changing as little of the previous detection methods as possible to try to avoid breaking LE/SE/AE. I have done some limited testing in VR (by plugging this into another dummy mod and running the detection scripts on game load) and the modified code now correctly detects SexLab.esm on SKSEVR whereas the previous code didn't. I also tested SE and it seemed to work as before). The one thing I can't test the snippet with is LE, since I don't have an LE install.

 

3 hours ago, Hex Bolt said:

For what it's worth, Quest.GetQuest() should be a version-neutral way to detect the presence of any mod, as long as the mod has a quest with a unique editor ID.

 

This is probably true, although I did not want to rewrite the portion of the code in that way since I don't have the ability to fully test by building FSM myself.

fsm_utilityscript.psc.txt

Posted (edited)
3 hours ago, CommandoCats said:

I've attached my version of fsm_utilityscript.psc (renamed to a text file) which changes the isModInstalled function with detection of SkyrimVR, while changing as little of the previous detection methods as possible to try to avoid breaking LE/SE/AE

Thanks - a couple of questions if I may:

 

If VR (from looking at your code) has  the SkyrimVR.esm as a VR specific master then rather than use GetFormFromFile couldn't we just use

 

bIsSkyrimVR = ( Game.GetModByName("SkyrimVR.esm") < 255 )

 

Secondly -does the VR Version of PO3's extender have the Game  function IsPluginFound?


bool Function IsPluginFound(String akName) global native

 

If so - that might be an alternate solution to this issue!

 

Edited by Bane Master
Posted
6 hours ago, Hex Bolt said:

For what it's worth, Quest.GetQuest() should be a version-neutral way to detect the presence of any mod, as long as the mod has a quest with a unique editor ID.

 

Thanks 🙂 - I have also used this method before, but have also run into issues in the past with subsequent changes to mods or multiple mod forks with different quest names so I have avoided it as far as possible.

Posted (edited)
2 hours ago, Bane Master said:

Thanks - a couple of questions if I may:

 

If VR (from looking at your code) has  the SkyrimVR.esm as a VR specific master then rather than use GetFormFromFile couldn't we just use

 

bIsSkyrimVR = ( Game.GetModByName("SkyrimVR.esm") < 255 )

 

Secondly -does the VR Version of PO3's extender have the Game  function IsPluginFound?


bool Function IsPluginFound(String akName) global native

 

If so - that might be an alternate solution to this issue!

 

For the first question, yes it seems like simply calling GetModByName on "SkyrimVR.esm" is more general than looking for a specific form ID that might change if SkyrimVR is ever updated (fat chance, but we've seen weirder stuff come from Bethesda). This method seems to also be used by other mods:

For the second question, unfortunately I did a search in the SKSEVR source, and IsPluginFound is similarly not part of SKSEVR, like GetModByName. I suspect it was overlooked because SkyrimVR is itself forked from a very old version of Skyrim SE, and nobody bothered to port some of those SKSE functions over, but I don't see any reason why nobody merged those improvements back.

 

I didn't realize at first IsPluginFound is part of PO3's Papyrus Extender and yes, it is also found in PO3's Papyrus Extender for VR, so this may be a version neutral way of detecting for other mods.

Edited by CommandoCats
Posted
7 hours ago, Bane Master said:

 

Ok - then hopefully we have a simple solution!

 

The attached version uses PO3's IsPluginFound and detects both Light and Normal Plugins in AE/SE, give it a try in VR and see if it solves your issue.

Follower Slavery Mod V1.72 - VR Fix RC01.7z 183.01 kB · 1 download

Thanks a ton for this, it works correctly in VR now and detects Sexlab. Oddly it was always able to detect Defeat in VR, even though it used the same codepath.

Posted

Добрый день. Возникла проблема, после установки Follower Slavery Mod V1.613, v. 1.700? v.1.700, v.1.710. Все работало нормально. А после установки v.1.720, мод не запускается. Как это исправить? Спасибо!

 

Spoiler

15-05-202509_37.jpg.f34408c1f5d8ac276dc5f3664fe31a02.jpg15-05-202509_38.jpg.d825fff72309e8cb57801d8da86de93c.jpg

 

Posted
39 minutes ago, pere20 said:

Добрый день. Возникла проблема, после установки Follower Slavery Mod V1.613, v. 1.700? v.1.700, v.1.710. Все работало нормально. А после установки v.1.720, мод не запускается. Как это исправить? Спасибо!

 

  Hide contents

15-05-202509_37.jpg.f34408c1f5d8ac276dc5f3664fe31a02.jpg15-05-202509_38.jpg.d825fff72309e8cb57801d8da86de93c.jpg

 

To fix that: 

1-remove the mod entirely

2-load your save

3-save and exit

4-reinstall the mod

Posted
22 minutes ago, Castoli said:

Чтобы исправить это:

1-полностью удалите мод

2-загрузите свое сохранение

3-сохраните и выйдите

4-переустановите мод

 

Да я это ужу делал, полностью удалил мод, С помощью SSEEditQuickAutoClean — очистил моды в игре Skyrim SE. Очистил Сохранения с помощью - FallrimTools 2022-6-0-481, потом снова установил мод, но ничего не изменилось!

Posted
1 hour ago, Castoli said:

Чтобы исправить это:

1-полностью удалите мод

2-загрузите свое сохранение

3-сохраните и выйдите

4-переустановите мод

Все работает. Спасибо!

  • 2 weeks later...
Posted (edited)

I have suggestion expanding on the random approaches if a follower is equipped with a device where the approach utilizes SL aroused Redux keywords on equipment i.e. if a follower is wearing an armor that has the erotic armor keyword or even if they are completely stripped that they might have a chance to get approached by bystanders.

Edited by darkhold2500
Posted (edited)

hi, i want to ask whether is it possible to add options for random npcs to try enslave followers that are not bounded by DD?

currently, random npcs will only target followers that are heavily bounded? correct me if im wrong

 

scenario:

1) i use Follower Live Package mod, the followers will randomly run around town to collect items

2) if npc can ignore the DD, they'll attack and try to enslave a follower anywhere in town

3) as player, you'll have to quickly run around town to try save your follower within 60 seconds (assuming end of event and start of enslavement)

Edited by kekwlulz
Posted
6 hours ago, kekwlulz said:

hi, i want to ask whether is it possible to add options for random npcs to try enslave followers that are not bounded by DD?

I'm unlikely to add that to FSM  but it could be created as a separate  mod using FSM's API for the actual enslavement if you (or anybody else) wants to develop the idea.

Posted
5 hours ago, Bane Master said:

I'm unlikely to add that to FSM  but it could be created as a separate  mod using FSM's API for the actual enslavement if you (or anybody else) wants to develop the idea.

ah well, too bad i ain't skilled enough to develop

 

cheers to your mod though

will test it out to see if it works with light stuff like collars/cuffs

  • 2 weeks later...
Posted

Hello, I've been trying to find a way by myself for a few days, but I haven't come up with a suitable solution, so I'm writing here in the end.
I'm trying to free up my currently enslaved follwer by purchasing it to a nomal male npc, but he just repeating that is not for sale and come back in a few days.
The problem is that this problem has been repeated for a few days in game time.
Even if you increase the sales probability from mcm to 100%, he still refuse to sell it, and if you go back in day later, it's been sold to another npc and moved.
And I've heard rumors from the inn and the guards that I can find my follower.
But even passing few days, I didn't see any such dialogs, so I ended up having to locate my follower in mcm.

Posted
2 hours ago, fevermam said:

Hello, I've been trying to find a way by myself for a few days, but I haven't come up with a suitable solution, so I'm writing here in the end.
I'm trying to free up my currently enslaved follwer by purchasing it to a nomal male npc, but he just repeating that is not for sale and come back in a few days.
The problem is that this problem has been repeated for a few days in game time.
Even if you increase the sales probability from mcm to 100%, he still refuse to sell it, and if you go back in day later, it's been sold to another npc and moved.
And I've heard rumors from the inn and the guards that I can find my follower.
But even passing few days, I didn't see any such dialogs, so I ended up having to locate my follower in mcm.

 

The delay before non-hostile masters will sell to you is not set by the sale % in the MCM - it's set by the Maximum Rumour delay (Non-Hostile)

 

Hostile masters will not sell slaves to the player.

 

Changing the maximum rumour delay only affects new slaves it won't change the delay for existing slaves.

 

If you can't wait for some reason then using the MCM is the way to free them immediately 

Posted
9 hours ago, Bane Master said:

 

The delay before non-hostile masters will sell to you is not set by the sale % in the MCM - it's set by the Maximum Rumour delay (Non-Hostile)

 

Hostile masters will not sell slaves to the player.

 

Changing the maximum rumour delay only affects new slaves it won't change the delay for existing slaves.

 

If you can't wait for some reason then using the MCM is the way to free them immediately 

Thank you for your response.

The master was Viarmo in bards college. So he supposed to sell the slave...

Is there a max delay for non-hostile NPCs to sell slaves?

If so, what is the max delay and is there any way I can remove it?

Posted
9 hours ago, fevermam said:

Thank you for your response.

The master was Viarmo in bards college. So he supposed to sell the slave...

Is there a max delay for non-hostile NPCs to sell slaves?

If so, what is the max delay and is there any way I can remove it?

 

You want to make it impossible to buy your slaves back? I might try that. See if its practical to get a bounty every time I want to buy a slave.

 

Is there any handling for followers when getting arrested? Something like they get enslaved if you go to jail instead of paying a fine? Or an option to enslave them to pay off the fine completely. I think defeat can send you to jail if you are defeated by guards, so I think follower enslavement along with that would go well

Posted
3 hours ago, johnhamm said:

Is there any handling for followers when getting arrested?

Not really in the scope of FSM - but the FSM API would make it very easy for any Mod handling Player Arrests to Enslave followers if those Mod Authors wanted

Posted
13 hours ago, fevermam said:

Is there a max delay for non-hostile NPCs to sell slaves?

If so, what is the max delay and is there any way I can remove it?

 

 

23 hours ago, Bane Master said:

The delay before non-hostile masters will sell to you is not set by the sale % in the MCM - it's set by the Maximum Rumour delay (Non-Hostile)

 

Changing the maximum rumour delay only affects new slaves it won't change the delay for existing slaves.

See above

Posted (edited)
On 17.06.2025 at 15:14, fevermam said:

Здравствуйте, я несколько дней пытался найти способ сделать это самостоятельно, но так и не нашёл подходящего решения, поэтому в конце концов решил написать сюда.
Я пытаюсь освободить своего порабощённого последователя, купив его у NPC-мужчины, но он просто повторяет, что он не продаётся, и предлагает вернуться через несколько дней.
Проблема в том, что эта проблема повторяется уже несколько дней по игровому времени.
Даже если вы увеличите вероятность продажи с mcm до 100%, он всё равно откажется её продавать, а если вы вернётесь через день, то она уже будет продана другому персонажу и перемещена.

 

Вот мой способ освобождения

Spoiler

1.   Как найти последователей, с МСМ может не совпадать адрес, бывает перепродадут их.

2.   Записываю список ID  последователей, набираю - player.moveto ID  Enter  и телепортируюсь к цели, но бывают случаи, что игра переносит по порядку всех перемещений последователя до последней точки. Тогда приходится несколько раз нажимать player.moveto ID Enter.

3.   Если Мастер рабов не желает продать раба, то пытаюсь уговорить последователя бежать от него. Если удается уговорить ее, то бежим и по дороге выносим всех врагов. Но если это не получается, то пытаюсь выкупить последователя, после оплаты требуемой суммы, мы свободны, но меня это не устраивает и я совершаю карманную кражу, забираю свою и его сантимы, это за моральный ущерб. Но если Мастер сразу отказывает продать, то просто мечем отделяю его голову от тела, мы свободны.

Вот так все просто.    

 

Edited by pere20
  • 3 weeks later...
Posted

Hey Bane Master,

 

nice work!

 

I am currently in the process of making an Integration for the new SkyrimNet AI mod (almost finished actually!), but ran into some blockers, that I could only resolve by modifying your scripts. Kinda dont want to do that, so maybe you're up to improving the modding API a bit?


 

Its mainly about Eligibility checks, for who can be enslaved / master.

 

1. You have a the `fsm_CanEnslaveNPC` flag, for allowing custom npcs to be enslaved. This is checked in fms_utilityscript::bCanBeEnslaved

But, in the fsm_mcmscript, you perform another check about which npcs to show in the 'enslave' mcm list.

 

There you additionally require FSM.bIsRecruited to be true, which filters out all nps that are not in the vanilla current follower faction. Would you consider making bypass for that?  

eg. StorageUtil.GetIntValue(kFollower, "fsm_showInMcm")

```

String [] Function UpdateFollowerArray()

...

    ElseIf  FSM.bCanBeEnslaved(kFollower) && FSM.bIsRecruited(kFollower) \ ; Maybe add a || StorageUtil.GetIntValue(kFollower, "fsm_showInMcm") == 1)

            && !FormlistHas(fsm_FollowerSlaveryQuest,"fsm_enslavequeue", kFollower) ;V1.01 - Additional check to allow Current Followers Only for MCM Enslavement

            FormListAdd(PlayerRef, "fsm_currentfollowers", kFollower, false)                                                                        ;V1.111 - Do not add enslave queued followers to list

            StringListAdd(PlayerRef, "fsm_currentfollowers", strGetActorName(kFollower), false)

    EndIf

...

EndFunction

```

 

2. In fms_utilityscript, would you consider adding a StorageUtil.GetIntValue(kFollower, "fsm_allowFollowerToBeMaster") to bypass the filter for followers?

```

Bool Function bIsValidMaster(Actor akActor)

    Bool bIsValidActor = akActor.HasKeyword(ActorTypeNPC) || ( kSlaverRaces.Find(akActor.GetRace()) != -1 )                                         ;Is an NPC or valid Slaver Race

    bIsValidActor = bIsValidActor && akActor.IsEnabled() && !akActor.IsDead() && !akActor.HasKeyword(fsm_Master) && !akActor.IsChild()              ;Is an eligible Actor

    bIsValidActor = bIsValidActor && ( akActor != PlayerRef && (!bIsFollowerorHireling(akActor) || StorageUtil.GetIntValue(kFollower, "fsm_allowFollowerToBeMaster") == 1  )) ; <---------- Added bypass here

    bIsValidActor = bIsValidActor && !IsFSMEnslaved(akActor) && !akActor.IsInFaction(zbfFactionSlave)                                               ;Is NOT an FSM or zbf Slave

    bIsValidActor = bIsValidActor && akActor != GetFormValue(PlayerRef, "_SD_CurrentOwner", None) as Actor                                          ;Is NOT the current "Sanguine's Debauchery" Master

    Return bIsValidActor

EndFunction

``

 

If youre curious what im trying to do:

I want to be able to enslave NPCs that follow, due to them beeing prompted to do so through the AI mod. For this I need suggestion 1.

Secondly, I want to enable selling / enslaving of followers through the player talking to other ai npcs. These are often followers, which cannot be master due to the check in 2.

 

Any chance for getting any of these?

 

Posted (edited)
40 minutes ago, Analsondex17a said:

in the fsm_mcmscript, you perform another check about which npcs to show in the 'enslave' mcm list.

 

There you additionally require FSM.bIsRecruited to be true, which filters out all nps that are not in the vanilla current follower faction.

This should only prevent enslaving non-followers using the MCM - it's not checked if you call enslavement via the API on an actor with  fsm_CanEnslaveNPC set so hopefully isn't an issue (assuming you will enslave them via the api).

 

40 minutes ago, Analsondex17a said:

In fms_utilityscript, would you consider adding a StorageUtil.GetIntValue(kFollower, "fsm_allowFollowerToBeMaster") to bypass the filter for followers?

 

The reason I haven't allowed this up till now is that I suspect that serious complications may arise with package handling etc. potentially breaking the Master Follower, enslaved ex-followers/non-follower actors or both. I'm happy to add it to the API but be aware the outcomes are seriously unpredictable. 

Edited by Bane Master

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...