Jump to content

Recommended Posts

5 minutes ago, macnchz said:

Thank you for refreshing this amazing mod.  I have not been able to use this mod for a long time.  Now it works like a charm!  Thank you for your work, and expansion of the dialog, GREAT JOB!!

Your welcome, I am glad you are enjoy it. Have you  got to experience some of the new dialog? I did some testing today but I found I had some conditions and variables wrong, its a tedious road but will get them all right sooner of later :), enjoy !

Link to comment
3 minutes ago, -Caden- said:

Your welcome, I am glad you are enjoy it. Have you  got to experience some of the new dialog? I did some testing today but I found I had some conditions and variables wrong, its a tedious road but will get them all right sooner of later :), enjoy !

I just tore through it (my poor pc!).  I will take note of anything I see the next time I run through it.   Thanks again!

Link to comment
23 minutes ago, thesteve812 said:

The new dialogue is great. I'm actually reading it, instead of click, click, let's get to it, bam bam, thank you mam.

Specific race dialogue is a nice touch too.

HAHA nice, what character and race do you play?, I also made some dialog vampire/race/gender aware as well! More will be in the update coming tonight, of first thing tomorrow

Link to comment
13 minutes ago, GiantTiger said:

Your files name are confusing... so I need to download "Radiant Prostitution_Gigolo 3.3.7z" and "Radiant Prostitution_Gigolo3.3.1(ESP File Only).7z" right?

no, that's my bad, I just upload a full update, 3.4 that's all you need, I am deleted the other unneeded files now

Link to comment

Hello,

 

I worked on RP weith Wrathslayer to make some changes in scripts a while ago: 

handler : sex makes relationsship ally

handler config : experience slider in mcm 0.1 steps, so 0.5 can be made

                      ranks x9=10, x14 = 15, not visible in mcm

homevisitquest: pc always win (too frustrationg this Long work for nothing)

simplejobquest: approachtext i am looking for a Client on Display deleted

                       text a Client is coming to you still appears

 

Errors in RP :  mcm vaginal and anal are named opposite

                     repetitions only work 1x. if more, a new client approaches, the repetitions are stopped at the next end, the new Client takes the further repetitions

                     the rape makes no sense, because once you know it you never go there anymore. taking inventory away is always wrong (should get it back for free at least)

                     quests block the Standard Prostitution. if you get the companion quest in markath or rifton ......

 

 

what exactly is new for a female prostitute ?

 

if your Goal is a gay mod, it is already if you use the approaching sliders in mcm

 

the most missing parts in RP to me are :

sex raises speechcraft : we found out how to make fixed amount of skillxp, but not how to add  the skillevel modificator.

creature sex only in quests, should be available as Standard offer  (maybe with the help of henatai creatures?)

zaz furniture bdsm sex should be quests and Standard offer  (using the missing Features for rank 5 (x14 / 15) and rank 6 (x20)

quests to gangbang complete dungeons, with bandits and with creatures, and Dragons would be a dream (using the skyrim bounty quests ?)

mf_handler.pex

mf_handler_config.pex

mf_homevisit_quest.pex

mf_simplejobquestscript.pex

mf_handler.psc

mf_handler_config.psc

mf_homevisit_quest.psc

mf_simplejobquestscript.psc

Link to comment
6 hours ago, shiagwen said:

what exactly is new for a female prostitute ?

A lot, the original upload I did was Called Radiant Gigolo, all dialog assumed you were a male character, kinda like all the dialog in 3.2.2 assumed you were a female (yes there were 2 or 3 lines that was for m/m but that was it, but then people started asking me if it could be used for females so i decide to make the version I made work with both:

 

Now Imagine for a second, (as a man)your out at a bar and you just hit it off with the really hot woman, you go to her place, things are heating up, you grab her and throw her down on the bed and she looks up to you and says......" I cant wait to fuck your pussy but if you get pregnant, I'm not responsible for your baby"..I'd be like...

" tha fuckd you just say bitch", and go flaccid.

...now, that's how RP3.2.2 addressed the male player,

and nothing as frustrated me more than seeing all of these fantastic mods being made for Skyrim and other games, and all based on being a female PC, I mean I understand that woman play the game too, but 99% of the gamers are NOT females but yet 99% of the mods are geared towards a female player, Its like your girlfriend holding a gun to your head and making you put on a dress ffs, and that's all good for some people but not everyone!

 

So in this image you can see an example of what I am doing with dialog:

CK2.thumb.jpg.77fd1c8c09fa5f47db58ee8218a0f6d2.jpg

So now dialog will be different if you are an orc female player, talking to a Nord, or a Breton, or a male elf vampire talking to a redguard, make the game so ANYONE can play and it will be geared towards there character! Not just the occasion generic dialog for a Khajiit like was in 3.2.2

Link to comment
6 hours ago, shiagwen said:

if your Goal is a gay mod, it is already if you use the approaching sliders in mcm

How in any sense was RP 3.2.2 geared towards a gay player? Cause it allowed men to come talk to a male PC...but speak to you like you were female? talk about getting you pregnant?

No , just because it allow m/m sex (like most sex mods do) does not mean it was geared towards a gay PC, this is a game people like to go in and act out a character, and that's great but your role playing character should not have to roleplay too, because the male PC has "pretend" the npc he was talking to didn't just talked about seeing his big tits!

Animation wise , yes, it allowed gays sex...and that's where it stopped, cause there was nothing else in 3.2.2 that did anything for anyone unless you played as a female PC!

 

People that play the game want options, gay male, gay females, submissive males and females, dom males and females, straight males(yes there are some of us still in the world :P),

sissy males, dominitrix, furry and beastiality....but instead EVERY single mod coming out is geared towards playing as a female, so people do not have a choice to play a different character if they want a modded game, well the changes in RP prostitute/Gigolo is working towards all players, not just females

Link to comment
5 hours ago, gizmo1206 said:

glad to see someone continuing the mod. now i have a question that i didnt really get a answer to in its forum but is this compatible with apropos? apropos says radiant prostitution causes conflicts but it links RadiantProstitution Tweaked by korialstraszbob

I am not sure, a haven't got into that side of it yet, I used Apropos for a long time, great mod, I will not be able to find the conflict until I finish all the dialog changes here:)

Best bet is to go into your before installing this, open up console and type something like "save TestRP", then exit the game and install RP and play a bit to see if it does conflict , then if it does, you can go back to the TestRP save and reload it without ruining your current game

Link to comment

I'd like to see a group sex or gangbang quest be put in since we have a few animation packs that do them now or maybe just a customer request it when they approach you or ask them if they want any food or drink. They already ask for bj/vag/anal anyway.

 

Thanks for updating and supporting this mod.

Link to comment
6 hours ago, shiagwen said:

the most missing parts in RP to me are :

sex raises speechcraft : we found out how to make fixed amount of skillxp, but not how to add  the skillevel modificator.

creature sex only in quests, should be available as Standard offer  (maybe with the help of henatai creatures?)

zaz furniture bdsm sex should be quests and Standard offer  (using the missing Features for rank 5 (x14 / 15) and rank 6 (x20)

quests to gangbang complete dungeons, with bandits and with creatures, and Dragons would be a dream (using the skyrim bounty quests ?)

mf_handler.pex

mf_handler_config.pex

mf_homevisit_quest.pex

mf_simplejobquestscript.pex

mf_handler.psc

mf_handler_config.psc

mf_homevisit_quest.psc

mf_simplejobquestscript.psc

Spoiler

 

Scriptname mf_Handler extends Quest 
SexLabFramework Property SexLab Auto
mf_Handler_Config Property HandlerConfig Auto
mf_Variables Property HandlerConditional Auto
ImageSpaceModifier Property FadeIn  Auto 
ImageSpaceModifier Property FadeOut  Auto 
ImageSpaceModifier Property BlackScreen  Auto 
Message Property ErrorMessage  Auto
Armor Property WenchCloths  Auto 
Armor Property WenchBoots  Auto 
MiscObject Property Gold  Auto
; ------ SERVING FOOD QUEST ------------------
MF_FoodJob Property FoodJob Auto
Quest Property SimplerJob  Auto 
mf_simplerjobscript Property SimplerJobScript  Auto 
float TimeLastJobFailed = 0.0
float TimeLastFailJob = 0.0
; ------ FREE ROAMING PROSTITUTION QUEST -----
Quest Property SingleJobMonitor Auto
mf_SolicitPlayerMainScript Property SingleJobMonitorScript Auto
mf_SimpleJobQuestScript Property SingleJob Auto
mf_SimpleJobQuestScript Property SingleJobScript Auto
String akJobType
int totalReward = 0
; ------ HOME DELIVERY QUEST -----------------
MF_RandomQuest Property HomeJob Auto
FormList Property HomeJobs  Auto 
float TimeLastHomeJobCompleted
; ------ MILITARY CAMP QUEST -----------------
MF_RandomQuest Property CampJob Auto
FormList Property CampJobs  Auto
float TimeLastCampJobCompleted
; ------ RANDOM JOB QUEST --------------------
FormList Property RandomQuests Auto
MF_RandomQuest currentQuest
float TimeLastRandomJobCompleted
GlobalVariable Property UndeclaredJobs Auto
GlobalVariable Property TotalClients  Auto
GlobalVariable Property MissingMoney  Auto 
Faction Property ProstituteFaction Auto
Faction Property MadameFaction  Auto
SPELL Property RefractoryS Auto
SPELL Property RefractoryD Auto
FormList Property BeastRace Auto
FormList Property ElfRace Auto
FormList Property HumanRace Auto
ReferenceAlias Property akPlayerRef Auto
Actor Property akPlayer Auto
int Property PlayerRace Auto
Actor Property akMadame Auto
float Property BountyMult = 1.0 Auto
int lastHomeJob = 0
int lastCampJob = 0
int lastRandomJob = 0
;Frostfall things
bool isFrostfallLoaded = false
GlobalVariable  property Frostfall_exposurePoints = none  auto
SexLabFramework Function GetSexLab()
 return SexLab
endFunction
Actor Function GetPlayer()
 return akPlayer
endFunction
int Function GetScanInterval()
 return HandlerConfig.ScanInterval as int
endFunction
int Function GetMaxRepetitions()
 return (HandlerConfig.MaxRepetitions + 1) as int   ;WS note - the +1 is because of a mismatch between the MCM descriptions and how the scripts use the MaxRepetitions var. (as far as scripts are concerned, a single sex scene is already 1 repetition)
endFunction
Function AddInitClothes()
 HandlerConditional.GotClothes = true
 int config = JValue.readFromFile("Data/MF_RP_Config.json")
 if(config != 0)
  form chestPiece = JValue.solveForm(config, ".startCloths.chestPiece")
  akPlayer.addItem(chestPiece,1)
  int rest = JValue.solveObj(config, ".startCloths.rest")
  int count  = JArray.count(rest)
  while(count >= 0 )
   count -= 1
   akPlayer.addItem(JArray.getForm(rest,count),1) 
  endWhile
  JValue.release(rest)
  JValue.release(config)
 else
  akPlayer.addItem(WenchCloths,1)
  akPlayer.addItem(WenchBoots,1)
 endIf
endFunction
Function ModBountyMult(int point)
 if(point < 0)
  BountyMult -= HandlerConfig.BountyDownRate * point
 else
  BountyMult += HandlerConfig.BountyUpRate * point
 endif
 
 if(BountyMult < 1.0)
  BountyMult = 1.0
 elseif(BountyMult > HandlerConfig.MaxBountyMult)
  BountyMult = HandlerConfig.MaxBountyMult
 endif
endFunction

int Function ValidateStatInt(string statName, int localValue, int modLocValue)
 if(SexLab.FindStat(statName) == -1)
        int value = localValue + modLocValue
  SexLab.RegisterStat(statName, value as string)
        return value
 else
  return SexLab.AdjustBy(statName, modLocValue)
 endif
endFunction

Function TriggerFailCD()
 RegisterForUpdateGameTime(0.5)
 TimeLastFailJob = Utility.GetCurrentGameTime()
 HandlerConditional.FailJobOnCD = 1
endFunction

Function TriggerHomeJobCD()
 RegisterForUpdateGameTime(0.5)
 TimeLastHomeJobCompleted = Utility.GetCurrentGameTime()
 HandlerConditional.HomeJobOnCD = 1
endFunction

Function TriggerCampJobCD()
 RegisterForUpdateGameTime(0.5)
 TimeLastCampJobCompleted = Utility.GetCurrentGameTime()
 HandlerConditional.CampJobOnCD = 1
endFunction

Function TriggerRandomJobCD()
 RegisterForUpdateGameTime(0.5)
 TimeLastRandomJobCompleted = Utility.GetCurrentGameTime()
 HandlerConditional.RandomJobOnCD = 1
endFunction

Function ResetAllCD()
 HandlerConditional.FailJobOnCD = 0
 HandlerConditional.HomeJobOnCD = 0
 HandlerConditional.CampJobOnCD = 0
 HandlerConditional.RandomJobOnCD = 0
 UnregisterForUpdateGameTime()
endFunction

Event OnUpdateGameTime()
 float time = Utility.GetCurrentGameTime()
 if(TimeLastFailJob +  HandlerConfig.FailJobCD <= time)
 HandlerConditional.FailJobOnCD = 0
 endif
 if(TimeLastHomeJobCompleted + HandlerConfig.HomeJobCD <= time)
 HandlerConditional.HomeJobOnCD = 0
 endif
 if(TimeLastCampJobCompleted + HandlerConfig.CampJobCD <= time)
 HandlerConditional.CampJobOnCD = 0
 endif
 if(TimeLastRandomJobCompleted + HandlerConfig.RandomJobCD <= time)
 HandlerConditional.RandomJobOnCD = 0
 endif
 ;if all of them are off CD, stop receiving events
 if(HandlerConditional.FailJobOnCD == 0 && HandlerConditional.HomeJobOnCD == 0 && HandlerConditional.CampJobOnCD == 0 && HandlerConditional.RandomJobOnCD == 0)
 UnregisterForUpdateGameTime()
 endif
endEvent

Function SetMadame(Actor Madame, int rank)
 akPlayer = akPlayerRef.GetRef() as Actor
 Race pRace = akPlayer.GetActorBase().GetRace()
 if(HumanRace.HasForm(pRace))
  PlayerRace = 1
 elseif(ElfRace.HasForm(pRace))
  PlayerRace = 2
 elseif(BeastRace.HasForm(pRace)) 
  PlayerRace = 4
 else
  PlayerRace = 8
 endif
 akMadame = Madame
 akMadame.SetFactionRank(MadameFaction, rank)
 akPlayer.SetFactionRank(MadameFaction, 0) ; just put the player in madame_faction such that we know by looking at ourselves that we are running a quest for a madame
 UndeclaredJobs.SetValue(0)
 ; ...
endFunction

Function Reset()
 akPlayer = akPlayerRef.GetRef() as Actor
 akPlayer.RemoveFromFaction(MadameFaction)
 if(akMadame != None)
  akMadame.SetFactionRank(MadameFaction, 0)
 endif
 ; WS edit - replacing foodjob with simplerjob
 ;FoodJob.Stop()
 SimplerJob.Stop()
 SingleJob.Stop()
 if(HomeJob)
  HomeJob.Stop()
 endif
 if(CampJob)
  CampJob.Stop()
 endif
 if(currentQuest)
  currentQuest.Stop()
 endif
 
 ResetAllCD()
endFunction

Function ResetMadame()
 int tc = TotalClients.GetValueInt()
 if(tc < HandlerConfig.ProstituteRank1)
  akPlayer.SetFactionRank(ProstituteFaction, 0)
 elseif(tc <  HandlerConfig.ProstituteRank2)
  akPlayer.SetFactionRank(ProstituteFaction, 1)
 elseif(tc <  HandlerConfig.ProstituteRank3)
  akPlayer.SetFactionRank(ProstituteFaction, 2)
 elseif(tc <  HandlerConfig.ProstituteRank4)
  akPlayer.SetFactionRank(ProstituteFaction, 3)
 elseif(tc <  HandlerConfig.ProstituteRank5)
  akPlayer.SetFactionRank(ProstituteFaction, 4)
 else
  akPlayer.SetFactionRank(ProstituteFaction, 5)
 endif
 int pr = akPlayer.GetFactionRank(ProstituteFaction)
 if(pr >= 1 && HandlerConditional.PlayerKnowsHomeJob != 1)
  HandlerConditional.PlayerLearnHomeJob = 1
 endif
 if(pr >= 2 && HandlerConditional.PlayerKnowsCampJob != 1)
  HandlerConditional.PlayerLearnCampJob = 1
 endif
 if(pr >= 3 && HandlerConditional.PlayerKnowsRandomJob != 1)
  HandlerConditional.PlayerLearnRandomJob = 1
 endif
 akMadame.SetFactionRank(MadameFaction, 0)
 akPlayer.RemoveFromFaction(MadameFaction)
endFunction

; ------------ QUEST KICKERS --------------
Function SimplerJobQuestKicker(Actor Madame)
 ; WS edit - replacing foodjob with simplerjob
 ;FoodJob.Start()
 ;FoodJob.setMadame(Madame)
 SimplerJob.Start()
 SetMadame(Madame, 1)
endFunction

Function SingleJobMonitorKicker(Actor Madame)
 SingleJob.Start()
 SingleJob.SetStage(0)
 SingleJob.ResetVariables()
 SetMadame(Madame, 2)
endFunction
Function SingleJobQuestKicker(Actor Client, bool once = false) 
 SingleJobScript.Start()
 SingleJobScript.SetOnce(once)
 SingleJobScript.ForceSpeakerClient(Client)
endFunction

Function SingleJobQuestKickerAndApproach(Actor Client)
 SingleJobQuestKicker(Client)
endFunction
Function HomeJobQuestKicker(Actor Madame)
 HomeJob = QuestKicker(HomeJobs,lastHomeJob)
 if(HomeJob)
  HomeJob.setMadame(Madame)
  SetMadame(Madame, 3)
 endif
endFunction
Function CampJobQuestKicker(Actor Madame)
 CampJob = QuestKicker(CampJobs,lastCampJob)
 if(CampJob)
  CampJob.setMadame(Madame)
  SetMadame(Madame, 4)
 endif
endFunction
Function RandomJobQuestKicker(Actor Madame)
 currentQuest = QuestKicker(RandomQuests,lastRandomJob)
 
 if(currentQuest)
  currentQuest.setMadame(Madame)
  SetMadame(Madame, 5)
 endif
endFunction

; ------------- QUEST FAILURE --------------
; WS edit - adding functions for SimplerJob
Function SimplerJobQuestFail()
 ResetMadame()
 TriggerFailCD()
 SimplerJob.Stop()
endFunction
; WS edit - adding functions for SimplerJob
Function SimplerJobLeave()
 if(SimplerJob.GetStage() == 20 || SimplerJob.GetStage() == 30); food or gold
  Debug.Notification("You left the inn with the innkeeper's property")
  TriggerFailCD()
 
  ; consequence ??
  int amount = (100.0 * BountyMult) as int
  akMadame.GetCrimeFaction().ModCrimeGold(amount)
  Debug.Notification(amount+"gold bounty added")
  ModBountyMult(1)
 else
  Debug.Notification("You quitted serving food at the inn")
 endif
 ResetMadame() 
 SimplerJob.Stop()
 SingleJob.Stop()
endFunction
Function SingleJobQuestFail()
 SingleJob.Stop()
endFunction

Function SingleJobLeave()
 if(UndeclaredJobs.GetValue() > 0)
  Debug.Notification("You left town with the innkeeper's gold")
  TriggerFailCD()
  ; consequence ??
  int amount =  (BountyMult * (UndeclaredJobs.GetValueInt() * HandlerConfig.BaseGoldPerClient * HandlerConfig.BaseGoldMadameCut * BountyMult) / 100.0) as int
  akMadame.GetCrimeFaction().ModCrimeGold(amount)
  Debug.Notification(amount+" gold bounty added")
  ModBountyMult(1)
 else
  Debug.Notification("You left the prostitution job behind you")
 endif
 ResetMadame()
 UndeclaredJobs.SetValue(0)
 SingleJob.CompleteAllObjectives()
 SingleJob.StopFollow()
 SingleJob.Stop()
endFunction

Function HomeJobQuestFail()
 HomeJob.FailAllObjectives()
 HomeJob.SetStage(201)  ;to get the quest fail message
 EndHomeJob()     ;this will ensure the homeJob CD is triggered, and that the quest's shutdown stage is called, and also calls ResetMadame()
endFunction

Function CampJobQuestFail()
 CampJob.FailAllObjectives()
 CampJob.SetStage(201)  ;to get the fail message
 endCampJob()
endFunction

Function RandomJobQuestFail()
 ResetMadame()
 TriggerRandomJobCD()
 currentQuest.FailAllObjectives()
 currentQuest.setStage(200)
 currentQuest.Stop()
 currentQuest = None
endFunction
;
; ---------- FOOD JOB REWARD - WS added
;
Function GetSimplerJobReward(bool success = true)
 if(success)
  SimplerJobScript.GetTip()
 endif
 ResetMadame()
 SimplerJob.Stop()
endFunction
;
; ----------- SINGLE JOB REWARD -------------
;
Function GetSingleJobReward(int lie)
 int amount
 if (lie == 0)
  amount =  Math.Floor(totalReward * HandlerConfig.BaseGoldMadameCut / 100)
  ModBountyMult(UndeclaredJobs.GetValueInt() * (-1))
 elseif (lie == 1)
  amount =  Math.Floor(totalReward * HandlerConfig.BaseGoldMadameCut / 1000)
 elseif (lie > 1)
  amount = Math.Floor(totalReward * HandlerConfig.BaseGoldMadameCut / 33)
  akMadame.GetCrimeFaction().ModCrimeGold(Math.floor(amount * BountyMult))
  Debug.Notification("The innkeeper put a bounty on my head, I'll have to sort that out with the guards")
  ModBountyMult(1)
  TriggerFailCD()
  amount = 0
 endif
 
 totalReward = 0;
 if(amount != 0)
  int goldCount = Game.GetPlayer().GetItemCount(Gold)
  if(goldCount < amount)
   amount -= goldCount
   MissingMoney.mod(amount)
   UpdateCurrentInstanceGlobal(MissingMoney)
   amount = goldCount
  endIf
  akMadame.AddItem(Gold, amount)
  akPlayer.RemoveItem(Gold,  amount)
 endif
 ResetMadame()
 UndeclaredJobs.SetValue(0)
 SingleJobMonitor.Stop()
 SingleJob.UnregisterForUpdate()
 SingleJob.Stop()
 
 ;Finish misc quest for learning about prostitution if present
 If IsObjectiveDisplayed(10)
  SetObjectiveCompleted(10)
 EndIf
endFunction

int Function CalcReward(float QM = 1.0, float PERF = 1.0, string Type = "All",int repetitions=1)
 float BG = HandlerConfig.BaseGoldPerClient ; base cost
 float SM = akPlayer.GetAV("Speechcraft") * HandlerConfig.GoldBonusPerSpeechcraft ; speechcraft modifier
 float FM = akPlayer.GetFactionRank(ProstituteFaction) * HandlerConfig.GoldBonusPerRank ; faction reputation modifier
 float GM = 0.0
 if(Game.GetPlayer().GetActorBase().GetSex() == 1)
  GM = HandlerConfig.FemaleGoldBonus
 else
  GM = HandlerConfig.MaleGoldBonus
 endif
 float MOD
 float PM
 if(Type == "Oral" || Type == "Blowjob" || Type == "Cunnilingus")
  MOD = HandlerConfig.OralModifier
  PM =  HandlerConfig.GoldBonusPerSexRank * SexLab.GetPlayerStatLevel("Oral")
 elseif(Type == "Anal")
  MOD = HandlerConfig.AnalModifier
  PM =  HandlerConfig.GoldBonusPerSexRank * SexLab.GetPlayerStatLevel("Anal")
 elseif(Type == "Vaginal")
  MOD = HandlerConfig.VaginalModifier
  PM =  HandlerConfig.GoldBonusPerSexRank * SexLab.GetPlayerStatLevel("Vaginal")
 elseif(Type == "Rape")
  MOD = HandlerConfig.RapeModifier
  PM =  HandlerConfig.GoldBonusPerSexRank * SexLab.GetPlayerStatLevel("Victim")
 elseIf(Type == "Lesbian")
  MOD = HandlerConfig.VaginalModifier
  PM =  HandlerConfig.GoldBonusPerSexRank * SexLab.GetPlayerStatLevel("Vaginal")
 else
  MOD = 1.0 ; overall quest modifier
  PM =   HandlerConfig.GoldBonusPerSexRank * (SexLab.GetPlayerStatLevel("Anal") + SexLab.GetPlayerStatLevel("Vaginal") + SexLab.GetPlayerStatLevel("Oral"))/3
 endif
 MOD *= PERF * QM
 int payment = Math.Floor((BG + SM + FM + PM + GM) * MOD)
 if(repetitions > 1)
  int multipleBonus=  Math.Floor(payment * (repetitions - 1) * HandlerConfig.MultipleBonus)
  payment = payment + multipleBonus
 endif
 return  payment
endFunction
;
; ----------- HOME JOB REWARD -------------
;
Function GetHomeJobReward()
 float PERF = HandlerConditional.PerformanceRewardMod
 float QM = 3.0 * HandlerConfig.HomeDeliveryQuestModifier
 akPlayer.AddItem(Gold, CalcReward(QM, PERF))
 HomeJob.CompleteAllObjectives()
 EndHomeJob()
endFunction
Function EndHomeJob()
 HomeJob.Stop()
 ModBountyMult(-2)
 ResetMadame() 
 TriggerHomeJobCD()
endFunction
;
; ----------- CAMP JOB REWARD -------------
;
Function GetCampJobReward()
 float PERF = (CampJob as mf_CampJobQuestScript).GetModifier() ; overall quest modifier
 float QM = 0.75 * HandlerConfig.CampJobQuestModifier
 ModBountyMult(-PERF as int)
 
 akPlayer.AddItem(Gold, CalcReward(QM, PERF))
 CampJob.CompleteAllObjectives()
 endCampJob()
endFunction
Function endCampJob()
 ResetMadame() 
 TriggerCampJobCD()
 CampJob.stop()
endFunction
;
; ----------- RANDOM JOB REWARD -------------
;
Function GetRandomJobReward()
 ModBountyMult(-5)
 ResetMadame() 
 TriggerRandomJobCD()
 currentQuest.Stop()
 currentQuest = None
 HandlerConditional.GrantExtraReward = false;
endFunction
Function GetRandomJobExtraReward()
 ModBountyMult(-5)
 ResetMadame() 
 TriggerRandomJobCD()
 (currentQuest as MF_RandomQuest).getExtraReward()
 currentQuest.Stop()
 currentQuest = None
 HandlerConditional.GrantExtraReward = false;
endFunction
;
; ----------- REWARD FROM CLIENT -------------
;
Function GetRewardSingleFromClient(Actor akClient, int repetitions=0, int jobNumeric = -1)
 float PERF = HandlerConditional.PerformanceRewardMod
 float QM = 1.0
 string jobType= akJobType
 if(jobNumeric == 1)
  jobType= "Oral"
 elseif(jobNumeric == 2)
  jobType= "Vaginal"
 elseif(jobNumeric == 3)
  jobType= "Anal"
 elseif(jobNumeric == 4)
  jobType= "Things"
 elseif(jobNumeric == 5)
  jobType= "Rape"
 elseif(jobNumeric == 7)
  jobType= "Lesbian"
 endIf

 if(repetitions > 0)
  int reward = CalcReward(QM, PERF, jobType,repetitions)
  totalReward += reward
  akPlayer.AddItem(Gold, reward)
  int t = UndeclaredJobs.GetValueInt() + 1
  UndeclaredJobs.SetValue(t)
  UpdateCurrentInstanceGlobal(UndeclaredJobs)
 endif
endFunction
 
event EvaluateSex(string eventName, string argString, float argNum, form sender)
 CalcRewardMod(argString)
    ; Debug.Notification("Sex lasted " + sexLasted + " sec")
 UnregisterForModEvent("AnimationEnd_GetTime")
endEvent
Function CalcRewardMod(string argString)
 float sexLasted = SexLab.HookTime(argString)
 if(sexLasted > HandlerConfig.TimeForFullReward)
  HandlerConditional.PerformanceRewardMod = 1.0
 else
   HandlerConditional.PerformanceRewardMod = sexLasted / HandlerConfig.TimeForFullReward
 endif

endFunction

Function IncrementTotalClients(int c)
 int t = TotalClients.GetValueInt()
 TotalClients.SetValue(ValidateStatInt("Client Count", t, c))
 UpdateCurrentInstanceGlobal(TotalClients)
endFunction

Function SetRefractory(Actor Client, bool satisfied=true)
 if(satisfied)
  RefractoryS.Cast(Client, Client)
 else
  RefractoryD.Cast(Client, Client)
 endIf
endFunction

sslThreadController Function PerformSex(Actor akClient, string type, string aggr = "None", string next = "None",bool isPlayerVictim=false, bool foreplay=false, bool switchOnFF =false)
 sslBaseAnimation[] anims
 actor[] actors = new actor[2]
 int playerIndex =0
 actors[0] = akPlayer
 actors[1] = akClient
 
 int sex0 = actors[0].GetActorBase().GetSex()
 int sex1 = actors[1].GetLeveledActorBase().GetSex()
 int f  = sex0 + sex1
 int m = 2 - f
 string option = ""
 string suppress ="Aggressive"
 if(aggr != "None" || isPlayerVictim)
  option = ",Aggressive"
  suppress =""
 endif
 ; sort the player/client depending on the anim type that will be chosen
 if(f == 2); FF
  option = ""
  suppress ="Aggressive"
  if(type == "Oral" && !switchOnFF)
   actors[0] = akClient
   actors[1] = akPlayer
   playerIndex=1
  elseif(switchOnFF)
   actors[0] = akClient
   actors[1] = akPlayer
   playerIndex=1
  endif
  
  ;ws edit - searching by "FF,<type>" when type=oral removes a lot of valid cunnilingus animations - search for tag cunnilingus instead, with 69 suppress
  if type == "Oral"
   anims = SexLab.GetAnimationsByTags(2, "Cunnilingus", "69", requireAll=true)
  Else
   ;if type isn't Oral, then use the code that was already here
   anims = SexLab.GetAnimationsByTags(2, "FF,"+ type+ option,suppress, requireAll=true)
  EndIf
  if(anims.Length == 0)
   anims = SexLab.GetAnimationsByTags(2, "MF,"+ type+ option,suppress, requireAll=true)
  endif
 elseif(f == 1);FM || MF
  if(sex0 == 0) ;PC is male
   actors[0] = akClient
   actors[1] = akPlayer
   playerIndex=1
  endif
  anims = SexLab.GetAnimationsByTags(2, "MF,"+ type+ option,suppress+",69", requireAll=true)
 else; MM
  anims = SexLab.GetAnimationsByTags(2, "MM,"+ type+ option,suppress, requireAll=true)
  if(anims.Length == 0)
   anims = SexLab.GetAnimationsByTags(2, "MF,"+ type+ option,suppress, requireAll=true)
  endif
 endif

 if(anims.Length == 0)
  Debug.Notification("You've blacklisted all consensual "+type+" sex anims. This won't work.")
  anims = SexLab.GetAnimationsByTags(2,"Sex")
 endif
 SetRefractory(akClient)
 return fuck(actors,playerIndex,anims,foreplay,next,type,isPlayerVictim).StartThread()
 
endFunction
sslThreadModel Function fuck(Actor[] actors, int playerIndex, sslBaseAnimation[] anims, bool foreplay = true, string next = "None",string type = "None", bool isPlayerVictim = false)
 akJobType = type
 IncrementTotalClients(1)
 bool[] equip0 = New bool[33]
 bool[] equip1 = New bool[33]
 int i=0
 While(i < 33)
  equip0 = false
  equip1 = false
  i += 1
 endWhile
 if(type == "Oral")
  equip0[0] = true ;head
  equip0[3] = true ;hand
  equip0[4] = true ;forearms
  equip0[9] = true ;shield
  equip0[14] = true ;face
  equip0[32] = true ;weapon
  equip1[2] = true ;body
  equip1[9] = true ;shield
  equip1[16] = true ;chest
  equip1[19] = true ;pelvis
  equip1[28] = true ;undergarment
  equip1[32] = true ;weapon 
 else
  equip0[2] = true ;body
  equip0[9] = true ;shield
  equip0[16] = true ;chest
  equip0[19] = true ;pelvis
  equip0[28] = true ;undergarment
  equip0[32] = true ;weapon 
  equip1[2] = true ;body
  equip1[9] = true ;shield
  equip1[16] = true ;chest
  equip1[19] = true ;pelvis
  equip1[28] = true ;undergarment
  equip1[32] = true ;weapon 
 endif
 RegisterForModEvent("AnimationEnd_GetTime", "EvaluateSex")
 While (SexLab.FindActorController(actors[0]) != -1 || SexLab.FindActorController(actors[1]) != -1)
  Utility.Wait(1.0)
 endwhile
 sslThreadModel th = SexLab.NewThread()
 if(actors.length == 2)
  if(playerIndex == 1)
   th.AddActor(actors[0])
   th.AddActor(actors[1], isVictim= isPlayerVictim)
   if(HandlerConfig.PlayerMinimalStripping)
    th.SetStrip(actors[1], equip0)
   endif
   if(HandlerConfig.ClientMinimalStripping)
    th.SetStrip(actors[0], equip1)
   endif
  else
   th.AddActor(actors[0], isVictim= isPlayerVictim)
   th.AddActor(actors[1])
   if(HandlerConfig.PlayerMinimalStripping)
    th.SetStrip(actors[0], equip0)
   endif
   if(HandlerConfig.ClientMinimalStripping)
    th.SetStrip(actors[1], equip1)
   endif
  endif
 elseif(actors.length == 3)
  if(playerIndex == 0)
   th.AddActor(actors[0], isVictim= isPlayerVictim)
   th.AddActor(actors[1])
   th.AddActor(actors[2])
   if(HandlerConfig.PlayerMinimalStripping)
    th.SetStrip(actors[0], equip0)
   endif
   if(HandlerConfig.ClientMinimalStripping)
    th.SetStrip(actors[1], equip1)
    th.SetStrip(actors[2], equip1)
   endif
  elseif(playerIndex == 1)
   th.AddActor(actors[0])
   th.AddActor(actors[1], isVictim= isPlayerVictim)
   th.AddActor(actors[2])
   if(HandlerConfig.PlayerMinimalStripping)
    th.SetStrip(actors[1], equip0)
   endif
   if(HandlerConfig.ClientMinimalStripping)
    th.SetStrip(actors[0], equip1)
    th.SetStrip(actors[2], equip1)
   endif
  elseif(playerIndex == 2)
   th.AddActor(actors[0])
   th.AddActor(actors[1])
   th.AddActor(actors[2], isVictim= isPlayerVictim)
   if(HandlerConfig.PlayerMinimalStripping)
    th.SetStrip(actors[2], equip0)
   endif
   if(HandlerConfig.ClientMinimalStripping)
    th.SetStrip(actors[0], equip1)
    th.SetStrip(actors[1], equip1)
   endif
  endif
 endIf
 th.SetAnimations(anims)
 if(isPlayerVictim)
  th.DisableLeadIn(true)
 else
  th.DisableLeadIn(!foreplay)
 endif
 ;Bed Search is Disabled if a CenterObject is set
 ;if(!HandlerConfig.UseBeds)    ;ws - commented out - this might be what's causing issues with the automatic free cam (edit: it was!)
 ; th.CenterOnObject(actors[playerIndex])
 ;endIf
 ;WS - restoring UseBeds MCM function
 If(!HandlerConfig.UseBeds)
  th.DisableBedUse(true)
 EndIf
 th.SetHook("GetTime")
 if(next != "None")
  th.SetHook(next)
 endif
 return th
endFunction

sslThreadController Function PerformCreatureSex(Actor[] creatures, string next = "None")
 sslThreadModel th = SexLab.NewThread()
 th.AddActor(akPlayer, isVictim=true)
 int count = 0
 while count < creatures.length
  th.AddActor(creatures[count])
  count= count+1
 endWhile
 if(next != "None")
  th.SetHook(next)
 endif
 th.CenterOnObject(akPlayer)
 return th.StartThread() 
endFunction
sslThreadController Function PerformThreesome(Actor akClient, Actor akGuest, string next = "None", bool isPlayerVictim =false)
  IncrementTotalClients(2)
  SetRefractory(akClient)
  SetRefractory(akGuest)
  sslBaseAnimation[] anims
  actor[] actors = new actor[3]
  int playerIndex =0
  actors[0] = akPlayer
  actors[1] = akClient
  actors[2] = akGuest
  int sex0 = Game.GetPlayer().GetActorBase().GetSex()
  int sex1 = akClient.GetLeveledActorBase().GetSex()
  int sex2 = akGuest.GetLeveledActorBase().GetSex()
 
  int c = 1
  sslBaseAnimation[] anims2
 
  int f  = sex0 + sex1 + sex2
  int m = 3 - f
  if(sex0 == 1) ; female PC
  if(sex1 == 1); female NPC
   if(sex2 == 1); FFF
    c = 2
    anims  = SexLab.GetAnimationsByTags(2, "Cunnilingus")
    if(anims.length ==0)
     anims  = SexLab.GetAnimationsByTag(2, "FF")
    endif
    if(anims.length ==0)
     anims  = SexLab.GetAnimationsByTag(2, "MF,FM")
    endif
    anims2 = SexLab.GetAnimationsByTags(1, "F", "Masturbation")
   else
    anims = SexLab.GetAnimationsByTags(3, "MFF")
   endif
  else; male NPC
   if(sex2 == 1) ; FMF
    actors[0] = akGuest
    actors[1] = akPlayer
    actors[2] = akClient
    playerIndex =1
    anims = SexLab.GetAnimationsByTags(3, "MFF")
   else ;FMM
    anims = SexLab.GetAnimationsByTags(3, "MMF")
   endif
  endif
  else; male PC
  if(sex1 == 1)
   if(sex2 == 1); MFF
    actors[0] = akGuest
    actors[2] = akPlayer
    playerIndex =2
    anims = SexLab.GetAnimationsByTags(3, "MFF")
   else ; MFM
    anims = SexLab.GetAnimationsByTags(3, "MFF")
   endif
  else
   if(sex2 == 1) ; MMF
    actors[1] = akGuest
    actors[2] = akClient
   
    anims = SexLab.GetAnimationsByTags(3, "MFF")
   else ;MMM
    anims  = SexLab.GetAnimationsByTags(3, "MMF") ;player in female position
   endif
  endif
  endif
 
  if(anims.Length == 0)
  Debug.Notification("You've blacklisted all threesome sex anims. This won't work.")
  if(c == 1)
   anims = SexLab.GetAnimationsByTags(3,"Sex")
  else
   anims = SexLab.GetAnimationsByTags(2,"Sex")
   anims2 = SexLab.GetAnimationsByTags(1,"Sex")
  endif
  endif
  RegisterForModEvent("AnimationEnd_GetTime", "EvaluateSex")
  While (SexLab.FindActorController(actors[0]) != -1 ||SexLab.FindActorController(actors[1]) != -1 || SexLab.FindActorController(actors[2]) != -1)
   Utility.Wait(1.0)
  endwhile
  if(c == 1)
   sslThreadModel th = SexLab.NewThread()
   if(playerIndex ==0) 
    th.AddActor(actors[0],isVictim = isPlayerVictim)
    th.AddActor(actors[1])
    th.AddActor(actors[2])
   elseif(playerIndex ==1)
    th.AddActor(actors[0])
    th.AddActor(actors[1],isVictim = isPlayerVictim)
    th.AddActor(actors[2])
   else
    th.AddActor(actors[0])
    th.AddActor(actors[1])
    th.AddActor(actors[2],isVictim = isPlayerVictim)
   endif
   th.SetAnimations(anims)
   th.DisableLeadIn(isPlayerVictim)
   th.SetHook("GetTime")
   if(next != "None")
    th.SetHook(next)
   endif
   return th.StartThread()
  else
   sslThreadModel th2 = SexLab.NewThread()
   th2.AddActor(actors[1])
   th2.SetAnimations(anims2)
   th2.DisableLeadIn(true)
   th2.StartThread() 
  
   sslThreadModel th1 = SexLab.NewThread()
   if(playerIndex ==0) 
    th1.AddActor(actors[0],isVictim = isPlayerVictim)
    th1.AddActor(actors[2])
   else
    th1.AddActor(actors[0])
    th1.AddActor(actors[2],isVictim = isPlayerVictim)
   endif
   th1.SetAnimations(anims)
   th1.DisableLeadIn(true)
   th1.SetHook("GetTime")
   if(next != "None")
    th1.SetHook(next)
   endif
   return th1.StartThread()
  endif
endFunction

sslThreadController Function PerformMasturbation(Actor akSoloer, string next = "None")
 int sex = akSoloer.GetLeveledActorBase().GetSex()
 
 akJobType = "Masturbation"
 sslBaseAnimation[] anims
 if(sex == 0)
 anims = SexLab.GetAnimationsByTag(1, "M", akJobType,  requireAll=true) 
 ;anims = SexLab.GetAnimationsByTag(1, "M", akJobType, tagSuppress="Zaz", requireAll=true)
 else
 anims = SexLab.GetAnimationsByTag(1, "F", akJobType, requireAll=true)
 ;anims = SexLab.GetAnimationsByTag(1, "F", akJobType, tagSuppress="Zaz", requireAll=true)
 endif
 
 if(anims.Length == 0)
 Debug.Notification("You've blacklisted all consensual "+akJobType+" sex anims. This won't work.")
 return None
 else
   While (SexLab.FindActorController(akSoloer) != -1 )
  Utility.Wait(1.0)
 endwhile
 sslThreadModel th = SexLab.NewThread()
 th.AddActor(akSoloer)
 th.SetAnimations(anims)
 th.DisableLeadIn(true)
 if(next != "None")
  th.SetHook(next)
 endif
 return th.StartThread()
 endif
endFunction
Function PerformDance()
endFunction
Function FadeToBlack()
 akPlayer.SetRestrained(true) 
 FadeOut.Apply()
 Utility.Wait(2.5) ; since Fadeout lasts exactly 3.0s, we need to allow some script delay
 FadeOut.PopTo(BlackScreen)
endFunction
Function FadeFromBlack()
 BlackScreen.PopTo(FadeIn) 
 Utility.Wait(2.0)  
 FadeIn.Remove()  
 akPlayer.SetRestrained(false)
endFunction
MF_RandomQuest Function QuestKicker(FormList quests,int lastIndex)
 Debug.Trace("[Radiant Prostitution] try to start a quest from list " + quests.GetName())
 Debug.Trace("[Radiant Prostitution] last Index was " + lastIndex)
 MF_RandomQuest questToStart = randomQuest(quests, lastIndex)
 Debug.Trace("[Radiant Prostitution] Try to start Quest " + questToStart)
 int try1 = 0
 While(!questToStart.IsRunning() && try1 < 5)
  int try2 = 0
  Debug.Trace("[Radiant Prostitution] Are Preconditions fullfilled ? " + (questToStart.checkConditions()))
  if(questToStart.checkConditions())
   questToStart.Start()
   Utility.wait(0.5)
   While(!questToStart.IsRunning() && try2 < 5)
    Debug.Trace("[Radiant Prostitution] Quest not started Retry "+ try2)
    questToStart.Start()
    try2 += 1
    Utility.wait(0.5)
   endWhile
  endIf
  if(!questToStart.IsRunning())
   Debug.Trace("[Radiant Prostitution] Quest did not start get a new one")
   questToStart = randomQuest(quests, lastIndex)
   Debug.Trace("[Radiant Prostitution] New Quest is "+ questToStart)
   questToStart.Start()
   try1 += 1
  endIf
 endWhile
 if(questToStart.IsRunning())
  Debug.Trace("[Radiant Prostitution] Quest started")
  return questToStart
 endif
 
 Debug.Trace("[Radiant Prostitution] no Quest Could be started")
 Debug.Notification("No quest was started. Please try again.")
 return none
endFunction
MF_RandomQuest Function randomQuest(FormList quests, int lastIndex)
 int listSize = quests.GetSize()
 
 if(listSize <= 0)
  ErrorMessage.show()
 endIf
 ; WS - commented out, this method of picking a quest confuses me and seems to cause predictable repetition even after the first round
 ;lastIndex = lastIndex + Utility.RandomInt(1, Math.ceiling(listSize / 2))
 ;while(lastIndex > listSize - 1)
 ; lastIndex = lastIndex - (listSize - 1)
 ;endWhile
 
 
 ; WS - instead of the above whatever-the-hell-that-is, all we want is ensure that a random quest isn't given twice in a row, if there are more than 2 choices
 ; note: the WHILE needs to check if listSize is larger than one, so we don't get stuck if the list only has 1 quest
 ; and if the listSize is 2, we need to do RandomInt(0,1) instead, otherwise it'll always alternate between one and the other with no randomness
 int newIndex = lastIndex
 if listSize == 2
  newIndex = Utility.RandomInt(0,1)
 Else
  While ( (newIndex == lastIndex) && (listSize > 1) )
   newIndex = Utility.RandomInt(0, (listSize - 1))
  EndWhile
 EndIf
 Debug.Trace("MF_RP TRACE : FINAL INDEX IS " + newIndex + " (" + quests.GetAt(newIndex) + ")")
 MF_RandomQuest questToStart = quests.GetAt(newIndex) as MF_RandomQuest
 if(questToStart.getRank() == 1)
  lastHomeJob = newIndex
 elseif(questToStart.getRank() == 2)
  lastCampJob = newIndex
 elseif(questToStart.getRank() >= 3)
  lastRandomJob = newIndex
 endIf
 return questToStart
endFunction

Function loadFrostfall()
 isFrostfallLoaded = false
 int Mods = Game.GetModCount()
 int i
 While i < Mods
  string Modname = Game.GetModName(i)
  If !isFrostfallLoaded && Modname == "Chesko_Frostfall.esp"
   isFrostfallLoaded = true
   Frostfall_exposurePoints = Game.GetFormFromFile(0x00000183d, "chesko_frostfall.esp") as GlobalVariable
   return
  EndIf
  i += 1
 EndWhile
EndFunction

Function frostfallWarmPlayer()
 if (isFrostfallLoaded)
  Frostfall_exposurePoints.SetValue(120)
 Else
  loadFrostfall()
  If (isFrostfallLoaded)
   Frostfall_exposurePoints.SetValue(120)
  EndIf
 EndIf
EndFunction

 

Above in the Spoiler is the whole Handler script form RP 3.2.2, now the reason I want to point this out is in that code, there is option for m/m, mf hetro, ff (PC sub side, and dom side)

 

No where in that code is the option for the female to dom a male, ITS NOT, so again, all I am saying is I am trying to make the game for all styles of play, not just certain ones.

In 3.2.2, a female NPC could approach a Male pc, and actually say " I want to fuck your ass and leave it a gaping black hole", then when the animations starts, the code puts the female in the submissive position! so It is immersive breaking!

 

By no means am I trying to down the work you and others did, it is much appreciated, and I am hoping you would like to help me make this better,

What I am saying is, before I want to move onto making more quest, I want the game to be useable for all players and play styles thru dialog Immersion

 

I agree with you all those things you mention need to be added, and we will get there, I just want a stronger foundation to build this on, so everyone feels they can use RP, with any character, any sexual preference, any race, it feels to that person like the mod was mad for the character they are playing

 

Its that high expectations on my part...yea..lol but I have been modding my own game for years, examples:

Defeat, made my own json files, maybe my favorite mod of all time, I change a lot of conditions to be gear towards male players, instead of just generic dialog

Apropos- made my own json files so there was male male description in debug messages , or female strap-on to male

RDS- another one of my favorites from Guffel, I made it for my playthrough so it talks to me , directly to my character, instead of just generic

 

The only issue I see with modders out here now, is the first thought is " I need to script this" or " I need to make a script to fix another script"when a lot of things can be done without scripting everything , that's not to take away from some of the amazing code all these different modders have written, cause its amazing!

 

Anyways, I hope none of what I said was taking personally, we all see it different, and thanks for the work you have done on this, I hope you are interested in doing more :smile:

 
Link to comment
27 minutes ago, divinefire said:

I'd like to see a group sex or gangbang quest be put in since we have a few animation packs that do them now or maybe just a customer request it when they approach you or ask them if they want any food or drink. They already ask for bj/vag/anal anyway.

 

Thanks for updating and supporting this mod.

Your welcome, That's a great Idea and I will start working on that once the dialog is complete:), There is a quest for home gangbang but the code as of now is set for threesomes, while the others watch, then take turns for another threesome but once we get to the coding side of it, full 4 and 5 person gang bangs will be added :smile: 

Link to comment

It's very nice to see this mod getting updates since it was one of my favourites, i've a question about it, do i need a new save to use the mod or can a save with the old radiant prostitution can be updated with this new version? Also if it's possible to update do i need to do something specific or can i just substitute the old version with the new one and everything will work fine?

Link to comment
35 minutes ago, TheGreatJoeLouis said:

It's very nice to see this mod getting updates since it was one of my favourites, i've a question about it, do i need a new save to use the mod or can a save with the old radiant prostitution can be updated with this new version? Also if it's possible to update do i need to do something specific or can i just substitute the old version with the new one and everything will work fine?

you should be able to update right over the old one, and everything should be fine, do a save first just in case, but i see now reason that you cant just update from 3.2.2

Link to comment
38 minutes ago, Jappa123 said:

Hello, i just wanted to ask you is there any "soft bondage" content like in cursed loot solicitation or Maria eden? If not any plans for it? asking because i wanted to start new game with new modlist :smile: Thanks!

There are plans for it in the future, once all the dialog match's that's in there now, I want to release standalone versions to go with mods like you mention and more, and if someone else gets the jump on it earlier to make quest for this to link with other mods, that's great as well, but yes is in the future plans :). also if you are starting a new playthru, give Sexlab adventures a try, it is one of the best Rape mods I have seen, its from Teutonic https://www.loverslab.com/files/file/5183-sexlab-adventures/

Link to comment

Hi...i just update the mod in my current game...and found two things: in the solitude inn the innkeeper dont have the dialog for start working, and when i try with Hulda in whiterun she speaks to my female pc as gigolo

I dont know if this happens because i´m playing with a custom race (Lunari)

Thanks for your great work and for your help

Link to comment
6 minutes ago, pendulo1 said:

Hi...i just update the mod in my current game...and found two things: in the solitude inn the innkeeper dont have the dialog for start working, and when i try with Hulda in whiterun she speaks to my female pc as gigolo

I dont know if this happens because i´m playing with a custom race (Lunari)

Thanks for your great work and for your help

Hmm, it might be, I will jump into the CK in a minute and make sure he still has the innkepper keyword in winking skeever

Link to comment
23 minutes ago, pendulo1 said:

Hi...i just update the mod in my current game...and found two things: in the solitude inn the innkeeper dont have the dialog for start working, and when i try with Hulda in whiterun she speaks to my female pc as gigolo

I dont know if this happens because i´m playing with a custom race (Lunari)

Thanks for your great work and for your help

Hey good catch So I had the conditions wrong in that dialog, I am going to update it in a minute, all you will have to do is drop the esp into your Skyrim data folder and hit yes when its askes to overwrite, I will drop the file here for you now, then put it in the update after I check out the winking skeever issue

MF_RadiantProstitution.esp

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