Jump to content

Surilindur

Premium Member
  • Posts

    1576
  • Joined

  • Last visited

Everything posted by Surilindur

  1. Depending on the hardware the computer has (mainly graphics), you could look into some form of Linux to able to use the latest Steam and other things. If you would replace the entire computer anyway, maybe trying out an OS replacement first would be an interesting way to learn new things and save some money if it ends up working for you. Some modding tools are a bit wonky to use compared to Windows, and even with the amount of automated Wine setup (via Proton) on Steam on Linux, you will need to do some small tinkering to get the CSE running, and the script editor is not exactly amazing via Wine. Whether the trade-off between saving money/hardware and having to do a lot of tinkering (to get the OS set up the way you want, look into hardware-specific tweaks/workarounds, then figuring out how to get the modding tools running, etc.) is worth it is up to personal preference, I think. If you have not looked into Linux before, just 'try Linux' is probably really vague, but I think a great way to start would be cross-referencing some YouTube videos on how to install different distributions, or actually trying them out in a virtual machine or elsewhere. Some videos comparing the differences between them might also be useful, but I guess most of the people making such videos have strong personal preferences. Maybe something to start by could be Fedora or one of its 'spins' with a different user interface, or Ubuntu or its various 'flavours' with a different UI if you really want to try it (but I personally would not in 2024), or any other distribution like Arch Linux - the actual one not the derivatives - if you want a build-your-own-system experience to some extent and like working with the command line, something like that (if you do not like the Windows command line, that is fine, I doubt anyone likes it because it is horrible). In the end, the main differences between the various distributions are probably in the update cadence, user interface (usually decision between GNOME and KDE Plasma, but other ones like LXQt might work better for older hardware), and some tooling (software package management, firewalls). Quite a few 'popular' (from the Reddit posts I have seen, usually gaming-specific) distributions are also just different 'versions' of a parent one, like Ubuntu is based off Debian, and some others ones are based off Ubuntu, so unless you really need something specific from one of such derivatives, it usually makes more sense to look into the original distribution instead (in my opinion, others might disagree). Just some thoughts on the whole computer replacement thing, because replacing working hardware due to software becoming unsupported feels so wasteful, not to mention expensive.
  2. No problem! I guess the teleport marker would need to be the entrance one, then, or some other way to get the door marker would have to be used. Also, after looking at the scripts I posted years ago, I doubt they will work since the menu mode block uses 'main menu' and I think quests are not even running at that point.
  3. For teleporting, you could use a custom persistent reference (persistent so you can use it in your script, I think, without it being loaded, but I might remember wrong) in your worldspace, a magic effect script and the MoveTo function. There is a MoveTo page in the UESP mirror of the CS with with examples: https://cs.uesp.net/wiki/MoveTo For the return effect, you could maybe use another marker that gets moved to the player just before they teleport away from Tamriel, to indicate the location they should be returned to, so when the player uses the spell to return, they would be moved to that marker, instead. The GetInWorldspace or GetInCell function might be useful to check if the player needs to be returned to Tamriel or not, but you can also track it in a variable in a quest script. If you already have a mod that does what you are after, I think the best way would be to have a look at how it accomplished this, though, since there might be some details that need to be taken into consideration. If I remember correctly, the vanilla player homes use one persistent reference per upgrade, that is set as the 'enable parent' of each individual item associated with that upgrade, and that enable parent ref is disabled by default. So when the player purchases the upgrade (I forgot if the script is in the dialogue or the item that the player is given), that enable parent ref gets enabled, and all the individual furnishings that have it as their enable parent also get enabled. It is a lot of clicking in the CS to assign the parent to every single furnishing, but compared to manually listing every single ref in a script, it is probably the easier option. There should also be other ways via scripting, but for a simple furniture upgrades those are probably an overkill. Hopefully that helps a bit! Maybe someone else has more ideas.
  4. That is weird, I tried to see if the fix would be a simple one but also failed to get it working. It seems as if the lockpick menu behaved differently somehow. I used the quest script below to reproduce it, it basically tries to click whatever element is under the cursor when in menu mode, regardless of the menu. In dialogue menus it works fine, for example, but for the lockpick buttons it just does not do anything. scriptname LockpickQuestScript float fQuestDelayTime short bClicked short bKeyPressed short iMenuMode int iComponentID string_var svComponentName begin _GameMode if (fQuestDelayTime != 0.1) ; Just to get the key to register faster... let fQuestDelayTime := 0.1 PrintToConsole "Setting fQuestDelayTime to %0.2f" fQuestDelayTime endif end begin _MenuMode let bKeyPressed := IsKeyPressed3 30 if (bClicked != bKeyPressed) if (bClicked) PrintToConsole "Button released" let bClicked := 0 else let bClicked := 1 let iMenuMode := GetActiveMenuMode let iComponentID := GetActiveUIComponentID let svComponentName := GetActiveUIComponentFullName PrintToConsole "Clicking in menu %0.0f button #%0.0f %q%z%q" iMenuMode iComponentID svComponentName ClickMenuButton svComponentName iMenuMode PrintToConsole "Clicking done, waiting for button release" sv_Destruct svComponentName endif endif end Maybe there is something really simple and obvious that is amiss somewhere...
  5. The wiki makes it sound like you could use an alias in a quest, add the package to that alias entry, and fill the alias with the character reference that needs the package (the screenshot titled "Alias Package List" on the right side): https://ck.uesp.net/wiki/Package_Stack If I remember correctly, I was able to override the package for an actor that way a few years ago, but it required making sure that the quest (or the alias?) had a high enough priority, so that the package applied via the alias also had a higher priority than all other packages that may have been applied through other aliases. The upside was that no edits were needed to the actor, and the alias could be assigned somewhat freely. There does not seem to be an AddScriptPackage function anymore, but there is EvaluatePackage to make sure the actor is running the appropriate package if it does not update immediately. That one sounds really buggy, though: https://ck.uesp.net/wiki/EvaluatePackage_-_Actor Hopefully that helps a bit! Maybe someone else knows of a better way.
  6. It sounds like the script might be attached to a quest? Quests, by default, run their GameMode block every 5 seconds (unlike object scripts which run it every frame if I remember correctly). You can change it by declaring the fQuestDelayTime variable in your quest script and setting it to a lower value. More information here: https://cs.uesp.net/wiki/FQuestDelayTime scriptname ExampleQuestScript float fQuestDelayTime begin _GameMode if (fQuestDelayTime != 1) let fQuestDelayTime := 1 ; run script once a second after this endif if (IsKeyPressed3 56) ; or another key code Message "Key pressed!" endif end Hopefully that helps a bit!
  7. Have you tried moving the .esp file for Maskar's overhaul below the Bashed Patch before rebuilding it? Edit: or disabling the .esp for Maskar's before rebuilding the patch. I have no idea about compatibility with other overhauls, though, never tried combining them. Maybe the readme for Maskar's has some info?
  8. It looks like they might have swapped the wiki software completely from MediaWiki to XWiki but added a style that looks like the old one. I think it used MediaWiki before. It might also explain why everything seems mostly broken. The good news is that the wiki seems to now be hosted together with the wikis for every other game, including the new ones, so they are actively keeping the wiki alive instead of silently deleting it. The settings category page is super broken, though, but there seems to be a tag of some kind with some associated pages: https://wiki.bethesda.net/wiki/constructionset/Main/Tags?do=viewTag&tag=Settings Definitely not as helpful, but better than nothing, I guess. The UESP one seems better, though.
  9. Could it refer to the class names? Those ones are the closest to 'occupation' I can think of, and there might actually be some limits to the lengths of the names? A quick Google search suggests that, in Oblivion, class names can be up to ten characters long, whereas in Morrowind they could have been up to 31 characters or something like that? I have no idea how to change that, though. :sweat: And I do not have the game at hand to check it, either. Having a screenshot to illustrate what the 'occupation' is would be handy, though. Maybe it is a translation issue.
  10. Hi and sorry about the massive delay, it has been a while since I opened the Construction Set and there were some problems getting it working. :sweat: As for how to get the active effect on a character, or more like, how to adjust the magnitude of an active effect on a character - yes, you can do that using some OBSE functions! As for whether it has any effect, like, whether the new magnitude is being applied as it is being changed - no idea. For testing purposes, I made the following custom function (classified as Object Script in the Construction Set) that takes as its parameters the spell base form (the one that was cast/added/whatever to the character, listed under spells in the CS), the effect index (index of the effect in the effect list fo the spell in the CS, starts with 0 at the top), and the new magnitude. scriptname ActiveEffectMagnitudeAdjustmentFunction ref SpellBaseForm ; base form of the spell that applied the effect float NewMagnitude ; new magnitude for the effect int MagicItemIndex ; index of the effect within the spell short ActiveEffectIndex ref ActiveEffectItem int ActiveEffectItemIndex begin _Function { SpellBaseForm MagicItemIndex NewMagnitude } let ActiveEffectIndex := GetActiveEffectCount PrintToConsole "ActiveEffect: Checking effects..." while ( ActiveEffectIndex > 0 ) let ActiveEffectIndex -= 1 let ActiveEffectItem := GetNthActiveEffectMagicItem ActiveEffectIndex PrintToConsole "%i : %n" ActiveEffectItem ActiveEffectItem if ( ActiveEffectItem != SpellBaseForm ) continue endif let ActiveEffectItemIndex := GetNthActiveEffectMagicItemIndex ActiveEffectIndex if ( ActiveEffectItemIndex != MagicItemIndex ) continue endif PrintToConsole "Found it! -> %i %n %d" ActiveEffectItem ActiveEffectItem ActiveEffectItemIndex SetNthActiveEffectMagnitude NewMagnitude ActiveEffectIndex break loop PrintToConsole "ActiveEffect: Checking finished" endAnd one could call it like: SomeCharacterRef.call ActiveEffectMagnitudeAdjustmentFunction SomeCustomSpell EffectIndex CustomMagnitudeI tested it, and it does set the magnitude of an active effect as seen in the character menus (in the active effects list), but I am not sure if the magnitude is actually being applied when it is changed. Like, I made it change the magnitude of a speed drain effect to 100 but the character was not slowed down at all, so I am not sure. At least the effect magnitude as shown in the list was adjusted! Yaaaaay progress! :happy: The .esp file I used for testing is available here, if it helps: link.
  11. The active file, if assigning any, will be the file that is being edited at the moment. Any other files are files that will be loaded in addition to the active one. One does not have to set an active file, but: When not setting an active file, any changes will need to be saved as a new .esp file. That is, the changes only will be saved in the new .esp file.When setting an active file, the saved file will have all the things there originalyl were in the file set as active, as well as any changes, saved in the .esp file.Any other files loaded, but not marked as active, will be added as masters to the file that will be saved, and need to be loaded (before it) in the game. The original Construction Set has a limitation, though, that will not allow saving a file with .esp files as its masters. The easiest way around it is to use the Construction Set Extender by shademe. But if the more servants mod only has an .esm file as its master (for example, only Oblivion.esm), then you can also try setting the servants .esp file as the active file, make your changes, and save it over the original servants .esp file (after taking a backup of the original one) to avoid having to play around with the CSE (but if you are doing more changes, would be nice to use the CSE) and/or TES4Edit and Wrye Bash to work around the .esp master issue. But, it is worth a note, that the Construction Set has a tendency to make some extra edits or somesuch from time to time, so it would be reasonable to go through the saves .esp file wth something like TES4Edit to remove any erraneous edits, if needed. As for the problem of two copies of them, I would imagine you have set the servants .esp file as the active file, and saved it with a different name, and have now both active in the game? But that is just a guess, as you mentioned there being two of them. Hopefully that helps a bit, and hopefully someone else can help you more. :happy:
  12. Hi, if I assume you are packing texture and mesh replacements (such as meshes run through PyFFI and optimised textures) into BSAs to keep things tidy, would that be correct? I tried packing QTP3 in a BSA some time ago, and if I remember correctly, the mod ended up not working, as in, the textures were not being replaced. Skyrim allows packing replacers in a BSA archive, but Oblivion did not seem to allow that last time I tried, which meant I had to keep my replacers all as loose files (and a lot of loose files at that). :pinch: So packing texture and mesh replacers in a BSA might cause those replacers to not work. As for stability, I have no idea, I hope someone else can answer that. :happy:
  13. You could use OBSE event handlers for registering hits by your dog, but other than that, I cannot think of a way to make a buff activate in a neat fashion off the top of my head. Maybe someone else has an idea on how to do that. For hit event registration, you will need: Your persistent dog reference in the gameworld.A function (an object script with a function block) to call when a hit event happens.Registration command when the game is started, to register the function as a handler to the event.For the event handler, something like this might be worth looking into, although I have not tested it myself and it has been some time since I last made an event handler (trying to get back to modding soon): scriptname YourUniquelyNamedDogHitEventHandler ref Target ref Attacker begin _Function { Target Attacker } PrintToConsole "DogHitEvent: %n (%i) -> %n (%i)" Attacker Attacker Target Target endFor registration, assuming your dog reference is called "YourUniquelyNamedDogReference", something like the following might work in a quest script, so that the event would be registered for while in main menu after the game has been restarted (assuming I remember the menu code correctly, I think 1044 was the main menu but I am not sure): scriptname YourUniquelyNamedDogQuestScript begin _MenuMode 1044 if ( GetGameRestarted ) seteventhandler "OnHit" YourUniquelyNamedDogHitEventHandler "object"::YourUniquelyNamedDogReference endif endHopefully that helps a bit. Any corrections are welcome if anyone remembers something I have forgotten. :thumbsup:
  14. I have never thought about how to implement anything like that, however I think I might have an idea on how to determine the menu code of a currently open menu. Assuming a MenuMode script block without the menu code defined always runs in all menus (even that confirmation popup, which I have no idea if it does, but it would be worth a try), one could try the GetActiveMenuMode function from OBSE. For example, something like this (untested, just an idea): scriptname YourMenuCodeQuestScript float fQuestDelayTime begin _MenuMode let fQuestDelayTime := 1.0 ; run once a second, default is once every five seconds I think PrintToConsole "MenuCode = " + $( GetActiveMenuMode ) end
  15. Just tested it out of curiosity, and the game says the same to me about video hardware being unrecognised (screenshot in spoiler). Maybe it is related to the game being so old somehow. As for the performance, I have no idea, the game runs well enough for me considering the amount of mods I have piled on it. :blush: Mine is Windows 10 (64-bit), version 1803 (build 17134.112), with the latest graphics drivers from AMD (version 18.6.1) at the moment. Oblivion is running as a standard user (the one I play on is not even an admin account, I keep a separate admin account for admin stuff), and I have all compatibility modes and other things like it disabled. Though one thing I have done is disable all the Xbox services, uninstall the Xbox app, disable the Game DVR recording/broadcasting whatever thingy and the like that Microsoft is pushing to Windows 10. I do not need that stuff myself, and I actually have no idea if disabling/removing it does anything, but since you mentioned being up for crazy ideas, that might be one? But if trying out too crazy ideas breaks something and you need to reinstall the OS then it might be best done whenever you are prepared to reinstall it? :unsure:
  16. The example is more of a concept test for how to scale the magnitude of an active magic effect on a character based on some formula (the test uses remaining health to scale a healing effect). The actual working thingy is available here --> link (it is my own website project, so it may not be online all the time, but I will try to keep it up as much as I can). The test thingy only has one effect scaled based on one condition, but if it helps, then that is great. :D Adjusting the magnitudes of all magic effects on a character based on their stats like level would take more scripting and a more dynamic approach: filtering effect types in case different types of effects should scale differently, for example, and also finding the base magic effect for determining the base magnitude for use in scaling all applied instances of it or something. And then doing it for all characters. It will take more scripting, yes, but it might just be doable. No idea how efficient it would be, though. :unsure:
  17. For Mod Organizer (at least version 1, no idea about version 2), there is also a button in settings, in the workarounds tab, that says "Back-date BSAs" and does the same thing the OBMM one does (change the BSA dates to an earlier date). So either one works for changing the timestamps. :thumbsup:
  18. Sorry about the delay, I have been busy playing other games. :blush: But if it helps, here is what I have noticed when using Oblivion and Mod Organizer: Using MO 1 (version 1.3.11), it is possible to select the load mechanism as 'script extender' which will result in MO creating a "hook.dll" and an "mo_path.txt" file in the OBSE plugins folder. This way, it is possible to run Oblivion from the Steam library by clicking the 'play' button for example - the launcher will open, but will not see any mods yet. When Oblivion opens (clicking the 'play' button in the launcher), OBSE will get loaded, and the hook dll will load MO with all the mods installed through MO.Using MO 2 (version 2.0.something, I cannot remember), the OBSE hook mechanism did not work, so the script extender workaround did not work, either, as a result. Because the Steam version of Oblivion needs to be opened via Steam, the script extender workaround seems to be required but does not seem to work, so I could not get my mods installed with MO 2 into Oblivion at all.That is based on my last test with MO 2 and Oblivion, but it might have been with an older version (it was a couple of months ago). MO 1 works with the script extender workaround - it is enough to open Oblivion from the Steam library. But that was a few months ago, maybe they have fixed something and maybe someone else knows better. Asking in the MO 2 comments section should work, I assume they know a lot better there. :thumbsup:
  19. To remove a texture or mesh replacer mod, it should be enough to uninstall it using whichever mod manager you use, I think. If you use a mod manager, you might even be able to test it by removing it quickly and putting it back in case it does not have any effect. :) If you installed the mod manually, it might be more difficult to remove it, because one might need to find the files to remove first.
  20. Apologies for the delay again. The concept test mod should be available here if it helps. The spell (an ability) has a script effect and a healing effect. The script effect uses OBSE functions to find the current active healing effect (from the ability) and then adjusts the active effect magnitude based on the current health percentage of the actor the abiltity has been applied to. It should work also on actors other than the player, but I have not tested it. Hopefully that helps a bit. :thumbsup:
  21. Sorry about the massive delay again. :tongue: What I meant was that, when I tested, copying face data in TES4Edit worked and did not crash the game when I loaded it to check the results. So maybe there is more to the NPC face issue than just the CS crashing when trying to edit the face? The CS (with the CSE) does not crash for me, and neither does copying data in TES4Edit cause crashes. When I still used Windows 7 and CS (with CSE), editing NPC faces also worked without crashes. So there is some issue somewhere that causes the crashes, or something that causes the crashes to not happen. :huh: For testing the face copy in TES4Edit, I copied the three items under FaceGen Data of an NPC to another NPC. Here is a picture (spoiler below) to illustrate the three items I copied (I did not copy from the player, though, I copied from Count Indarys and some other character to a newly-created test NPC). Of course it could be that I failed to copy something that would have been necessary, but at least the NPC faces changed and the game did not crash. Would not be the first time I forget to copy something.... :unsure:
  22. Preventing actors from fleeing combat might work by adjusting their confidence. Based on the CS Wiki article about Confidence, one might assume that setting the confidence to 100 should prevent them from fleeing (so they would need to have lost 100% of their health before they flee), assuming the wiki is correct, I have not tested it myself, which is why I am just assuming things. :blush: Adding a new greeting to an NPC might work by creating a new line under the GREETING topic (it is in caps in the game/CS). However, I think it requires a quest to be attached to. If you have a quest already, you can: Open the quest (from the "Q" button in the top toolbar -> select the quest from the left side list). Open the "Topics" tab/option for your quest from the top row of buttons. Right-click on the tall list in the middle and select "Add Topic", a list will appear, select "GREETING" from the list and it will be added to the topic list on your quest. Select the GREETING in the quest topic list, then right-click in the right side list (the short one) and select "New" to create a new response. Type in the Response Text (the text the NPC will say), select emotion type and such and click "OK" to add the new response to the list. Select the new response in the short list and add the necessary conditions for the response. Conditions are necessary to restrict who may deliver that line and when they may do so. Without conditions, if I remember correctly, all NPCs in the game might always use that greeting. To restrict it to your summon, you can add a new condition to the conditions list by clicking the "New" button and setting the condition function to GetIsID, the function parameter to your summoned actor form, comparison to "==" and the value to "1" - that way the response will be delivered by your summon only (because only your summon has its ID set to your summon). If you want to run a condition check on the one the response would be delivered to (when the player talks to the summon, that would be the player), you can use the "Run on Target" option. The "Use Global" allows to compare the condition function result value to a global value. Hopefully that helps a bit. :thumbsup:
  23. Maybe my wording was a bit bad, now that I read the post again, it does sound extremely rude. Sorry. :unsure: However, I never claimed any of the solutions would work, I have never even tried any of them. I just pointed out (in an unnecessarily rude fashion, my bad) that the person never mentioned having tried any of the solutions. They also created their own thread and posted on two other threads: another thread, this thread about still having the issue. It would have been a lot more convenient to use one existing thread, or use their new thread by linking all existing threads to it, and then describing the workaround they have tried thus far. Yes, my wording is bad, and I have no idea why I have written it that way, I must have been very annoyed at that time. The FaceGen data for an NPC can be transferred from one NPC to another by copy-pasting in TES4Edit (like you found out). It seems to work, but it may not look pretty, depending on the copy source and target (from female to male and vice versa). :laugh: I tested it with a new NPC in a new .esp file, by copying data from two different NPCs from Oblivion.esm to that NPC and the face did change. I copied all the three items under the face data. It did not crash in-game, either, when I went to look at the NPC to see if the changes had any effect. Which is interesting. Maybe there is something more to the face data issue? Something too obvious or too inconspicuous to notice? Have you tried the Construction Set Extender, would it make any difference? Before I changed to Windows 10 (that I use now, so I cannot even test Windows 7 easily, sorry), I used the CSE in Windows 7 and edited NPC face data without issues. I cannot remember if I ever tried editing faces without the CSE, my memory has more holes in it than emmental. :sweat:
  24. I just asked it, because Securom is a disc copy protection system, and the message makes it sound like as if the copy protection system somehow would have failed to work. But since you installed it in the same environment, and it worked back then, I have no idea.
  25. Just a side note: you can create a new Steam library folder outside Program Files and install games over there, for example on a different drive even. There is no need to move the entire Steam installation elsewhere, and it does not make too much sense to move it, either, considering how things installed into the Program Files folders are actually protected, to a certain extent, again random changes by software that does not have the rights to do edits there. Also, it was mentioned somewhere that it is possible to allow editing things in an individual folder inside Program Files, so that might allow one to mod Oblivion in there, too, but I have not looked into it, because I prefer keeping my games on another drive so I can reinstall Windows easily whenever I need to. So it is not really a choice of where one wants to install it, either. Also, I think the Steam services should really be very marginal and not have any effect on the game performance unless you are running the game on something that is not even enough to run the game on its own. Obviously others may disagree, though, and it is fine. I am not sure how to descibe the differences, really. Probably the greatest benefit of the GOG version is that one does not need to have Steam at all, but then again, if one slready has Steam, then it is a moot point to some extent. Buuuut I hear GOG offers some sort of offline installer that can be burned onto a DVD or otherwise stored and used forever - if that is the case, then obviously it would be awesome, because finding disc versions with all DLC for Oblivion only seems challenging. But I have no idea if the GOG installer or installation requires their software to be running - I hope not? I have never looked into it too much, so I have no idea how it works, exactly. :ermm:
×
×
  • Create New...