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).
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".
Hello, I am getting an error (SSEEdit 4.0.4): Error during Applying script "Skyrim - Make Craftable": Error in unit 'SkyrimUtils' on line 798 : Undeclared Identifier 'recordSignature'
There are many things that get introduced that are craftable but not smeltable, of course (TAWOBA for a start) so I hope that the utility helps with that.
Just a reminder: it will not create new plugin, it will add records in the same one there selected records are. So if you'd like to make a plugin - I recommend: "Copy as override into..." to new plugin, select records in new plugin and run script, after that you can delete override records from new plugin.
46 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).
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".
There are many things that get introduced that are craftable but not smeltable, of course (TAWOBA for a start) so I hope that the utility helps with that.