Jump to content
  • entries
    12
  • comments
    636
  • views
    10,763

Yiffy Age Gear Patcher


Bad Dog

5,927 views

This patcher creates armor overrides for your entire load order ensuring that (1) all furry races use the Khajiit variant of headgear (except for Cervids and Equines) and that any changes made to vanilla armor are not overwritten by Yiffy Age itself. 

 

Tools required

  • xEdit. This is straightforward. Just make sure you can run it from within MO, if you use MO. the STEP project has good instructions on the setup.

 

How to use

  • Copy the BD_Furry_Armor_Fixup.pas script from the "Tools" folder of your mod to the xEdit/"Edit Scripts" folder
  • Load xEdit with your entire load order enabled up to and including YiffyAgeConsolidated.esp. 
  • Run the script ( BD_Furry_Armor_Fixup.pas )
  • Enable the switch to patch the boots if you like furry digitigrade feet visible all the time.
  • You probably want an ESL, so leave that set.
  • Enter a new file for the plugin.
  • Let the script do its thing.
  • Exit and save.
  • Files with the "esl" extension behave badly in your load order. Rename the extension to ".esp" so it stays where you put it.
  • Enable the plugin.
  • If using MO, move the plugin from the "Overwrite" folder to a new mod you use for patches in this profile.

Edited by Bad Dog

9 Comments


Recommended Comments

 

With some mods I am getting this error when running the script:

 

image.thumb.png.42448affa859bc9dfdf61892f86441d6.png

 

---------------------------------------------------------------
Furry Armor Fixup
---------------------------------------------------------------
. LoadBareFeet
. Fixing headgear FOTFEaccessoriesHeadHoodLongHelmetHeavy07
Overrides will be stored in the file: Skyfurry Fashions of the Fourth Era.esp
[Skyfurry Fashions of the Fourth Era.esp] Adding master "Skyrim.esm"
[Skyfurry Fashions of the Fourth Era.esp] Adding master "sforzhelmix_fashionsofthefourthera.esp"
[00:11] Exception in unit UserScript line 75: Load order FileID [02] can not be mapped to file FileID for file "Skyfurry Fashions of the Fourth Era.esp"
[00:11] Error during Applying script "BD Furry Armor Fixup": Load order FileID [02] can not be mapped to file FileID for file "Skyfurry Fashions of the Fourth Era.esp"

 

this specific error is when running the script on the mod here: https://sforzmods.tumblr.com/sse_fashions

 

On the other hand the mod for Skyblivion's Master Necromancer Robe ran the script without an error. I had my full mod list loaded in xEdit when doing so and the only master assigned by the script was the original mod.

 

The error I got above occured when I am having the script create a new plugin file for the output OR if I create a blank esp of the base Skyrim.esm and then use that as the output target.

 

To test for a load order issue, I manually made a copy of the plugin I wanted to run the script on and just renamed it before putting it at the very end of my load order. Then I opened xEdit and manually assigned the original mod as a master to my duplicate (to try to skip whatever line was the cause of the error), and ran the script on the original mod with my manually created duplicate as the output target... and it worked! Sort of..

 

Looking at the plugin it created a lot of duplicate armoraddons (which of course it after all since it was a duplicate plugin); some of the hoods were adjusted properly while others were not:
image.thumb.jpeg.7d32b23847e70c5b52de13fcbfe5c0bc.jpeg

 

Looking at the line of the script it is pointing to, it is the bolded line in this section:

 

Quote

 

// ------------------------------------------------------
procedure OverrideAA( {theAA} );
begin
    if not aaInNewFile then begin
        if not Assigned(patchFile) then DoSeparateFile();
    
        //AddMessage('. . . copying ' + geev(theAA, 'EDID') + ' to patch file');
        AddMasterIfMissing(patchFile, GetFileName(GetFile(theAA)));
        newAA := wbCopyElementToFile(theAA, patchFile, False, True);
        aaInNewFile := true;
    end;
end;

// ------------------------------------------------------

 

 

Any help is greatly appreciated.

 

Edited by Lorkmir
Link to comment

I know what the general problem is. 

 

When making an override, all the masters have to be in the new plugin's masters list. That's what "AddMasterIfMissing" is doing. But if the master itself depends on another plugin, that other plugin needs to be added as a master too and it's not. Other places the call is to add masters recursively for exactly this reason. I don't know why this call doesn't do that, but it probably should.

 

I think you might be confused about how the plugin is supposed to work. It expects to create a new, empty mod and put the overrides in there. If you have an existing "patch" mod you can use it, but delete all the ARMO and ARMA records from it first. When you say you copied the mod you wanted to patch and then stored the output in that copy... yeah. That would confuse things.

 

 

 

Link to comment
1 hour ago, Bad Dog said:

I know what the general problem is. 

 

When making an override, all the masters have to be in the new plugin's masters list. That's what "AddMasterIfMissing" is doing. But if the master itself depends on another plugin, that other plugin needs to be added as a master too and it's not. Other places the call is to add masters recursively for exactly this reason. I don't know why this call doesn't do that, but it probably should.

 

I think you might be confused about how the plugin is supposed to work. It expects to create a new, empty mod and put the overrides in there. If you have an existing "patch" mod you can use it, but delete all the ARMO and ARMA records from it first. When you say you copied the mod you wanted to patch and then stored the output in that copy... yeah. That would confuse things.

 

I know how it is supposed to work I believe, but I created a copy of the mod as a test to see if it would still error out when playing with the masters after it worked without an issue for the Skyblivion set.

 

The mod itself that gives the error if run as intended has the Update, Dawnguard, and Dragonborn esms as masters in addition to Skyrim. So basically, if I am understanding you correctly, the problem is because those Masters (Update, Dawnguard, Dragonborn) themselves also rely on the base Skyrim as their own Masters? Like a weird recursion issue? That would explain then why the Skyblivion set didn't error out, cause it only has the base Skyrim.esm as its sole master file.

 

 image.png.ad8cdd2bf5d2a04c509a29acf846cb05.png

Link to comment
2 hours ago, Bad Dog said:

Yeah, try adding skyrim.esm and the DLCs as masters first, then run the tool.

 
Well it was the one with those masters that wasn't working. However, I just discovered I overlooked something that should have been obvious. The BD Furry Armor Fixup.pas script inside the Yiffy_Age_Se.13.0.1 zip in the google drive gives the error. But the BD_Furry_Armor_Fixup.pas downloaded separately from the same drive doesn't give an error and seems to work fine. I was following the Skyfurry install which says to use the version 13 package; though the separate folder was newer I didn't even think to download the separate script to see if it was actually different in function.

 

And it properly refitted the things that weren't working before! So lesson learned for the future.

Link to comment

Bugger. Those are supposed to be the same, or else the separate one should be older. Maybe I'll stop trying to deliver them in the kit and just leave them separate. Turns out Wrye Bash doesn't copy the Tools folder anyway.

Link to comment

Might just be the New xEdit, but I'm getting:

[00:43] Exception in unit  line -1: [EJvInterpreterError] Error in unit 'BD_Furry_Armor_Fixup' on line 829 : Undeclared Identifier 'GetLoadOrder'

When attempting to run BD_Furry_Armor_Fixup.pas

Link to comment

I think it should be mentioned that you need to copy ALL of the files from the tools folder, not just the file mentioned. Otherwise you get an error when trying to run it. I learned that the hard way lol

Link to comment

And they are, stopped playing for a while so this slipped my mind for that time.

I still get the same error.

When attempting to run the script it identifies itself as Furry Armor Fixup 1.1

 

Edit: Quick Edit, but the version of the Script from Bad Dog's Github, while encountering the exact same error, does so after processing through a few of the Creation Club files.

Edited by Questiondeca
Link to comment
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more information, see our Privacy Policy & Terms of Use