Jump to content

SexoutSewerSlave


Recommended Posts

View File

A mod intended for female PCs only. Such individuals going on scavenging runs around Westside might find themselves in a spot of trouble including, but not limited to, being enslaved in a sewer. Surprised?

Talk to Dermot in Westside to get the quest started.



This mod was a group effort for quite some time but eventually fell by the wayside. After slightly over a year, I've taken the mod and revamped the scripting to the new UDF standard, as well as fixing several things that looked a bit weird. That makes this mod, essentially, a port. All the old features are still present, but the stuff that didn't go anywhere before still doesn't go anywhere. For the time being I plan on making it playable, since it was never the most reliable plugin even before I screwed with it. Once it's working as-is, perhaps it can be expanded. Bug reports are needed to get this working. Nothing can be fixed if I don't know it needs fixing.

EXTENDED CHANGELOG


13 June 2015

  • Theoretically fixed sex acts not matching dialogue
  • Blocked soliciting of NPCs that should not be able to be solicited

6 June 2015

  • Fixed exploding collar on load issue
  • Removed obsolete MCM menu options

9 May 2015

  • Assault-based kidnapping functionality completely removed
  • Fixed slave controller looping issue
  • Made potentially annoying message potentially less annoying

3 Apr 2015

  • Fixes to opening sequence
  • Player is now properly collared
  • Assault-based kidnapping is no longer supported, though the actual functionality remains for now

15 Feb 2015

  • Assault-related kidnapping checks now use the new flag check system instead of being always active

11 Jan 2015

  • Sexout calls now use fnSexoutActRunFull

7 Jan 2015

  • SewerSlave now checks Sexout version instead of the presence of SexoutZAZ

30 Dec 2014

  • Fixed overwrite of vanilla dialogue topic
  • Fixed references to old SCR records
  • Removed multiple unused records and scripts
  • Various minor dialogue tweaks
  • Fixed some scripting running only on game restart and not game load
  • Fixed some things that may have been broken intentionally
  • Fixed multiple incorrect and/or missing dialogue flags
  • Added yes/no option for caps demand
  • Switched forced ingestibles to direct spells

 


  • Submitter
  • Submitted
    02/04/2013
  • Category
  • Requires
    Sexout Slavery

 

Link to comment

Is there anything I did wrong? Dermot just rape my character after saying"nice philosophy you have there" after i followed him till the end, and then he walked away.

=================== =======================================================

EDIT:My bad, I was so stupid that I didn't even update the Sexout version...It works now.

Link to comment

Very good at start, but not enough people in sewer, little boring to always stay in the sewer.

Dermot could move player to other places after a while (prison, king's building, army or fiends camp or casino...)

Some time in the small room at beginning is a good Extra punishments. Or a rape/torture room/prison with Cass and Veronica locked inside.

You could ad quests, slave player have to find/seduce/buy npc girls from different factions for Dermot.

Link to comment

Well done dogface. I like the idea that you can't move freely. And i like your ideas for the future. I am working on a Prostitute mod that goes in the same direction. Basically a system to keep track of the players performance and attitude to determine future paths. If the PC disobeys or refuses work, its a downward spiral, getting handed over to worse and worse factions. On the other hand there is the possibility of getting better deals, better locations up to ultraluxe or similar and better security (by getting a pimp first, later even bodyguards). So far i added three attitudes (eager, reluctant and submissive) and keep track with aftersex answers and disobedience and satisfaction tokens. I just cant get the animations started, but perhaps a look at your scripts will help me with that.

 

Also thanks for the update of sexoutdrugs PI. All in all i like it that prostitution gets a bit more realistic and demanding. Just walking the streets with only the prostitution PI gets old fast.

 

As for your mod itself, it worked very well. One customer bugged out and handed over caps without triggering animation. Dermot taking your ammo is nice, but that left me with a full clip in the gun and i was able to kill the buggers with that. Pehaps taking the weapons themselves would be better. Or leave it like that, a chance at escaping is not bad. i did not check out the cooldowntimer, if there is any, before you can sell yoursel again to the same people, but 6 hours sleep apparently werent enough. Payment with goods rather than caps is great too, it really shows that the westside citizens are poor.

 

Keep it up.

 

 

Link to comment

I'll second that. A few thoughts, in no particular order:

 

 

The doctor's bag doesn't work right. it gets equipped like a stimpack, but that doesn't let you use it on a broken limb.

 

You need to do something about the player's companions. Either separate them from the PC when entering the sewer, or have them captured. Otherwise it's too easy to resuply from them, and some of them are capable of taking down Dermot and Saint James without breaking a sweat. I like the idea of a rape room, maybe with a mesh grille so the player can see what's happening.

 

One possible line of escape: if you can get past the rats and ghouls to the sealed sewer, there's enough kit there to rearm and probably take down one of your captors. Of course that still leaves the collar to be dealt with. Maybe there's a key. The problem then becomes how to find out who carries it, because if you get it wrong, the other one will likely trigger the collar.

 

On a related note, if the player is wearing armour when D & St.J turn up to collect, I think they'll probably want to take that off her. I mean she can't really say "that's all I have" with any degree of conviction when she's wearing reinforced combat armour. Now if she can stash it first, that's different.

 

There should probably be a chance to get caught holding out on them as well. Speech related, at a guess.

 

I think the smallish population of the sewer could become an asset. Give each of them a but more character and let the player get to know each of them as time goes on. Of course, being able to move to better or worse places is appealing, too.

 

Anyway, good fun, shows a lot of promise. Looking forward to seeing this one develop.

Link to comment

Dogface,

Excellent plugin. A few notes I made myself.

 

Overall: Pretty gritty situation. I like the "free to move" within a confined space feel. Lack of population in the sewers/Thorn area could mean you get moved to someplace else from time to time, but I think it would have to be in keeping with where D/StJ operate. Fiend area would be good. (Tie into a Fiends Tryout plugin?) They do maintain a facade of "respectability" in Westside.

 

Companions: Something does have to happen with the companions. Either captured with you or told to wait because D/StJ "don't trust taking too many newbies" to their salvage site.

 

Payment: Love the options: a few caps, barter for items, rape, or turn down the slave.

 

Hardcore mode: Plenty of irradiated water, not much in the way of food down there for a long stay. Could provide inspiration to escape... Or a means to keep the slave docile.

 

Escape: A couple ideas if you are having multiple ways.

-Explosives skill high enough to deactivate it at a repair bench or with a special tool somewhere in the sewers (populated sewers or monster filled sewers). Maybe a book to help skill level too.

-Repair with parts acquired through whoring. The key part could have a very low percentage of dropping.

-Find someone in the sewers/thorn that can disarm it--but for a price. Could be another elaborate prostitution / slavery quest line.

Link to comment

Thanks for the feedback, guys. I'm probably going to abandon this one, however, and try making a more modular PC-enslavement system. If people want, I'll at least fix up the bugs and put in an escape option or two, but I think it would be better to make a system of PC enslavement that can allow multiple mods by multiple authors to share it.

 

I forgot to mention that I did nothing about companions, you really shouldn't do this with them in tow.

 

@ DocClox ; the sewer residents actually do get randomly assigned a "personality" when you first talk to them, although it doesn't do very much so far.

 

@ monolith, the cooldown on sewer customers is not 6 hours, but a simple "once a day" situation. Once midnight hits you should be able to solicit everyone again. It's crude but it was easier.

Link to comment

Thanks for the feedback' date=' guys. I'm probably going to abandon this one, however, and try making a more modular PC-enslavement system. If people want, I'll at least fix up the bugs and put in an escape option or two, but I think it would be better to make a system of PC enslavement that can allow multiple mods by multiple authors to share it.

 

I forgot to mention that I did nothing about companions, you really shouldn't do this with them in tow.

 

@ DocClox ; the sewer residents actually do get randomly assigned a "personality" when you first talk to them, although it doesn't do very much so far.

 

@ monolith, the cooldown on sewer customers is not 6 hours, but a simple "once a day" situation. Once midnight hits you should be able to solicit everyone again. It's crude but it was easier.

[/quote']

 

I like the idea of having your mod event-driven instead of quest based, it will add more spice to the gaming experience, it will def. need a escape option however.

 

Good job btw :3

Link to comment

I'm having a problem with the mod. Dermot does his business, and then proceeds to just walk away as the other two just stand there. Sometimes one guy will just follow me indefinitely, but never do anything. Then other times, Saint James (who follows the whole time until Dermot does what he does then he leaves) will actually stick around and say "My turn" or something like that and the game will crash to the desktop.

 

It might be the load order, but I'm not sure. Where does SS belong?

Link to comment

@ monolith' date=' the cooldown on sewer customers is not 6 hours, but a simple "once a day" situation. Once midnight hits you should be able to solicit everyone again. It's crude but it was easier.

[/quote']

 

Yeah, figured it out as i was looking at your mod to find a way for delays, the once a day setting. I solved it with flipping queststages and will add a timerscript. Way more complicated and accident prone but adjustable. Thanks anyway, your mod helped me a lot in figuring out how stuff can be done.

 

@joesims

Put it last in order. Your sexout PIs should be there anyway and Sewerslave should not interfere with those.

 

Link to comment

Yeah' date=' figured it out as i was looking at your mod to find a way for delays, the once a day setting. I solved it with flipping queststages and will add a timerscript. Way more complicated and accident prone but adjustable. Thanks anyway, your mod helped me a lot in figuring out how stuff can be done.

[/quote']

I'm playing with delays a lot at the moment trying to make sure fertility & pregnancy advance at the correct time.

I'm actually using a dedicated sychronisation Script that runs at a 1 second delay to detect changes in current time then altering the other quest scripts delay time from 60 seconds to 1 second to catch up and I change a Script step modifier from 1 to 60 times to have 60 times more effect in the script wist it is running 60 times faster.

 

My only issue is I'm getting screwed up somewhere between NV Metric time & Real Time conversion.

 

scn SexoutFSynchQSCRIPT

; *** Controls Script Speed

short iOldVer
short iNewVer
float fCurrentTime
float fLastUpdatedTime
float fMinutesMissed
float fScriptDelay
float fScriptStep
float fMinToHourConv
float fGameMinuteTimer

ref self

Begin GameMode

Set self to player

; *** Alter Script run times to catch up after Fast Travel / Wait / Sleep
Set fMinToHourConv to .016666
Set fScriptDelay to 60
Set fCurrentTime to GetCurrentTime

; *** Intitialise so script doesn't lockup
If fLastUpdatedTime == 0 || fMinutesMissed <= 1
	Set fLastUpdatedTime to fCurrentTime - .02
endif

; *** Midnight Wrap around
if fCurrentTime < fLastUpdatedTime
	Set fMinutesMissed to ((fCurrentTime + 24 - fLastUpdatedTime) / fMinToHourConv)
endif

; *** No Wrap around
if fCurrentTime >= fLastUpdatedTime
	Set fMinutesMissed to ((fCurrentTime - fLastUpdatedTime) / fMinToHourConv)
endif

; **** Set Script Speed calculated on Time Missed
Set fScriptDelay to 60 - fMinutesMissed
If fScriptDelay < 1
	Set fScriptDelay to 1
endif
SetQuestDelay SexoutFert fScriptDelay
SetQuestDelay SexoutFCumVag fScriptDelay
SetQuestDelay SexoutFPreg fScriptDelay

Set fGameMinuteTimer to fGameMinuteTimer + GetSecondsPassed
if fGameMinuteTimer > 59
	Set fGameMinuteTimer to 0
endif

Set fScriptStep to 60 / fScriptDelay
If fMinutesMissed > 1
	Set fLastUpdatedTime to fLastUpdatedTime + (fMinToHourConv * fScriptStep)
	Set fTestHourCount to fTestHourCount + (fMinToHourConv * fScriptStep)
	;StartQuest SexoutFert
	;StartQuest SexoutFCumVag
	;StartQuest SexoutFPreg		
else
	;StopQuest SexoutFert
	;StopQuest SexoutFCumVag
	;StopQuest SexoutFPreg
endif

;ShowMessage SexoutFTimingVariableDEBUG fGameMinuteTimer fScriptDelay fScriptStep fCurrentTime fLastUpdatedTime fMinutesMissed

End

 

In the other Scripts you declare fLocalScriptStep then Set it SexoutFSynch.fScriptStep to get the timefactor to multiply effects in the other scripts. This way the other scripts only run every 60 seconds normally but catch up when needed.

 

Ok I just updated this it seems to work pretty well so far gets a little laggy with the message turned on :)

Link to comment

Hey that's a nifty script halstrom. This could work like some mastercontrol for timedelays. Because without something like that, i see performance problems for the future if a ton of sexout PIs check time every second. That's why i usually don't like timers. But this is a great idea, thanks.

 

@aspirine2: talk to dermot. One of the two guys dressed in blue overalls haning around near casa madrid in westside.

Link to comment

Hey that's a nifty script halstrom. This could work like some mastercontrol for timedelays. Because without something like that' date=' i see performance problems for the future if a ton of sexout PIs check time every second. That's why i usually don't like timers. But this is a great idea, thanks.

 

@aspirine2: talk to dermot. One of the two guys dressed in blue overalls haning around near casa madrid in westside.

[/quote']

It's not perfect but seems to work ok so far, I just realised I left some dead code in there with the fMinutesBalance Part could all be deleted.

 

I've got this going as well as possible but it's not good enough for what I'm doing, it still had big descrepencies between real time & game time. A game minute is a lot less than an ordinary minute, altough Game speed cam be set, it can't be read, unless calculated somehow comparing GetSecondsPassed to the difference and may vary with different Game Speed Mods. Way complicated.

 

My next cut at it is to set all the scripts to .5 second delay but stop and start them as required from the master control script.

Link to comment

Hey that's a nifty script halstrom. This could work like some mastercontrol for timedelays. Because without something like that' date=' i see performance problems for the future if a ton of sexout PIs check time every second. That's why i usually don't like timers. But this is a great idea, thanks.

 

@aspirine2: talk to dermot. One of the two guys dressed in blue overalls haning around near casa madrid in westside.

[/quote']

It's not perfect but seems to work ok so far, I just realised I left some dead code in there with the fMinutesBalance Part could all be deleted.

 

I've got this going as well as possible but it's not good enough for what I'm doing, it still had big descrepencies between real time & game time. A game minute is a lot less than an ordinary minute, altough Game speed cam be set, it can't be read, unless calculated somehow comparing GetSecondsPassed to the difference and may vary with different Game Speed Mods. Way complicated.

 

My next cut at it is to set all the scripts to .5 second delay but stop and start them as required from the master control script.

 

What about the Global "TimeScale"?

 

short TimeScale = Minutes that pass in-game within one minute of real-life

 

http://geck.bethsoft.com/index.php/Special_Variables

 

 

 

Link to comment

Umm there's a gamedayspassed function or global?

 

And a TimeScale Global?

 

Lol, oh crap, I've been doing it the hard way :)

 

I'm trying to track down to hours, so GameDaysPassed seems good, but I'm getting screwed up converting it into GameHours.

It's not just a case of multiply by 24 or 100, I have to multiply the fraction by 100 to get it's percentage of an hour them multiply the Day count by 24 and add the 2 together.

 

^Please ignore the above, I think I was on too much flu medication :)

Link to comment

Gamedayspassed is a bit too crude for what i have in mind. Dunno about Global TImescale, will have a look at it. But i have a room full of npc's running scripts, another two running special scripts and the player, triggering scripts. Another script should be keeping track of tokens and time passed after certain events. So secondspassed is not bad, but some scripts don't have to check every second, a minute would do, or as soon they need an update. And halstroms script up above seemed good for that to me. Ofc i am still learning and perhaps will find better ways to do stuff:). I will be gratefull if someone will pick the whole stuff apart later to show better, simpler or safer ways to do things. But before i can get marks, i need to do something:)

Link to comment

This is what I'm using now, it seems much more robust and simpler :)

scn SexoutFSynchQSCRIPT

; *** Controls Script Speed

float fCurrentTime
float fLastUpdatedTime
float fScriptStep
float fGameMinuteTimer
float fHoursPassed
short iDaysPassed

ref self

Begin GameMode

Set self to player

; *** Alter Script run times to catch up after Fast Travel / Wait / Sleep
Set iDaysPassed to GameDaysPassed
; *** Intitialise so script doesn't lockup
If fLastUpdatedTime == 0 || fHoursPassed <= 0
	;Set fLastUpdatedTime to (iDaysPassed * 24) + ((GamedaysPassed - iDaysPassed) * 100) - .0002
	Set fLastUpdatedTime to (GamedaysPassed *24) - .0002
endif

; *** GameDays passed

;Set fCurrentTime to (iDaysPassed * 24) + ((GamedaysPassed - iDaysPassed) * 100)
Set fCurrentTime to GamedaysPassed * 24
Set fHoursPassed to fCurrentTime - fLastUpdatedTime

If fHoursPassed > 1
	Set fScriptStep to fHoursPassed
	if fScriptStep > 20
		Set fScriptStep to 20		
	endif
	Set fLastUpdatedTime to fLastUpdatedTime + (1 * fScriptStep)
	;StartQuest SexoutFert
	;StartQuest SexoutFCumVag
	;StartQuest SexoutFPreg
	;ShowMessage SexoutFTimingVariableDEBUG fGameMinuteTimer GameDaysPassed fScriptStep fCurrentTime fLastUpdatedTime fHoursPassed
else
	StopQuest SexoutFert
	StopQuest SexoutFCumVag
	StopQuest SexoutFPreg	
endif

Set  fGameMinuteTimer to  fGameMinuteTimer + GetSecondsPassed
if  fGameMinuteTimer > 3600
	Set  fGameMinuteTimer to 0
endif
ShowMessage SexoutFTimingVariableDEBUG fGameMinuteTimer GameDaysPassed fScriptStep fCurrentTime fLastUpdatedTime fHoursPassed

End

I've set the delay time on the scripts controlled to .8 seconds so they don't run more than once but are definately run before the stop Quest is activated, damn I just realised all I need to do is move the stop quests into the end of each script to end it after one run :)

 

I just also realise I probably don't need the ScriptStep Speed adjustment at all because it will catch up by an hour every second, you can only sleep or wait 24 hours and I'm not sure what the maximum fast travell distance/time is, but it would have to be a lot to warrant more than a 30 second catch up.

 

And there's a few more lines of old crap that could be trimmed too.

Link to comment

I'm still not sure what you're using such a complicated tracker for...

 

If you wanted to track a pregnancy by stages, the way I'd do it is to set a variable to gamedayspassed when the character gets pregnant, then every time the script runs (the default 5 seconds is fine) check if that's smaller than gamedayspassed - however long between stages. Every time you change stage, you set that variable to gamedayspassed again. An example.

 

float PCGotPregged
short PCPregStage


begin gamemode

if PCGotPregged < gamedayspassed - 7
set PCGotPregged to gamedayspassed
set PCPregStage to PCPregStage + 1
endif

 

For charting a menstrual/ovulation cycle, I'd do this.

 

short CyclePosition
float LastCycle
short TempRandomNumber
short Initialisation

begin gamemode

;setting up a random delay for a new player's first cycle change and randomising the current stage of their cycle
if Initialisation != 1
set TempRandomNumber to getrandompercent
if TempRandomNumber > 75
set CyclePosition to 4
elseif TempRandomNumber > 50
set CyclePosition to 3
elseif TempRandomNumber > 25
set CyclePosition to 2
else
set CyclePosition to 1
endif

set TempRandomNumber to (GetRandomPercent / 10)
set TempRandomNumber to (TempRandomNumber - 4)
if TempRandomNumber < 1 
set TempRandomNumber to TempRandomNumber + 1
endif
set LastCycle to (gamedayspassed - TempRandomNumber)
set Initialisation to 1
endif

if LastCycle < (gamedayspassed -7)
set LastCycle to gamedayspassed
if CyclePosition == 4
set CyclePosition to 1
else
set CyclePosition to (CyclePosition + 1)
endif
endif

 

CyclePosition would have a value 1-4 (1= menstruating, 4=ovulating), each lasting a week, making it a fairly inaccurate but workable model of the menstrual cycle. You could cut this simple system of four stages into as many as you wanted, naturally.

 

Now, forgive me if I'm confused and there's something you're doing that actually needs a script to keep a clock, but I find it's easier to run time-tracking like this.

Link to comment

I gave the mod a quick runthru. It seems interesting so far.. but has a few fixes needed. as someone else put it your companion should be either also captured and collared or forced to wait outside the sewers. Secondly when you are first made aware this was a trap.. you can meekly surrender or say the "F you" option and instead of being killed or killing them as they would not go thru all the trouble they did just to kill you.... they collar you immediately then rape you.and add the phrase "No sweetheart...F YOU!"

Another thing I noticed.. tested it and found that if you do no whoring instead of anger and punishment the NPC acts as if you have successfully worked a day even tho you turned in nothing. in all it's not a bad beginning to the mod tho.

Link to comment

The reason for that is I set the expected money to be an average of your last three days working, which is initially set to 25. Problem is, if you're within 25caps of the expected result, you get a "yeah, this is decent work" reply. So you can basically just never work and they'll act like you do. I might get around to bugfixing it, maybe.

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