Sign in to follow this  
JediArchivist

[WIP] KOTOR 2 Mira Romance Mod v 2.0 - Help Needed!

Recommended Posts

This mod is intended to enable the male Exile in K2 to romance Mira.

 

It is comprised of:

- Modifications to Mira's dialogue file (dialogs.bif/Dialog/mira.dlg) --- 95% Done

Romance dialog lines added, the game only allows the Exile to pursue the romance if gender=male.

- Porting the animation from K1 where Revan and Bastila kiss - and have that scene in K2 with the male Exile and Mira! --- Done

I am working at identifying that script in K1, but i have no programming . scripting skills and i unfortunately have no idea how to port / make that scene trigger in K2.

Thanks to DarthParametric, i found out that the kiss scene was faked using a mod, i studied the bastila.dlg file from the mod and applied the same animations as there to get that effect. I got a totally different effect as intended, but that will do for now... Many thanks to DarthParametric for explaining where to find Bastila's dialogue file!

- Adding an entry in the Quests Log about the pursued romance with Mira --- Done

I will need to study the Quest Log Modding Tutorial.

Many thanks to LucasForums user Darth333 for his brilliant Tutorial, that can be found here: https://web.archive.org/web/20151010221351/http://www.lucasforums.com/showthread.php?s=&threadid=143372 This Tutorial was used to make this mod.

 

So far i have encountered some problems preventing me from finishing this mod:

- My edited .dlg file seems to break Mira's dialogue and i have no idea why... i opened and edited the file in Kotor Tool's Conversation Editor, i also re-opened and altered it in the standalone DlgEditor. Basically only part of the conversation is activated, and the conversation crashes when the conversation option which adds my custom replies is triggered and the conversation ends. I have no idea what is causing this, according to all dialog tutorials it should have no problems but id doesn't... I'm uploading my modded file here for you to test and see for yourselves what i mean. Just copy the mira.dlg file into your K2 Override folder!

This was solved using the standalone DLG Editor instead of the one bundled with Kotor Tool. Many thanks to JCarter426 and JC2  ,who helped greatly by pointing out the issues with the bundled dialog editor in Kotor Tool (it seems to corrupt the .dlg files) and recommending the standalone DLG Editor!

- I have no scripting knowledge and can't wrap my head around binding some scripts to the conversation:

1. Once the "Kiss me..." dialog line is triggered, the romance must be considered "enabled" and new dialogues should reflect that instead of just re-tracing the steps that "enabled" the romance.

2. Porting the animation / script from K1 where Revan and Bastila kiss - and have that scene in K2 with the male Exile and Mira - Done!

3. Modding the Quest Log, in order for it to reflect that the Exile is romancing Mira. - Done!

4. Optional: Have the other romanceable characters (Visas and the Handmaiden) somehow acknowledge the male Exile's romance with Mira - this requires scripting as well as editing their dialogue files (that I can do myself, but not the scripting and triggers).

 

I am looking for modders with Scripting and Dialog Editing skills to help me out wih this endevour...as in order for this to become a great mod i will need lots of help... If you know how to solve this please take a look at the bugged file, any help / advice is welcome!

 

 

UPDATE: Good News! I made a new mira.dlg file with DlgEditor and this one works perfectly!

Status update: I finished modding the .dlg file. I also used the same animations as in the K1 Bastila romance mod, although it had different results, but it works fine nonetheless!

The only thing i need help with now is if anyone knows how to edit a conversation to pop up a different line of dialogue after an event happened, as i have no scripting knowledge and can't wrap my head around the tutorials...

 

UPDATE 2: I am now working on the 2.0 version of this mod. It will include: a remade global.jrl file fully compatible with TSLRCM and M4-78 EP, a movie animation that will replace the broken kiss script and a Twin Suns outfit for Mira.

 

Many thanks go to: Efix, AmanoJyaku, JCarter426, JC2, DarthParametric for the great advice and support!

 

*I'm uploading my modded dialogue file here for you to test for yourselves. Just download and copy the mira.dlg file into your K2 Override folder, and start a dialog with Mira in-game!

If You need a savegame for K2 where you have Mira on the Ebon Hawk to be able to talk to her, i also included that below!

 

mira.dlg

global.jrl

K2_Mira_EbonHawk_Savegame.zip

 

Share this post


Link to post
Share on other sites
1 hour ago, JediArchivist said:

Porting the animation from K1 where Revan and Bastila kiss

Isn't that just a fade to black in the vanilla game? I thought the kiss was a mod.

Edit: Yeah, here's the scene

K1_Vanilla_Bastila_Kiss_Scene_TH.jpg

There's a mod that adds in a different animation for Bastila and the PC (ANIMATION_LOOPING_TALK_PLEADING it would seem) and changes the camera angle in order to fake the kiss.

  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites
1 hour ago, JediArchivist said:

My edited .dlg file seems to break Mira's dialogue and i have no idea why... i opened and edited the file in Kotor Tool's Conversation Editor, i also re-opened and altered it in the standalone DlgEditor.

KOTOR Tool doesn't support K2 dialogue files. My guess is trying to edit it at all with KOTOR Tool corrupted the file.

  • Like 1

Share this post


Link to post
Share on other sites
13 minutes ago, JCarter426 said:

KOTOR Tool doesn't support K2 dialogue files. My guess is trying to edit it at all with KOTOR Tool corrupted the file.

In addition, it doesn't work well with k1 files either, best bet is to use the dlg_editor found here

  • Like 1

Share this post


Link to post
Share on other sites

DarthParametric, i did not remember if the kiss with Bastila was in the original game or the result of a mod... I remember last time playing K1 on my iPad 3 about 2 years ago and the kiss scene was present as i recall...i probably installed the mod (since i used to mod the game even on IOS as well with all cool mods i could make work) and forgot about it... That simplifies things, i could just try to copy the animation and ita implementation from Bastila's .dlg file altered by the mod, as shown in Your post. Many thanks for clearing this out!

JCarter426 and JC2, thank You very much for Your useful insight! I will now definately re-edit the file from schratch, this time only with DLG Editor!

Can anyone tell me where exactly is Bastila's .dlg file located in K1... since K2 has the BIFs/dialogs.bif folder, and K1 has no such folder inside BIFs, and manually searching for the location of K1's dialogue files brought no results for me?

P.S.: I still need help with the scripting... I will update with what needs to be done after i remake the mira.dlg file with DLG Editor and take a look at how that Bastila Romance Mod changes the bastila.dlg file to fake that kiss...

Share this post


Link to post
Share on other sites

Thank You DarthParametric, i have been struggling to find that one for a long time!

 

UPDATE: I also figured i must mod the Quest Log, in order for it to reflect that the Exile is romancing Mira. I will search for a tutorial in that matter...

As soon as that is done i will upload a Beta version of the mod to the Files section!

 

UPDATE 2: Good News! I made a new mira.dlg file with DlgEditor and this one works perfectly!

Status update: I finished modding the .dlg file. I also used the same animations as in the K1 Bastila romance mod, although it had different results, but it works fine nonetheless!

 

UPDATE 3: More Good News! The first version of the mod is now live! I have uploaded it to the Files section, and it is awaiting verification and permission!

 

The only thing i need help with now is if anyone knows how to edit a conversation to pop up a different line of dialogue after an event happened, as i have no scripting knowledge and can't wrap my head around the tutorials...

Once the "Kiss me..." dialog line is triggered, the romance must be considered "enabled" and new dialogues should reflect that instead of just re-tracing the steps that "enabled" the romance.

 

Share this post


Link to post
Share on other sites

I still need some help with making the 2.0 version update for the Mira Romance mod!

I want to bind a video to trigger when hitting a certain dialogue line.

I searched through all the tutorials, the old ones from lucasforums on archive.org as well and haven't found how to do this...

Could someone kindly help me and explain to me step-by-step (idiot's guide style) what i must do to make a video trigger once a dialogue line is hit?

Many thanks in advance!

Share this post


Link to post
Share on other sites
1 hour ago, JediArchivist said:

I want to bind a video to trigger when hitting a certain dialogue line.

I think you just need to attach a script to the dialog line. After the line is spoken/printed to screen, the script fires automatically. Inside the script you'll execute the PlayMovie() engine function. Use DLGEditor to attach the script to the dialog (for K2 scripts you will fill in the field "Script #1")

 

Here's an example of the script:

 

  • Thanks 1

Share this post


Link to post
Share on other sites

@AmanoJyaku

Thank You very much for Your useful instructions!

So, if i get this right, if i insert something like PlayMovie("MiraRomance", 0) in the Script #1 field in DLGEditor and i drop a movie named MiraRomance.bik in the Override folder, it should work?

Capture.thumb.JPG.b6d1410ff4a8cf0ce4735b965fa6c9da.JPG

Does the movie that the script is pointing to have to be a specific resolution? As far as i know, it must be in a .bik format, am i right?

Share this post


Link to post
Share on other sites
3 hours ago, JediArchivist said:

So, if i get this right, if i insert something like PlayMovie("MiraRomance", 0) in the Script #1 field in DLGEditor and i drop a movie named MiraRomance.bik in the Override folder, it should work?

The name of the script file is what goes into Script #1. This file would be:

  • Written in NWScript
  • Saved as filename.nss (just a plain text file like *.txt)
  • Compiled into filename.ncs
  • Placed into a game directory (probably the Override directory?)
  • Entered into the Script #1 field as "filename" without the .ncs extention

The contents of filename.nss would be something like:

void main() {
if (SexyTime) {
	PlayMovie("MakeOutWithExtraTongue", 0);
}

 

The movie file would be MakeOutWithExtraTongue.bik.

3 hours ago, JediArchivist said:

Does the movie that the script is pointing to have to be a specific resolution? As far as i know, it must be in a .bik format, am i right?

I opened TSLRCM credits video in VLC, and the resolution is 1920x1080. And, yes.

  • Thanks 1

Share this post


Link to post
Share on other sites
16 hours ago, AmanoJyaku said:

The contents of filename.nss would be something like:


void main() {
if (SexyTime) {
	PlayMovie("MakeOutWithExtraTongue", 0);
}

 

I tried compiling the .nss file and i got this error:

Capture.JPG.a6458025d4765c07bac05d256460d744.JPG

Capture.JPG.6ec19f3311f67ceef8885ad0d8bc6cd3.JPG

Sorry, i am an absolute noob at programming / scripting :(

Share this post


Link to post
Share on other sites

You're trying to compile a TSL version of the function in K1 mode. There is no second argument for the K1 version of PlayMovie, so the compiler throws an error ("too many arguments").  You have to switch the game you're compiling for in the options.

  • Thanks 1

Share this post


Link to post
Share on other sites
56 minutes ago, DarthParametric said:

You're trying to compile a TSL version of the function in K1 mode. There is no second argument for the K1 version of PlayMovie, so the compiler throws an error ("too many arguments").  You have to switch the game you're compiling for in the options.

Thank You, it worked! I am a total noob... :(

@AmanoJyaku @DarthParametric

I compiled the following script, it compiled ok:

1.JPG.aa84e12a0fd35b511a646fe224b64efb.JPG

Then i added the script name (MiraRoamnce.ncs) to the dialogue file:

3.thumb.JPG.ad07f129b694d4d62b3efb6f0e40a0df.JPG

And finally i added a MiraRomance.bik movie, and threw everything into the Override folder:

2.thumb.JPG.122090e0f32b2b542174f3dffa7cdeeb.JPG

The problem is, when initiating the respective dialogue, the movie won't play, it just goes to the next dialogue line.

Note: I renamed a .bik video from KOTOR to use as a dummy video until i make my own video.

 

Sorry for bugging You all, but i have no idea why this does not work :( Could i have written the script in error? If so, what would be the correct syntax?

Share this post


Link to post
Share on other sites

Normally you play movies outside a conversation. You could try adding a delay, like so:

void main() {
	
	ActionPauseConversation();
	
	PlayMovie("MiraRomance", FALSE);
	
	ActionResumeConversation();
}

You could also try setting a specific amount of pause, either in the script or in the DLG itself. If that doesn't work you'll probably have to break out of the convo, play the movie, then re-initiate the convo, which would require new dialogue nodes, new scripts, and possibly an invisible helper placeable.

  • Thanks 2

Share this post


Link to post
Share on other sites
1 hour ago, JediArchivist said:

The problem is, when initiating the respective dialogue, the movie won't play, it just goes to the next dialogue line.

Note: I renamed a .bik video from KOTOR to use as a dummy video until i make my own video.

 

Sorry for bugging You all, but i have no idea why this does not work :( Could i have written the script in error? If so, what would be the correct syntax?

It can't find the video. I think you need to put it in the "Movies" directory. As an example, if you have vanilla TSL from Steam you put it in:

C:\Program Files (x86)\Steam\steamapps\common\Knights of the Old Republic II\Movies

If you have TLSRCM from Steam:

C:\Program Files (x86)\Steam\steamapps\workshop\content\208580\1402798020\movies

 

Edit: DP is more experienced at this than I am. Try their advice first, then try mine. Let us know how it goes.

  • Thanks 1

Share this post


Link to post
Share on other sites
1 hour ago, AmanoJyaku said:

It can't find the video. I think you need to put it in the "Movies" directory.

Thanks! That did it! It worked perfectly and it also didn't crash the conversation, it resumed right after the movie!

Now to making the actual movie animation...

Share this post


Link to post
Share on other sites
1 hour ago, AmanoJyaku said:

DP is more experienced at this than I am. Try their advice first, then try mine. Let us know how it goes.

Nah, I was too quick to jump to conclusions rather than reading the post properly. Always start with the principle of parsimony.

Share this post


Link to post
Share on other sites

DarthParametric i found Your script very useful, i might use it to add a little delay between the conversation and movie.

AmanoJyaku your advice worked like a charm, the solution was so simple yet i couldn't see it.

 

Thank You both for the great help and most useful advice, without Your help i wouldn't have been able to come so far with my mods!

I am very grateful to have the honour of receiving help from so many great people here on DS! Thank You very much, You have my deepest gratitude!

  • Light Side Points 1

Share this post


Link to post
Share on other sites

The 2.0 version of the mod is now live! It has fixed some of the bugs of the previous version and adds something new as well!

Update 2.0.0 (Major Update) features:

- Updated the global.jrl file to be completely compatible with TSLRCM and M4-78 Enhancement Project. Now the global.jrl file in the override folder can be safely overwritten by the mod’s file without causing any issues!

- Added a movie with an animation that replaces the broken “get_close.ncs” script.

- Added a new outfit for Mira inspired by the Twin Suns outfit. To equip it You must unequip all clothes / robes / armours, the outfit basically replaces the underwear model!

 

I have updated the mod here on DS as well as on ModDb and Nexus Mods! I am also leaving a version here so You can quickly grab it and check it out!

Mira_Romance_Mod.rar

 

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this