Jump to content

Surilindur

Premium Member
  • Posts

    1576
  • Joined

  • Last visited

Nexus Mods Profile

About Surilindur

Profile Fields

  • Country
    None
  • Favourite Game
    Oblivion

Recent Profile Visitors

10135 profile views

Surilindur's Achievements

Mentor

Mentor (12/14)

  • Dedicated
  • First Post
  • Collaborator
  • Posting Machine
  • Week One Done

Recent Badges

3

Reputation

  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:
×
×
  • Create New...