Shrine of Kynareth

Oblivion. 10% Playing, 90% Modding.

Modding Woes #1

February 25, 2019 General

I have a lot of projects in WIP stage and I don't know which of those I will finish and which I might drop.
Usually I'm not a big fan of announcing, or even mentioning something that might never get finished, either because of problems or just because I wander off and get addicted to another game for a couple of years.

On the other hand, I want to scream a bit.


There we go. That's better.

Now for random annoyances in the last few weeks:

I discovered the existence of NiStencilProperty. Makes meshes draw the textures on both sides. Just adding it to the node does the trick, it seems it can't be exported from Blender like this and must be set in NifSkope. Wohooo.

I also discovered that the elusive nif.xml, from which some tutorials told me I can find the possible materials for a mesh, is, in fact, in the NifSkope install directory. Wohooo.

On the bright side, I'm getting really good at converting-clutter-to-statics-so-I-can-stick-it-somewhere-and-it-stays-there. Wohooo.

My Morrowind-like Magicka mod calculates the Magicka regen rate to be Willpower based. This is all fine, but it seems that NPCs don't regenerate Magicka from those very low settings while waiting, while the player does. NPCs do regenerate if I use vanilla values, and they regen fine in GameMode, too. Are they sitting in a black hole while I wait? Is time moving at a different speed for them? Who knows.
I'll have to rewrite the code for that, probably similar to the health one.
Not even mentioning that, when fast traveling instead of waiting, somehow the script changes back to GameMode before the fast travel is done, giving the player too high regeneration rate... or something? I got 3 times as much Magicka as I should have, which makes no fucking sense. I am 98,5% certain I fixed that but it needs a bit further testing.

If moveto is used on the player, this acts as return.
If moveto is used on the player, this acts as return.
If moveto is used on the player, this acts as return.
If moveto is used on the player, this acts as return.
If moveto is used on the player, this acts as return.
If moveto is used on the player, this acts as return.
I should stop setting control variables after the moveto and then be surprised if the game crashes.
Every. Single. Time.

I was despairing a bit about OBSE changed things, like setting the fast travel flag on worldspaces, across multiple loaded savegames in one game session, but then I discovered SetModLocalData and I am about to build a shrine for it.
This was an important discovery on my way to my Skyrim-like encumbrance mod, which let's you still move - slow, slower, the slowest - while encumbered, but disables fast travel.

I am working on a Morrowind-like leveling mod, which was actually more of an accident while creating my own leveling mod. I noticed if I set the PCMajorSkillups manually, it doesn't trigger the end of progress towards this level's attributes, allowing you to sneak in that last point of intelligence before you go to sleep.
Now I exploit it.
This actually seems to work well so far, and doesn't merit screaming, but: I also wanted a mouseover over the level to show attribute progress, just like in the Morrowind Code Patch. This also works well, but: I wanted it standalone and it's complete bonkers in the tutorial if used with vanilla leveling. The game somehow manages to track skill progress before you have a class, and then calculates how much progress that would be, even prompting you to sleep if you somehow manage to raise the equivalent of 10 major skills. And I have absolutely no way to grab that, normal skill increases already have to be caught before they are applied, because the moment they happen, the values I can check - GetPCAttributeBonus - are 0 instantly.
Bonus points: When changing your class at the exit gate, the game behaves as if you just leveled up to 1 again and deletes your level progress as well as the first set of attribute bonuses, rolling to the next one. If you change the class another time, rinse and repeat until all the bonuses are 0.
Another bonus point: If leveling up in normal gameplay a second time, without sleeping, those attribute bonuses for the inbetween level will go poof, can't access them. I guess I would have to figure out if I can store the sets of attribute bonuses per level, indefinitely.
If I ever want to release that thing standalone, which I am not even sure I want to bother with at this point, that's gonna be a lot of work.

This engine is giving me a headache.


Welcome to my little place where I talk about playing Oblivion, and about modding Oblivion, and about making mods for Oblivion and about ...