Leaderboard


Popular Content

Showing content with the highest reputation on 02/07/2023 in Posts

  1. 3 points
    View File Ebon Hawk Revival Reskin Project (Kotor 1) Description: Ever since I first saw the blurry mess of a texture in the Kotor 2 prologue, I've dreamt of a way to fix it. This project thus will consist of two stages, this first release is for the Ebon Hawk you see in Kotor 1 with a full visual exterior overhaul. Every panel is completely drawn by hand to ensure the model looks good from every angle with the ultimate goal of using this as the basis for finally fixing the Ebon Hawk during the T3 sequence in Kotor 2. The next step will be the fully battle damaged exterior piece with emphasis on making it finally look decent. I was also informed by a trusted source that the minigame model texture could greatly benefit from this treatment, so that's also in the works. Update 1.1 While working on the Kotor 2 version, I noticed there were a few areas that I could improve on with its Kotor 1 counterpart. The panel work has received a massive overhaul to better match the Vanilla texture including far more detailed colors and a completely redesigned nacelle top. I've also created a much better version of the engine trench (The metallic texture on the sides that denote exposed mechanical details) which I really felt needed the facelift. Lastly, per a great suggestion by ConansHair, I've included some window textures to complement the exteriors with permission from Dark Hope's IGM. This will hopefully be the last big update, but as I continue to work on the Kotor 2 and now the minigame model, I will continue to incorporate any improvements as I make them. Installation: Inside of the zip file are twelve textures for the Ebon Hawk wherever it is landed as well as twelve window textures with TXIs. To install, simply drag these files into your Override folder, or if you don't happen to have one it must be created. (Default Steam Path is C:\\Program Files\Steam\SteamApps\Common\SWKOTOR) Uninstallation: Take the textures and TXI files included in the ZIP file out of your Override Permissions: Please let me know if you want to use these textures in one of your mods. I only ask you to credit me for the vast amount of work this ended up being Credits: This would have never seen the light of day without help from my friends on DS. ConansHair for Beta testing and for continually awesome suggestions like incorporating EnvMaps and adding features from other Vanilla Hawk textures which vastly improved the overall look. Sith Holocron for his helpful feedback and the use of his landing platform texture Dark Hope for letting me use her cockpit textures which have greatly increased the visual style of the windows and allowed me to customize them per planet. I would also like to thank Thor110 for letting me use his upscaled Ebon Hawk texture from his modder's resources which more or less also inspired this endeavor. Kotor1 Saves by djh269 for help while testing (special shoutout for having Force Speed on by default ), Fred Tetra for Kotortool, Adobe for their Photoshop, Bioware for creating Kotor, and lastly George Lucas for being instrumental in creating this Star Wars universe I continue to enjoy. Submitter Malkior Submitted 02/07/2023 Category Mods K1R Compatible Yes  
  2. 2 points
    It's been a long time since I've made a WIP thread here on Deadlystream, usually I just make a mod in private and (if it is finished) I release it. This WIP thread isn't about a single mod, however. The release of my latest mod, Diverse Galaxy, marks the beginning of my NPC Overhaul series. The NPC Overhaul series shall be multiple mods which 'Overhaul' many of the NPCs within Kotor 1 (with the possibility of K2 versions of these mods being made at a later date). Kotor has a reputation of having a sort of 'clone' effect where you'll see the same set of generic heads in close proximity to each other in-game. the Diverse Galaxy mod will swap the appearances of over 150 NPCs to ensure that you'll encounter more variety in the game, this mod only changes the NPC's heads and will not affect the Lite NPCs. As the K1 Community Patch is REQUIRED for this mod to work the Lite NPC's will be upgraded by the K1CP mod anyway. As this is a series, more mods are planned to be made which do similar things for the game's NPCs, however, I am at a lost as to how the first few mods should be made. I wanted to release these mods separately so that users can install what they want, but I also have the option of simply adding these first few mods directly into the Diverse Galaxy mod as part of updates. The mod ideas are as follows: * Diverse Galaxy: Will diversify the heads and appearances of Kotor's NPCs. RELEASED! * Fashion of the Old Republic: Will diversify the clothing of Kotor's NPCs and will apply lore-friendly armor when applicable (This armor does not drop) RELEASED! * Lite of my Life: Will convert the generic NPCs who use the Lite appearances into standard generic NPCs, will use the heads, appearances and clothing style as DG and FotOR meaning this mod would be installed 3rd alongside them both. RELEASED! These mods will all use vanilla assets and won't really 'add' anything to the game other than swapping out appearances/clothing in the .MOD files, this would make it easy for me to add these 3 mods into one mod. I'm thinking of having 3 separate TSLPatcher installations with one being Diverse Galaxy, the other being Fashion of the Old Republic and 3rd being Lite of my Life. Feel free to leave your opinions and suggestions!
  3. 1 point
    View File [TSL] "T3-M4 Found the Ebon Hawk"s Theme This mod plays an ambient-track to complement "T3 finding the Ebon Hawk" cutscene in Peragus' Hangar Bay. Preview Description It edits the entire cutscene to not-skippable, then sets the ambient-track to `mus_s_positive` -- an original audio file that’s located in `streammusic` folder. It also stops the area BGM momentarily for 11 seconds to not have the AT overlaps with, should then it play back again. Requirement It is required for users to have TSLRCM v1.8.6 installed to their game for this mod to successfully working – both in installation process and in-game. K2CP is not strictly-required, but is strongly-suggested to have as well as this mod were made with CP’s compatibility in-mind. Compatibility Should be optimally-compatible with any mods and builds -- long as not affecting `hangcam.DLG` and `mus_s_positive.WAV/MP3`. Note: It is safe now for user to install this version on top of any currently installed version. It supersedes and overrides their functionality so compatibility is much ensured. ** -- for installation instructions, run the installer [Install.EXE]. Known Issues N/A Final Remarks There's always room for improvements; reviews, critiques, comments, suggestions, questions and feedbacks are much appreciated. PM me here, write them on my feed or leave any on the mod's page as you please. And thank you! for downloading, and using this mod. Hope you enjoy the mod as much as I do! Redistribution Do not redistribute this mod or re-release it on any websites. I'd love providing direct support to my work, which wouldn't be possible if they're scattered in the Unknown Regions. If you are to re-use the assets to a project you will be releasing, please be kindly to ask for permission first -- that way I know what's up. Credits The Almighty Force. BioWare, Obsidian Entertainment, and LucasArts for "The Old Republic" video-game franchise. DarthParametric for past-present knowledge, and all his creation that I learn from. JCarter426 and Inyri Forge for all their work that I look up to. I learned a lot from their mods and been approaching a lot using their method. Fred Tetra for KotOR Tool. stoffe for TSL Patcher and Fair Strides for the updates. tk102 for DLGEditor. Cortisol for Holocron Toolset. All the Tool Makers wasn't mentioned -- can't make it without y'all! All streamers of DeadlyStream. All modders either active or inactive. DeadlyStream for being a home -- a place to hang-out, to discuss and hosting my work, and all their staffs for tirelessly improving-maintaining the site. DeadlyStream's #modding [Discord's] channel. -eb Submitter ebmar Submitted 02/06/2023 Category Mods TSLRCM Compatible Yes
  4. 1 point
    They use the module name same as the room models. For example, in K1 "M01AA" is the Endar Spire Command Module, so you have m01aa.lyt, m01aa.vis, m01aa_01a.mdl/mdx/wok, m01aa_02a.mdl/mdx/wok, etc. TSL follows the same format with a slightly different naming convention, e.g. 001EBO, 301NAR, etc. LYTs are in layouts.bif, VIS (visibility, determines which rooms are visible from each other) are in lightmaps.bif, and models and walkmeshes (WOK for area models) are in models.bif. This is the same in both games. The fork of KBlender by seedhartha can load binary models directly, so there's no need to go to/from ASCII as is the case with KMax. It also has a pretty handy batch lightmapping function. As to a full list of module names, there's probably one around somewhere. My own local copy:
  5. 1 point
    You can do the same in KMax and KBlender by loading a LYT (layout file) which will load and arranged all the individual room models.
  6. 1 point
    Having lurked around the forums a fair bit as of late following a lengthy absence from the community, I've decided to dip my toe back into the waters of KotOR modding. Seeing all of the innovations and changes over the past few years in terms of what we're able to achieve has really given me the itch again! For my first contribution, i've decided to publish this tutorial which I wrote more years ago than i'd care to admit which focusses on the correct way to recruit a new party member and build your own custom dialog tree and quest line for them. I did publish a tutorial soley on the dialog tree aspect of this on LucasForums many moons ago, but I later wrote this more fully fleshed out tutorial and fell off the map before I got around to publishing it. I've gone back to polish this off and tweaked/refined it a little to make things more readable and easier to follow, so hopefully it should be easily understood. I've tried to keep my naming conventions for things as close to the existing ones in the vanilla game files for consistency and so that game files can be easily examined whilst following along if need be. Admittiedly this will mostly be useful to people who are not so familiar with modding the KotOR games and possibly people who are experienced in other areas of modding but haven't dabbled in scripting or anything yet, so if you're already a reasonably well rounded modder in terms of breadth of experience across different areas, this may not be for you. That's enough waffling anyway. Enjoy! Step 1 - Preparing your NPC template: The most logical place to start in my opinion is by creating the template file which contains all of the vital information which the game needs to know about our new party member. Personally, I would start off with the .UTC file from an existing party member and modify it to suit. I personally like to go old school and use K-GFF to modify template files, so the field names I use here may not match whatever is in KotOR Tool, but they'll be similar enough for you to work out which is which. The vast majority of the fields in KotOR Tool or whichever editor you are using are completely self explanatory, so i'll just go over a few of the ones you may not be too familiar with. Here we go: IMPORTANT: When it comes to editing the new party member's scripts, you will need to ensure that the below fields match the values I have given. When it comes to setting your new party member's tag, you need to remember to use the tag of the vanilla party member you are replacing. DO NOT use a custom tag. The vanilla tags are as follows: The TemplateResRef is the unique identifier we assign to the party member's template so that the game can refer to it. In my case, I set it to "p_yuthura" and named the file "p_yuthura.utc" to match. Step 2 - globalcat.2da entries: For this step, all you'll need to do is add a couple of lines to globalcat.2da so that the game can track your progress through your new dialog tree/quest. For my example, I added two new rows: The K_SWG_YUTHURA global will essentially track which stage of the quest you have reached whilst the K_SWG_YUTHURA_LEVEL one will keep track of your PC's level as you progress through the quest. Their values will both be checked and modified by scripts whenver you reach a new stage in the tree, but more on that in the next step! Step 3 - Recruitment: This stage will cover the process of actually recruiting your new NPC and adding them to your party. This tutorial assumes that you will speak to Yuthura Ban in the Dantooine Courtyard before you recruit her. In order to have the conversation end and have Yuthura immediately available for selection, you would use this script: //recruit.nss void main() { RemoveAvailableNPC(5); AddAvailableNPCByTemplate(5, "p_yuthura"); DelayCommand(1.5, ShowPartySelectionGUI()); } If you follow it line by line, it's very simple to follow. It removes whichever NPC is currently occupying slot 5 in your party selection screen. It then adds a new party member to that slot based on the template you have specified. In this case, we have gone with p_yuthura because that's the template we created in Step 1. There will then be a short delay of 1.5 seconds before the party selection screen appears, just like when you recruit a new party member in the vanilla game. This line can be left out if it doesn't suit what you're trying to do. Obviously the number for the party member slot will change depending on which party member you are replacing, so here the different values for each slot in the game: Simply attach this script to an appropriate conversation node in your dialog file and you're good to go. In this case, since we are recruiting an NPC which we have physically encountered, there will now be a duplicate of your NPC still in the location you met them, even if you have recruited them already. This is very easily solved with another simple script attached to the final node in the recruitment dialog: // destroy.nss void main() { object oYuthura = GetObjectByTag("dan13_yuthura"); SetGlobalFadeOut(1.0, 0.5); DelayCommand(1.0, DestroyObject(oYuthura)); DelayCommand(1.0, SetGlobalFadeIn(0.7, 0.0)); } Again, very easy to understand if you go through it line by line. The SetGlobalFadeIn() and SetGlobalFadeOut() commands are used here to fade the screen to black and back to normal again with the disappearance of the NPC taking place in between the two. This adds a nice polished appearance to the affect. For a barebones recruitment mod, you could just stop there. If you've followed everything so far, you'll have a new party member join you and they'll work exactly as any other party member would, just without any sort of quest to follow. Step 3 - Dialog Tree: This is the step where you really flesh out your mod and give your NPC some life. Adding a new quest line based around your new NPC is a great way to not only add exciting new content to the game, but also to bring your new content more in line with the experiences players have with the vanilla party members. This is nowhere near as difficult as you might think when you start out. I'm certainly no programmer, but with a little common sense and applied logic, this who process becomes very simple. The first script we create here is the one which checks whether or not Yuthura's quest line has started yet: //k_swg_yuthura01.nss #include "k_inc_debug" int StartingConditional() { int nResult = GetGlobalNumber("K_SWG_YUTHURA") == 0; return nResult; } As you can see, this script checks that the currently set value of the K_SWG_YUTHURA global we created earlier is 0. If the current value of K_SWG_YUTHURA is indeed 0, then the value of nResult will be positive and the dialog node which this conditional script is attached to will be available. If the value of K_SWG_YUTHURA is anything other than 0, the node will be ignored and the game will move on to the next note in the tree. Once the initial conversation has been completed, we'll need to increase the value of K_SWG_YUTHURA so that a different conversation option becomes available next time. We achieve this by attaching the following script to the final node in the conversation tree: //k_swg_yuthura20.nss #include "k_inc_debug" void main() { int nPlot = GetGlobalNumber("K_SWG_YUTHURA"); int nLevel = GetHitDice(GetFirstPC()); SetGlobalNumber("K_SWG_YUTHURA", (nPlot + 1)); SetGlobalNumber("K_SWG_YUTHURA_LEVEL", nLevel); } Once again, this is simple to follow. We start by assigning values to nPlot and nLevel so that we can reference them later in the script. nPlot is assigned a value equal to the current value of our K_SWG_YUTHURA global and nLevel is assigned a value equal to the PCs current level. K_SWG_YUTHURA then has its value increased by 1 and K_SWG_YUTHURA_LEVEL has its value set to the PC's current level. Moving on to the second stage in the quest/conversation is really simple. All we do is attach this script to the relevant node in the dialog file: //k_swg_yuthura02.nss #include "k_inc_debug" int StartingConditional() { int nResult = GetGlobalNumber("K_SWG_YUTHURA"); int nLevel = GetHitDice(GetFirstPC()); int nLastLevel = GetGlobalNumber("K_SWG_YUTHURA_LEVEL"); if ((nResult == 1) && (nLevel > nLastLevel)) { return TRUE; } return FALSE; } A little more going on here at first glance, so let's break it down. We start by assigning values to nResult, nLevel and nLastLevel. Here, nResult is the current value of K_SWG_YUTHURA, nLevel is the PC's current level and nLastLevel is the current value of K_SWG_YUTHURA_LEVEL. If the value of K_SWG_YUTHURA is 1 and the players current level is greater than the stored value, then the conversation node will be available. You can basically copy and paste this script to cover the rest of the quest line, just by altering the nResult value which the script checks for. Every time you advance a stage in the quest, you increase it by 1. Summary: All in all, this is a fairly simple process to go through and doesn't take too long at all when you consider that the majority of the conditional scripts for your quest are going to end up being copies of eachother with just that one value changed. I've attached my example scripts to save you needing to copy/paste them if you want to use them as a basis for your own. Of course, there's still so much more you could do with your mod to make the experience even more immersive. In terms of dialog, you can make certain conversation options available only if other conditions are met, like needing to have collected a certain number of Star Maps to have been collected or needing to have reached a certain point in another quest. There are so many possibilities and the vast majority of them can be implemented using the same principles outlined in the tutorial above. Get creative with it! mf_recruitment_scripts.zip