Jump to content

(ALPHA) Devious Followers Redux


Recommended Posts

Posted (edited)

Tis the end of the month, so quick update. Things are shaping up but not quite ready for release yet (check list below if you're interested)

 

- [x] Finish translating all rules to new system
    - [x] Dialogue globals
    - [x] Rule scripts
    - [x] Pack Quest
- [x] Convert rules
    - [x] Chastity game/usage
    - [x] Gag/tape gag
    - [x] piercings dialogue strip
- [x] Device manager
    - [x] proxy ldc
- [x] fix sex preferences
- [x] fix merchant rule
- [x] fix sex punishment tracking-
- [x] convert whore armor
    - [x] implement outfit validation
    - [x] swap give whore armor func
    - [x] add keyword-based exclusion
    - [x] ensure DDs pass violation
- [x] convert crawling to OAR
    - [x] transfer to Adv
    - [x] use Adv keyword in config
    - [x] add Adv keyword to DF items
- [x] rule dependencies
- [x] pregenerated deals
- [x] tattoo group management
- [x] esp requirement checks
- [ ] refactor MCM
- [ ] finish conflict checks in plugin
    - [ ] explicit excludes
    - [ ] clean - filth
    - [ ] outfit - naked
    - [ ] outfit - outfit
    - [ ] wear
- [ ] Verify all regular deal processing works as normal
- [ ] Translate slavery system to new system
    - [ ] Keep stage at 97 + use relationship stage global to track slavery
- [ ] Validate all slavery interactions
    - [ ] DF -> SS++
    - [ ] DF -> Enslaved
    - [ ] SS++ -> DF

 

I'm estimating it'll take about another week for a pre-alpha build to be ready which will go up on Discord first (just since its's a lot more efficient for quick, iterative feedback). Soon as that's stabilised, I'll start posting builds here as well. In terms of changes (beyond bug fixes and slavery stuff I mentioned earlier):

  • Rule selection is much better IMO. I was trying to be flexible with the DFR implementation but pushed the balance too far. The new system provides more cogent rule progression while still being extensible. Paths are currently randomly selected but as I increase the number that are available, I will likely have personalities determine which paths are prioritised over others. Let me know if you have any ideas for new paths.
  • Tattoo management: is now built into the framework, so you'll have a consistent configuration format for choosing which tattoos are applied.
  • Outfit management now supports accessory items and multiple item validation. Its a different format than the current iteration but more flexible. Like coffee's SLTR addon, its tolerant of DDs (you won't be punished for wearing them instead of a particular item). Additionally, if the item occupying a slot has an active rule's keyword, the system will also consider that valid. This allows outfit rules to be far more compatible with the other rules. For instance, you can add gloves to your outfit and not have to worry about conflicts if the ring rule becomes active.
  • There's now two variants of the whore deal, the original with the sign and a new with tattoos instead of the plug. There was an MCM option for this but as far as I can see it was never implemented. I lean towards the tat simply to prevent incompatibility with the crawling in town rule. The tat rule is only considered valid if you have a skimpy clothing/nudity rule also active in the same deal (so that NPCs can actually see your tats ;). Similarly the regular whore sign rule is only available if you have a plug rule of some kind active (just like the classic whore deal).
  • There's now some (WIP) dialogue when you agree to new rules. Minor stylistic change but I've found it makes the transition into the rule nicer. For example, for the whore rule, when your follower offers it they vaguely indicate they want you to advertise yourself, and once you accept depending on the variant (plug or tattoo) your follower will tell you to put in the sign plug or that they're going to mark your body. You can use this system to add a nice bit of surprise - multiple similar rules may have the same offer dialogue but actually lead to slightly different requirements.
  • The slut dialogue rule is back
  • The last stage of the classic piercing deal has been converted into a willpower-based random event i.e. your follower will occasionally strip you mid-dialogue and activate your piercings if your willpower is low. This is probably the design tenant I'll be following for my addons. For instance, the fitness path has a regular diet and a protein diet rule. While the latter is somewhat interesting the first couple times, I've found it too tedious in an actual run especially with survival mods that require you to eat quite often. After I port it, the standalone protein rule will be eliminated in favour of random additional requests your follower makes before they give you permission in the regular diet rule. Since events all have cooldown timers, they won't be as tedious. These can only trigger on low willpower/favour so there's even further incentive to carefully managing both. I think that keeps rules feeling somewhat unpredictable even on multiple playthroughs.

 

Edited by ponzipyramid
Link to comment

This sounds good, I'm looking forward to it!

As soon as I read the bit about personality, I had an idea for a new rule. I envision it as more for a playful personality. The 'tell me that you love me' or 'ego building' rule. Once a day you have to tell your DF that you love him. I picture a variety of phrases, maybe up to 4 or 5, the player can use: 'Just wanted to say I love you', 'You're the best swordsman I've ever known' (pun intended), 'I've never felt better since I met you', 'You make the Divines weep with envy'...

In any case, I will be thinking about paths.

 

On another note, something happened and it could be my fault. Before going to Solitude for the 'Diplomatic Immunity' quest I bought out of all my deals. Items were unequipped or removed, the MCM was clear. All good. In the debug menu I paused the mod and then went on to complete the quest. When I unpaused DFR, my DF started punishing me for not wearing my whore armor or running around naked. I had to remove him in the debug menu. Why do I say it might be my fault? Because I'm wondering if I paused the mod too soon after buying out of the deals, causing a script(s) not to complete.

 

However, this identified an issue ...
 

Spoiler

I realize that so close to launch, this might be a 'down the road' thing and I'm fine with that, but would you please at least consider a more rigorous and specific identification of possible DF's? Because when I removed my DF (see above) in the MCM, one of the elytra from Saints & Seducers stepped in as my new DF. This should not be possible because 1) as soon as I reset DFR I used the 'set all npc's as non-devious' command and that script completed, and 2) when I looked at the MCM, it shouldn't have been possible for it to be a DF because under 'Modify if follower is Devious' it says 'NPC CANNOT FOLLOW' but it became a DF anyway. The elytra is in the currentfollower faction. I tried a couple of times and it happened. I had to be fast enough to rehire my follower and use the 'Can I rely on you' dialog to get my proper DF back.

I like to control my potential DF's, so I always use the 'set all npc's as non-devious' command before I even get followers. Then as I meet any that I want as a potential, I enable them one at a time. I'm not sure what approach would be best. I see a couple of options.

  1. The npc must have a specific keyword or faction such as DFEligible. The default can be any npc in the vanilla potential follower/hireling faction are attached to the DFEligible keyword/faction and then 'set all npc's as non-devious' command removes them from the DFEligible keyword/faction. And then when you enable them on a case by case basis the DFEligible keyword/faction becomes associated with that npc.
  2. A separate MCM page that identifies all potential followers/hirelings. The default can be they are initially enabled when the mod is installed. Then, as the game progresses and more followers become eligible due to quests (Dawnguard followers, housecarls, specific quests that make them eligible, etc.) that page will update upon loading a save and, possibly, a manual refresh similar to the button slavetats has for when you add a new tattoo pack. Then the user can enable/disable potential DF's from the MCM page and associate each enabled npc with the DFEligible keyword/faction. Refreshing the list either by loading the save or pushing the button would not change the DFEligible status of any npc.
  3. A .json file that can be edited by the user. Like with whore armor, there's a default and then a custom one that can be edited. The default would start with all the choices that the MCM in option 2 has, with future potential followers commented out. That makes a housecarl easy to add to the list of potential DF's w/o having to look up their id's and potentially mistype. They would have to manually add any mod supplied followers that use the vanilla ai.

The benefit is that if some other mod makes changes that has the unintended consequence of a wrong npc becoming eligible based on vanilla follower/hireling packages, the chance of that npc accidentally becoming a DF becomes practically zilch. The other mod is not likely to use a DF faction or keyword.

The more I think about it, the more I like option 2, the MCM. As a user it just seems a lot easier to me. And if somebody becomes when they shouldn't or doesn't become one when they should, according to the user, they can easily check the MCM to see if they are enabled/disabled/included (menu may need to be refreshed).

In any case, I'm excited about the upcoming changes and am looking forward to them.

Link to comment

Hi @ponzipyramid,

 

Thought I'd mention a longstanding issue with DF's Master Personalities code in case you hadn't come across it yourself yet.

 

Basically, the function InitPersonalityValues() in QF__Gift_09000D62.psc is never called, and so the personalities are never initialised correctly. 

 

My quick and dirty fix for this was to add a check at the beginning of SetPersonality(Actor who) as I wanted a fix for games in progress. This seems to work ok but there's probably a better solution.

 

SetPersonality(Actor who)

   

   If aggressionRange.Length == 0
        InitPersonalityValues()
    EndIf

 

    ........

 

EndFunction

 

Apologies if you had already spotted this, and many thanks for all your good work on this (and so many other) projects!

 

Link to comment
On 4/12/2024 at 11:14 PM, MadaraSC2 said:

I cannot enable any rule I have disabled, Does anyone have that issue, and how to fix it? I have tried to restart the game and quit the main menu but to no avail.

Same problem here. in addition, when I try to quit to the main menu it CTDs otherwise everything works as it should. The issue didn't exist before I installed this. I'm very excited for this.

Link to comment
On 4/5/2024 at 11:39 AM, Bane Master said:

Hi @ponzipyramid,

 

Thought I'd mention a longstanding issue with DF's Master Personalities code in case you hadn't come across it yourself yet.

 

Basically, the function InitPersonalityValues() in QF__Gift_09000D62.psc is never called, and so the personalities are never initialised correctly. 

 

My quick and dirty fix for this was to add a check at the beginning of SetPersonality(Actor who) as I wanted a fix for games in progress. This seems to work ok but there's probably a better solution.

 

SetPersonality(Actor who)

   

   If aggressionRange.Length == 0
        InitPersonalityValues()
    EndIf

 

    ........

 

EndFunction

 

Apologies if you had already spotted this, and many thanks for all your good work on this (and so many other) projects!

 

 

Added the fix, thanks!

Link to comment
On 4/17/2024 at 8:41 PM, ponzipyramid said:

 

Added the fix, thanks!

Hello, I have a question, Pandora has already come out as a new engine that replaces Nemesis and Fnis, it is very fast to execute, supports animations of humans as creatures, and very stable https://github.com/Monitor144hz/Pandora-Behaviour-Engine-Plus/releases , but it has a slight inconvenience, I do not recognize the animations of ZAZ 8+, it would be possible for you to take a look at it. Be careful and you can make an NG version of ZAZ. It's just a request from a dreamer but it would be a great help to the entire Skyrim community.

Edited by anon202269
Link to comment

I have a bug to report. 

 

The bug I think I I found has to do with deal costs and timers.  I don't think that the deal timers are currently working, at least for me.  I have it set up for a deal to remove 80% of a days debt X, and the cost to remove the deal is 20% (or 1/5) of X, but with a 2000% (or x20) increase to remove it early and a 3 day timer.  That should be 20/5 X = 4X the cost.  The daily cost is currently like 500 something.  However, the cost to remove a brand new deal was only like 100 or so, as if the 3 day timer wasn't working at all.  I toggled the timer up to 4 and back to 3 days but it didn't help.

Link to comment

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

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more information, see our Privacy Policy & Terms of Use