Skip to content

SLOVE.toml — behaviour reference

Data\SKSE\Plugins\SLOVE\SLOVE.toml holds everything about what SLO VE does: which systems run, how often lines fire, how strong the faces are, how the SFX engine behaves, and how the willpower system is tuned.

It is read through AudioUtil's TomlUtil API with dotted keys (voice.pcvolume). Live reload:

cgf "SLOVE_Config.Reload"

Fail-open

If the AudioUtil DLL is missing or too old, every getter returns its default — SLO VE degrades instead of erroring. That also means a typo'd key silently uses the default; check AudioUtil.log after an edit.

Values are integers unless noted. 1 / 0 are on / off; percentages are 0–100.

[director]

Master switches and scene detection.

Key Default Meaning
enablevoice 1 Master switch for scene voices.
enableexpressions 1 Master switch for facial expressions.
enablepcexpression 1 Apply the expression effect to the player.
enablemalenpcexpression 1 Apply it to male NPCs.
enablefemalenpcexpression 1 Apply it to female NPCs.
usephysicslabels 1 Derive Slow/Fast intensity from SexLab P+ node-collision velocity, on top of the scene tags. Needs SLPP interactions.
physicsfastvelocity 25.0 (float) Absolute velocity at or above which a stage reads as Fast.
physicsslowfactor 0.65 (float) Hysteresis: drop back to Slow only below physicsfastvelocity × this. Stops rapid flapping between labels.
soshugeppsize 6 SOS/TNG size counted as "huge" — drives the huge-partner voice scenario, ahegao, and the resistance multiplier.
printdebug 0 Print director decisions to the console.

[voice]

The voice dispatcher. All chance* keys are percent rolls (0–100) evaluated when the relevant moment comes up.

Line frequency

Key Default Meaning
chancetocommentonleadinstage 8 Chance to speak during lead-in stages.
chancetocommentonnonintensestage 22 …during a soft stage.
chancetocommentonintensestage 25 …during an intense stage.
chancetocommentononattackingstage 22 …during an "on the attack" stage.
chancetocommentonblowjobstage 15 …during oral.
chancetocommentwhenclosetoorgasm 45 …when she is close to orgasm.
chancetocommentwhenmaleclosetoorgasm 40 …when he is close to orgasm.
chancetocommentunamused 15 Chance of an unamused/bored line where one applies.

Raise these for a chattier scene, lower them for mostly-moaning. moanonly = 1 is the blunt version.

Scenarios & content

Key Default Meaning
moanonly 0 1 = moans only, no spoken lines.
enablehugeppscenario 1 Special line set when the partner is huge (needs SOS/TNG, threshold director.soshugeppsize).
enablevictimscenario 1 Special line set when she is the submissive/victim of the scene.
femaleorgasmhypeenjoyment 75 Enjoyment threshold above which orgasm hype lines start.
maleorgasmhypeenjoyment 75 Same, for the male.
hypebeforeorgasm 0 Extra hype pass before climax.
voicevariation "NA" (string) "B" selects the VarB alternate line variants where a pack provides them.
useblowjobsoundforkissing 1 Reuse blowjob action audio for kissing stages.
enableddgagvoice 1 Route a gagged speaker through the muffled gag slot.

Who speaks

Key Default Meaning
enablemalevoice 1 Males speak at all.
chanceformaletocomment 20 Percent chance a male line fires when his turn comes up.
voiceallactors 1 1 = every male in the scene speaks, rotating; 0 = lead male only.
creaturebreathing 1 Creature partners pant/growl through the scene (the Breathing category on C* slots).
creaturebreathmininterval 5 Seconds between creature breaths, minimum. Halved on intense stages.
creaturebreathmaxinterval 12 …maximum.

Volume

Key Default Meaning
pcvolume 100 0–100, applied to the pc_low/pc_high audio groups.
partnervolume 100 0–100, applied to the partner_low/partner_high groups.
printdebug 0 Print each voice decision (category, slot, handle) to the console.

[expressions]

Facial expression engine. All face writes go through Mfg Fix NG.

Key Default Meaning
enablebreathing 1 Cheap "breathing" micro-pass between the main expression updates.
breathingupdateinseconds 0.55 (float) Breathing pass interval.
pcnonintenseexpressionupdateinseconds 2.1 (float) PC face refresh on soft stages.
pcintenseexpressionupdateinseconds 1.6 (float) PC face refresh on intense stages.
npcnonintenseexpressionupdateinseconds 2.1 (float) NPC face refresh, soft.
npcintenseexpressionupdateinseconds 1.6 (float) NPC face refresh, intense.
enabletongue 1 sr_fillherup tongue armors.
fhutonguetype 7 sr_fillherup tongue model 1–10; 0 = random per actor.
removetongueonblowjob 1 Unequip the tongue during oral stages.
cunusetongue 1 Use the tongue during cunnilingus stages.
enableahegao 1 Huge partners trigger the ahegao face while penetrating (needs MFEE for the extended version).
chancetostickouttongueduringintense 30 Percent roll per update, intense stages.
chancetostickouttongueduringattacking 30 Percent roll per update, attacking stages.
tonguemouthopenthreshold 0.4 (float) Jaw gate — minimum measured mouth-open before a tongue is allowed to show, so it never clips through a closed mouth.
printdebug 0 Print expression decisions.

Lowering script load

The four *expressionupdateinseconds values and breathingupdateinseconds are the expression engine's whole cost. Raising them to e.g. 3.0 / 1.0 noticeably cuts Papyrus work at the price of coarser faces.

[sfx]

The body-SFX engine (SLOVE_SFX). Sound names resolve as categories of the SFX0 slot; audio ships under Sound\fx\SloveSFX.

Key Default Meaning
enable 1 Master switch — applies the SFX effect to scene actors.
volume 60 0–100, startup level for the sfx audio group.
usevelocity 1 Thrust-synced sounds driven by SLPP collision velocity instead of fixed pacing.
useadaptivevelocity 0 SOSBend calibration search when a scene reports no velocity data.
timestosearch 0 Max calibration attempts per stage. 0 = never search.
usecontactsfx 1 One-shots on contact edges: insertion, pull-out gape, kiss, oral.
usecontactvictimreactions 1 Suppress tender kiss cues when a victim is involved.
velocitypoll 0.1 (float) Seconds between velocity samples. Must stay tight to catch thrust reversals.
normalpoll 0.5 (float) Seconds between label/tag-driven passes. Raise to cut script load — clip length already paces playback.
gapevaginalaverage 2.0 (float) Measured-gape threshold for the average vaginal gape one-shot.
gapevaginalhuge 2.7 (float) …huge.
gapeanalaverage 2.8 (float) …average anal.
gapeanalhuge 4.0 (float) …huge anal.
printdebug 0 Print SFX decisions, including the measured opening value at pull-out.

useadaptivevelocity is the heaviest path in the mod

The calibration search spams Debug.SendAnimationEvent(SOSBend) with 0.3 s waits, hunting for a bend that yields velocity data. It is off by default and needs both useadaptivevelocity = 1 and timestosearch > 0. Only enable it if a scene otherwise reports no velocity at all.

Calibrating gape thresholds

The opening values from the Accurate Penetration bridge are unitless magic numbers0.0 is closed, there is no defined scale. Set printdebug = 1, watch the pull-out line in your own scenes, and set the four thresholds from what you actually see.

[resistance]

The optional willpower/break system. Full explanation of the mechanic: Willpower / Resistance.

Key Default Meaning
enable 1 Master switch for the whole system.
enablepc 1 The player loses willpower.
enablemalenpc 1 Male NPCs do.
enablefemalenpc 1 Female NPCs do.
enablecreaturenpc 1 Creatures do.
enablebrokenstatus 1 Play broken/begging voice lines while broken. 0 = keep the broken face but not the broken voice.
pcmaxresistance 1000 PC drain denominator. Higher = slower drain. NPCs use ResistanceRaceBase.json instead.
pcnonvictimmult 20 Percent multiplier — PC, willing.
npcnonvictimmult 30 …NPC, willing.
pcvictimmult 110 …PC, victim/submissive (drains faster).
npcvictimmult 130 …NPC, victim/submissive.
hugeppmult 200 Extra multiplier when the PC's partner is huge.
pcrecoverperhour 10 Percent of willpower regained per game-hour without sex (PC).
npcrecoverperhour 5 …NPC.
pcbrokenpoints 60 Game-hours-to-recover set when the PC breaks.
npcbrokenpoints 40 …NPC.
victiminsertiontrauma 5 Extra willpower hit when a submissive is forcibly entered. 0 = off.

[milk]

Optional nipple squirts during scenes via Oninus Lactis NG (player only, driven by the Director). Stays off unless the mod is present.

Key Default Meaning
enable 0 Master switch (and Oninus Lactis NG must be installed).
chanceonorgasm 50 Percent roll on any orgasm in the scene — always the intense squirt.
chanceintense 20 Percent per roll while penetrated on an intense stage.
chancenonintense 8 …on a soft stage.
rollinterval 10 Seconds between penetration rolls.
mintime 4 Squirt duration lower bound, seconds.
maxtime 10 Upper bound (the engine caps at 18).
levelintense 2 Oninus Lactis squirt level 0–2, intense.
levelnonintense 1 …soft.
requirebarechest 1 Skip while body slot 32 is covered.
mmeminfullness 20 Milk Mod Economy only: skip at or below this % fullness. With MME installed, squirts require milk in the reserve and drain it (20–50 % of current, scaled by level and duration).