Actually adding a new companion option is pretty easy. I designed the mod so that companions are added and removed via dialog files. Thus, you dont have to edit maps or get your hands dirty with python code if you want to simply add a new companion option. However, you should read the Chapter on Dialog Files within the VTMB developers guide.
to add a new companion, find their associated dialog file. Normally it is located under;
Vampire/dlg/<CITY>/<NPCNAME>/<NPCNAME>.dlg
The first step is to verify that the dialog calls the global function OnBeginDialog in the starting condition block at the end of the file. You should see something like:
{??? }{ (Starting Condition) }{ }{???}{OnBeginDialog(pc,npc,104) }{}{}{}{}{}{}{}{}
Each column is seperated by {}. Notice that the 5th column calls OnBeginDialog(). This is a function that returns
true or false, but it also saves off some info about the character you are talking to. This should already be in
place if you are using dialogs shipped with the CompMod.
The second line is the line that adds the NPC to your party:
{??? }{Text }{text }{0 }{companion.Test(pc,npc)}{ScheduleTask(0.2,'companion.addToParty(FindEntityByName("' + G.LDName + '"))')}{}{}{}{}{}{}{}
Notice in the 6th column is a call to ScheduleTask. The internal python function adds the current NPC you are talking to to your party. This code snippet can be added to any response. Also notice how the example above has the condition companion.Test(pc,npc) in the 5th column. This means it will only show up if the PC has the Animus Constupro. A handle to the npc is passed as a second parameter to the check so that the Companion Mod can make sure that you do not already have the NPC's model in your collection. (Many prostitutes for example share the same model). The compmod only allows 1 instance of each model in your party.
You could of also change the condition. For example, "Dominate 2".
So what happens after they choose your dialog line?
A temporary companion is spawned and you begin your first dialog with the NPC using the dialog: Vampire/dlg/companion/first.dlg
first.dlg serves 2 purposes. It allows a 1 time opening line. It also detects if you have too many companions and redirects you to a sub-section if need be to prompt you to get rid of someone. it was easier to do this in a single place than to update every dialog in the game.
You may end up telling the new NPC to go to your haven. Or you may tell them to follow you. Either way, the dialog ends. The next time you talk to them, you will either use
Vampire/dlg/companion/travel.dlg (if they are traveling with you)
or
Vampire/dlg/companion/haven.dlg (if they are waiting for you at the haven.
As you can see above, hooking up a new companion is pretty easy. It is as simple as copying and pasting the line above into an existing response and updating the text. And like Heather and Yukie you dont even have to make the Animus Consuptro a requirement.
The real question becomes: how professional do you want the quality of your conversations and transitions. The hard part comes in creating dialogs that lead up to the line that turns an NPC into a companion.
If you only paste the line above, the default opening line in first.dlg is "How may I serve you" (no audio) . And after the transition when you speak to your companion, they will say "How may I serve you" (no audio). This is fine if you are going for a zombie or domination thing, but doesn't work so well if the person if you are trying to get an NPC to join you willingly.
The next step is creating a new creating new lines that lead up to the transition. And possibly even more new lines to support the transition and the audio following the transition.
Which brings us to the hard part: Audio. Audio splicing of existing lines isn't so bad. The hard part is that the audio lines have corresponding .lip files that contain lip animation data for the audio. If you want your companions to speak the new audio properly, you must keep track of your splice points and splice the lip meta data files as well. Splicing lip files basically involves shifting hundreds and hundreds of floating point timing values.
Luckily, the VTMB Mod Developers Guide walks you through the steps of creating synchronized audio lines and even provides links to python scripts to help out with the task of lip splicing. But it is time consuming. At my best pace (and I have been doing this for about 6 months), I was generating about 4 lines an hour. Keep in mind that a line is normally about 5 seconds of audio. However that doesn't include the days of experimenting with various sound bytes to see what would work together. When all was said and done, it actually took about 2 hours per line.
Hopefully after reading this, people will have a new respect for the new audio lines I include with the mod. It took almost a year to make the mod and MOST of that time was spent making dialog lines.