Fallout 3

File information

Last updated

Original upload

Created by

sinisterchipmunk

Uploaded by

sinisterchipmunk

Virus scan

Safe to use

About this mod

A modder\'s resource intended to improve compatibility between NPC romance plugins.

Permissions and credits
This is the sc_lovers_resource.esm plugin. It is intended for use as a modder's resource, and provides no direct functionality to Fallout 3, though the desired effects could be added from the console for testing purposes.

The initial release of this mod is intended to be simple, providing only basic access to the "love sequence" utilized by the Saving Nova plugin.



The idea is that you, the modder, can simply add dialogue to the NPC you wish the player to woo, and tie it to some token items within this plugin to remove the heavy lifting and ensure mod compatibility with other romance-related mods (or at least, other ones that take advantage of this toolkit).


It adds token items (non-playable items, with scripts attached to them) which you can add to the inventory of an NPC to accomplish certain tasks (of particular interest to other people, the scLoversLoverToken causes a fade-to-black sequence, which seems to have become the normal way to suggest a sexual encounter. [See Saving Nova, Blackmailing Silver, Wasteland Gigolo, and Seducing Moira.])

The primary use of this resource is to create a central faction, which you add your target NPCs to. Assuming everyone checks that faction via dialogue or script conditions, this will improve compatibility between mods. Also, because the fade-to-black sequence would now be uniform across plugins (read: it would be the same script), there would be improved compatibility on that front as well.

There are a few other minor additions (make the NPC follow the player, make the NPC go to the player's house [Megaton or Tenpenny is auto-detected based on which house is owned by the player]), as well as a perk (disabled by default, to be enabled by any plugin wishing to make use of the perk) so that players can take a single custom perk and have it apply across multiple plugins.

This is a pilot release, really, to test the waters. It is the result of my collaboration with RandianHero, who is making a series of plugins very similar to my own, and as more of these sorts of plugins begin to surface, to me it just made sense to make some attempt at ensuring cross compatibility.

1.1:
Added a quest, scLovers, which stores the variables "success" and "margin". Now, whenever a LoveToken is added, these variables are populated based on a calculation involving the agility, endurance, charisma, and Speech skill of a player, those same skills for the target NPC, and a bit of randomness. The calculation is loosely based on the d20 combat system, taking the value of a random number between 1-20 + the player's modifiers and subtracting the NPC's modifiers + base difficulty of 12 for a total value. This total value is stored in the "margin" field. If the 1-20 random number is a "natural" 1 or "natural" 20 (that is, it is this value before any modifiers are applied), it is considered a critical failure or a critical success, respectively. In these cases, margin becomes -100 or +100, respectively. This is populated immediately when a love sequence begins by virtue of the scLoversLoveToken object, and so can be used during or after the sequence. These values are replaced by new ones if another sequence is started.

If the scLoversPerk is enabled, a bonus of 2 x however many ranks the player has in this perk is applied. For instance, a character with 2 ranks in the perk would receive +4 to his modifier.

When the perk is enabled, up to 4 ranks can now be chosen.

Added functionality to the scLoversLoverToken object:
1. The target NPC becomes restrained, so he/she cannot walk away.
2. The target NPC becomes "unconscious" (not processing) for the duration of the sequence.
3. At the end of the sequence, the target NPC is unrestrained, and the NPC is made conscious again.

Added a new token: scLoversTalkToPCToken
1. Causes the NPC to switch immediately to the DefaultNPCDialogPlayer package, initiating dialogue with the player.
2. If the scLoversLoverToken object is found in the target NPC's inventory, this will be delayed until the object is no longer in the inventory (the love sequence has completed).
3. This token is removed from the NPC's inventory after the package is selected.


1.2:
Added some extra code in the scLoversLoverToken script to hopefully detect when a second token has been added, and remove it (because this causes major problems). Obviously, it is still not recommended to add multiple tokens, but hopefully this will catch any accidents.

Added a new token, scLoversAnimToKnees. When scLoversLoverToken is added to an NPC’s inventory, if this new token is present, the NPC in question will enter the LooseCrouchTalkA idle animation, and exit the idle at the end of the love sequence.


1.3:

Modified the success/fail script during the love sequence to use an NPC's base attributes as opposed to their current, modified ones. This keeps the DC from going up every time a love sequence is initiated.

Altered the scLoversWanderPlayerHouseToken script so that if a player does not have any house, the NPC is sent to Tenpenny by default. If the player later acquires Megaton, the NPC heads there instead. If the token is removed from the NPC, it will return to its normal schedule. This new behavior allows an NPC from the Megaton area to be sent to the player's Tenpenny house before s/he earns it (because earning it would kill the Megaton area NPC.)


1.3.1:

Fixed a major issue that would cause an NPC not to go to Tenpenny Tower if the scLoversWaderPlayerHouseToken was equipped, but the player did not own any houses. New behavior: The NPC will go to the Tenpenny Tower level 3 lobby, and wait there until the room itself can be accessed.

1.3.2:
Fixed an issue which would allow an NPC to leave the player's house after given an scLoversWanderPlayerHouseToken.

Added an scLoversReturnHomeToken to cause the target NPC to return to its normal package (stop following the player, and/or stop living at the player's house.)

1.4:
Added a reference variable scLovers.currentLover, which can be used to effectively request the target of the current love sequence. Whenever a love sequence begins, this variable is updated with a reference to the NPC the token was added to, and then it is set back to 0 when the sequence ends. This is useful for, say, giving the NPC a disease upon sexual contact, or checking whether the current love target already has said disease, without having to necessarily know who, exactly, that NPC is.
oIt is not advisable to set this variable, as this could have undesirable effects.

Fixed a bug that was causing an NPC with the scLoversTalkToPC and the scLoversWanderPlayerHouse tokens in its inventory not to automatically speak to the player after the love sequence was complete, because the wander token was overriding this behavior. Same for scLoversFollowPlayerToken.


For more details, please see the included documentation (in .doc format).