It also hosted script to generate Breakedown recipes, so Dragonborn can break frash, high quality sword or whatever to few ignots. As allways, feel free to post suggestions, criticism and any question and stuff. New SkyrimUtils.pas contains many, potentially, usefull functions (like isCraftable) to help you starting your own SSEEdit scripting adventure, feel free to ripe it of or just... use it...
2023-07-05 minor update, now it checks if the selected items are already craftable, and script will skip them if it is so. + some additional, iternal checks in library itself (currently I'm working on major features update).
I know this might sound silly, but I really need a reverse version of this script. I currently have over 500 cloth mods installed, and every time I open the forge menu it causes lag or even CTD. I understand that removing COBJ entries could solve the problem, but manually editing hundreds of mods would take way too much time.
Well, you can select COBJ records -> right click -> "Compare selected", change in a first one workstation to one you like and right click on the row -> copy to selected records.
I suspect... and only suspect, that you are trying to edit records in bethesda master file, make an override version on them with xEdit (right click - copy as override - chose your plugin file), and then select those override records in your plugin - and run script.
Can you make a script so I can change the work bench of a bunch of records? I have a lot of armor mods that I would like to change from forge to tanning rack...
Edit: Just read your post on comparing records. You can click on record you want and copy to all records your comparing. Blam! Thanks for the tip!!
Do you take requests? Could you add a simple script to craft spellbooks? I am constantly making/testing new spells and would like to simplify this process. Thank you for sharing your work, very helpful!
Sorry for not replying... Basicly I've made a script to make spellbook record from spell record, but it's such a crap... and I was planing a full update of my scripts in one bundle with some more scripts... it takes time...
What determines the amount of ingots in crafting recipe? For instance, a lot of the armors generate with a req of 9 ebony ingots and 4 strips, is it determined by overall value of the item or sumth?
In xEdit, after applying the script, look for bold font records (these are the ones was changed/created). In COBJ records look for requirement you don't like in the right side of xEdit window (selected record info), select it and press Delete button on keyboard.
If I want add the clothes to the Tanning rack, what I must change in the script?
I know than using xEdit and changing the value BNAM - workbench Keyword,, and replacing CraftingSmithingForge for CraftingTanningRack works, but is possible do it with changing something in the script?
Well... unfortunatly I can't think of a way to make an inscript branch for separating clothing from stuff like accessories (maybe an armor rating with slots check, I'll think about it). But, what you can do is to change ARMOR_CRAFTING_WORKBENCH_FORM_ID value in script to tanning rack or any other workbench, I like so: // runs on script start function Initialize: integer; begin AddMessage('---Making stuff craftable---'); ARMOR_CRAFTING_WORKBENCH_FORM_ID = '00088105'; // form id of a workbanch for armors, it is a forge Result := 0; end;
There are some other usefull constants if needed: // FormID of Keyword, used for Weapon Tempering COBJ records WEAPON_TEMPERING_WORKBENCH_FORM_ID = '00088108'; // CraftingSmithingSharpeningWheel // FormID of Keyword, used for Armor Tempering COBJ records ARMOR_TEMPERING_WORKBENCH_FORM_ID = '000ADB78'; // CraftingSmithingArmorTable
// FormID of Keyword, used for Weapon Crafting COBJ records WEAPON_CRAFTING_WORKBENCH_FORM_ID = '00088105'; // CraftingSmithingForge // FormID of Keyword, used for Armor Crafting COBJ records ARMOR_CRAFTING_WORKBENCH_FORM_ID = '00088105'; // CraftingSmithingForge // FormID of Keyword, used for items Breakdown COBJ records BREAKDOWN_WORKBENCH_FORM_ID = '000A5CCE'; // CraftingSmelter
// amout of arrows and bolts to be crafted in a recipe CRAFT_AMOUNT_AMMO = 12;
// runs on script start function Initialize: integer; begin AddMessage('---Making stuff craftable---'); ARMOR_CRAFTING_WORKBENCH_FORM_ID = '0007866A'; Result := 0; end;
And don't change anything else in the script, but received this message:
Error in unit 'GenerateCraftings' on line 16: ';' expected but '=' found.
hmm... If I read it right, in order to change a constant inside a function, you have to use := operator, instead of =, like so: // runs on script start function Initialize: integer; begin AddMessage('---Making stuff craftable---'); ARMOR_CRAFTING_WORKBENCH_FORM_ID := '0007866A'; Result := 0; end;
It works. Thanks a lot. Is strange... Before you answered to me, I putted the points, before equal, and don't worked. Don't know, maybe was some space, or other thing. Well thanks 👍.
I changed some armors mods. And added the armors and weapons to the forge, and the armors that only need to craft them leather and/or leatherStrips, added to tanning rack.
Before I was using additem or similars for obtaining the armors or weapons of this mods. And I can temperable, almost all armors and weapons.
So, what recipe does it generate if it doesn't find any keyword?
example:
WARNING: no material keywords were found for - Ench1TribunalRobesRedNONARMORCuirass "Tribunal Robes of Destruction" [ARMO:FE3A18FF] WARNING: main component item requirement was not specified for - RecipeArmorEnch1TribunalRobesRedNONARMORCuirass [COBJ:FE3A1913] Items
Well, it should leave it blank, in order for modmaker to make manual requirements. But, keywords are needed for lots of vanilla stuff like dialog (guards, companions, followers...), quests, perks, magic and so on. So, if you are not using any keywords overhauls, I would recomend to close xEdit without saving the plugin, open it again and add propper keywords for items, or contact the mod author to do so.
Hello. I want to know what determines the production formula. I set the armor, value and weight of the two armors to be the same in sseedit, but one is forged by elves and the other is forged by ebony, resulting in enhanced The values are different, is there any way to unify their forging peck requirements?
Hi. Material itself is based on keywords in object record itself. Like keyword ArmorMaterialEbony will require ebony. Same goes for smithing perks. Amount of main material is calculated pretty basic: 1 + item weight * 0.2. And additional component amount is main material amount / 3.
Edit: If I understand it right, you want to set same requirements for different items. For that, the easy way, in xEdit go to Constructible Object find new ones (with bold font) select them all with Ctrl, right click "Compair selected", then find one with needed requirements (or set to one), right click on its "items (sorted)" and click "Copy to selected records".
51 comments
As allways, feel free to post suggestions, criticism and any question and stuff. New SkyrimUtils.pas contains many, potentially, usefull functions (like isCraftable) to help you starting your own SSEEdit scripting adventure, feel free to ripe it of or just... use it...
2023-07-05 minor update, now it checks if the selected items are already craftable, and script will skip them if it is so.
+ some additional, iternal checks in library itself (currently I'm working on major features update).
skyrimutil line 804[exception] cobj:00000f95 cant be edited
could you help plz?
Edit: Just read your post on comparing records. You can click on record you want and copy to all records your comparing. Blam! Thanks for the tip!!
Could you add a simple script to craft spellbooks? I am constantly making/testing new spells and would like to simplify this process.
Thank you for sharing your work, very helpful!
Basicly I've made a script to make spellbook record from spell record, but it's such a crap... and I was planing a full update of my scripts in one bundle with some more scripts... it takes time...
Main material: 1 + round(item weight * 0.2)
Additional materila amont = round(amount of main material / 3)
How can I eliminate the requeriments for crafting the armors ammunition and weapons?
Thanks in advance
A kudo for U.
If I want add the clothes to the Tanning rack, what I must change in the script?
I know than using xEdit and changing the value BNAM - workbench Keyword,, and replacing CraftingSmithingForge for CraftingTanningRack works, but is possible do it with changing something in the script?
But, what you can do is to change ARMOR_CRAFTING_WORKBENCH_FORM_ID value in script to tanning rack or any other workbench, I like so:
// runs on script start
function Initialize: integer;
begin
AddMessage('---Making stuff craftable---');
ARMOR_CRAFTING_WORKBENCH_FORM_ID = '00088105'; // form id of a workbanch for armors, it is a forge
Result := 0;
end;
There are some other usefull constants if needed:
// FormID of Keyword, used for Weapon Tempering COBJ records
WEAPON_TEMPERING_WORKBENCH_FORM_ID = '00088108'; // CraftingSmithingSharpeningWheel
// FormID of Keyword, used for Armor Tempering COBJ records
ARMOR_TEMPERING_WORKBENCH_FORM_ID = '000ADB78'; // CraftingSmithingArmorTable
// FormID of Keyword, used for Weapon Crafting COBJ records
WEAPON_CRAFTING_WORKBENCH_FORM_ID = '00088105'; // CraftingSmithingForge
// FormID of Keyword, used for Armor Crafting COBJ records
ARMOR_CRAFTING_WORKBENCH_FORM_ID = '00088105'; // CraftingSmithingForge
// FormID of Keyword, used for items Breakdown COBJ records
BREAKDOWN_WORKBENCH_FORM_ID = '000A5CCE'; // CraftingSmelter
// amout of arrows and bolts to be crafted in a recipe
CRAFT_AMOUNT_AMMO = 12;
I selected by hand, and latter apply the script.
When finished, using SSEEdit (xEdit) and change the leather things to crafted in tanning rack.
Thanks 👍
// runs on script start
function Initialize: integer;
begin
AddMessage('---Making stuff craftable---');
ARMOR_CRAFTING_WORKBENCH_FORM_ID = '0007866A';
Result := 0;
end;
And don't change anything else in the script, but received this message:
Error in unit 'GenerateCraftings' on line 16: ';' expected but '=' found.
// runs on script start
function Initialize: integer;
begin
AddMessage('---Making stuff craftable---');
ARMOR_CRAFTING_WORKBENCH_FORM_ID := '0007866A';
Result := 0;
end;
I changed some armors mods. And added the armors and weapons to the forge, and the armors that only need to craft them leather and/or leatherStrips, added to tanning rack.
Before I was using additem or similars for obtaining the armors or weapons of this mods. And I can temperable, almost all armors and weapons.
Thank you
example:
WARNING: no material keywords were found for - Ench1TribunalRobesRedNONARMORCuirass "Tribunal Robes of Destruction" [ARMO:FE3A18FF]
WARNING: main component item requirement was not specified for - RecipeArmorEnch1TribunalRobesRedNONARMORCuirass [COBJ:FE3A1913]
Items
- Does that mean
makeCraftable(selectedRecord); makeTemperable(selectedRecord);
result= 0;
am I right?
Material itself is based on keywords in object record itself. Like keyword ArmorMaterialEbony will require ebony. Same goes for smithing perks. Amount of main material is calculated pretty basic: 1 + item weight * 0.2. And additional component amount is main material amount / 3.
Edit: If I understand it right, you want to set same requirements for different items. For that, the easy way, in xEdit go to Constructible Object find new ones (with bold font) select them all with Ctrl, right click "Compair selected", then find one with needed requirements (or set to one), right click on its "items (sorted)" and click "Copy to selected records".