View Full Version : on-demand dialog progression

10-01-2006, 01:46 PM
can you make a mod, fix or something that removes the time-limit from conversation pieces ?

i mean, every time aliens talk i don't really understand most of what they say... 'cuz the subtitles disappear too quickly and my english isn't well enough to read 20 words in 2-3 seconds !

what i've been doing to compensate is to randomly choose response choices just to end the conversation, then go to the "message log" to read the whole thing and find out what's going on, then reload from a previous save and go over the same conversation again, trying to remember the right choices... in short it's tedious !

so it would be nice if i was able to take all the time i need to read the subtitle and then "click" or press "enter" to hear (and read) the next sentence...

can someone make make such a mod ?
thanx in advance

10-06-2006, 08:23 PM
It can be done, however it would involve editing every single dialog file in the game, and there are hundreds of them. You'd probably need to modify every Entry node within a dialog file (often hundreds in each file) to set the Delay field to a very high value, and make sure the NodeUnskippable field is set to 0 to allow clicking to proceed. Should work pretty much like you described for normal dialogs, but I don't know how well that works during cutscenes.

It's not difficult to do, but it's a very time consuming and repetitive task to do by hand. I might be able to throw together a small utility that changes those fields for all entries for any dialog files opened with it, that might reduce the amount of work somewhat. I don't know when exactly I will have the time to do that though, since it'll take a few hours to put together such a program.

It would still require someone to be extracting all DLG files from the module RIM files, run them through the program and then put them back into the module RIM files again.

For the global dialogs it should work to extract them from templates.bif (kotor1) or dialogs.bif (kotor2), let the program modify them and put them in the override folder. However I'd recommend running the names of the global DLG files through FindRefs as well to make sure there are no dialog files with the same name in any of the modules to avoid potential trouble. (The override has higher priority than the module RIMs, while the BIF files have lower priority, which can be the source of potential conflicts).

Unless someone else has some simpler, better idea how to solve this, of course. :)

10-07-2006, 08:55 AM
well, like you said it's "very time consuming" and even with a fully automatic program to do it it's still too much changes...

can't we somehow disable the "automatically play next" mechanism so that the only way to play the next part would be by "skipping" the current part (mouse click / enter key) ?

sorry i can't be much help... i just don't know the technical details of this engine, so i can just make a request and hope you modders do the job

10-07-2006, 10:59 AM
can't we somehow disable the "automatically play next" mechanism so that the only way to play the next part would be by "skipping" the current part (mouse click / enter key) ?

As far as I am aware there is no way of doing that. How DLG files are handled is hardcoded in the game engine which cannot be changed by modders.

Anyway, I've put together a quick batch changer program which you can get here (http://www.algonet.se/~stoffe/DialogDelayChange.rar) for now. It has two modes of operation:
Modify DLG files - Shows a standard Open dialog box where you can select a number of DLG files (use SHIFT/CTRL as usual). It will then go through these files and modify all entries matching the below mentioned criteria. This is meant for modifying the global DLG files extracted from templates.bif/dialogs.bif.

Modify Module files - Shows a standard Open dialog box where you can select a bunch of RIM (KotOR1) or ERF (KotOR2) files containing the module specific dialog (usually all files in the Modules folder in the game folder). It will then modify all DLG files found inside those ERF/RIM files according to the below mentioned criteria. This is meant for fixing module-specific dialog in-place.

You can specify three settings in the program: How long delay, in seconds, you want each dialog entry to have before continuing automatically, if only AlienSpeak entries should be modified, and if this is for KotOR1 or KotOR2. The AlienSpeak only option only works for KotOR2 dialog files due to differences in how the alien speak is handled.

(Technical, you don't need to understand this paragraph to use it: For each dialog file the program will go through all Entry nodes. If an entry node has a value in the Delay field set to -1 (meaning the game engine will match the duration against the length of the sound voiceover), it's value will be changed to the one you specify, and the node is set to be skippable by clicking.

If the AlienSpeak only checkbox is checked for KotOR2 dialogs, the node will only be modified if either has an AlienRace value higher than 0, or if the AlienRaceOwner field has a value higher than 0 and he dialog owner is speaking the entry.)

* * *

As far as I have been able to test this it seems to work, but I have no idea if doing this will cause any bugs somewhere in the game. Only a full playthrough would answer that, which I currently don't have the time to do.

If you use this, make a backup of the Modules folder for your game first. I mean it. I will not guarantee that this is bug free, use it at your own risk..

* * *

If you want to give this a shot yourself, do like this:
Make a backup of your Modules folder found inside your game folder.

Use KotorTool (http://www.starwarsknights.com/tools.php) and extract all the global DLG files from templates.bif (if it's for KotOR1) or dialogs.bif (if it's for KotOR2) to a folder on your harddrive.

Use FindRefs (http://www.starwarsknights.com/tools.php) and search for the name of each of those files and see if that name occurs inside a file with an ERF or RIM extension as well. If it does, remove that file from your folder as it might cause problems if putting it in the override folder.

Run the batch-changer utility (http://www.algonet.se/~stoffe/DialogDelayChange.rar) and Use the "Modify DLG files" button. Select all the remaining DLG files in the folder you extracted them to with KotorTool. Wait until the utility is finished (a dialog box will inform you when it's done), then move the content of your folder into your override folder.

Run the batch-changer utility again, this time using the "Modify DLG files in Modules" button. Select the entire content of the Modules folder inside your game folder. Make sure you select the correct file type to display in the Open dialog: RIM for KotOR1 and ERF for KotOR2, in the combobox below the file listing, before selecting all files. Then press Open and wait while the utility works. This might take a while, depending on how fast your computer is. A dialog box will pop up when it's done informing you of the fact.

Play the game and hope for the best. :)

Unless I'm overlooking something obvious this isn't really suitable for a mod that's shared with others since you'd need to include every module in the game. Legal issues aside, that's roughly 100 MB for KotOR2, which is a bit on the large side, at least for me. :)

This is as good as I can do. So, unless someone else would do this for you you'll probably have to fix the rest yourself if you want it done. :)

10-07-2006, 06:20 PM
well, what can i say ?
thank you... i owe you one (or maybe a few hundred :P)

Zerimar Nyliram
10-09-2006, 08:15 PM
Hey, this has been a real problem with me as well. I remember thinking when first playing KOTOR, "Man, they don't give you enough time to read! I sure hope they improve upon this in KOTOR II." But in KOTOR II it's even worse! You have even less time to read than you did in KOTOR I.

I thought that perhaps a way to fix this would be to restore all of the gibberish dialogue for all of the aliens from KOTOR I and have those lines replace their KOTOR II counterparts. (i.e. the Quarrens, Rodians, Twi-leks, Trandoshans, Ithorians, etc. The Sullustans would still be a problem since they did not appear in KOTOR I and thus do not have any alternate dialogue.) The aliens in general had longer voice-overs in KOTOR I than they did in KOTOR II, and replacing the new voice-overs with the old would deffinately help in many places, particularly with the Ithorians, Twi'leks and Rodians.

Can it be done? (I'm not a modder, by the way.)