Tag Archives: Technical Details

WIP new scripts and more adapted clothing

I soon realized my scripts released previously only exchange the meshes with the version fitting the Argonian Feet when equipped by an Argonian, but will never revert them back to normal, e.g. if they are taken away from the Argonian and given to another NPC or the player. Fixing this though was really easy and is already implemented and working and will be included in the next release.

I also adapted the Arena Raiment, as it is a very important armor and can’t stay an item forbidden to equip, which will be automatically force-unequipped as soon as you try to equip it.
Female Light Arena RaimentFemale Light Arena Raiment feet close-up
And again I really like the results.

But working with the raiment I realized another very annoying fault of my scripts, which I unfortunately can’t fix currently as it originates from an engine glitch of Oblivion, so they might not work as expected for items having a script running on them.

Technical details:
Due to an engine glitch the script command “EquipItem” doesn’t trigger an “OnEquip” block in a script running on the item that gets force-equipped. The Arena Raiment uses such a script to set a flag if it is worn or not to allow entering the arena or not. Unfortunately now the script command “UnequipItem” in fact does trigger an “OnUnequip” block in a script on the item that gets force-unequipped. So when you equip the Arena Raiment, its script sets the flag to 1 (allowing you to enter the arena), then my script kicks in and force-unequips it (because it’s not a mesh fitting the Argonian Feet) and the flag is set to 0 (normal behavior up to here as expected), it replaces the mesh to be loaded to one fitting the feet and afterwards re-equips it. Now the flag doesn’t get set to 1 again as expected due to the engine glitch mentioned, which eternally prevents you from entering the arena.

There are some possible workarounds for this and one of them will be included in the next release, but only affecting the Arena Raiment for now, because I will only change the script running on it into something working more fail-safe and reliable. Later after I implemented a “global” workaround I have in mind already this will no longer be neccessary nor needed anyways.

Scripted Argonian Feet Introduction

After releasing the latest version of Argonian Beautification (v2.0) as well as during the comments and discussions about my first release the requests arised for a way to provide the Argonian Feet to ALL Argonian NPCs in the game, regardless of if they originate from vanilla Oblivion or were added by certain mods. Having done some work on a custom body-part provide-and-control script for the player for a personal-WIP race of mine, taking care that “normal” body parts will never be shown and only allowed (i.e. adapted) clothing/armor will be equippable, I decided to reduce it and adapt it to work for the Argonian Feet and the matching legs. The first step was to find a way to get a script running on ALL Argonian NPCs. I quickly came up with an idea, to somehow “hook” into one of the Argonian racial abilities with a “scripteffect”, and as a proof-of-concept I wrote a little script to make everybody affected constantly loose fatigue until they get unconscious, and it worked perfectly making ALL Argonians ingame sleeping like “Dorn Röschen”.
Sleepy Argonians
Now I had what I needed and quickly assembled the new scripts for NPCs and player, providing feet and legs meshes and, as an example for design-concepts, adapting a small number of clothing and armor meshes, namely the Iron Boots (turned them into footshields) and the Sack Cloth Sandals with matching pants (really like the outcome).
Iron FootshieldsSack Cloth Sandals
This was version 0.1beta of Scripted Argonian Feet, as the scripts and the concept itself weren’t yet thoroughly tested and only a few shoes/boots are wearable.

discussion thread on BethSoft forums: link
download from TES Nexus (seperate file in the files section of Argonian Beautification): link

Technical details:
The basis of my approach is a script constantly checking the bodyslots of feet and legs for items that are either allowed to be worn (these will stay equipped), have an adapted version available (these will be exchanged), or are simply forbidden to be equipped (basically the whole rest, these will be force-unequipped). If the feet or legs slot is empty a default clothing only consisting of the feet or matching legs is equipped, so you will never see the normal (human) feet on Argonians. This works because of the OBSE (Oblivion Script Extender) script commands CompareMale(Female)BipedPath and ModMale(Female)BipedPath, comparing and modifying the pathes to the items’ nif files with certain strings provided. Now clothing/armor items that are allowed to be equipped (i.e. adapted items) use a nif file ending on “_ABfeet.nif” (for legs and for feet when no “normal” leg clothes are worn) or “_ABffc.nif” (feet for clothing, for when “normal” leg clothing is worn) (The difference between these is just the “feet for clothing” are moved certain units forward along the y-axis to better align with normal clothing, while the “regular feet” will only align with the matching legs or adapted leg clothing.) and items that have an adapted version available use a nif file ending on “_ABnorm.nif” (thus it is currently neccessary to change all affected items’ pathes to the “_ABnorm.nif” versions in TES Construction Set).
So if anybody wants to have selfmade items equippable by Argonians when using my scripts for the feet, all what would have to be done is to rename the original nif file to end on “_ABnorm.nif” and adapt the items’ pathes in TES CS, and then to design a version fitting the feet and name it exactly the same apart from ending on “_ABfeet.nif”, then going into NifScope and applying the translation mentioned before, then saving the file ending on “_ABffc.nif”, all in the exact same directory, and it is done, absolutely no changes to my scripts neccessary.
Whoever might be interested, is invited to have a look at my example nif files provided.

It’s currently uncomfortable having to change settings in TES CS for each adapted item, but I’m hoping for a helpful script command in the next OBSE release, making all this completely unneccessary.