prideslayer Posted January 10, 2014 Posted January 10, 2014 After a fair amount of waffling and consideration, I've decided to add some *basic* companion support to Sexout, for other mods to make use of. The goal is similar to SexoutSlavery and the built in scanner -- to consolidate code in one place that a lot of mods are presently implementing on their own, differently and sometimes incompatibly. This thread is to serve as announcement of my intentions, and to solicit feedback from modders on what sort of things would be most useful here. Third party companions will be supported via buildref where possible. Right now, I have only the vaugest idea of how I'm going to implement this, but a fairly solid idea of the interface. The interface itself boils down once again to formlists. My thought here is that sexout can do all the 'heavy lifting' when it comes to determining when specific companions are hired, fired, and present, and put the results into some formlists that can be used in scripts and geck conditionals. Right now I have these lists in mind: SexoutCompList -- All possible companions. SexoutCompListA -- All possible companions that are alive. SexoutCompListC -- All current companions SexoutCompListP -- All present (in the cell) companions. The lists will be updated/refreshed automatically. SexoutCompList -- Populated on a game start/load with all potential companions sexout is aware of. This will be all vanilla companions, and buildrefed 3rd party companions like willow, sunny, etc. SexoutCompListA -- Refreshed on a timed rescan of the full list. SexoutCompListC -- Refreshed on a timed rescan of the alive list, combined with quest/var checks as needed to make the determination. SexoutCompListP -- Refreshed on a timed rescan of the current list, with an in cell check. All of these except the first one will happen in a single block on a timer, as well as on a new cell load. My goal here is to add easy support for more companions to all sexout mods, as well as eliminate some bugs in the current companion support in existing mods. It's a lot of work to check all of this in every mod, every time you want to add companion specific dialog, so it's probably for the best if Sexout does it for everyone, once. Some example uses: - A pre-dialog script looks through the P list and picks a random companion based on gender, that is not currently having sex, and uses that companion in dialog. - Not allowing you to proceed if you have any companions. - Not allowing you to proceed unless you have a specific companion present. - Conflict dialog with the player if multiple companions are present that do not get along. - Multiple-companion interaction. - Etc.. So.. thoughts, ideas? More lists? Should sexout put NX vars on each companion corresponding to the list they're in, and if so, what vars?
Thasic Posted January 23, 2014 Posted January 23, 2014 So, if I understand properly, your intent is to make a generic companion plugin for Sexout that will add most or all vanilla companions as potential partners with a functionality that will allow the uninitiated (such as myself) to add additional companions to said list. If that is the case, hurray! I would like to see this easily used by Tale of Two Wastelands so I can add DC Wasteland companions to the mix.
Halstrom Posted January 23, 2014 Posted January 23, 2014 Cool, somehow I missed this, I've been poking with a basic version of this in SCR for a while, Pregnancy uses it to add fertility tokens to companions. It's probably the only reason I have scripting still in SCR other then the semen stuff which is on the hitlist now Spunk is released. I'm not sure any other mods are using it. The other thing I used it for is I checked IsSwimming of companions within 600 to set gTeamMateIsSwimming to the distance of the closest swimmer, this was to use as a substitute for IsSwimming not working on the player. It would be easy enough I suppose to create a plugin with an invisible pseudo teammate to make that work, I just hadn't got to that. For a few reasons I found it better to break current companions into Male, Female & Creatures as I've found a few weird crashes caused by creatures somehow, can't be sure but I think rActor.GetIsSexMale on EDE caused script crash but worked ok on other s like Rex & Cheyanne. I never thought about the companions being dead, though it's a valid point to look for.
nyaalich Posted January 24, 2014 Posted January 24, 2014 So, if I understand properly, your intent is to make a generic companion plugin for Sexout that will add most or all vanilla companions as potential partners with a functionality that will allow the uninitiated (such as myself) to add additional companions to said list. If that is the case, hurray! I would like to see this easily used by Tale of Two Wastelands so I can add DC Wasteland companions to the mix. I've got TTW, and Sexout Sex and the WIP Sexout Dynamic Relationships (or [WIP] Intimacy Project, as the thread is called) also work fine with Charon (don't judge).
prideslayer Posted January 24, 2014 Author Posted January 24, 2014 So, if I understand properly, your intent is to make a generic companion plugin for Sexout that will add most or all vanilla companions as potential partners with a functionality that will allow the uninitiated (such as myself) to add additional companions to said list. If that is the case, hurray! I would like to see this easily used by Tale of Two Wastelands so I can add DC Wasteland companions to the mix. I don't know what exactly you mean by 'uninitiated' -- this functionality is for modders. It will allow them to use the lists as described in the OP.
prideslayer Posted January 24, 2014 Author Posted January 24, 2014 Cool, somehow I missed this, I've been poking with a basic version of this in SCR for a while, Pregnancy uses it to add fertility tokens to companions. It's probably the only reason I have scripting still in SCR other then the semen stuff which is on the hitlist now Spunk is released. I'm not sure any other mods are using it. The other thing I used it for is I checked IsSwimming of companions within 600 to set gTeamMateIsSwimming to the distance of the closest swimmer, this was to use as a substitute for IsSwimming not working on the player. It would be easy enough I suppose to create a plugin with an invisible pseudo teammate to make that work, I just hadn't got to that. I remember all that IsSwimming buggery, I hunted a long time for a workaround for the first versions of NX and never found one. For a few reasons I found it better to break current companions into Male, Female & Creatures as I've found a few weird crashes caused by creatures somehow, can't be sure but I think rActor.GetIsSexMale on EDE caused script crash but worked ok on other s like Rex & Cheyanne. I never thought about the companions being dead, though it's a valid point to look for. That's something I think would be best left to the consumers of the lists. If it has three in it, say Cass, EDE, and Rex, it's easy enough to do GetIsCreature on each one before doing gender checks. Yes/no/maybe?
Halstrom Posted January 24, 2014 Posted January 24, 2014 Maybe, I just thought it wouldn't be much work to add those lists as well as Current Companions, as a lot of cases modders may not be interested in any companions that aren't Female or want to set up different dialogue or script options for the 3 cases with less checks. And a lot of modders may not realise they need the GetIsCreature check before GetIsFemale, and cause hard to track down crashing, it caught me out for a bit to track down. EDE may even crash it on GetIsCreature, I know that doesn't make sense but that seems to be what I reported in the scripting thread on Page 3 when I first introduced it. I stopped adding EDE to the possible companion list for that reason. http://www.loverslab.com/topic/4320-fallout-new-vegas-geck-scripting-help-101/page-3
prideslayer Posted January 24, 2014 Author Posted January 24, 2014 Well I promised to look back then and didn't so I will look today. Just need to refresh coffee and cigarette supply.
Halstrom Posted January 25, 2014 Posted January 25, 2014 No rush on it, it's a modders want, not a player need, get the new animations sorted first
prideslayer Posted January 26, 2014 Author Posted January 26, 2014 Hal I did some quick testing. Neither GetIsCreature or GetIsSex crash or anything when used on creatures -- but GetIsSex will return 0 for a creature no matter if you give it Male or Female as the param.
Halstrom Posted January 26, 2014 Posted January 26, 2014 Hal I did some quick testing. Neither GetIsCreature or GetIsSex crash or anything when used on creatures -- but GetIsSex will return 0 for a creature no matter if you give it Male or Female as the param. Hmm maybe it was just something Quirky with my installation or bodgey coding, as I said it did only seem to fail on EDE, Rex and Lily worked fine, and as you said just returned zero on GetIsSex.
prideslayer Posted January 26, 2014 Author Posted January 26, 2014 Bah I know you said EDE, I just forgot. I will test it and some other robots.
Thasic Posted January 27, 2014 Posted January 27, 2014 So, if I understand properly, your intent is to make a generic companion plugin for Sexout that will add most or all vanilla companions as potential partners with a functionality that will allow the uninitiated (such as myself) to add additional companions to said list. If that is the case, hurray! I would like to see this easily used by Tale of Two Wastelands so I can add DC Wasteland companions to the mix. I don't know what exactly you mean by 'uninitiated' -- this functionality is for modders. It will allow them to use the lists as described in the OP. By uninitiated I mean we of some but not great modding experience. Those of us with great love of modding but great lack of ability. We, the unwashed masses that bask in the glow of modders of far greater prowess. In other words, I can diddle around in the Geck, install, fix and organize mods I have loaded. I am proficient (sort of) with FNVEdit and it's siblings. I can use BOSS and BUM and I can fix any little issues that crop up from loading lots of mods in a game. I can even create simple mods or do ports and alterations of someone else's work. What I can't do is script or create anything new. I have absolutely no abilities in that realm. I am trying to learn but it all seems like an alien language to me. So, from the standpoint of a novice modder, I would welcome the opportunity to learn something from an add-on to the sexout mod that you originally described in your first post. Maybe with such an add-on, I could actually create something new using the foundation that so many others have laid and give a small bit back to the community that I have been kind of leeching off for low these many years..
prideslayer Posted January 28, 2014 Author Posted January 28, 2014 So, from the standpoint of a novice modder, I would welcome the opportunity to learn something from an add-on to the sexout mod that you originally described in your first post. Maybe with such an add-on, I could actually create something new using the foundation that so many others have laid and give a small bit back to the community that I have been kind of leeching off for low these many years.. The functionality I'm talking about here is for companion support in sexout, not as a sexout plugin/mod. If you're interested in how it works (when it's done), the "source" to all the sexout scripts is in the git project here on LL. Once I'm actively working on this and making checkins, you'll be able to follow the changes there if your objective is to learn how it works and how to use it. If that's not what you mean, I guess I'm still lost.
shardoom Posted January 28, 2014 Posted January 28, 2014 Oh sweet!! A built in "fuck your companions" ability within sexoutNG? Sign me up. Would this be wide-reaching or Vanilla only? Willow, Wendy, Delilah, Desmond, Niner, Sunny, Katie would all like to play too though...
prideslayer Posted January 28, 2014 Author Posted January 28, 2014 Oh sweet!! A built in "fuck your companions" ability within sexoutNG? Sign me up. No, that is not what this is! It is a system for modders to easily support companions in their sexout mods, especially within dialogs trees and such. Right now for example you need entirely different checking in a script to determine if cass is a companion vs. veronica -- you need to check their individual companion quest status, if the quest is completed you need to know if they're in the cell or not, and if they're in the cell you need to know if they're following or if they've been dismissed. Each companion (vanilla or not) is very different WRT the quest(s) that need checked, it's a lot of code that needs to be duplicated in each mod. Most of them don't do it at all right now for that reason, they simply check if the companion is in the cell or not. This proposal is simply about having sexout check all that stuff for all the companions it knows about, and keeping some lists up to date with the results. Support for 3rd party companions is impossible as far as I know, unfortunately. I can't buildref a quest (or could not last time I tried) so cannot check their quest status. If the NPC is in an ESM (all the ones I know of are in ESPs) then a support module specifically for that companion could possibly be created, but it would not be built into sexout since that would make that NPC mod a requirement for sexout.
Halstrom Posted January 28, 2014 Posted January 28, 2014 I've added 3rd party support for Kirina and Krystal to SCR by IsModLoaded, but basically you need a list of all the esp names & ActorREFs for all the 3rd Party companions you want to add, it can leave if in SCR adding them to your new possible companions lists or we could create a new plugin to do it that gets updated as new companions are added. Jaam said some companions may fail the IsTeamMate check but show in the players faction whilst companions.
shardoom Posted January 29, 2014 Posted January 29, 2014 There are a few that are ESM. Erm, Wendy Gilbert, Brooke (nccs), Jasmine (nccs) Sarah lyons and Niner. Not that it is important really, but I'm a kind of collector of companions so I thought it might help. lol
prideslayer Posted January 29, 2014 Author Posted January 29, 2014 I've added 3rd party support for Kirina and Krystal to SCR by IsModLoaded, but basically you need a list of all the esp names & ActorREFs for all the 3rd Party companions you want to add, it can leave if in SCR adding them to your new possible companions lists or we could create a new plugin to do it that gets updated as new companions are added. Jaam said some companions may fail the IsTeamMate check but show in the players faction whilst companions. How do you check to see if the NPCs you've buildref'd are actually player companions, and not simply potential companions? The teammate functions are combat oriented, not companion oriented; e.g. any NPC can return 1 from GetPlayerTeammate even if they aren't actually a companion. Potential companions can return 1 to that as well if they are simply helping the player for some reason, without actually following the player, taking orders, sharing inventory, etc. E.g. Beagle in Primm will return 1 while being led out of the bison steve, though he isn't a companion or potential companion.
Halstrom Posted January 29, 2014 Posted January 29, 2014 I've added 3rd party support for Kirina and Krystal to SCR by IsModLoaded, but basically you need a list of all the esp names & ActorREFs for all the 3rd Party companions you want to add, it can leave if in SCR adding them to your new possible companions lists or we could create a new plugin to do it that gets updated as new companions are added. Jaam said some companions may fail the IsTeamMate check but show in the players faction whilst companions. How do you check to see if the NPCs you've buildref'd are actually player companions, and not simply potential companions? The teammate functions are combat oriented, not companion oriented; e.g. any NPC can return 1 from GetPlayerTeammate even if they aren't actually a companion. Potential companions can return 1 to that as well if they are simply helping the player for some reason, without actually following the player, taking orders, sharing inventory, etc. E.g. Beagle in Primm will return 1 while being led out of the bison steve, though he isn't a companion or potential companion. Ah didn't realise that, I was just using GetPlayerTeamMate or InPlayerFaction and assuming that would cover it, it seems to for Kirina, Willow and Krystal, hadn't tested it on others. But then I'm only using it to decide on whether they should have fertility tokens which doesn't really matter if they aren't team mates. And I guess if they are installed it ups the probability of them being PlayerCompanions, the only other thing I can think of is doing a distance to the player check on top of that. The other thing is I'm thinking NPC's like Beagle should probably never end up in the potential companions list unless someone makes a companion mod and it is added to the IsModLoaded script. Perhaps all we can do is add them to the potential companions list which for many modders may be enough to discern them as special rather than basic NPC Riffraff.
nyaalich Posted January 29, 2014 Posted January 29, 2014 Don't know if this will help, but I am lazily copy/pasting from a thread in SO DRL with some research on companions. This doesn't address customs. In TTW, FO3 companions have been added to the NPCFollowersLIST list. That is a way that you could check. However, don't know how custom companions handle that or the other factions. Bits and pieces: From the FO3 Followers quest script, it uses variables [NPC]hired and [NPC]fired (e.g., CharonHired and CharonFired). When they've waited too long for you, the auto-fire quest has the following resets: Quote CharonREF.SetFactionRank TeammateFaction -1 CharonREF.RemoveFromFaction FollowerFaction CharonREF.SetPlayerTeammate 0 Looking at the VNPCFollowersQuest script (the one for NV NPCs), you get different factions including one that's removed from the player. Variables include b[NPC]HIred and b[NPC]Fired (bBooneHired, etc.). Quote CraigBooneREF.SetPlayerTeammate 0 CraigBooneREF.removeperk CompanionSuite player.removeperk Spotting Player.RemoveFromFaction VBooneFaction; CraigBooneREF.RemoveFromFaction FollowerFaction I don't know why Boone gets his own faction (anti-Legion?). Veronica and Arcade don't have their own factions.
prideslayer Posted February 1, 2014 Author Posted February 1, 2014 I've added 3rd party support for Kirina and Krystal to SCR by IsModLoaded, but basically you need a list of all the esp names & ActorREFs for all the 3rd Party companions you want to add, it can leave if in SCR adding them to your new possible companions lists or we could create a new plugin to do it that gets updated as new companions are added. Jaam said some companions may fail the IsTeamMate check but show in the players faction whilst companions. How do you check to see if the NPCs you've buildref'd are actually player companions, and not simply potential companions? The teammate functions are combat oriented, not companion oriented; e.g. any NPC can return 1 from GetPlayerTeammate even if they aren't actually a companion. Potential companions can return 1 to that as well if they are simply helping the player for some reason, without actually following the player, taking orders, sharing inventory, etc. E.g. Beagle in Primm will return 1 while being led out of the bison steve, though he isn't a companion or potential companion. Ah didn't realise that, I was just using GetPlayerTeamMate or InPlayerFaction and assuming that would cover it, it seems to for Kirina, Willow and Krystal, hadn't tested it on others. But then I'm only using it to decide on whether they should have fertility tokens which doesn't really matter if they aren't team mates. And I guess if they are installed it ups the probability of them being PlayerCompanions, the only other thing I can think of is doing a distance to the player check on top of that. I think all hired companions will return 1 to GetPlayerTeammate if they are 'hired' and not being told to 'wait' or anything. If they're waiting, they will return 0. Any NPC who crouches when you crouch and starts shooting at anyone who shoots at you will return 1. Anyone else will return 0. I haven't used or looked at InPlayerFaction so I'm not sure what the rules are there. The other thing is I'm thinking NPC's like Beagle should probably never end up in the potential companions list unless someone makes a companion mod and it is added to the IsModLoaded script. Perhaps all we can do is add them to the potential companions list which for many modders may be enough to discern them as special rather than basic NPC Riffraff. Right, my thought is that SexoutCompList will only have vanilla companions in it to start with. Sexout would then add some of the common additional companions to that list if the appropriate mod is detected. From there, the ones that are alive make it to SexoutCompListA. To get also placed in the C (current) list, I have the quest ref problem for non-vanilla companions. For example Sunny could end up in the first two lists if that mod is loaded and she is alive, however, I'd need to check the quest to see if she's actually been recruited (and not dismissed). I don't know how to do this right now. There isn't a 'quest' var type in the geck scripting, and last time I tried to use a ref for that (buildref a questID) it didn't work.
Halstrom Posted February 1, 2014 Posted February 1, 2014 Hmm yeah Sunny could be an issue with that, yeah it's a bit fudgy but, I guess what we may be looking for is that any special NPC's added receive support for Sexout functions regardless of whether they are companions or not. It may be just too much hassle to check for 100% accuracy if they are companions or not. I'm happy to add fertility to any actor in the Possible Companions list for example because the player probably wouldn't care if they are recruited or not for Pregnancy. You may find the same for enslavement mods, probably what's more important for mods to check is how close they are to the player. ie in the same cell or they aren't relevant to dialogue/events because they are elsewhere.
prideslayer Posted February 2, 2014 Author Posted February 2, 2014 Well the companion thing is what I'm specifically after. It's the complicated bit, error prone, that keeps getting duplicated in different mods. There are bits in tryouts though that alter dialog and stuff based on your companions; they don't work quite right at present, even with just the vanilla companions, because the quest checks aren't being done. Just checking ismodloaded and then doing a buildref to add a 3rd party NPC like willow to a list doesn't help that goal, but it's something I could toss in sexout anyway. It's not really related to this/companions, but having it all in one place would make it easier for sexout mods to support those NPCs.
Recommended Posts
Archived
This topic is now archived and is closed to further replies.