I'm working on a mod that I'll need quite a bit of help with in order to finish. It's nothing difficult or technical, anyone can help — you don't even have to know what the Creation Kit is, just be an avid player of Skyrim and know the characters and quests.



It's a framework for adding an influence system to characters within Skyrim. Put briefly, it gives characters the ability to care about what the player does, and allows that to have a concrete effect on stories and characters (primarily written by other modders, but hopefully to a modest extent in the vanilla game).



All followers will have preferences toward various types of actions, and those types will be used to characterize the words and deeds of the player. Then those action will affect the disposition of the character toward the player by affecting the NPCs' positive and negative (and cumulative) influence scores.

change = preference × magnitude

In other words, characters like you more when you do things they like, and like you less when you do things they don't.



If someone really, really hates the Altmer, they might have an Altmer preference of -1.0 (-100%). On the other hand, if they don't really care about them one way or the other, they might have a 0 — meaning any action taken for or against the Altmer won't sway their opinion either way.



Example: Say Serana has a mild preference (30%) toward honest behavior. Telling Camilla the truth about a fake letter from Sven might be an Honest action of magnitude 5. The player gets 1.5 positive influence with Serana (0.3 × 5) and of course, +1.5 to cumulative influence. Now, perhaps the player lied to Camilla. The player then gets 1.5 negative influence with Serana, and -1.5 to cumulative influence. Keeping positive and negative influence on separate scales allows the player to have truly dysfunctional relationships with his or her followers, and writers can and should capitalize on that.



The player maintains a reputation independent of their influence on followers, so at sufficiently high levels of fame or infamy, characters might have positive or negative reactions to them based on their past words and deeds.



I'm working on going through quests at the moment and adding what I'm calling influence 'hooks' — they're one-line scripts that tell the influence framework that something of interest is happening — with an ID, a type of action and the magnitude of the action. Here's an example:

cifMain.cifInfluence("cifEvent_074A83_001", 3, -3)

This means the first influence event for the quest 074A83 (A Lovely Letter), a -3 Honesty (i.e., mildly dishonest) action. This will trigger an event in the framework that all current followers subscribe to that modifies their influence score.



Types of Influence Events



There are a number of different influence types, each based on different types of actions.

cif_altruism (0 - altruism / selfishness) cif_brave (1 - courage / self-preservation) cif_daedric (2 - influence / aversion) cif_honest (3 - honesty / duplicity) cif_humble (4 - humility / pride) cif_intellect (5 - intellectualism / anti-intellectualism) cif_kind (6 - kindness / cruelty) cif_lawful (7 - lawfulness / lawlessness) cif_loyal (8 - loyalty / betrayal) cif_magic (9 - magic / anti-magic) cif_passion (10 - passion / stoicism) cif_patience (11 - patience / eagerness) cif_polite (12 - politneness / curtness) cif_purity (13 - purity / corruption) cif_religious (14 - religiosity / areligiosity) cif_temperance (15 - temperance / gluttony) cif_thievery (16 - thievery / straightforwardness) cif_trusting (17 - credulity / suspiciousness) cif_war (18 - warlike / peaceful)

The following are less complex - positive indicates a support or like, negative indicates an opposition or dislike.

cif_race_argonian (19) cif_race_altmer (20) cif_race_bosmer (21) cif_race_breton (22) cif_race_dunmer (23) cif_race_khajiit (24) cif_race_imperial (25) cif_race_orc (26) cif_race_nord (27) cif_faction_bards (28) cif_faction_brotherhood (29) cif_faction_college (30) cif_faction_companions (31) cif_faction_dawnguard (32) cif_faction_imperial (33) cif_faction_stormcloak (34) cif_faction_thieves (35) cif_faction_volkihar (36)

Why would this be helpful?



Very few characters in vanilla Skyrim -- with the major exception of Serana and maybe a couple others who I've not met because I haven't finished the game / DLC -- are interesting ones - they mostly exist to look pretty/ugly (if you're playing vanilla) and carry stuff.



This is a reflection of a mechanical fault as much as it is a writing one. There's no system in-game to model meaningful personalities or relationships between characters, so there wasn't any point in spending time writing as though there were. You do a quest, you get 'em as a follower. You do another quest, you can get married. Wham bam, thank you, ma'am. Not really any subtlety there at all.



But in Knights of the Old Republic II: The Sith Lords, (which is one of the best RPGs ever made and you should play it right now if you haven't) the influence mechanic created a foundation for some really interesting character moments. It allowed the writers to sequester away bits of dialogue and character abilities behind Influence checks, encouraging players to spend time getting to know their companions as the game progressed. And not even necessarily in the romantic sense — even Kreia, perhaps among the least romanceable characters in the history of video games, was a hugely interesting and enigmatic figure who had a meaningful relationship with the player, and KOTOR II's influence system played a large part in making that relationship an interesting mechanic.



In the same way, this could be a huge boon for modded characters, or even some of the vanilla ones, if treated with a bit of TLC.



What would this mean for the vanilla game?



Apart from adding influence hooks to the main game — which would be kept entirely separate from the scripts in place — the .esm would have no effect whatsoever. It's a framework, that all it is — something to hook into for mod authors seeking a little more mechanical depth in their characters' relationships.



With the optional .esp, all the vanilla followers would be registered with the framework. Marriageable figures who are not followers by default would become followers and the requirements for companionship / marriage would be tied into the influence system.



What would this mean for modded quests?



Add an influence hook wherever you'd like in your quest and characters using the framework will automatically respond to actions with influence hits or boosts — no need for compatibility patches.



What would this mean for modded characters?



Add a single script and use the UI in the Creation Kit to edit the influence preferences for your character. Then you can access the character's influence properties to change which dialogue is said to the player as their influence increases or decreases, set requirements for marriage/stewardship or make the follower leave if Influence gets too low.

Or just about anything, really. Think of it as a mechanical model for the player's relationship with the NPC, and go from there. I'm in the process of making an NPC that uses the framework to demonstrate how it works.



What can I do to help?

There are a ton of quests in Skyrim which have the kinds of decisions that I'm talking about. It's a lot for one person. There are also a lot of followers in Skyrim that should be brought into the system (through an optional .esp) that should have preferences added.



If you'd like to help with either of these things, let me know. Again, it's super non-technical, you don't even need to crack into the Creation Kit (though it'd probably make things easier).

For quests, all I need is at what point in which quest the event happens, what kind of event it is and its magnitude.

For characters, all I need is a line of dialogue justifying a preference (in context, please ) and a value for it (-100% to 100%, or something between -1 to 1 if you're more into floats than percentages).

If you're a scripter who has experience making high-performance mods, I'd love to hear from you. It's pretty lightweight as it is, but I have no experience with best practices for writing performant mods in Skyrim. I'm looking to eventually integrate the mod with MCM and (maybe) some of the more popular follower / overhaul mods, so if you have experience with that and would like to share your wisdom, I'd greatly appreciate it.

Also, if you have opinions on the event types chosen or if you think the whole idea is bad and should go die in a fire, please let me know! The only way something gets better is with criticism!

Progress

1-4-15: The core mechanic is working! (albeit by overriding topic info scripts, seeking to fix that ASAP) The quest "A Lovely Letter" has been marked up with influence events.

Edited by becauseofreasons, 06 January 2015 - 12:12 AM.