The semi-regular report on my extraneous activities continues. I spent the better part of March breaking and then fixing my computer, but there's some new stuff too. Here’s what’s been going on since last time:
Odyssey++ - Recent updates to Notepad++ radically altered the file structure, so I’ve updated Odyssey++ to keep up with that.
Feat Fixes for K2 - Fixes some feat stuff for K2. Several feats weren’t available to certain classes for reasons unknown, and Finesse: Lightsabers didn’t do anything Finesse: Melee Weapons wasn’t already doing so it had to die.
Security Spikes for K1 - Security spikes never did anything on the PC version of K1. I’ve replicated their intended function as best as I could, so when you use the item you get a temporary bonus to your Security skill. Or, if you prefer, you can choose the other option that removes them from the game altogether.
Mandalorian Armor for K1 - Makes the wearable Mandalorian armor more consistent with other Mandalorian armor in the game so they follow the usual blue/red/gold rank system. Also fixes a few other oddities with Mandalorian-related items.
Backstroke of the Old Republic - Edits all text in the game to provide a... different experience.
Something Completely Different
A while back, @A Future Pilot recruited @DarthParametric and myself to help with the next update to the K1 and K2 Community Patches. We’ve mostly been working on the K1 one first. AFP had a list of issues he’d been collecting since the last release, almost a year ago now, and we’ve checked off just about everything on that list. Between those and the other issues we found while fixing those, plus some more that were reported in the interim, I think we’ve easily doubled the amount content in the Community Patch.
You can follow our endeavors on GitHub.
I got a lot of problems with you people. Now you're gonna hear about it.
I'm trying something new again, though I've been thinking of doing it for a while. I noticed the site update changed the way it manages updates to mods. I think the new way makes more sense than the old way, but it does mean it's easier for updates to go unnoticed to anyone who isn't specifically following the mod page for that. So I figured I'd do a sort of mod roundup every so often to shout into the void about what I've been up to.
The primary point of this format - new updates to old mods that you might've missed.
Supermodel Fix for K2 - Added some fixes for dual saber animations. And apparently I broke TSLRCM's lean animations at some point, so I fixed those too.
Slave Bastila - I spent a good part of the summer putting out fires for this mod. Then after I thought it was done, there was some more weird stuff that wasn't even my fault. Nobody's reported anything for a couple months so I think it's safe now.
Handmaiden Sisters - This was the first mod I submitted to Deadly Stream, though it wasn't the first mod I made, not by far. So it didn't have much sentimental value and I neglected it. It had been out of date for a while. I ended up redoing it from scratch for the update.
Korriban: Back in Black - By request, there are new options for Uthar and Yuthura. And also a fix for a weird bug with a guy on Manaan.
Some fine additions to your collection.
Vision Enhancement - Makes the player stop going to bed wearing armor and teleporting to the Ebon Hawk in their sleep.
Fashion Line I: Cloaked Jedi Robes for K1 - Ports those K2 robes with cloaks to K1. Possibly the #1 request since Deadly Stream started accepting ported mods, if we aren't counting "hey why don't you port the entire game" as one mod.
Force Knock - Adds a Force power to replace the need for the Security Use skill.
Modding Tools & Resources
Stuff of no interest to non-modders but of potential non-zero interest to modders.
Cloaked Jedi Robes & Supermodel Port for K1 - Mod resource version of what makes the Cloaked Robes and Slave Bastila work.
Odyssey++ - User-defined languages for Notepad++. Suggests stuff as you type. Makes scripting for KOTOR easier.
Something Completely Different
In this section I'll post something recent that I didn't make but I think is cool and deserving of attention. This time, without a doubt, it's the CSLU Toolkit revival by @Jenko. The CSLU Toolkit is what KOTOR mods have always used to generate lip files because that's what was available back in 2005 when JdNoa made her LipSynchEditor. It was a convenient, free resource... at the time. Recently, it's been impossible to get a hold of the software. The CSLU server has been offline for over a year, meaning nobody could install the Toolkit. Even if they had the installer, it wouldn't work without the server available to confirm the license.
I remember problem-solving this when the server first went offline. I even sent over my registry files, hoping we could get a new installation to recognize my license - just so we'd have the option of transferring a totally legitimate installation to a new machine when the time came. But nothing worked. It was oddly secure for freeware. Ultimately, it took him single-handedly pestering the staff at Oregon Health & Science University, getting his emails sent down a chain of several people in the hopes that it would finally reach somebody who actually worked on the thing. And it did. It was a Festivus miracle.
Apparently, I'm one of only a few individuals who still has access to the CSLU Toolkit, software that can output phonemes based on an audio and text sample. Historically, this has been pretty much the only way to generate LIP files for KOTOR so characters' lips will flap when they talk. LipSynchEditor converts from CLSU's PHN format to the LIP format, but to do that you need the PHNs first... unless you want to make lips manually, but that isn't practical. Unfortunately, the Center for Spoken Language Understanding's servers have been offline for a long time. As such, it's currently impossible for new users to install the software required to generate these PHN files. Only a few veterans like myself still have it installed. And I can't even guarantee I'll have access to it forever. It's currently installed on my old computer, but not on my newer system that I built after the servers were offline. I doubt the computer that does have it will last forever, so it's probably only a matter of time before I lose access to CSLU too. Until then, though, I'm able and willing to generate lips on request. And I've gotten a few requests already.
Now, I don't want to make a habit of this and get stuck as the guy who does everybody's lips for them because making lips with the CSLU Toolkit is a long, boring process. What I can do for you, though, is tell you can do for me so I don't have to do all of it for you. If you follow the instructions below and send me all the necessary files, all I have to do is hit a button and send stuff back to you. And I have no problem doing that.
CSLU requires three things: 1) audio of everything you want to create a lip saved as an individual mono WAV files; 2) a text file accompanying each audio file that contains the words spoken in that line of dialogue; 3) a master list matching each audio file to each text file so it knows what to process.
First, you need your VO files in the mono WAV format that the CSLU Toolkit wants. If your VO is new, you merely have to make sure to save it in this format. If you're working with VO from the game, you'll need to convert it first. The game VO files are generally MP3 files with extra bytes added at the start of the file to confuse us. Stripping this header will restore them to regular MP3 files. This can be done with a batch script and you can read up on that here. That will make them MP3, but they still need to be converted to WAV. Any old audio converter can do this. Freemake Audio Converter is one I use for Windows. Alternatively, you can use the Miles Sound Tools to play and convert the VO directly from the original game format to mono WAV.
Next, you need to write out all the words spoken in every line and save them as text files. I typically name the text files the same as the audio files. You then need a list of all your audio and text files. This is the most tedious part of the process, but fortunately I've attached batch scripts below to make this easier.
text.bat will create blank text files for each audio file. You still have to type the dialogue into them, but at least you won't have to worry about the file names.
list.bat will create the master list. It will search for every WAV file and create a line in the list for each one, saving all this as lips.txt. My script assumes each text file is named the same as each audio file, so if you want to use this script, that's required.
Send me: 1) all your mono WAV files; 2) all your transcribed text files; 3) your master list of everything to process. Once I have all of those, I can run CSLU's script to generate PHNs and send them along. I can also batch convert to LIP if you want, because that isn't nearly as big a deal as all the above.
If you want me to make lips files for you, post a comment below with the necessary files attached or linked, and I'll get to work.
Lip Batch Scripts.zip
The need at all for this blog post blog post brings warm feelings to my heart. We’ve always had a decently-sized community, but we were always kind of under the radar of the modding community. I’ve had people who have known me for years as a modder tell me they were surprised to find out I was involved with the movies as well. But it’s true - I’m one of the animators for the KOTOR Movie Saga.
More than ten years ago, I was inspired by the original KOTOR Episode I to make my own projects. I initially made some comics, which I’ve posted about here, and I later started my own movie adaptation of KOTOR II (which I still haven’t finished). The director of Episode I @KOTOR_Trilogysaw the work I was doing there and asked for help with Episode II to do a few things he couldn’t do on the Xbox version. I also worked with him to update Episode II when we screened it at MAGFest, and then we were asked to come back within a year for Episode III. At the time, @DarthYcey was working on his own KOTOR II films and he came on board so we could actually get the film done in time. We now consider his Meetra films as a continuation of the Loganverse trilogy in one shared KOTOR Cinematic Universe, but that’s a whole mess of a story that I won’t get into right now. Anyway, @Jenko also joined us and more recently directed the special edition of Episode I, which just had its birthday last Thursday. So that’s the four of us. Mr Director and his three animators. We’re currently in preproduction on two new projects: Revan, a prequel trilogy set during the Mandalorian Wars, and Heroes of the Old Republic, an anthology webseries of little side stories that wouldn’t fit in the films.
Until now, all these goings-on have occurred in the shadows. We never drew any attention on LucasForums. I think I posted Episode III when it came out and nobody replied. If I had to hazard a guess, I’d put it down to LucasForums not having a very active fan media section. There were forums for for it, but not a lot happening in them. People went to the site for mods. On the other hand, a lot of Loganverse fans (myself included) discovered the movies because they were specifically looking for Star Wars fan films or new KOTOR content, and weren’t necessarily interested in modding the game. So there isn’t as much overlap as one might think. Recently, though, I’ve noticed we’ve started to attract more notice - or in more cases, actually, I’ve learned that certain individuals were already aware of the films and just never mentioned it to me (maybe because they didn’t know I was aware of and involved with them). Whatever the case, we’re out in the open now and while it wasn’t a big secret before, I’m now trying to be more open about my involvement and exactly what that entails. And that segue brings us back to the matter at hand. Lately, I’ve seen requests for some material from our films to be released as mods. I want to talk about why that hasn’t happened so much and what you can do to maybe change that.
First, I want to point out that not a lot of our stuff would work as mods. The scenes in the films were recorded solely for film purposes and utilize a lot of camera tricks and editing that can’t be done in the game. Most of the scenes aren’t complete in-game cutscenes. Even when I do program an entire scene, I don’t input each specific camera angle in the dialogue file that you’d need to do for a mod. Instead, I record the entire scene from every camera angle and turn the footage into a multi-cam sequence in Adobe Premiere. I do it that way because the game generally forces you to change angles at the start of a line of dialogue, but we don’t always want to do that when editing a film. Mr Director even asked me about this one time - he was wondering if, provided they had all the right files, someone could execute a scene and essentially see the whole movie in the game. And I could probably do that, but it would involve a lot more work than is necessary to make the movie and I’ve only ever done what’s needed for the movie. Unless we specifically plan for a scene to be released as a mod, it’s not a realistic prospect.
What’s more eligible for release would be the assets we use to create these scenes - characters, outfits, locations, that sort of thing. And there hasn’t been much of that - yet. We’ve had to hold ourselves back a few times when we thought stuff would be filmed on the Xbox and therefore couldn’t utilize any modded assets. A few times this wasn’t necessary, and if I could redo things with that knowledge, Episode III would look a fair bit different. Canderous wouldn’t wear blue armor and a lot of the characters on Korriban wouldn’t wear officer uniforms. There were only a few cases where we knew we would record on PC and could do whatever we wanted. The earliest such case I recall is the Sith outpost scene early in the film (the one recorded in the Vulkar base). Since Logan had changed so much between films, Mr Director wanted his outfit to change too. We knew that I’d be recording that scene and that Logan would change clothes early in the film, so it wasn’t a problem to give Logan a custom outfit there. I dug through my files and we ended up using a texture I’d made years earlier. Another one that stands out is the Zabrak character Kondor Moderro. I remember making that the night I got back from the Episode II screening. We had a creative meeting in Mr Director's hotel room; he told us his plans for the character and asked if it was possible to add a new alien to K1 since we’d have to record all Moderro's scenes on PC anyway, given that he was a new character. Bastila’s outfit was another addition and in that case it was actually because there wasn’t a mod for it. Again, we knew her scenes would be another PC thing (you can’t use the Xbox freecam during those duels) so Mr Director thought of changing her outfit. He saw something he liked online but the mod was never released, so I came up with an approximation to use for the film. Things have changed since then - from now on, we’re recording everything on PC and the new projects involve new characters and locations that most definitely will involve new assets. But from our past works, only a few isolated bits come to mind.
And for those, the most common scenario is that it simply hasn’t occurred to us to release it. As I mentioned before, Mr Director is an Xbox guy, and of the animator trio I’m the only one who has released mods at all. I’ve been on the modding scene as long as I’ve been working on these movies, but the other guys only got into this stuff for the films. So the real question is why JC hasn’t released anything. Again, the usual answer is I didn’t think of it. I’m really bad at releasing things. I have tons and tons of unreleased material - unfinished or abandoned project, things I changed my mind about, or some stuff I just haven’t used yet. Logan’s Episode III outfit was one such case. That was one of a bunch of textures I made back in 2009 and I still haven’t used the others for anything. I have a backlog of useless assets and a lot of it I don’t think is worth releasing. Not necessarily because it’s bad (and a lot of it is) but because of the futility of it. “A bunch of robe recolors I made in 2009” doesn’t sound appealing for a mod. Plus there’s all the work required to test the mod (I don’t get much time to play the games these days) and write up a proper installer so it will be compatible with other mods (I usually manually edit my 2DAs and other files and have a totally garbage build with years of such clutter that barely works for recording purposes) and taking screenshots (I hate taking screenshots) and so on. The mods I actually do release are only released thanks to a focused, concentrated effort to release them instead of letting them sit on one of my hard drives forever. There’s more in there I’ve forgotten than I remember.
My incompetence aside, there are a few cases where we’re specifically reluctant to release our assets. It’s not the case for everything, and we likely could be persuaded to release some things, but it’s an ongoing concern for us that our films contain a lot of new content and don’t come across as footage of a 15-year-old video game. We want everything we make for the films to look and feel new, and to release that content, if you could see all the same stuff outside of our films, there’s a risk it could detract from that experience. I don’t feel that way about everything, but I do have mixed feelings. And because I’m not working on these films alone, even if the material in question is something I made on my own, if it’s I made it specifically for one of the films then I wouldn’t feel comfortable releasing it without getting the other guys’ approval first. And even though I think they’d probably say yes for some of it, I haven’t done so because there isn’t anything I’m particularly motivated to release. I made all this stuff for the films, not as mods. That goes for a lot of my own stuff as well. Some assets I have made with several uses in mind, such as my head resource, which end up being used in the films but weren’t made with that specific intent. When tha does come to mind, I do set it aside for release. But most of the time, I’m in one of two mindsets on this. Film, or mod. I don’t usually think of doing two things.
If there’s anything from our films that you’d like to see released as a mod, the most proactive thing you can do is let us know. We can only say no on a case by case basis and we have to know what in particular people want released. It’s not like we’re hoarding all our files, but even though we know that generally there’s probably stuff from our films that people would want, we aren’t inclined to upload anything in particular without some nudging first. We gotta know what you want then and you gotta make us let it go. So if you make a mod request for it, then we can address the matter.
I couldn’t end this post without a little promotion. If you want to talk about the movies to us directly, you can join our new discord. And if you’re reading this but you haven’t seen any of our KOTOR movies, the best place to start is with the Episode I: A Familiar Path Special Edition.
I’m glad to be able to talk about porting. It’s not the subject itself that I find as mysterious and alluring as some forumites seem to, but it’s been such a taboo topic for so long that I find it refreshing to be able to talk about everything I’ve been repressing.
Porting content from one game to another within the same series (e.g. Star Wars: Knights of the Old Republic to Star Wars: Knights of the Old Republic II - The Sith Lords) is now allowed on Deadly Stream. Because I’m allegedly “staff”, I was told about the change of policy a couple days before the official announcement, and I was shocked. I’m still shocked. Honestly, it feels weird discussing the topic even now. Not in a bad way - like I said, it’s rather liberating - but in an I’m still having trouble believing this is a thing sort of way. This would’ve been my tenth anniversary on LucasForums, if it were still online, and I was on the FileFront forums for a bit before that. Porting was always banned and I don’t remember when it wasn’t. When Deadly Stream went online, it maintained the same rules, and now that’s changing. It’s a shift in policy older than this website, put in place before many users here even played the games. It’s a surprise, to be sure - and I expect a welcome one for many.
Given the nature of this modding website, I expect anyone reading this likely knows well enough about porting, but not everyone is a modder or PC gamer and I have been asked before what porting is and why it’s a big deal. Porting is taking copyrighted content - models, textures, music, or what have you - from one game and putting it into a different game. It’s a kind of modding, but the distinction is that regular old modding works within the confines of whatever game is being modded, editing the existing assets and/or adding new content created by the modder, while porting involves something that wasn’t in the game and that the modder doesn’t have the rights to. Why is this a big deal? It isn’t in some communities. Different sites have different rules, and some do allow it. But it wasn’t allowed in the KOTOR community until now, though I feel I need to add a qualifier to that. It was kind of unclear. Porting was certainly against the rules on LucasForums, and with LucasForums went the KOTOR community. While I was a reviewer for KOTORFiles part of my job was to make sure the mods I reviewed didn’t have anything that wasn’t allowed. We were, for example, instructed to be on the lookout for TSLRP when the beta was leaked. If you were to ask me if porting were allowed I think I’d say no, but I don’t think that was an actual FileFront rule. JK3Files hosted mods that ported content from Jedi Outcast to Jedi Academy. There were also a few KOTOR mods I suspected of ported content - textures I recognized from Jedi Academy, for example - as well as mods that included other copyrighted material like music and sound effects. Fortunately, though, nothing ever came under my review that called for an examination of the laws of porting. To further complicate matters, the official release of MDLOps - still hosted on StarWarsKnights.com - contains a tutorial on how to port the Tenloss disruptor rifle from Jedi Outcast/Academy to KOTOR. Bit of a mixed message there.
Regardless, on LucasForums porting was certainly verboten. But for a long time, this was a moot point. There was a lot in the modding realm we couldn’t do. Until a few years ago, we couldn’t work much with head models - the animations would break, or something worse would happen. And unless you used Taina's Replacer, which didn't allow change in vertices, the smoothing would break. Even if you could get a model from point A to point B, it wouldn’t look as nice as it did back at A. Different tools could only handle different things. KAurora couldn’t do animations. MDLOps couldn’t convert lights or lightmaps, emitters, or walkmeshes. I don't know if room animations didn't work or if nobody ever tried it. All these things and more would break even if you were keeping a model in the same game. Most of these issues were only resolved last year with the development of KOTORMax, MDLEdit, and the updated MDLOps. For this reason, perhaps, porting as a reality was a rare concern. Only two cases from those days stand out in my memory, both of which involved screenshots taken in K1 to make textures in K2, and both of which deemed ok by the administration. On Deadly Stream, there was that fiasco with the credits. More often than not, the matter was merely theoretical - someone would unknowingly request something that required porting and be shot down for it. It was forbidden as a theory even though it wasn’t much of a possibility and I don’t know why. It was a rule from before even my time and I’ve never heard the issue properly debated. Porting wasn’t allowed, and you weren’t allowed to talk about why it wasn’t allowed. I find that a bit unsatisfying, so I’ll try to see things from both sides of the issue and debate myself.
Argument A: Porting is a copyright violation. It’s taking something that’s not yours and distributing it without the copyright owner’s permission. In more extreme cases, publishers have moved to shut down mod projects/websites for fear of losing sales, such as with conversion mods that would remake a game in another engine. Modding as a whole is already on shaky legal ground, so it’s not wise to attract that sort of bad attention. The line is drawn here.
Argument B: Porting isn’t anything like pirating a game because it involves a fraction of the content and requires the framework of a game to access it. It’s unlikely that any mod would negatively affect a game’s sales. If anything, more mods for a game is a good thing and content ported from one game to another draws interest in both. There’s nothing illegal about porting for personal use. The only part in question is the distribution of game assets - but that applies equally to all mods. The only difference is from which game the assets originated. It doesn’t make sense to apply a different standard of rules, especially for games in the same series that already share a lot of assets, like KOTOR.
Those are the essential arguments, as I see them. At the risk of earning Kreia’s wrath, I’m not going to take a side. This is a bit of a coward’s way out that I can take because I’m a modder and I can port stuff myself if I want to and not rely on downloading it from Deadly Stream - more on that in a bit - but that really is how I feel. I don’t see it as a matter of what’s right or wrong or what’s legal but rather what you think is a good idea and how much of a risk you want to take. Some communities take a risk and never have any trouble. Some - not many, but some - have taken the same risk and had their mods taken away. It’s a subjective matter, and maybe that’s why I’m a little bitter about the LucasForums days - because I see it more as a decision we should make as a community rather than an ultimatum that must never be questioned (even if most of us don’t know who made the decision or the rationale). But whether or not it was entirely by choice, that was what the community decided and I went along with it. That was then, this is now. It seems the community has gone in the other direction, and I’ll go along with it.
The question has become not what is allowed but what is and isn’t possible. I imagine, in the coming days, as more people ask this question there will be some poking and prodding to explore the new horizons. So I thought I’d save anyone reading this a bit of time by admitting that I’ve known how to do a lot of naughty things for a while now. I’ve been porting for personal use - not to make mods, but for my film projects that demanded it. Characters from different games interacting with each other, locations we wanted to use in another context, or just things that were useful for cinematic purposes - K2 has a lot more animations than K1. I’ve already been poking and prodding for years now and I no longer feel the need to hide it. I’m not going to go into much technical detail yet - perhaps when the modding wiki is online, if it's permitted - but I can answer some general questions right now.
Can we port head models?
Yes. There is some difference in the bone structure for each game, but there’s a specific process that works. It’s not even a huge difference, but it makes the lips of K1 heads clip in K2 and leaves K2 mouths gaping open in K1. My guess is Obsidian changed things during their development of the facial animation system that was never finished. The fix is essentially to copy the skin onto the appropriate game’s set of bones.
Can we port body/full body models?
Yes. Without any qualifiers.
PCs? Party members? Aliens? Really?
What about robes with capes?
Yes. The supermodels would have to be edited to include the cape bones and their animations, but it could be done. I had one go at it but it’s a bit shoddy at the moment.
Can we port other animations?
Yes. With a few caveats. 1.) K1 has a limited number of animations that can be scripted, though new cutscene animations are an option. 2.) K2 has more combat animations than K1 and under different names. A couple bugs in K2 stem from failure to account for this, and unless they’re named properly for K1 the same sort of problem would occur. 3.) K2 has a ton of other new animations and they’re added all over the place, which complicates any sort of porting.
Can we port models with their own special animations, like Darth Nihilus?
Yes. The same animation concerns apply, but that’s it.
Can we port textures - fancy ones, like bump maps and ones with animations?
Yes. The TPC format doesn’t change, so even in the event that we’re unable to properly decompile to TGA/TXI, simply copying over the TPC is enough. I have a texture archive for K2 that includes all of K1’s textures (and any that happen to share the same file names are overridden by the K2 versions).
Can we port areas?
Probably. I’ve had one definitive success - m14aa, the Jedi enclave courtyard - and a few partial successes or failures. But it’s still early days and I suspect the problems may have been procedural. The courtyard has grass, running water, and room animations - all the things I’d expect to go wrong first - and zero problems. Lightmaps, which used to be destroyed during ASCII conversion, load fine thanks to the new tools. There is a difference in how each game is lit, so a ported module may end up too bright or too dark, but that can be fixed in the .are file. Good signs so far, but not enough for me to be confident in a hard yes yet.
While we’re on the subject, since some of you seem to have been left out of the loop, we can also edit areas now. You might’ve seen area fixes in recent mods, but I’m talking full on editing like changing the lighting or texture mapping or adding a door to a new module. This would come in handy, for example, if one wanted to make new area mods that connect to the existing game, or integrate cut ones like the Czerka warehouse, or restore modules on Dantooine or Korriban that were left out of K2.
Can we port feats/lightsaber forms/prestige classes/the upgrade system/the level cap/everything hard-coded?
No. These were never porting issues. These game mechanics run directly through the game’s executable rather than an external file that we can mod.
For the MMO:
Can we port items?
Yes. See MDLOps’ tutorial.
Can we port vehicles?
Yes. I ported the Mantis bounty hunter ship to K1 as part of an area model on Taris. I stripped it of its bump maps because I didn’t know how to work with those at the time, but I imagine if we could figure out how to convert the formats those could be included as well.
Can we port character models?
Probably. But you’d have to weight it to KOTOR’s set of bones, which isn’t easy or fun work. That’s kind of why there aren’t a lot of new character mods at all for KOTOR. I’m not at all familiar with how the MMO models are set up so I can’t comment further.
Can we port areas?
Maybe? I can import the models into 3ds Max. To get one in KOTOR would be a lot of work - making new lightmaps and walkmeshes, replacing any emitters like running water with KOTOR standards, almost as much work as making a new area from scratch - but I don’t see why it wouldn’t be possible. Of course, KOTOR has issues with vertical space - can’t have one walkmesh on top of another - so there may be issues with the designs, depending on the area. But I don’t think poly count or anything like that would be a problem. The MMO seems to average around KOTOR’s level, some things better, some worse. I really just haven’t had the time to try it yet.
These are all just my general impressions so far and your individual success may vary. But overall I'd say there’s a lot we can do and not a lot we can’t do - just a lot we weren’t supposed to do until now. The point of this blog isn’t to encourage porting, exactly. It’s your choice whether to do it or not. Because of the rules (the old rules) I’ve always strived to use assets that are in both games wherever possible. It’s more challenging that way, but it almost always resulted in fewer complications. Even with porting allowed, I’ll probably still do that in the future. It's simpler. But now that, surprisingly, after all this time, that is a choice people can make, I want to put this information out there so those of you who are interested in stepping down this path may do as you choose. I’ll be available on Discord if anyone wants to see some more examples of my porting attempts or get a more thorough overview of the process.
Personal opinions not endorsed by FileFront Deadly Stream.
I've gone back and edited the descriptions of some of my mods - Sound Effects for K1, Blaster Visual Effects for K1, and Blaster Visual Effects for K2 - because I've started a new thing. It's a video series I'm calling my Mod Showcase. I felt that the previous setup wasn't doing a very good job of showing what the mods were all about. With the sound effects, the screenshot was... obviously not helpful in the slightest because that's not how sound works. The Blaster Visual Effects mods do have a more visual thing going on, but I have firsthand experience of being unable to judge these mods by still images alone. When the games' paused it's kind of just a big blur. It really isn't the same thing as seeing it in motion. I needed to watch the blasters fired from multiple angles when I was working on the mod to decide how I felt about my changes, and I kept going back and forth on the issue. For a while I wasn't sure if I was making things better or worse. I can't tell you how many kath hounds I killed during testing. So, in both cases, I thought having video would help to give people more of an idea of what the heck the mod does does and maybe more of an incentive to download it.
The videos serve as a more in depth preview, for those of you who only take a cursory glance and judge the mod by its screenshots (I'm certainly guilty of this myself). I do a bit of before and after also go into a little technical detail about how I've done things from time to time. I've only done two so far, but I might continue this format with my other mods. These were the only ones that stood out to me as needing a more involved explanation, but I already know what my mods do, so a second opinion would help. Let me know if you have any specific requests.
Also, to my surprise, with the site upgrades Deadly Stream automatically embedded my YouTube videos when I pasted the links. I didn't have to fuss around with it at all and was able to put them in the descriptions with no difficulty. I'd actually had this idea for a while and made the first video without considering how to get it onto the site. We could embed YouTube before, but I wasn't sure if it would work in a mod description, and then I wasn't sure how to do it in the upgrade. And then it went and did it on its own, so it definitely gets a pass on ease of implementation. It's too early to say whether my showcase is a good idea, but I do think some other mods could benefit from a video preview (particularly other sound effect mods) and if you were worried about having to fuss around then you don't have to worry about that.
Many kath hounds died to bring you this information.
I thought I’d start one of these blog things. I’ll be using them to announce... things. First up is the release of a mod that’s five years late.
Veterans of the LucasForums era may remember a mod for Star Wars: Knights of the Old Republic II – The Sith Lords called “JC’s Toolbox”. It added what I called “a collection of items for developers, filmmakers, and cheaters of all kinds”. It let you do things like open and close doors, get free items and XP, teleport, spawn characters, and play animations, and it granted full control over the party system so you could add or remove party members wherever and whenever. I initially sought out these functions while making videos with the game, and also found them to come in handy with mod development.
Before I made the Toolbox, I relied on a few different mods - the Whereami Armband, Call of Aid, Teleporter 2000, and the Wrist Console - to perform these functions. Most of these mods performed their function through armband items; you could equip the armband on your player character, and then it would fire the mod’s script when activated. The Wrist Console was a little different, using Mira’s wrist launcher as a template instead. But they all gave you an item that, instead of creating an energy shield, would fire a custom script to teleport you or spawn characters or whatever. I even made my own edits to a couple of these mods, adding more features like animations and unused camera modes that were left over from Neverwinter Nights. I used these for years before deciding to learn how to make a proper armband myself instead of hacking someone else’s.
In the process, I also learned that armbands and wrist launchers weren’t even necessary: there’s an unused item type called “Plot Usable Item” that functions like an armband, but the function is available so long as the item is in your inventory. You don’t have to equip it at all. I believe this was used for the sonic device on the water suit in the first game, the one that lets you kill sharks. It still functions in KOTOR II, and since you don’t need to equip it to use it, I could access more than two of them at a time. The entire party could access them, too. That was much more convenient than the previous setup. So I decided to rebuild not only my mod hacks, but also many of the original functions of those mods, to give myself a set of Plot Usable Items to replace all the old tools.
With accessibility being a non-issue, I decided to make several tools, each with a limited scope. My hack of Call of Aid had gotten particularly crowded, so I wanted to avoid that. Each new tool would specialize in a specific area, such as spawning characters, playing animations, or managing the party system. And I overdid it. The initial release of JC’s Toolbox contained eighteen usable items. I ended up making the actual Toolbox item just to be able to fire the other seventeen from the same place.
According to my records, I released the K2 version of my Toolbox in December 2012, and over the following year I made a couple updates to that. I didn’t release a K1 version. There was a good reason for that. A bunch of my scripts wouldn’t work. It took me five years to figure out why.
I was never compiling scripts for K1.
It’s rather embarrassing, but that’s that’s the truth of it. I compile my scripts through a batch file, and I have a different one for each game. When I first set up the K1 compiler in 2009, I neglected to edit the file to change the game number. On top of that, I wasn’t aware of some significant differences in scripting for each game. I knew Obsidian added many functions, but I didn’t realize they had changed a few of them too - common functions like ActionStartConversation, DestroyObject, and CreateItemOnObject. Several functions have been altered to pass more parameters in K2. For example, when creating an item in K2, you can specify whether the player will be alerted through the GUI or whether the creation will be hidden. I first learned how to script in K2, and you could say I developed some bad habits and wrote all my K1 scripts under the assumption that they worked the same as they did in K2. And because both my compilers were set to compile for K2, I was never told otherwise. No error messages, no scripts that wouldn’t compile, nothing. The compiler was reading K2 scripts and writing K2 scripts, so as far as it was concerned, nothing was wrong.
For nine years, I was writing scripts for the wrong game.
For the most part, these scripts did work. I’m amazed how much of it did work. Even though the scripts were compiled for the wrong game, even with the differences in those functions, they did run. After all, I wouldn’t have gone so long without noticing the problem if the scripts didn’t work. I’m only now realizing how many oddities I encountered can be blamed on this mix-up.
Up to a point, my scripts would run properly. Even if my script was compiled for the wrong game, most of the functions are the same, so it was happy. Then it would reach one of these functions that Obsidian had changed. It would get to an extra parameter that didn’t belong in K1. That’s where the trouble began.
With CreateItemOnObject, the parameters are the item name, the object to receive the item, the number of items to create, and then whether to hide this process or not. In K1, the script was happy to put in the item, and the object, and the amount, but when it got to that last bit, it couldn’t take it anymore. The function wasn’t coded to allow a fourth parameter. So it would execute the first three parameters, and then it would get stuck. That meant it would actually create the item, as I intended. But the rest of the script wouldn’t run. Not just the rest of that function, but the rest of the entire script.
That’s how these bugs would play out. My script would run up to a point, and then mysteriously stop running. It all makes sense to me now, but understand that for years and years, I didn’t have any reason to assume there was a connection between these oddities, or that they could all be blamed on such a simple mistake. As far as I was aware, they were isolated incidents beyond my control. I thought that was just the way things were, and developed some workarounds, like executing CreateItemOnObject in a separate script, that let me do things the wrong way for nine years.
And even doing things the wrong way, I still managed to achieve most of what I wanted. But these bugs crippled the Toolbox for K1. I started working on it shortly after the initial release of the K2 version, but certain scripts just would not behave. I released a few betas of the K1 version that lacked the misbehaving features, but I held off on an official release until I could get them to work. I could never figure that out. I only realized my compiling issue recently, by happenstance, and from there I was able to unravel the whole mess. It was all because of a stupid mistake that was Past JC’s fault.
Now, JC’s Toolbox for K1 is ready for release. It’s a collection of items for developers, filmmakers, and cheaters of all kinds. It lets you do things like open and close doors, get free items and XP, teleport, spawn characters, and play animations, and it grants full control over the party system so you can add or remove party members wherever and whenever. It’s five years late, but it works. And it was programmed for the right game.