AHHH so close to what I meant haha I mean like, expand all mods at once, and all of the trees in them, specifically for use with this script. I want to filter what I search for, then open all mods at once and all [armo] and [arma] records within them it gets tricky to alt + click them one at a time when all the 'expand boxes' keep getting lower and lower lol (AND by random intervals haha) (AND theres like 30 mods to go through. too tedious to bother honestly :p) im glad you posted though because someone will find this helpful for sure!
Edit: If you just meant, how do you select flags within SSEEdit, check out the below pic I've included for you.
Spoiler:
Show
Just right-click the "First Person Flags (sorted)" values and select "Edit"
You might want to enable some functionality with SSEEdit as well, so you can start the program with arguments like -iknowwhatimdoing and -AllowMasterFilesEdit
Spoiler:
Show
hmm thats a good question! The script wouldn't be able to accommodate that, unfortunately. Like, you couldn't ask this script to remove "X-slot" from all selected mods. You could however, change the slots to a combination that didn't include "x-slot".. but you probably had already thought about that as a work around. And that probably doesn't quite work for all situations.
But technically, there is likely a way to do what you want. It sounds like you want to just remove a specific slot from some selected mods or armors. I do not know how to write scripts or code. But I can comb through the SSEdit threads and hopefully stumble across something that is kinda like what im looking for! By me, I mean you lmao that's all i did to make this scipt! Looked around the internet a bunch (googled everything), copy/pasted what I thought I would need. And then trial and errored my way to something that worked and I could share haha
Personally, I would start by looking for an alternative to SetElementNativeValues That is an instruction that changes the flags, but maybe there is one for removing flags like "SubtractElementNativeValues" or something I have NO IDEA if that exists or not just an example of what I would be looking for Do keep me posted if you require any more help! I'll answer as much as I can for you, and help some more if you do the leg work haha
I am really, really ignorant when it come to scripting. I wanted to filter all the armors using slot 32.
This is what tried to do" unit ApplyCustomScripted; function Filter(e: IInterface): Boolean; begin
if GetElementNativeValues(e, 'BOD2\First Person Flags') and $4 = $4 then Result := GetElementNativeValues(e, 'BOD2 - Biped Body Template\First Person Flags\32 - body') <> 0;
//Remember to filter a flag you are searching for! or not, that might be handy for some reason.. end;
This is the result: Error in unit 'applycustomscripted' on line 127: Declaration expected but 'unit' found.
Line 127 is "unit ApplyCustomScripted;". I have no clue what I'm doing or what any of the above really means. Can anyone help out a dummy, please?
OKAY! SORRY FOR THE LATE REPLY BUDDY I just noticed the question right now.
SO I tested but could not get your error! :( What I would do is reinstall this file. As in, overwrite the one you have now with an original from the .zip or 7zip file. Then try the search again. try replacing just the portion of the script with what is in the spoiler below:
Spoiler:
Show
unit ApplyCustomScripted; function Filter(e: IInterface): Boolean; begin
if GetElementNativeValues(e, 'BOD2\First Person Flags') and $4 = $4 then Result := GetElementNativeValues(e, 'BOD2 - Biped Body Template\First Person Flags\32 - body') <> 0;
//Remember to filter a flag you are searching for! or not, that might be handy for some reason.. end;
Make sure to edit ONLY the variables. Maybe you accidentally added a space in the code somewhere that's invalidating it all. I have no idea lol I do not script what so ever haha
OH WAIT. IF YOU ARE ONLY USING THAT PORTION OF MY SCRIPT (but not the rest of the code found hidden way below in my script) then you will probably get that error
Hey, thank you for the response! I don't care at all that it was not immediate. A couple days after i wrote my post, I had to go on the road to address family issues. It will likely be mid to late November before I have a chance to get home and try your suggestions, but I will post the results here. Thanks again for looking into my problem!
Other body parts that exist in vanilla nif models ... 130 - Used in helmets that conceal the whole head and neck inside 131 - Used in open faced helmets\hoods (Also the nightingale hood) 141 - Disables Hair Geometry like 131 and 31 142 - Used in circlets 143 - Disabled Ear geometry to prevent clipping issues? 150 - The gore that covers a decapitated head neck 230 - Neck, where 130 and this meets is the decapitation point of the neck
Edit: Apparently the website I got the information from changed their web address. Fixed the above link so it works now. :)
NEAT i personally don't know how to incorporate those into a plugin, simply because I can't select any of those flags from within creation kit or SSEEdit but i am ignorant to many-a-thing, and being able to filter/change these may be be helpful I'm not sure what their decimal values or hex values would be though if you go into outfit studio and check out the partitions, there's actually a s*** tonne more partitions than even the ones you listed so the decimal values go up by powers of two for each next flag (2^n where n=index of flag), so maybe try that hex values follow a nice pattern looks like so try indexing those flags with the hex pattern
im glad you posted because someone will probably find this helpful too!
hi i have a transgender woman characters, does this script work for changing skirts slot? in mcm the top is visible to use the reveal option in armor, but when a skirt uses slot 52 the mcm does not identify this item as armor if so this script would be useful
so i guess you'd want to filter out all slot 52 armor in your load order then find the specific mods that have the skirts you want to change (maybe don't blanket-edit all body slot 52 items in your entire load order)
then just right-click all highlighted items and "compare all" now change the body slot in one of them, right click on edited body slot and "copy to selected records" I would also use this approach to add or remove keywords to those same skirts (or what ever armor pieces)
remember, you have to change the partition data of the mesh if you change the body slot info in the plugin (esp)! to do so, use outfit studio or nifskope. if you require some help doing so, pm me and i'll try to help out :)
21 comments
Someone please fill me in if that exists. :P
I mean like, expand all mods at once, and all of the trees in them, specifically for use with this script.
I want to filter what I search for, then open all mods at once and all [armo] and [arma] records within them
it gets tricky to alt + click them one at a time when all the 'expand boxes' keep getting lower and lower lol (AND by random intervals haha) (AND theres like 30 mods to go through. too tedious to bother honestly :p)
im glad you posted though because someone will find this helpful for sure!
Just right-click the "First Person Flags (sorted)" values and select "Edit"
You might want to enable some functionality with SSEEdit as well, so you can start the program with arguments like
-iknowwhatimdoing
and
-AllowMasterFilesEdit
hmm thats a good question!
The script wouldn't be able to accommodate that, unfortunately. Like, you couldn't ask this script to remove "X-slot" from all selected mods.
You could however, change the slots to a combination that didn't include "x-slot".. but you probably had already thought about that as a work around.
And that probably doesn't quite work for all situations.
But technically, there is likely a way to do what you want. It sounds like you want to just remove a specific slot from some selected mods or armors.
I do not know how to write scripts or code.
But I can comb through the SSEdit threads and hopefully stumble across something that is kinda like what im looking for!
By me, I mean you lmao
that's all i did to make this scipt! Looked around the internet a bunch (googled everything), copy/pasted what I thought I would need. And then trial and errored my way to something that worked and I could share haha
https://tes5edit.github.io/docs/13-Scripting-Functions.html
Personally, I would start by looking for an alternative to SetElementNativeValues
That is an instruction that changes the flags, but maybe there is one for removing flags like "SubtractElementNativeValues" or something
I have NO IDEA if that exists or not just an example of what I would be looking for
Do keep me posted if you require any more help! I'll answer as much as I can for you, and help some more if you do the leg work haha
This is what tried to do"
unit ApplyCustomScripted;
function Filter(e: IInterface): Boolean;
begin
if GetElementNativeValues(e, 'BOD2\First Person Flags') and $4 = $4 then
Result := GetElementNativeValues(e, 'BOD2 - Biped Body Template\First Person Flags\32 - body') <> 0;
//Remember to filter a flag you are searching for! or not, that might be handy for some reason..
end;
This is the result:
Error in unit 'applycustomscripted' on line 127: Declaration expected but 'unit' found.
Line 127 is "unit ApplyCustomScripted;". I have no clue what I'm doing or what any of the above really means. Can anyone help out a dummy, please?
I just noticed the question right now.
SO I tested but could not get your error! :(
What I would do is reinstall this file. As in, overwrite the one you have now with an original from the .zip or 7zip file.
Then try the search again.
try replacing just the portion of the script with what is in the spoiler below:
unit ApplyCustomScripted;
function Filter(e: IInterface): Boolean;
begin
if GetElementNativeValues(e, 'BOD2\First Person Flags') and $4 = $4 then
Result := GetElementNativeValues(e, 'BOD2 - Biped Body Template\First Person Flags\32 - body') <> 0;
//Remember to filter a flag you are searching for! or not, that might be handy for some reason..
end;
Make sure to edit ONLY the variables. Maybe you accidentally added a space in the code somewhere that's invalidating it all. I have no idea lol
I do not script what so ever haha
IF YOU ARE ONLY USING THAT PORTION OF MY SCRIPT (but not the rest of the code found hidden way below in my script)
then you will probably get that error
you ALSO NEED:
function Initialize: Integer;
begin
FilterConflictAll := False;
FilterConflictThis := False;
FilterByInjectStatus := False;
FilterInjectStatus := False;
FilterByNotReachableStatus := False;
FilterNotReachableStatus := False;
FilterByReferencesInjectedStatus := False;
FilterReferencesInjectedStatus := False;
FilterByEditorID := False;
FilterEditorID := '';
FilterByName := False;
FilterName := '';
FilterByBaseEditorID := False;
FilterBaseEditorID := '';
FilterByBaseName := False;
FilterBaseName := '';
FilterScaledActors := False;
FilterByPersistent := False;
FilterPersistent := False;
FilterUnnecessaryPersistent := False;
FilterMasterIsTemporary := False;
FilterIsMaster := False;
FilterPersistentPosChanged := False;
FilterDeleted := False;
FilterByVWD := False;
FilterVWD := False;
FilterByHasVWDMesh := False;
FilterHasVWDMesh := False;
FilterBySignature := True;
FilterSignatures := 'ARMO, ARMA';
FilterByBaseSignature := False;
FilterBaseSignatures := '';
FlattenBlocks := False;
FlattenCellChilds := False;
AssignPersWrldChild := False;
InheritConflictByParent := False; // color conflicts
FilterScripted := True; // use custom Filter() function
ApplyFilter;
end;
function Process(e: IInterface): integer;
begin
AddMessage(GetElementEditValues(e, 'FULL'));
end;
end.
tacked on at the end of your script.
Other body parts that exist in vanilla nif models
...
130 - Used in helmets that conceal the whole head and neck inside
131 - Used in open faced helmets\hoods (Also the nightingale hood)
141 - Disables Hair Geometry like 131 and 31
142 - Used in circlets
143 - Disabled Ear geometry to prevent clipping issues?
150 - The gore that covers a decapitated head neck
230 - Neck, where 130 and this meets is the decapitation point of the neck
Edit: Apparently the website I got the information from changed their web address. Fixed the above link so it works now. :)
i personally don't know how to incorporate those into a plugin, simply because I can't select any of those flags from within creation kit or SSEEdit
but i am ignorant to many-a-thing, and being able to filter/change these may be be helpful
I'm not sure what their decimal values or hex values would be though
if you go into outfit studio and check out the partitions, there's actually a s*** tonne more partitions than even the ones you listed
so the decimal values go up by powers of two for each next flag (2^n where n=index of flag), so maybe try that
hex values follow a nice pattern looks like so try indexing those flags with the hex pattern
im glad you posted because someone will probably find this helpful too!
if so this script would be useful
so i guess you'd want to filter out all slot 52 armor in your load order
then find the specific mods that have the skirts you want to change (maybe don't blanket-edit all body slot 52 items in your entire load order)
then just right-click all highlighted items and "compare all"
now change the body slot in one of them, right click on edited body slot and "copy to selected records"
I would also use this approach to add or remove keywords to those same skirts (or what ever armor pieces)
remember, you have to change the partition data of the mesh if you change the body slot info in the plugin (esp)!
to do so, use outfit studio or nifskope. if you require some help doing so, pm me and i'll try to help out :)
i hope that helps!