Jump to content

DOWNLOAD MODS

Are you looking for something shiny for your load order? We have many exclusive mods and resources you won't find anywhere else. Start your search now...

LEARN MODDING

Ready to try your hand at making your own mod creations? Visit the Enclave, the original ES/FO modding school, and learn the tricks of the trade from veteran modders...

JOIN THE ALLIANCE

Membership is free and registering unlocks image galleries, project hosting, live chat, unlimited downloads, & more...

syscrusher

Elders
  • Posts

    567
  • Joined

  • Last visited

  • Days Won

    8

Everything posted by syscrusher

  1. I have a scene in my mod where a number of NPCs move from Point A to Point B in the exterior Tamriel world space. The pathgrid for most of that journey has been marked with the blue "preferred" nodes where I want the NPCs to follow a trail. For the most part, they do so, but right near the end of the journey every single one of them turns aside and take a really stupid, roundabout detour to get to Point B. I've checked, and the detour they pick has a higher count of nodes traversed, and does not follow the preferred path. I've checked for continuity of path from the detour point to the destination. The detour point clearly has a link between the node before the detour and the one they should hit next. Any ideas what else I should check? Is there any way I can transfer myself inside the game so I can personally whomp the stupid AIs with a clue-by-four?!
  2. Maybe your old compiled version of a script had a REFID to something that had been reassigned as your mod evolved.
  3. syscrusher

    Humblespire Basement

    Oh, wow, Tamira! I just today discovered this screenshot from my Humblespire mod. I'm honored! Thank you!
  4. syscrusher

    Rathunas

    The new beta is published as of 2015-02-20, and is a recommended upgrade for all users. See the file docs/Rathunas-UPGRADE.txt for detailed instructions, but in most cases you do a simple uninstall of the old version, install the new version at the same load order position, and play on.
  5. The second beta went live on Wednesday evening. The updated files are on the download page linked in my original post (above), and there is also now a second, slightly longer, video trailer.
  6. Suggestion: If you have a version of your script before the problem, and another after it entered the source code, export the two versions as text files, then run them through the "diff" utility on a Linux or Mac system (or in Windows if you have Cygwin). If you don't have access to a system with "diff", hit me up with a PM and I'll run the util for you if you send me the files.
  7. syscrusher

    Rathunas

    You no longer need the console to trigger the Rathunas quests if you are not doing the main quest. In the new beta, when you are sure your character is ready to begin Rathunas quests, just visit Prioress Rowena at Aelwyd Priory. There is a rather obvious dialog topic available from her that is labeled to indicate it will start the quests. Select this topic, then follow the instructions in-game, and you're on your way!
  8. After four years of development, we are pleased to announce the first public beta of Rathunas, a town and quest mod for Oblivion. Rathunas features over 100 NPCs, with 3300+ lines of dialog voiced by over 30 actors. Details, and a link to a 3 minute teaser trailer, are on the Rathunas download page.
  9. syscrusher

    Rathunas

    Version 20151024-Beta-UPDATE

    333 downloads

    Rathunas is a lovely, and fairly large, town along the extreme western edge of Cyrodiil, well north of Anvil, northwest of Skingrad, and almost due west of Kvatch. It lies just on the boundary of the large area modified by the Unique Landscapes: Brena River Ravine mod, and in fact that mod is a prerequisite for Rathunas. As you can see from the screenshot, Rathunas has as many homes and businesses as some of the walled cities in the vanilla game, but it is an open-layout town with no walls or gates. Rathunas is a mining town, founded by adventurers (now retired) who cleaned the bandits out of Infested Mine and returned it to productivity. It's a peaceful and prosperous community, with charming shops and a nearby priory devoted to Kynareth, plus sheep farms, gardens, a carpentry shop, taverns, and an inn. The quiet of Rathunas is suddenly disturbed one day, and therein lies a quest that will lead the heroic player character to a major, multilevel dungeon on an adventure to restore peace and safety to the town. The story is lore-friendly and detailed, and there are multiple ways to complete many of the quest objectives. To ensure your character is sufficiently powerful, the Rathunas quest line is triggered by the player reaching a certain point in the Oblivion main quest (or by a special NPC dialog option if you are not doing the main quest), but the Rathunas mod does not modify any vanilla quest in any way. Want to see more? Watch the Teaser Trailer and Cinematic Trailer on YouTube, but know this: There is a lot more to the dungeon than what we will show you in the videos! After all these years, our team wants to give you some brand-new surprises in Cyrodiil, so we're not going to spoil that by giving away the best dungeon features in the trailer videos! https://www.youtube.com/watch?v=4tj52qR-rcM https://www.youtube.com/watch?v=j2cHMsYihlU We've worked hard to make the town, and the quest, lore-friendly and immersive. The dungeon is huge, but every single room has a purpose and a back-story, if the player cares to investigate dialog and in-game clues. You can play this as hack-and-slash, because a great deal of the NPC dialogs are optional, but this is really meant for the roleplay enthusiast who wants to think and strategize and interact with NPCs. There is a reason why this dungeon was built, why its denizens are doing what they are doing, and all of this ties into the back-story lore of the vanilla quest that triggers it. The dungeon contains hundreds of custom resources from modders' libraries, plus over one hundred custom tiles and set-pieces of my own creation. There are scripted traps, portals, gateways, puzzles, enchantments, potions, and animated objects, and some of the dungeon levels are full-custom meshes (that is, they are not tiled at all). You won't survive this dungeon by assuming it is just like the vanilla dungeons you've already explored! When you complete the quest line (yes, it's several interlocking quests), you earn the eternal gratitude of the town and a reward commensurate with the scope of the adventure. Four years in development, the Rathunas mod features over 100 voice-acted NPCs with a total of more than 3300 total lines of dialog, performed by 35 voice actors. Rathunas is being cinematically scored by a collaborative team of professional composers (you can hear samples of their work in the video trailers!). The current BETA release has temporary music in the interior spaces of the town, for testing purposes, but as of this release the final music scores are not yet completed. Two levels of the dungeon have a portion of their final music tracks included in this release. PREREQUISITES SUMMARY: (More details are in the README.txt file) Latest official patched version of Oblivion OBSE version 21 or later COBL Unique Landscapes - Brena River Ravine Strongly recommended but not required: Sound Commands Enhanced Music and Controls Wrye Bash is strongly recommended for installing the beta version. We plan to offer OMOD support later, but it is not available in this early release. BETA NOTES: This BETA release is fully playable. We are seeking player feedback on game balance and difficulty level. If you download, please track this file so you will be notified of updates (especially the music, which will be added as tracks are completed by the composers). The README.txt file is extensive and detailed. Before you install, please save yourself a lot of grief by taking a few minutes to read it. :-) This mod has been extensively tested by members of our team, but please do be aware that this is still a BETA release, not production status. It has a number of known bugs and a few incomplete features, and the main purpose of the beta release cycle is to find and fix other bugs. The two documentation files Rathunas-BUGLIST.txt and Rathunas-ISSUES.txt provide a list (unfortunately, with a few minor spoilers) of known problems. "Bugs" are problems that we expect to fix before production release. "Issues" are things we would like to fix, but in some cases they may be game-engine limitations that we are not sure we can overcome. We are still fine-tuning the game balance of battles. If you have constructive feedback on the battle difficulty, please comment (avoid spoilers if you can!). Tell us what general type of character you are playing (magic, stealth, or combat), your character's level, and where you have the difficulty slider for the game set. It is particularly useful if you can compare the difficulty of a Rathunas battle to those of other dungeons your character has explored at his or her current level. Just saying "The battle with ___ is too hard/too easy" doesn't help much, because we need a framework for comparison. If you find a bug that stalls one of the Rathunas quests, don't give up hope! Contact me (Syscrusher) by private message on TES Nexus or TES Alliance. I can provide console workarounds for almost any situation. PERMISSIONS: Please see the "Perms" link above for permissions and credits. Do NOT upload this mod to other sites without permission.
  10. Once you can see the quads, you can look for a texture that is only trivially used, and delete that one to free up a slot. I've seen cases where a texture would be used only a fraction of a percent of the quad, and you can usually delete those without noticeable consequence.
  11. Hi, Malonn! I'm thrilled to hear that I was able to help you. It helps balance my karma for all the times others have helped me out! I wouldn't worry about the "water above the lowest point" problem. As far as I know, that isn't possible, because the water level is set for the entire cell. If you want to have stairs going down below the water line, you have to put the stairs in a different interior cell and let the player imagine that they are below the water level of the other cell. I'm a little surprised you had to script that torch behavior. I thought torches went out when they hit water anyway, but to be honest I've never tried it. :-)
  12. I've never needed to do this, but one thing you'll have to address is what it means to be "in water". For instance, if I put my toe into a bathtub, am I "in water" or "out of water"? If you are content to use the geometric origin point (not necessarily the center) of the object, you might be able to use GetParentCellWaterHeight (an OBSE function) to get the Z coordinate of water in the containing cell. Then use GetPos Z on the object to see if its origin is lower than the water height. Since it's not possible (as far as I am aware) to have dry areas within a cell that are below the cell's water height, you don't have to care about the X and Y positions of the object within the cell. At best, this would only be an approximation, but if you happen to know the shape of the object in question and how its origin relates to its visual center point, you might be able to work with this by applying a constant offset to the Z coordinate math to reflect how you want the thing to behave visually. For example, if your object is a sphere of 5 game units radius, and you know that its origin is its center, then artificially adding 5.0 to the object's Z coordinate before comparing it with the cell water height would tell you if the object is completely submerged. I know that's a trivial example, easy to calculate, and I only hope your actual need is not too complex. :-) Hope this helps!
  13. I've abandoned this plan. My method of building the ESM was complex, but it worked, and I got a prototype that was very close to what I wanted. Unfortunately, ESMs don't load BSA files of the same name automatically the way ESPs do. You have to list the BSAs in the Oblivion.ini file. I actually knew this but had, sadly, forgotten. The other problem is that my ESM needs to refer to cells that aren't defined until the ESP. It doesn't need their contents, just the formIDs. I had assumed, naively, that there was a way to runtime lookup a ref from an EditorID string for cells, since their EditorIDs load at runtime (to support the "coc" console command). But I couldn't find any way to do that. The workaround was to have the ESM declare empty cells then the ESP override them to put in their contents and cell-level settings. A lot of trouble to maintain, that. I created a simple little ESP named the same as my ESM, and it made the BSAs load properly. But, honestly, this configuration was getting so complex that I just decided it's more trouble to maintain than what it's worth in benefit. So, thanks to anyone who read this far, but don't spend any time trying to help with this as I've bailed out on the plan. My mod will ship with a couple of ESP files and BSA files, and that's working today.
  14. This approach actually seems to be working, but there are complex implications and it requires real care. On the other hand, I have mostly accomplished what I needed to do. If time permits, I may write this up as a tutorial when I'm all done.
  15. Update: I have another approach I'm going to try. I will turn my existing ESP into an ESM, create an essentially empty ESP with the ESM as a master, and then try using TES4Edit's "copy as override into...." function on the references but not the base objects. I've never used it before, but it sounds as if it might do what I need.
  16. Greetings, all! I need some expert-level help on splitting a rather large ESP into an ESM/ESP pair, and so far neither Google nor tool documentation nor direct searching on TESA has found me a way to do this. I know that TES4Gecko can "split a mod", but it puts way more stuff into the ESM than what I want there, and it doesn't seem to allow me any manual control over that. Background (sorry, this is long, but the information matters): My ESP file defines a couple thousand new base objects, seven interlocking quests, hundreds of custom scripts, and over 3,000 lines of voiced and lip synced dialog. Among those base objects, some use vanilla meshes and textures (e.g., a vanilla door but with a custom script added requiring a base object just to add the script, but no external assets). Other base objects use custom meshes, textures, sound files, music files, or some combination of these. All told, the added meshes and textures total about 250 meg, and the voice files are about 150 meg. I deploy the mod to my alpha test team (several people) as an ESP plus three BSA files (one each for meshes, textures, and sounds which includes voices and lip syncs). Development has reached the point where the meshes and textures are quite seldom changing, but I'm still editing recorded voices and inserting them into the mod. That means that of 400 meg download, about 250 meg of it is the same for the testers every time. Looking ahead, we're just a few weeks away from a public beta release, and hopefully a lot more people downloading. There is no way the voice editing will be 100% done before the beta, so I need to make that part easy to update for testers. Furthermore, the ESM/ESP split is the right thing to do *long term* as well. The reason for this is that the music handling logic for the mod is smart enough to detect Sound Commands, Enhanced Sound and Music, or Better Music System, selecting the best available option, and falls back to vanilla StreamMusic() calls if none of those are installed. The initialization logic builds arrays of the mod's internal cells and which music files should apply to which cells (merchants, taverns, dungeon....etc.). All of that logic is something I don't want to duplicate in the (required by BMS design) separate ESP file that supports BMS. So my code builds the arrays in one place and then shares them with the optional ESP that supports BMS -- and this requires the optional ESP to have my main ESP as a master. I know how to do that, but it's an ugly hack that I'd like to avoid. If I create an ESM, all that shared logic for music handling can go into the ESM. There are other optional ESPs planned, such as one explicitly supporting CM Partners. So getting some of the global logic into an ESM has lots of benefits that have nothing to do with download size. Now, given the above, here's what I need to do: The ESM should contain only one quest, and not one of the existing ones. This quest will contain the music data arrays and initialization logic, so that MyMod-BetterMusicSystem.esp can depend on my ESM and not my ESP. The ESM quest will also have a few declared variables that are shared by the other quests, but other than that it won't have much code. The ESM should define most or all of the unscripted base objects (or base objects that use only vanilla scripts) that use custom meshes, textures, and sound FX files, but *not* voice and music files. For scripted objects such as custom activators, I'll add a dummy unscripted version that has the model attached but no script, just so the models get pulled into the BSA for the ESM file. The ESP will contain all quests except the one mentioned above, all dialog, all interior and exterior cell edits, and almost all of my custom scripts. In short, the ESM should mostly define base objects, and the ESP should have references to those base objects. That last bit is the problem. Here is what I've found so far with the tooling I have, which includes Wrye Bash, Construction Set Extended (very latest version), TES4Edit, TES4Gecko, and TES4Files, among others: TES4Gecko does a perfect job of splitting the mod, but it's way too aggressive in what goes into the ESM. With Gecko, all new records go into the ESM because they can safely load early, and override records stay in the ESP so they can load after the things they override. That is sensible enough for some situations, but not what I want to do here because all those voice files end up in the ESM. I have tried copying my ESP to a different name, using Wrye Bash to "esmify" one of them, then using either TES4Edit or CSE to delete or mark unmodified the records in each file that I want to use from the other. This basically results in vast numbers of missing records. I tried making the ESP as a clone of the ESM such that there are intentionally (and temporarily) huge numbers of ITM (identical to master) records in the ESP, the idea being then to delete out of the ESM those that should be in the ESP and vice-versa. The problem here is that when I do this, even though I created the ESM by physically copying the ESP file and esmifying it in place (that is, never opened in the CSE), neither Wrye Bash nor TES4Edit considers the duplication to be ITM records! This completely surprised me. I have tested with changing just a few objects in the ESP manually (in TES4Edit or the CSE) so that the references point to mod index 00 (implying "load this from whichever master has it defined"), and this works -- but with thousands of base objects, it doesn't scale to my situation. Using TES4Gecko's display-and-copy functionality doesn't work, either, because the export gets new formIDs for the base objects. Creating an empty (or nearly so) ESM in the CSE, then making it a master of the ESP, then using TES4Gecko's "merge to master" function doesn't help, because it uses the same decision logic as the "split plugin" feature and puts everything into the ESM that it possibly can. Looking at the references in the ESP after doing any of the above, it appears what is happening is that the ESP's references are hardwired to itself rather than pointing back to the base object that now exists in an ESM. I think Coda (the programming language embedded in CSE) could do what I want, but try as I might I can't find any documentation for Coda's callable functions. There is documentation for the language syntax but nothing I can find for available functions to do things like change the base object ID of all references of a specific type. I'm sure someone has done this before, but I spent almost an entire day trying to figure out how, and I'm stumped. I don't need (or want) the tooling to pick which objects go where -- that's got to be a manual decision. All I need is something that updates the references in the ESP correctly and lets me do a group of manually-identified base objects in a batch. Ideally, what I want is a tool where I can start with an almost-empty ESM, master it over the ESP, then use a feature like TES4Gecko's "merge to master" but *only on base objects I select* in the UI. Second choice would be more extensive documentation on Coda so I can create my own custom logic to do exactly what I need. I am an IT pro professionally, so writing code doesn't scare me -- but I need API docs and not just syntax docs. I'm sure someone has solved this before. If that person is you, please help a guy out here! As an incentive for replies, I will offer that whoever provides the solution that ultimately works for me, can be listed in the mod's credits as a technical contributor. :-) Many thanks for reading this long post, and for any advice you can offer. --Syscrusher
  17. I feel silly for asking this, but I can't find the starting page for the course. Is it still under construction, or am I just incapable of using a web browser properly? :-)
  18. Make a scripted Ability spell (and be very sure it has *zero* magicka cost) with the duration you want, and the effect of Paralysis on Self. In your script, if you do a call to myNPCref.addSpell myParalyzeAbility, the NPC will add the "ability" (actually a curse) to themselves and will fall down. Then after the correct time call myNPCref.removeSpell myParalyzeAbility to turn off the effect. You may have to create a custom magic effect as a clone of Paralysis without the shader effect, unless you don't care about the effect playing, and you may find that you need to add about 1 second to the duration in the Ability to ensure that the NPC doesn't have time to re-cast it upon themselves just as your script is about to remove it. To make your script fire fast enough, if it's a quest script, you may need to set fQuestDelayTime in that script to something like 0.1 second. There's also a way to make an NPC directly play an animation group; I'm not sure offhand how to best do that.
  19. I want to hang these on my office wall in real life!
  20. Believe it or not, I am still working on this, but this past weekend I learned a lot more about the nature of the problem. The corpses are not falling through the ground. The problem is with the enable() function called on their enable parent. There are a bunch of static objects (some battle debris) plus some fires plus the corpses all sharing a single enable parent. When I call enable() on the parent, everything enables correctly except the corpses. Some of them will enable, others will not, and it seems entirely random as to which. I can repeat identical test runs from clean game startup and brand-new (each time!) characters, and get different results with every run. I tried removing the corpses from the enable parent and making an enable() call on each one, and was able to observe this same behavior at the individual level. That is: corpse1.enable corpse2.enable corpse3.enable .... corpseN.enable called from a script works on most of them but randomly ignores some of them. Stepping into an interior cell and then back out to this exterior will usually cause all the corpses to appear, whether I enabled them individually or from an enable parent. I have Runtime RefID loaded, so I am able to test with console commands like corpse5.enable and corpse5.disable. What I find in that mode is that I am able to show any given corpse 100% of the time with a call to disable followed by a call to enable. If I do the enable from the console, the corpses sometimes do not Havok settle until grabbed by the player, even though I had run Havok simulations on each in the CS. They're close to ground but not exactly on it. Conclusion: The enable() calls are actually working fine, but the game engine isn't noticing it needs to render these objects on the next frame. Workaround: I'm testing a workaround of having these NPCs enabled *alive*, but with no AI defined so they just stand still, then doing an immediate kill() call from the script right after enable(). This seems to work acceptably. The player doesn't see this because my quest logic guarantees that this sequence happens when the player is far away from the cell.
  21. Do you want the NPC to do this, or an animated world object such as an Activator? Take a look at the documentation for the PlayGroup function, and try that.
  22. Voice editing for Rathunas

  23. I'm not sure that's actually a problem. The Third Era ends when the main quest in Oblivion is concluded, with the Oblivion Crisis ended. If you look at published timelines, they will probably assume most players finish the main quest quickly. But if your character took months (or years) to finish that quest, then in your copy of the game universe, the Fourth Era didn't begin until later than it did for other players. :-) In your universe, there could be a 3E434, 3E435, and so on. Since characters in Oblivion don't actually age, you could even celebrate 3E500 and still be within the bounds of lore: the Third Era ends when the reign of the Septims ends.
  24. IS, if that thing was rendered against a background object instead of a blank page, I could have been fooled into thinking it's a photo. Sweet work! You are one of the best when it comes to texturing.
  25. +1 on Hanaisse's post. Wrye Bash will tell you in seconds not only which mod is missing a master, but what master is missing. Wrye Bash isn't trivial to learn, but it's not horribly difficult either. Especially if you're a modder, take the time to learn it because the rewards are substantial with respect to managing your mod list.
×
×
  • Create New...