JCarter426

M478_Staff
  • Content Count

    1,559
  • Joined

  • Last visited

  • Days Won

    133

Everything posted by JCarter426

  1. Version 1.0

    1,190 downloads

    JC's Toolbox is a collection of items I created to perform various tasks while working in the game. Some I created out of necessity, others were by request, and a few were just for fun. If you're a fellow modder, think of these as developer tools. They can do handy things like add or remove party members, let you change party members whenever you want, open and close doors, play animations, delete objects, clone objects, adjust your alignment, warp, teleport through broken walkmeshes, and much, much more. And for the rest of you, if you were paying attention you might have noticed many of those functions are of a cheating nature. If you just want to mess around with the game, do stuff you can't normally do, you can find something useful here. Like make everyone in the game dance.
  2. JCarter426

    #1: JC's Toolbox

    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.
  3. I've thought about this before and I think it's a mod that's possible and worth doing, but it comes with some complications. First, the holocrons referenced in the Disciple's dialogue would be difficult to implement. Many of them would grant Force powers that are already learned through some other means, very late in the game, including Force Enlightenment and some prestige class abilities. Do you get something else if you already learned an ability with a holocron? Or does the holocron merely give you early access? What you already have the ability before finding the holocron? Do you get a different holocron? And would a version of the quest be available without the Disciple, either for male player characters or before you recruit him? There's a lot to decide here. Second, it's not really clear how the final holocron mission would play out. Some dialogue suggests the Disciple didn't know the Exile was meant to be his master so many years ago, while the other dialogue has him give the Exile's holocron to her because he knew, and he knew all along in the original release of the game as well, of course. Likewise, some dialogue seems to have him find the holocron by happenstance during the quest, while other dialogue has him take the Exile to the final holocron after all the others have been found. Perhaps both were possible, depending on things such as the order in which the holocrons were found, how much influence the player has with the Disciple, and when the Disciple is trained as a Jedi. Some coherent series of events would need to be realized. Third, any attempt at this mod would require editing the Disciple's global dialogue file, placing holocron items in numerous different locations throughout the game, and adding new journal entries and/or global variables. Naturally, compatibility with other mods would be a concern. Finally, it would be nice if it were possible for new planet mods to add holocrons to the quest. That would be another compatibility challenge, but it's something I would appreciate. If, for example, someone wanted to add a Sith holocron to M4-78, that should be possible. Or if a new Coruscant mod were to be made, as has been discussed, it would make sense for it to come with a holocron or two. I wouldn't make a holocron mod that didn't allow for that, and that's the main reason I've yet to attempt one. I think rather than a standalone mod, the holocron quest should be made as a sort of mod resource. I would include a system that could be edited to include any number of additional holocrons. Of course, the Disciple only has a few lines of dialogue, and therefore could not elaborate on the specifics of each one, but perhaps he could have something generic to say for the others. For the holocrons beyond the scope of the original plan, the items could randomly give you light or dark side points, or an ability you don't have, or some similar bonus, like what you when you access the dark side mist in the Tomb of Freedon Nadd. To account for a variable number of possible holocrons, the mod would have a sort of "next holocron" script to determine which one you find, much like learning the lightsaber forms. That would generate either the next holocron that has specific dialogue attached to it or one of the generic holocrons, depending on circumstances. Those are just some rough ideas for it, anyway. It's not like I've written code for it or anything. I'm busy with a few other projects at the moment, but I might lay out the core structure of what I've mentioned if I get some free time. I'm willing to offer assistance if anyone else wants to attempt it, also. But I wouldn't undertake such an endeavor lightly. This is almost as complicated as a planet mod.
  4. The particle system doesn't care one whit about your TXIs. The data is on the model, as you suspected: The grid size determines how many animation frames there are and how they're organized. The one in your image is 2x2. It's the same way it would be in a TXI. If you just want to improve the texture resolution, then you don't need to do anything except keep your resolution a power of 2 and portion the frames the same way. All the game knows to do is halve it. If you want to add more animation frames, however, then you would need to edit the model. All this data is in on the OdysseyEmitter modifier.
  5. You may want to stretch it beyond the edges of your texture to be safe. If you can load the PSD version, you can also fiddle with the opacity of the bars. Given that I did it so quickly, I may not have been thorough with regards to accuracy. I did load up one of the game loadscreens and drew the new layers to match it, but I was eyeballing it. If I end up doing loadscreens in the future, I'll take a second look at it. Also, for future reference, to make the bars I first filled in some horizontal lines in black with the selection marque and the paint bucket. A single line was 4 pixels high in the original size, so 8 pixels for the doubled size that I did. I duplicated and moved that over and over to create the venetian blind effect - one line of black, then negative space of the same size, then another line, and so on. Once they filled the screen, I merged all the line layers and applied a blur effect. After that I reduced the opacity to 50%. The exact steps will vary depending on the software you use, but that's the basic design philosophy.
  6. So it was compiling a valid model (which it definitely would if you used the wrong source as the "original") but the issue was its failure to realize hey, this object is the same as that one over there, and it should animate as that one does... that totally makes sense. I haven't done much compiling since before the latest MDLOps release, so I wasn't sure how it handled things differently, but that sounds like a good solution to me - try the cleaner method of loading the supermodel, and resort to the arcane rituals if that fails.
  7. Version 1.1

    111 downloads

    This is a template for the K2 style loadscreens. Included are a PNG overlay which you can place directly over your loadscreen background, as well as the PSD source. Note that the aspect ratio is 1:1, so the image will be stretched depending the display resolution. That's how the game's original loadscreens are.
  8. File Name: JC's Loadscreen Template for K2 File Submitter: JCarter426 File Submitted: 25 Mar 2018 File Category: Modder's Resources This is a template for the K2 style loadscreens. Included are a PNG overlay which you can place directly over your loadscreen background, as well as the PSD source. Note that the aspect ratio is 1:1, so the image will be stretched depending the display resolution. That's how the game's original loadscreens are. Click here to download this file
  9. I don't believe there's an established date for it, but I believe you're right regarding the reason for that date being mentioned in the mod. It would fit with the timeline if we assume the L'Xing/Gu-vandi incident was incited by Revan via an HK unit.
  10. Nah, that's what I mean - renaming files for compiling. It wasn't always necessarily the supermodel with MDLOps, though. A head, for example, would require another head as the original, or else the lips wouldn't move. MDLEdit on the other hand specifically wants the supermodel, not renamed.
  11. The basic functionality is the same - load ASCII, save as binary or load binary, save as ASCII. There are some things MDLEdit can do on its own without conversion that might warrant tutorials. Anything you could do by hex editing before, and a ton of stuff you couldn't. But the biggest difference between MDLEdit and the old MDLOps rituals would be the files you need when you compile a binary model. For any character models, MDLOps required a binary model in order to copy data from it. There were some parts of the model we knew what they did, but didn't understand how they worked, so MDLOps couldn't write it correctly because nobody knew how to tell it. (I say "we" but hell if I know what any of it is). So instead it looked for a model that was already compiled so it could copy the hex values from it directly. This is also essentially how HeadFixer works - it inserts missing data onto the model that MDLOps failed to. So when MDLOps loaded an ASCII model, it needed a binary model of the same name. If it couldn't find one it would say it failed to load the "original model" (i.e. the one it wanted to copy data from) and then freeze. Often the case was if you werere editing a model, you'd keep the original binary model in the same place and put the new ASCII there and recompile, but this was not always the case. You could have any model serve as the "original" so long as it served that purpose, and you could get different results from using different models in this manner. It was a bit dodgy. The important thing was it needed a binary model named exactly the same as your ASCII or else it would freeze up in such cases. MDLEdit doesn't want that, however. Instead, MDLEdit wants your model's supermodel (aka parent). I'm guessing it's for more or less the same reason, just a different process. In short : MDLOps - a binary model to serve as the "original model", one similar to whatever you're compiling MDLEdit - the binary supermodel that your model is using
  12. They very well could've planned a colony for the sake of planning a colony and not because of the civil war. However, by the time of the game, they are in no condition to start a colony due to the civil war. The planet was abandoned, so apart from that being a reference to other events mentioned in the game, it doesn't really have a connection to where the droids or Sith came from.
  13. I'm not positive and more testing may be needed, but that was my initial impression. I added in up to line 580 or so and tested the last one with dummy items. Initially, the game crashed on launching the upgrade screen. After a couple instances of that, it stopped crashing and would display the new crystal, but I couldn't select it. I tried like 255 and this time I could select the new crystal and assemble the lightsaber. Then it completely destroyed the lightsaber. That's the sort of thing I would expect if it were generating nonexistent UTI items, but I think I had them set correctly. Also in this case, the preview would display a model of the lightsaber crystal rather than a lightsaber. Finally, I tested line 127 and that performed as expected. So my tentative conclusion is it only supports 128 lines. I should test it some more, but it was such a shocking, disappointing discovery that I haven't wanted to take a second look yet... I'll have to muster up the courage. By the way, I've confirmed you can put anything into upcrystals.2da and it'll recognize it as a valid crystal item. So that's not an issue, at least. It's 255, but yes, that's right. I've already planned around that, and have room to spare. That's the problem. I did want most of these to be in the upgrade system. The new exotic types (lightsaber pike, crossguard, etc) would not be upgradeable, due to either requiring new base item types or not making sense when applied to the upgrade system (imagine putting a longsaber crystal in a short lightsaber). So those are fine handled through the new console, as you say. The regular hilts, though, the ones that only apply aesthetic changes, I had intended to be upgradeable. The console would create the hilt item and merge it with a crystal to create a new crystal item, but the rest would be handled through the existing upgrade system. And it seems the number of those possible is severely limited.
  14. Hmm, I'd say the ones that have been the biggest pain are player armors C and H in both games and I in K2 (PFBCM/PMBCM, PFBHM/PMBHM, and PFBIM/PMBIM), and maybe the commoner clothing too (N_CommF/N_CommM). That's mostly down to how versatile the models are. There are loads of robe mods of course, while armors C and H and the clothing are useful for new NPC designs. I can also recall some models with rather bad mapping, like PFBMM and the Twin Suns body model. In general, the male textures are of higher quality than the female textures. This was especially so on the Republic armor, which is one I already sorted. For that, I tweaked the male model to bring it more in line with the body shape of the female model, while retaining the male texture mapping. I tried to do the same for PFBCM, with underwhelming results. The best option would be entirely new maps, which would also get rid of the mirroring issues, but that's beyond my skills. So there's my wish list if you ever want to take a look.
  15. If it's using blending, additive, then it doesn't need an alpha channel - all the black parts of the texture are rendered transparent. So to make it less opaque, you could darken the texture.
  16. Interesting. I'd definitely like to see better mapping for some heads. I've unmirrored a few but only with hack jobs, doubling the texture width and then moving faces... I'd very much like better mapping for the armors, primarily so male and female bodies can share the same textures... but I'm sure just doing the heads will take you quite a while. Those are handled through the AuroraFlex/OdysseyFlex modifier. There's a tutorial for it here and it should be possible to make them in KOTOR, but it's a convoluted process and I've never managed it successfully, so all I can say is it should be possible.
  17. There's no indication of who those Sith were meant to be in the game files, and I don't believe the final mod is meant to give any indication either. There were ideas discussed during development concerning the Sith, but ultimately none of them made it into the mod. So they could be anybody. Revan's empire controlled half the galaxy, and many factions of Sith remain. Dathomir wouldn't be populated by the Nightsisters until a couple thousand years later. Though it's conceivable that there was some other Dark Jedi-related group there before them, there's nothing in any expanded universe canon to suggest that. In any case, the Sith were not the colonists, so there needn't be any connection like that. As far as I recall, the Quelli reference didn't have any significance. It's just a place with preexisting KOTOR connections, being the location of Praven Prime and Malak's homeworld. It was before that. And again, Sith != colonists. They were lying. There are actually three different questions here - who the Sith were, who the real colonists were, and where the droids came from.
  18. Depending on circumstances (if the other rooms already have animations on them) the maps might have to be their own separate room models, but it should be doable. Room animations can definitely be scripted in K1, I can say first-hand, though I've never tried to make a new one since it wasn't possible before. The code for the room animations is PlayRoomAnimation(string sRoom, int nAnimation); with sRoom being the actual room model name, and nAnimation being the animation number. Looks like there are 20 available room animation constants, which would be more than enough for the 7 - at least I think it's 7 - Star Map animations. You would have to change the animation names on the models. I'm not sure what the naming scheme for that is, but you should be able to figure it out by checking the Ebon Hawk skyboxes.
  19. Their overseas marketing is thorough and aggressive. I've looked at some of his hilts but I didn't realize he did both the Revan versions. They should be good references, at least. I also have a bit of bad news. I was overlooking this issue until I had to deal with it, but I happened to discover during testing that it was even worse than I anticipated. It seems that upcrystals.2da has a limit of a paltry 128 lines, so there can only be 128 color crystals. Meaning what I wanted is nowhere close to possible. I had planned for 10 colors, 6 crystal types, and 15 hilts for a total of 900 "crystals" needed. And we can have 128. Needless to say, there will be some downsizing. Now, that doesn't necessarily mean scrapping a lot of it. It's still possible to have every combination of the above, so long as it isn't in the upgrade system. In other words, you'd have to change the color crystal through the new saber workshop console, and it couldn't have any power crystals put in it, just as I'd planned to do for the exotic lightsaber types. With that in mind, I'm putting off making any decisions until I finish a bunch of models I know I'm going to want in the mod no matter what. I can say for now though that my crystal ideas are scrapped, which is a shame because that was originally the point of the mod. I thought I could get around the model limit by having crystals that change only the stats... but it turns out there's an even worse limit for that. With 10 colors and 6 types, we'd only have room for 2 hilts. Even my plans for Heart of the Guardian and Mantle of the Force are now in question. But I don't want to decide anything right now. No point in worrying about getting assets into the game if the assets aren't done yet.
  20. It's the lightsaber used for Stormtrooper dark Jedi clones. Though I suppose it needn't be an exact replica, the idea is some sort of white hilt.
  21. Nice. I remember seeing them that long ago. So, here's part 1 of the plans in motion: These are all the common hilts (and also material and individual hilts) planned so far. All of them will be available for the three standard lightsaber types and in all ten colors. The first five are common hilts - the traditional hilt, just a simple replacement of the game one; three class hilts; and one Dark Jedi hilt. I'm not sure about the design for the last one, but be some sort of eviler version of the traditional hilt. The next five are the material hilts - beskar, electrum, plasteel, rancor tooth, and ultrachrome. For each of these, there will be a unique crafting item found somewhere in the game. The final five are the individual hilts. The hilts for Bastila, Jolee, Juhani, and the player all have reference images, fortunately. The Endar Legacy is a new hilt and I'm not sure of the design for that yet. It'll be found on the corpse of the Jedi who dies on the Endar Spire. (But I'm not giving the player a lightsaber that early in the game, if you're hoping for or worried about that. Just the hilt.) I'm thinking when you first build your lightsaber, you will be able to choose the hilt, with your options being the traditional hilt, the hilt of your class, the canon Revan hilt, and any other hilts in your possession. At that point in the game, it will be possible to find the other class hilts, the Endar Legacy, and the saberstaff. Parts 2 and 3 of the plans will wait until later. I think it might be a good idea to wrap up these before moving on to the exotic stuff. For future reference, though, the rest are: crossguard lightsaber, curved-hilt lightsaber, darkstaff, forcesaber, lightsaber pike, longsaber, and saberstaff for new saber types and Ajunta Pall's lightsaber, Darth Bandon's lightsaber, Darth Malak's lightsaber, Uthar's lightsaber, Yuthura's lightsaber, and the Sith ceremonial lightsaber for unique items. The new types will be available in all three colors, while the unique items will only come in whatever color they come in. Actually, it's red in every case. If anybody feels strongly about them being available in other colors, there is just barely enough room for all of them, but I felt that it would be strange to have an item called "Darth Bandon's lightsaber" available in blue or pink or whatever. Also, it would be good to leave a little space for future saber mods. I'm also open to suggestions about hilt designs - whether anybody has any requests, or wants to donate a model, or model a particular one, or whatever. I'm not going to work on this stuff at all until I finish modeling the traditional hilts, and probably the class hilts too, so if anybody wants to tackle any aspect of it in the meantime, that would be nice.
  22. For what it's worth, it is on the cover of the Revan novel. Noted. Oh, nice. I suppose now is as good a time as any to mention I'm generally unware of what other lightsaber mods there are because I've had a broken copy of the Ultimate Saber Mod installed for years and it's incompatible with almost everything ever. I'll take a look at it when I get the chance... with that, I can likely check another one off the list. I've also figured out a few more drop locations, so all that's left now are the longsaber, lightsaber pike, and the matter of the class hilts, which in turn depends on the Revan matter. Any of those could be placed in the enclave with the saberstaff, but I'd like a little more of a scavenger hunt if possible. The one item drop I have not used so far is the Sith on Manaan. He normally drops a double-bladed lightsaber. Most others I listed were NPCs that have lightsabers but don't drop them - but this guy does drop his.
  23. Well, if they can be found, I'd like to take a look at them. Oh, that's cool. There may be room for it if you want. That's definitely a possibility, but there are three complications. First, this... I have seen the source of the image. It's a page of with many pictures of "notable lightsabers", and all it says is "Darth Revan". The problem is, MMO shenanigans with him changing color every day of the week aside, Revan had at least three lightsabers in canon: the violet-bladed one he had as a Jedi which he also used as a Sith, the red-bladed one he had as a Sith Lord, and the one built in the game which is apparently supposed to be this. So the matter is vague. It definitely isn't the MMO one, and it doesn't look like the comic one either. It doesn't even look like the one on the KOTOR campaign guide. Now, I'm willing to rule it all off anything as inconsistent art, and just pick whatever I want, but I'm not sure what I want. What really bothers me is none of these look anything alike when they were all meant to be built by the same person. The second issue is that if we go with the MMO hilt for the one you make on Dantooine, then you're forced to start with that hilt. Which might be fine, but it would rule out the option of getting a hilt based on your class, or choosing from a variety of hilts, or anything of that nature. I'm not ruling it out, and I've certainly left room for it in the database, but I don't know what to do with it yet. The third matter is what to call it. It can't be "Revan's lightsaber". But it's also not possible to put the player name into items in K1. I believe you yourself encountered this problem, Kexikus. A name can be picked, but I got no ideas. Oh, I suppose. I had thought of having a generic saberstaff and a special temple guard saber staff, but it might not even be worth it to have different ones. I'll check around the enclave to see if there's a good spot for it. Well, it'll be old in 4000 years... but maybe. And in other news, I'm working on my administrative stuff so I can start making the show and tell I promised... then my intentions will be clearer, I hope.
  24. I'd certainly be happy to receive donations. It's not that I mind modeling it, but there's only one of me and only so much I can do or can do competently. I'm very much still learning as I go. I am looking to use the canon designs as much as possible - I believe there are ones for Bastila, Malak, and Jolee, and I also have some reference images for Bandon and Juhani, and a lot of contradicting reference images for Revan that I'm not happy about. I'm also planning to base the class hilts on the Guardian, Sentinel, and Consul hilts from Jedi Academy. It's the other way around, really; I realized all three were already there, and thought that would make things easy. I believe I can get the models for those, though, so it would be a trivial matter to import rebuild build them in higher quality as I've been doing with the original KOTOR hilts. The crossguard lightsaber would be based on the one in Rebels. I have some other ideas in mind, but I've yet to decide on a lot. Maybe I'll compile what goes with what in a big image.