Jump to content

5 Screenshots

Sets selection of Vanilla and mod NPC as prostitutes with varying prices. Lightweight and highly configurable. Works with Sexlab and Ostim Standalone. ESL.

 

After a long day of cave crawling or dungeon delving, an adventurer wishes nothing more than to wind down with a bottle of wine and a wench. Basic Prostitution makes it easy to find a working lady, either from Vanilla NPC, or from the many, many, many mods that place pretty people around the settlements of Skyrim. If you have coin, you can buy what you want!

 

You want to hire a couple of tavern wenches and have a threesome? Done. You want to donate to a Priestess of Dibella and share her with your follower? Of course. Give a bottle of skooma to a beggar and get a blowjob? I question the wisdom in that, but sure.

 

Prices and payment form differ between NPC. For most, gold is preferred, with amounts varying from Very Low (25 by default) to Very High (500 by default). Some you can convince with skooma, some which only need a Few (1 by default), others take Many bottles (3 by default). And finally, if you find a friendly creature of the night, you can buy their affection for some Potion of Blood (1 by default).

 

 

Mod workings

 

Basic Prostitution uses factions to set up which NPC work as prostitutes, and what their price is. These factions can be assigned with SPID to any NPC in game. A SPID ini file is included in the download, which assigns a bunch of Vanilla NPC, as well as some existing mods.

 

Prostitutes will have a new dialogue option where you can inquire about hiring them. This opening dialogue differs a bit between prostitute types, a Priestess of Dibella differs from a street whore.

After the opening, you get some dialogue choices. You get to see their price, or prices if they have multiple payment types. There is an option to polity leave without hiring them.

Finally, there is an option to tell them you will never hire them. This last option will block this NPC from Basic Prostitution dialogue. This option can be reversed through using the console (see debug section).

 

If you decide to hire them, you'll pay them immediately. You get the option to start sex immediately, go find a better location, or go and find another person. The NPC will follow you until they've done their job.

 

You can have up to 4 NPC hired at the same time. If you want to start sex with them, speak to any of them. If you just want to watch, that is also an option.

Speaking with a friend, follower, or lover allows you to either share the hired prostitutes with them, or gift them and let your friend have some fun. Your relationshiprank must be at least 3 with your friend.

The sex framework does not allow more than 5 NPC in a sex scene. So if you want a follower to join you, you can have at most 3 NPC hired.

 

Afterwards, the hired NPC will return to their routine.

 

And a tip for those looking for a five fingered discount. The gold paid is transferred to their inventory. Skooma and Potions of Blood are as well, but the NPC won't wait to use those.

 

 

 

Default assignment and faction

 

This section quickly goes over the factions, and which NPC is selected for which faction.

Now, is this selection perfectly lore friendly and immersive? Not really, Bethesda didn't make a bunch of NPC obvious whores. But I did try to keep it believable. I'm open to suggestions on improving the default distribution.

 

 

Very Low Price

Faction: BP_ProstituteVeryLow

default price: 30 septims

Beggars are in this category. The truly destitute who need every bit of coin they can get.

 

Low Price

Faction: BP_ProstituteLow

default price: 60 septims

This group contains mostly people with a poorer profession living in the poorer holds. For example, there are several miners who live alone in Dawnstar, Shor's Stone, and Kynesgrove. 

 

Medium Price

Faction: BP_ProstituteMid

default price: 120 septims

This price level is where you find professionals like tavern wenches, castle maids, a couple of bards, and Haelga.

 

High Price

Faction: BP_ProstituteHigh

default price: 250 septims

Not many can ask this much for loving. Only high class courtesans and bards in the wealthier settlements can.

 

Very High Price

Faction: BP_ProstituteVeryHigh

default price: 500 septims

Reserved for the best paid lovers in Skyrim. Such as the leader of the Temple of Dibella, or the Madam of a high class brothel.

 

Priestess of Dibella

Faction: BP_ProstitutePriestess

default price: 200 septims

The priestesses of Dibella don't charge money for sex, they ask "offerings" for "lessons of the Godess". In practice, it ends up being the same thing. The default price is above those of tavern wenches, but below courtesans, making them still expensive for common folk, but not completely out of reach.

 

An NPC can have multiple price factions, the actual price charged will be the cheapest. The Priestess price is always overwritten if there's conflict. For example, Hamal is both Very High and Priestess, she will charge 500, but still get the Priestess flavor dialogue.

 

 

Skooma Few

Faction: BP_ProstituteSkoomaFew

default amount: 1 skooma

Some can be bought with just a tiny bit of skooma. This include addicts like Niluva and Wujeeta, as well as some beggars.

 

Skooma Many

Faction: BP_ProstituteSkoomaMany

default amount: 3 skooma

Just because someone likes skooma, doesn't mean they'll get down for just a single bottle. But if someone brings a lot of it, they'll be convinced. This group are middle class or wealthy addicts. For example, the vanilla Drifa has some suspicious dialogue, which I interpret as her being a sweet tooth.

 

 

Blood

Faction: BP_ProstituteBlood

default amount: 1 Potion of Blood

Non aggressive vampires aren't easy to find in Vanilla, but there are a couple in castle Volkihar.

 

 

Mods Supported

These are the mods that are currently included in the default ini files. It is not required to have them, SPID will simply skip instructions for what is not installed.

 

Immersive Wenches: All unique wenches are set to Mid Price, like vanilla wenches. The vampire wenches in that mod will accept Blood.

 

Hydra's Slave Girls: the slaves are set to Low Price, and the NPCs named Skooma Slut will accept the smaller amount of  Skooma.

 

Hot Chicks have Hot Sisters: Varies from NPC to NPC. Those that like skooma will accept it, the vamps will take blood, and some ask for money ranging from Low to High. I didn't assign all of them to a faction.

 

Sisterhood of Dibella: the travelling priestesses are added to the Priestess faction

 

Mara's Embrace Riften brothel: The three prostitutes are added to Mid Price faction.
This mod already had a third party plugin for sexlab or Ostim, that one is no longer required if you have Basic Prostitution. The advantage of Basic Prostitution is that it allows configuring the price, and hiring multiple at the same time.

 

Crimson Corner Solitude Bordello: The three prostitutes are added to High Price faction, and the Madam to the Very High Price faction.
This mod already had a third party plugin for sexlab or Ostim, that one is no longer required if you have Basic Prostitution. The advantage of Basic Prostitution is that it allows configuring the price, hiring multiple at the same time, and the Madam is als hireable.

 

 

Full ini file:

 

Spoiler

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;Vanilla NPC
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;very low
;beggars
Faction = BP_ProstituteVeryLow||FavorJobsBeggarsFaction,-NordRaceChild,-ImperialRaceChild,-RedguardRaceChild,-BretonRaceChild

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;low
;
;Dawnguard refugees, single workers and miners in poor holds/villages
Faction = BP_ProstituteLow|Alvide,Jayre,Birna,Bodil,Edith,Fruki,Irgnir,Sylgja,Bralsa,Ganna,Gemma

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;mid
;tavern wenches
Faction = BP_ProstituteMid|Hroki,Narri,Faida,Jonna,Eydis,Lynly Star-Sung,Saadia,Susanna the Wicked,Karita
Faction = BP_ProstituteMid|Delacourt,Mikael
;maids and specifics
Faction = BP_ProstituteMid|Erdi,Una,Haelga

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;high
;bards (main city, female)
Faction = BP_ProstituteHigh|Pantea Ateia,Aia Arria,Illdi,Lisette,Luaffyn
;bards (main city, male)
Faction = BP_ProstituteHigh|Ataf,Jorn


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;very high
Faction = BP_ProstituteVeryHigh|Hamal

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Priestesses of Dibella
Faction = BP_ProstitutePriestess|Orla,Senna,Anwen,Hamal


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;skooma few
Faction = BP_ProstituteSkoomaFew|Niluva,Wujeeta
Faction = BP_ProstituteSkoomaFew||FavorJobsBeggarsFaction,-NordRaceChild,-ImperialRaceChild,-RedguardRaceChild,-BretonRaceChild||||80

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;skooma many
Faction = BP_ProstituteSkoomaMany|Drifa

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;blood
Faction = BP_ProstituteBlood|Salonia,Stalf,Namasur,Modhna

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;mod added NPC
;;It does no harm to leave these in if you don't use the mod. You can also delete the lines if you want the ini to be a bit cleaner
;;Hydra Slave Girls
Keyword = BP_HydraSlave||hydra_slavegirls.esp+zbfFactionSlave
Faction = BP_ProstitutePriestess||hyd_misc_town10_dilbella
Faction = BP_ProstituteLow|BP_HydraSlave|-BP_ProstituteMid,-BP_ProstituteHigh,-BP_ProstituteVeryHigh,-BP_ProstitutePriestess
Faction = BP_ProstituteSkoomaFew||hyd_ahe_skoomaslut


;;every female unique NPC from the immersive wenches mod. And the vampires from that mod
Faction = BP_ProstituteMid||Immersive Wenches.esp||F/U
Faction = BP_ProstituteBlood|Vampire|Immersive Wenches.esp||F/U


;;Sisterhood of Dibella, the traveling sisters
Faction = BP_ProstitutePriestess||_SLSD_TravelingSisterOfDibella


;;Mara's Embrace Riften brothel
Faction = BP_ProstituteMid|XXTUGudra,XXTUPhoenia,XXTUFaleina|Mara's Embrace.esp


;;Crimson Corner Solitude Bordello
Faction = BP_ProstituteHigh|XXTUFjotssa,XXTUSudinwen,XXTUHjolma|Solitude Bordello.esp
Faction = BP_ProstituteVeryHigh|XXTUVara|Solitude Bordello.esp


;Hot Chicks have Hot Sisters
;HotChicks have HotSisters.esp
Faction = BP_ProstituteSkoomaMany|Vivicia Giordano, Isla Wide-Arm|HotChicks have HotSisters.esp
Faction = BP_ProstituteSkoomaFew|Shianna Far-Shield|HotChicks have HotSisters.esp
Faction = BP_ProstituteLow|Shianna Far-Shield|HotChicks have HotSisters.esp
Faction = BP_ProstituteMid|Samara,Gilfi,Selena,Layanna|HotChicks have HotSisters.esp
Faction = BP_ProstituteHigh|Breanna,Shandra|HotChicks have HotSisters.esp
Faction = BP_ProstituteBlood|Sabatha,Alexiandra|HotChicks have HotSisters.esp
;Not assigned yet: Helayna Cruel-Sea (maybe something with Vivicia?), Aylanius Lenith + Alicia, Alexia Golden-Hilt, Huki, Liesl, Elvira, Tepal
;problem: use the full name, or use a *

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;Optional
;;These lines are not turned on by default. To turn them on, remove the semicolon ; in front of them in the ini file.
;;They use very wide filters or random chance, which can result in weird selections with some mods.
;;;(side note: for some reason, the DISTR.ini file will sometimes lose comments, possibly including these optional lines. The txt file has the full default settings.

;;selects all NPC with ZAZ's zbfFactionSlave, except those that already have a higher faction
;Faction = BP_ProstituteLow||zbfFactionSlave,-BP_ProstituteMid,-BP_ProstituteHigh,-BP_ProstituteVeryHigh,-BP_ProstitutePriestess

;;Selects all NPC that wear the tavern wench outfit. NPC that wear tavern clothes as part of another outfit won't be selected.
;;Faction = BP_ProstituteMid||ClothesTavernWenchOutfit

;;A 5% chance to select any unique NPC to accept a lot of skooma. 
;Faction = BP_ProstituteSkoomaMany||-NordRaceChild,-ImperialRaceChild,-RedguardRaceChild,-BretonRaceChild||U||5

;;All prostitutes get a chance to accept skooma. These line should be loaded below the other active lines.
;Faction = BP_ProstituteSkoomaFew||BP_ProstituteVeryLow||||50
;Faction = BP_ProstituteSkoomaFew||BP_ProstituteLow||||20
;Faction = BP_ProstituteSkoomaMany||BP_ProstituteLow||||50
;Faction = BP_ProstituteSkoomaFew||BP_ProstituteMid||||5
;Faction = BP_ProstituteSkoomaMany||BP_ProstituteMid||||30
;Faction = BP_ProstituteSkoomaMany||BP_ProstituteHigh||||10

You'll notice that there are a lot of comments in that file (lines starting with a semicolon ; ). Because ini files can lose their comments and reorder the command lines, a backup txt file with the original values is included in the download.

 

 

Modifying the SPID ini

 

First of all, when modifying or creating ini rules, it's good practice to make your ini file in a separate mod folder that overwrites the default. That way, if you ever update the mod, you don't accidentally lose your hard work.

 

In the ini files, there are several command lines marked optional that are disabled by default. You can activate them by removing the semicolon ; in front of the line. There are a couple of reasons why these optional lines weren't included. Some of them use a very wide filter and can affect NPC from other mods, possibly giving a NPC unintended dialogue options. And some of these use random chance to select some NPC out of a large collection, which might not appeal to all players. The choice is yours.

 

 

SPID basics

 

Spoiler

SPID files must always be of the form _DISTR.ini, placed in the data level like esp files. The basic structure of a command line is

FormType = FormOrEditorID|StringFilters|FormFilters|LevelFilters|TraitFilters|CountOrPackageIndex|Chance

The vertical lines are very important, SPID knows which filter is a StringFilter because it is after 1 |, and FormFilters are behind 2 total |.

Fortunately, we don't need all information for this mod.

 

For Basic Prostitution, the FormType is always Faction, and the FormOrEditorID is always one of the factions discussed above.

I'll later post some explanation on how to modify a spid file for people who are new to this.

All things behind the first | are optional and can be left blank. The important ones are:

StringFilters: these use NPC full names, editorID, or keywords (like vampire)

FormFilters: these use existing factions, races, mod name, outfit

TraitFilters: Unique (U), male (M), Female (F), Child (C)

Chance: percent chance that the faction will be applied to the matching NPC

 

There are of course many more advanced ways to use it, for this I'll refer to the official guide.

 

 

Adding new NPC from Vanilla

 

If you want to add a vanilla NPC to the ini, the easiest method is using their full name. For example, if you want Lami to be Low Price prostitute, the line would be:

Faction = BP_ProstituteLow|Lami

Note that we don't have to write all those | if we don't want to use further filters

 

If you want the Solitude court to be a bit more fun, you can use these lines. Note that you must use the full name:

Spoiler

Faction = BP_ProstituteVeryHigh|Elisif the Fair

Faction = BP_ProstituteHigh|Bryling, Falk Firebeard

Faction = BP_ProstituteBlood|Sybille Stentor

 

 

 

Adding new NPC from mods

 

Using the name of the NPC also works with mod added NPC, but it's generally more precise to specify the mod's name as well (with esp/esl/esm extention).

This is very simple if you're one of those follower mods that only adds a single NPC, I'll use the Joylie follower by CarolineKoralina here. Adding her to mid price:

Faction = BP_ProstituteMid||CK_Joylie_Follower.esp

 

We didn't even need to specify Joylie's name, the line above affect every NPC in that mod and Joylie is the only one. We still needed both |.

 

Same logic if you want to add every NPC from a follower pack, like TrustyPilot's follower pack:

Faction = BP_ProstituteMid||TrustyHPFollowerPack.esp

 

 

If you want more precision, you can add names. We'll make Rhaiella and Klarissa from that same TrustyPilot pack also accept skooma.

Faction = BP_ProstituteMid|Rhaiella, Klarissa |TrustyHPFollowerPack.esp

Note that if you use both lines, Rhaiella and Klarissa will have both the gold price and the skooma price factions. This will not result in problems.

 

 

 

Adding new NPC from mods

If you use factions or outfits, you can make a line that will apply a factions to many NPC at once, possibly over multiple mods. There are some examples of this in the optional lines in the default setup, such as:

Faction = BP_ProstituteMid||ClothesTavernWenchOutfit

Which makes every NPC wearing the tavern wench outfit automatically a mid price prostitute.

 

You can combine this with percentage chances, say you want farmers to have a 30% chance to be low price prostitutes. We filter for farmer outfits.

Faction = BP_ProstituteLow||FarmClothesOutfit01,FarmClothesOutfit01WithHat, FarmClothesOutfit02, FarmClothesOutfit02Variant, FarmClothesOutfit02WithHat||||30

(there are more farmers outfits, but I stopped here for brevity)

 

Maybe you want to do this, but only apply it to female NPC. This works for female miners that are also unique:

Faction = BP_ProstituteLow||MinerClothesOutfit01, MinerClothesOutfit01WithGloves, MinerClothesOutfit02, MinerClothesOutfit03||F/U||30

 

Configuration, prices and framework

 

In SKSE/Plugins/StorageUtilData/BasicProstitution you will find a config.json file that holds several settings. You can open and edit the json file with Notepad, an internet brower, or other applications (I use Notepad++).

This is the default configuration:

Spoiler

{
    "int" : 
    {
        "prefer ostim over sexlab" : 1,
        
        "price very low" : 30,
        "price low" : 60,
        "price mid" : 120,
        "price high" : 250,
        "price very high" : 500,
        
        "price priestess" : 200,
        
        "amount skooma few" : 1,
        "amount skooma many" : 3,
        
        "amount blood" : 1
        
        
    }
}

 

"prefer ostim over sexlab" is only important if you have both Ostim and Sexlab installed. If the setting is 1, it will choose Ostim, if it is 0, it will choose Sexlab. If you only have a single framework installed, this setting does nothing as Basic Prostitution will use the installed version.

 

The prices and amounts allow you to set how much the factions above will charge. The values must be whole numbers. Only change the numbers, don't change the text or delete any comma's

 

 

 

Debug and console commands

 

If for some reason, the mod is acting weirdly, there is a console command to reset its variables:

setstage BP_BasicProstitutionQuest 1

This will clean all NPC from the hired roster, clear the aliases, recheck the configuration and the framework, and rewrite the global values.

 

If you quickly want to add a NPC to one of the factions described above, select them in the console and:

AddToFaction factionname 0

So for example, if you want an NPC to be a mid price prostitute, the command would be

AddToFaction BP_ProstituteMid 0

 

Quickly removing a NPC from a specific faction works similar except you type -1 instead of 0 

AddToFaction factionname -1

 

If you accidentality blocked an NPC, you can remove the block with 

AddToFaction BP_Ignore -1

 

 

Changing the price values through console

The proper method to change the settings is by editing the config json out of game, but it is possible to change everything in game with the console.

 

Each of the configuration settings is stored in a global value, those being:

Spoiler

BP_PreferOstim (must be 0 or 1)

 

The prices in gold:

BP_PriceVeryLow 

BP_PriceLow

BP_PriceMid

BP_PriceHigh

BP_PriceVeryHigh

 

BP_PricePriestess

 

The amounts of skooma:

BP_PriceSkoomaFew

BP_PriceSkoomaMany

 

The amount of Potion of Blood

BP_PriceBlood

 

You can change a global variable with the set _ to console command, for example

set BP_PricePriestess to 69

Changes the amount of gold needed to pay a Priestess of Dibella to 69 septims.

 

If you don't have PapyrusUtil installed, this is the only method to change the settings.

 

If you do have PapyrusUtil installed, you must use the console command

setstage BP_BasicProstitutionQuest 2

To save your changes to the config file.

Edited by a_random_user
SPID explanation, installation improvement

Requirements

 

Sexlab or Ostim Standalone. If you have both installed, you can select which one is preferred in the config file.

 

Spell Perk Item Distributor (SPID): needed to distribute the factions to NPC. Alternatives like Skypatcher are possible, but no default distribution file exist at this moment.

 

PapyrusUtil SE - Modders Scripting Utility Functions: used to read the config file and a hard requirement for Ostim. If you use Sexlab, the mod can work without this and will use the values stored in the Global value of the esl file.

 

Backported Extended ESL Support (B.E.E.S.): for people who use a skyrim version that is older than 1.6.1130

 

 

Mod support

 

The included SPID ini file includes support for the following mods:

Immersive Wenches

Hydra's Slave Girls

Hot Chicks have Hot Sisters (a nexus version also exist, but the loverslab version is better)

Sisterhood of Dibella

Mara's Embrace - Riften Brothel (Basic Prostitution replaces the existing Sexlab or Ostim patch for this mod)

Crimson Corner - Solitude Bordello (Basic Prostitution replaces the existing Sexlab or Ostim patch for this mod)

 

 



×
×
  • Create New...