As far as I can tell, there are no problems with the script. I've tested it fairly extensively and everything seems to come up smelling like roses. Please let me know if you notice any problems, and I'll see what I can do.How to use:1) Save file to SSEEdit / Edit Scripts
2) Launch SSEEdit and open the armor/clothing mod of your choice
(Steps 3-5 shown in Picture #1)
3) In the left pane, hit the little plus to the left of the mod name, then Armor below that
4) Select all the armor/clothing pieces you want to modify (Shift+Click / Control+click will help here)
5) Right click one of the selected pieces and hit "Apply Scripts"
(Step 6 shown in Picture #2)
6) Select the 'armortoclothes' script, and hit "OK"
7) Save (Ctrl+S, menu in top left, or X out of the program and it [should] give you the chance to save)
8) Check the mod(s) you want to save - recommend also checking 'backup plugins' in the bottom left
9) Hit OK, and close SSEEdit.
10) Launch the game and enjoy your hot new duds that have been turned into pure clothing.
FAQQ: Why is this description so basic? Where's the fancy stuff and all the pizzazz?A: So originally I wrote (what I thought was) a funny great description. And then I pasted the script into a code box at the bottom, but I then made a couple changes and wanted to update the code in the code box. So I hit ctrl + A and ctrl + V to paste over the new code.
Yeah, ctrl+A selects the entire detailed description. Now I know better, but I don't feel like re-writing the nice description...
Q: What does this do?A: This is a script that can be used in SSEEdit to change your armor/clothing into pure clothing.
Mod-added [totally OK!], base Skyrim... I don't recommend. Not that it won't work (I'm pretty sure it will) but... IDK, if you feel comfortable with it, do whatever you want. Worst case you just need to reinstall the game if you truly screw up :P
- ArmorType will change to Clothing
- Keywords ArmorLight/ArmorHeavy -> ArmorClothing; VendorItemArmor -> VendorItemClothing; ArmorCuirass -> ClothingBody; ArmorBoots -> ClothingFeet; ArmorHelmet -> ClothingHead; and last but not least... ArmorGauntlets -> ClothingHands.
- It will also remove the various PerkFists(material) keywords. I
believe the PerkFists keywords are what Fists of Steel uses to add unarmed damage, but I'm not certain. Either way, they're gone.
- I
do not remove the ArmorMaterialIron, ArmorMaterialBandedIron, etc. I think these keywords go with the two "Matching Set" perks, but there's literally 30 different material keywords and I didn't want to add that many more if else statements. Don't know Pascal AT ALL, which is why figuring out how to write this thing took forever - there may be a way to snip out / compare substrings but I have no idea about anything Pascal. Unless someone gives me a real good reason to remove these, I'm not going to bother. As best I can tell, they have no effect (good or bad) when on clothes with armor rating 0.
- Value is set to 30
- Weight is set to 1(.000000)
- Armor Rating is set to 0 (.000000)
Q: Can I use it with insert mod name here?
A: Yes, and it will be
beautiful. Probably.
Q: Why'd you write this script anyways? There's already script XYZ.pas that does it which you can find on some website somewhere.
A: Because converting more than a handful of armors to clothing one by one manually would take soooo long and I couldn't find anything that would do it automagically for me even though I looked for a few hours. If you're serious that this is already somewhere else, I'm going to cry. I usually am good at finding things on the internet, but I truly found nothing that does this.
Q: How long did it take you to write this?A: *crying* I really don't want to say... I suppose I can say this much: far...
FAR longer than it should have. Oh my god. Why.
Q: So where is it?A: In the files page, and also in the code block below if you don't trust downloading xEdit/SSEEdit scripts (??? Just look at them before you use them).
-----
Spoiler:
Show
{
Purpose: Turn Armor into Clothing
Game: The Elder Scrolls V: Skyrim Special Edition
Author: shiverczar
Version: 1.1
This script is meant to be applied to armor items only; if you use it on something else... Well, whatever breaks? Not my fault.
-------------------------------------
By default this will...
Change the ArmorType into Clothing
Change Keywords: ArmorLight & ArmorHeavy -> ArmorClothing; VendorItemArmor -> VendorItemClothing; ArmorCuirass -> ClothingBody; ArmorBoots -> ClothingFeet; ArmorHelmet -> ClothingHead; ArmorHelmet -> ClothingHead; ArmorGauntlets -> ClothingHands
Set Value to 30
Set Weight to 1
Set Armor Value to 0
-------------------------------------
Why?
Armor/clothing mod packs, I typically don't find them super balanced. Pop them open, run this script: BAM! Now they're just clothing, so I can wear them and not feel like a cheaterpants. Also alteration mage armor perks don't get shafted by armorlight keyword on some clothes.
If I want to wear something as armor I can either not run the script on it, or if I didn't pay attention it's easy to change an armor set back... But bulk swapping everything to basic clothes? Doing that manually..? No.
Value/weight = 30, so if you are a packrat and run out of room a lot like me, when you sort by value/weight, it will not be in the junk that's worth 0.5 to 3 septims per weight-unit that you toss.
Also it's not a high value so if you clear your inventory at a vendor, even though some of the stuff might be spawned in it's hardly gamebreaking to sell a few 30 septim clothing items.
If you want to set a different value or weight (or armor rating for that matter), just change the numbers at the very bottom of the script. Should be obvious which is which.
-------------------------------------
SIDENOTE: if the original armor piece is for the head but the keyword says cuirass... No, this script will not fix that. It'll faithfully turn that incorrect armorcuirass keyword into an incorrect clothingbody keyword.
}
unit ArmorToClothes;
var
list: IInterface;
keyword: string;
i, x, y: integer;
// called for every record selected in xEdit
function Process(e: IInterface): integer;
begin
Result := 0;
// comment this out if you don't want those messages
AddMessage('Processing: ' + FullPath(e));
// processing code goes here
SetElementEditValues(e, 'BOD2 - Biped Body Template\Armor Type','Clothing');
list := ElementByName(e, 'KWDA - Keywords');
if ElementCount(list) > 0 then begin
x := 1;
y := 0;
//What's with the x := 0 and x := 1s? SSEEdit re-sorts keywords IMMEDIATELY on a change, so after changes I set x := 1 which means "check the keywords again"
//Example of what can go wrong: ArmorLight is in slot 1, another keyword is in slot 2. We change ArmorLight to ArmorClothing, and the re-sort switches it to slot 2. Next, we check the 2nd keyword - which is armorclothing. We never actually get to check what was originally in slot 2... Hence, while loop.
while (x > 0) and (y < 20) do begin
x := 0;
y := y+1;
for i := 0 to ElementCount(list) - 1 do begin
keyword := GetEditValue(ElementByIndex(list, i));
//Light Armor
if (keyword = 'ArmorLight [KYWD:0006BBD3]') then begin
SetEditValue(ElementByIndex(list, i),'ArmorClothing [KYWD:0006BBE8]');
x := 1;
end
//Heavy Armor
else if (keyword = 'ArmorHeavy [KYWD:0006BBD2]') then begin
SetEditValue(ElementByIndex(list, i),'ArmorClothing [KYWD:0006BBE8]');
x := 1;
end
//Vendor Armor
else if (keyword = 'VendorItemArmor [KYWD:0008F959]') then begin
SetEditValue(ElementByIndex(list, i),'VendorItemClothing [KYWD:0008F95B]');
x := 1;
end
//Cuirass/Body Armor
else if (keyword = 'ArmorCuirass [KYWD:0006C0EC]') then begin
SetEditValue(ElementByIndex(list, i),'ClothingBody [KYWD:000A8657]');
x := 1;
end
//Boots Armor
else if (keyword = 'ArmorBoots [KYWD:0006C0ED]') then begin
SetEditValue(ElementByIndex(list, i),'ClothingFeet [KYWD:0010CD12]');
x := 1;
end
//Helmet Armor
else if (keyword = 'ArmorHelmet [KYWD:0006C0EE]') then begin
SetEditValue(ElementByIndex(list, i),'ClothingHead [KYWD:00010CD11]');
x := 1;
end
//Gauntlets Armor
else if (keyword = 'ArmorGauntlets [KYWD:0006C0EF]') then begin
SetEditValue(ElementByIndex(list, i),'ClothingHands [KYWD:0010CD13]');
x := 1;
end
else if (keyword = 'PerkFistsDaedric [KYWD:0002C17B]') then begin
RemoveElement(list,i);
x := 1;
end
else if (keyword = 'PerkFistsDragonplate [KYWD:0002C17A]') then begin
RemoveElement(list,i);
x := 1;
end
else if (keyword = 'PerkFistsDwarven [KYWD:0002C17D]') then begin
RemoveElement(list,i);
x := 1;
end
else if (keyword = 'PerkFistsEbony [KYWD:0002C178]') then begin
RemoveElement(list,i);
x := 1;
end
else if (keyword = 'PerkFistsIron [KYWD:000424EF]') then begin
RemoveElement(list,i);
x := 1;
end
else if (keyword = 'PerkFistsOrcish [KYWD:0002C177]') then begin
RemoveElement(list,i);
x := 1;
end
else if (keyword = 'PerkFistsSteel [KYWD:0009379E]') then begin
RemoveElement(list,i);
x := 1;
end
else if (keyword = 'PerkFistsSteelPlate [KYWD:0002C179]') then begin
RemoveElement(list,i);
x := 1;
end;
if (y = 20) then begin
AddMessage('ERROR: LOOPED THROUGH KEYWORDS TWENTY TIMES - DOUBLE CHECK THIS ITEM');
end;
end;
end;
end;
//This sets the value of the item [default: 30]
SetElementNativeValues(e, 'DATA - Data\Value', 30);
//This sets the weight of the item [default: 1.000000]
SetElementNativeValues(e, 'DATA - Data\Weight', 1.000000);
//This sets the armor value of the item [default: 0.000000]
SetElementNativeValues(e, 'DNAM - Armor Rating', 0.000000);
end;
end.
The End.