About This File
SexLab Crime System Framework
IMPORTANT: Version 0.3 requires a fresh savefile (that never used version 0.1 or 0.2).
Due to my inexperience as a modder, I made the mistake of attaching some of my scripts directly to the player instead of with an alias in versions 0.1 and 0.2. If you don't know what this means, that's fine: It's fixed now, which should resolve a whole bunch of potential mod conflicts and bugs. Unfortunately the only way to truly fix this is to revert to a savefile that never had one of these versions of SexCrime installed before installing the latest version. I apologise for my incompetence, and assure you that it won't happen again.
SexCrime is modder’s framework for adding an immersive sense of criminality to many SexLab based interactions. Different players expect different prejudices in Tamriel: some are happy to imagine that it is a place of supreme tolerance and open-mindedness, others feel like its citizens should be die-hard puritans, and many expect some sort of a middleground.
With this framework, players will be able to decide for themselves what constitutes sexually criminal behaviour, allowing any dependent mods to effortlessly adjust their content to fit the user’s tastes, and enhancing the overall roleplaying experience.
SexCrime is currently in a very early development stage, and this is my first ever mod release, so bear with me. Take the usual precautions with unproven mods, and don’t blame me if your save file gets corrupted.
The mod is woefully undertested. Everything in the current release works as far as I’m aware, but I haven’t tried my hardest to break it.
Feel free to make any suggestions for future additions and changes to the framework. If you’re making a mod and would like to see some additional functionality in this framework to make your life easier, just send me a private message!
----- Implemented Features
Automatic detection of public nudity
Automatic detection of public masturbation
Automatic detection of public sex
Automatic detection of rape (player as aggressor)
Automatic detection of homosexual sex
Automatic detection of bestiality
A 4-tier crime categorization system. The player can individually define each of the above to be perfectly legal, misdemeanours, serious offenses, and heinous crimes.
Basic (temporary) definition of 'public area'. There's no such thing as a sex crime in an interior cell.
APIs to pause/unpause any individual crime scanner, or all at once.
APIs to set characters that won't report the player for any crime.
APIs to convince the rape scanner that the seemingly innocent animation is actually rape.
Followers won't report the player. This will probably become optional in later releases.
----- Plans For The Near Future
Make witnesses actually respond to sex crimes in an immersive way (including dialog, complaining, etc), rather than just continuing on with their business.
Make killing all witnesses fast enough remove the bounty (this is standard for all vanilla crimes).
----- Long-Term Plans
Make framework aware of how public an area is (and provide APIs to adjust this), so that the player can feel safe about nudity, masturbation, and sex in less-travelled areas.
Don't force witnesses to report every crime. Decide whether they should report the crime based on their attitudes, disposition, arousal, or possibly other factors.
Make friendly, non-cowardly NPCs likely to come to the aid of the player if they witness them being raped.
Make NPCs subject to the same sex-crime rules as the player.
----- API Documentation
Since the source code is provided, it won't take a genius to find more ways to interact with the framework than I have listed here. Try to only use APIs listed here. Messing with other options could break the framework. If I do not list a property or function here then I make no commitment that it will remain usable in future versions.
These properties can be modified by your mod just as well as anyone else's. In order to minimize the potential for conflicts and bugs between various SexCrime integrated mods, please:
- Make your changes as late as possible.
- Always undo any changes you make as soon as they become unnecessary.
For example, if you wanted to integrate Radiant Prostitution to ignore rape when whoring around an Inn, DON'T just disable the rape scanner as soon as the player starts looking for clients, DO pause the rape scanner at the same time the player begins to have rough sex with a client. DO unpause the scanner as soon as possible after the animation.
bool SexCrime.Suspended -- As long as this is set to true, the player will not be reported for any sex crime.
bool SexCrime.NakedScannerSuspended -- As long as this is set to true, the player will not be reported for public nudity.
bool SexCrime.MasturbationScannerSuspended -- As long as this is set to true, the player will not be reported for public masturbation.
bool SexCrime.SexScannerSuspended -- As long as this is set to true, the player will not be reported for any public sex.
bool SexCrime.RapeScannerSuspended -- As long as this is set to true, the player will not be reported for rape.
bool SexCrime.HomosexualityScannerSuspended -- As long as this is set to true, the player will not be reported for homosexuality.
bool SexCrime.BestialityScannerSuspended -- As long as this is set to true, the player will not be reported for bestiality.
bool SexCrime.RapeDefinitionOverride -- As long as this is true, the player may be reported for rape even when in a non-aggressive animation. All sexual partners of the player will be treated as victims, making it possible for them to report (unless on the SafeList). The player's status as a victim is revoked, allowing them to be reported for anything else, as appropriate.
SexCrime.PauseReportsFromActor(Actor akActor) -- Takes an actor as an argument and adds them to a safelist. Actors on the safelist will never report the player for a crime as long as they remain on the list. Use this function if you intend to add them to the safelist only briefly; a different function is provided to make it more permanent. If the actor was already on the list to begin with then this does nothing.
SexCrime.ResumeReportsFromActor(Actor akActor) -- Takes an actor as an argument and removes them from the safelist if they were added there via 'PauseReportsFromActor'. If the actor wasn't on the list to begin with then there shouldn't be any issues.
SexCrime.DisableReportsFromActor(Actor akActor) -- Similar to 'PauseReportsFromActor', except that 'ResumeReportsFromActor' won't remove the actor from the safelist. Use this when you intend to add them to the list on a much more permanent basis.
SexCrime.EnableReportsFromActor(Actor akActor) -- Takes an actor as an argument as removes them from the safelist, regardless of which function was used to put them there.
Example: if you create a mod where you blackmail a character into some rough sex, use 'PauseReportsFromActor' immediately before the animation and 'ResumeReportsFromActor' shortly afterwards. If you create a mod where you have a long-term bondage sex slave follower, use 'DisableReportsFromActor'.
----- Installation, Upgrade, and Removal
To install, simply extract the archive over your Skyrim's data folder. Or use a mod manager, I use Nexus Mod Manager and it seems to work fine.
To upgrade, simple extract the archive over an existing installation.
The framework doesn't leave any particularly troublesome traces that I'm aware of. Standard mod removal practices should work.
v0.1 (07/07/2014):Initial release
This mod is open source and you’re free to make any changes you want. For the sake of user simplicity I ask that you collaborate with me in order to include useful and sensible features into the main release, rather than splintering the userbase. If I ever decide that your idea is not suitable for the main distribution, or if I drop off the face of the planet, you will always be welcome to create your own adjustments and do whatever you wish with them.
----- Contacting Me
I will provide direct support to you via private message ONLY if you are a modder trying to incorporate the framework into your own mod. For any other general comments, suggestions, questions, or support, feel free to post in this thread and I will do my best to help you out.
What's New in Version 0.3
- Fixed a bunch of potential mod conflicts.
- Fixed a bug in the Safelist API.
- Stopped followers from reporting the player.
- Enhanced reporting algorithm to reduce the number of situations where the player could be reported to [blank].
- NPCs that are hostile on-sight will no longer report the player.