In recent months, I've changed laptops, and it seems I've lost the mod source code. This leaves me with only one choice: to rewrite it from scratch. However, this makes it even more unlikely for me to find the time needed to fix the issue. Only time will tell...
I had tried to use dnspy recompile this mod. It works well now.
step 1 start dnspy step 2 drag all file to dnspy /BepInEx/core /BepInEx/interop /BepInEx/unity-libs /plugins/RecipeEditor.dll -> this mod step 3 in dnspy => search CraftingRecipeDatabasePatch.Postfix and click result step 4 ctrl + shift + E step 5 change " BepInExMessageLogInterpolatedStringHandler bepInExMessageLogInterpolatedStringHandler = new BepInExMessageLogInterpolatedStringHandler(25, 2, ref flag); " into " BepInExMessageLogInterpolatedStringHandler bepInExMessageLogInterpolatedStringHandler = new BepInExMessageLogInterpolatedStringHandler(25, 2, out flag); " step 6 compile step 7 save all done
Seems the BepInExMessageLogInterpolatedStringHandler changed indeed, but I have no desire to re-write it at this point, as there is better modding frameworks for SOTF right now.
P.S. Given your skills, you can probably use AI to generate you an easy Python UI for editing the JSON data.
As much as I am aware, mod is outdated and causes in-game issues even with correct config. I do not know when or will I find the time to update the mod...
ok i fexed some more mistakes and now they appear on game but now the problem is frirst new costume arrows dont work but i guess i had to put them on invEdit and other than that now the money does not work i mean the recipy and the gear appears but it does not craft it
okit kidna works now but i say that at a really borderline way becouz it instead of craftin stone arrows it crafts explosive arrows but not just that becouz now all the crafted arrows are same recipy and it just crafts explosive ones
witch i dont have now other than that you cannot make multiple craft recipys with one item i made 4 leafs craft 1 money and 6 1 rope but it didnt work then i made 2 leafs and 1 money witch still didnt work beouz you can craft something else with money so i thout money is really bugged so i made it 2 sticks and 2 leafs
witch still made it not work this one includes 2 sticks and 1 bone for it and this is currently what i use now and it still does not work so i think its on rope
I am slightly confused as to where the code is supposed to go. Do I simply place it in the line underneath the item I want to edit or in the .txt file or does it go somewhere else? I was looking to slightly change the recipe of the tech armor to remove the need for batteries so I think the code below was all I needed. Figured I would include it since I needed to ask where to put it anyway.
I loaded the mod through the Thunderstore loader and there are 2 config files related to the mod the items_list.txt and recipes.json I have tried putting the code in both and neither works. the .json appears to just be the example code listed on the store page and it did not follow that either when it was in there so idk what I am doing wrong. I tried copy pasting your code edit here and it did not follow that when I tried it instead.
It is not configurated for Thunderstore, so read the installation guide or create BepInEx folder in SOTF main folder and paste the JSON file there, only the .json file is the actuall config, the other is just guide file with names.
85 comments
It works well now.
step 1 start dnspy
step 2 drag all file to dnspy
/BepInEx/core
/BepInEx/interop
/BepInEx/unity-libs
/plugins/RecipeEditor.dll -> this mod
step 3 in dnspy => search CraftingRecipeDatabasePatch.Postfix and click result
step 4 ctrl + shift + E
step 5
change
"
BepInExMessageLogInterpolatedStringHandler bepInExMessageLogInterpolatedStringHandler = new BepInExMessageLogInterpolatedStringHandler(25, 2, ref flag);
" into
"
BepInExMessageLogInterpolatedStringHandler bepInExMessageLogInterpolatedStringHandler = new BepInExMessageLogInterpolatedStringHandler(25, 2, out flag);
"
step 6 compile
step 7 save all
done
Seems the BepInExMessageLogInterpolatedStringHandler changed indeed, but I have no desire to re-write it at this point, as there is better modding frameworks for SOTF right now.
P.S. Given your skills, you can probably use AI to generate you an easy Python UI for editing the JSON data.
Basically a must-have for the bad armor mechanics of the game.
Would love to see a rewrite for the new version.
Regards
it would be really good if you specify the wrong part
{
"InvEdit": {
"494": [
{
"ItemId": 484,
"Count": 5,
"IsReusable": false
}
]
},
"InvEdit": {
"419": [
{
"ItemId": 494,
"Count": 5,
"IsReusable": false
}
]
},
"InvEdit": {
"403": [
{
"ItemId": 454,
"Count": 10,
"IsReusable": false
}
]
},
"InvCustom": {
"362": {
"Count": 10,
"Ingredients": [
{
"ItemId": 496,
"Count": 10,
"IsReusable": false
},
{
"ItemId": 380,
"Count": 1,
"IsReusable": true
}
]
}
},
"InvCustom": {
"393": {
"Count": 1,
"Ingredients": [
{
"ItemId": 476,
"Count": 5,
"IsReusable": false
},
]
}
},
"InvCustom": {
"476": {
"Count": 5,
"Ingredients": [
{
"ItemId": 393,
"Count": 1,
"IsReusable": false
},
]
}
},
"InvCustom": {
"507": {
"Count": 4,
"Ingredients": [
{
"ItemId": 392,
"Count": 2,
"IsReusable": false
},
{
"ItemId": 630,
"Count": 4,
"IsReusable": false
}
{
"ItemId": 380,
"Count": 1,
"IsReusable": true
}
]
}
},
"ApplyCraft": [
496
]
}
please help
{
"InvEdit": {},
"InvCustom": {
"362": {
"Count": 10,
"Ingredients": [
{
"ItemId": 496,
"Count": 10,
"IsReusable": false
},
{
"ItemId": 380,
"Count": 1,
"IsReusable": true
}
]
},
"403": {
"Count": 1,
"Ingredients": [
{
"ItemId": 484,
"Count": 6,
"IsReusable": false
}
]
},
"419": {
"Count": 1,
"Ingredients": [
{
"ItemId": 496,
"Count": 6,
"IsReusable": false
}
]
},
"496": {
"Count": 1,
"Ingredients": [
{
"ItemId": 484,
"Count": 4,
"IsReusable": false
}
]
},
"507": {
"Count": 4,
"Ingredients": [
{
"ItemId": 392,
"Count": 2,
"IsReusable": false
},
{
"ItemId": 630,
"Count": 4,
"IsReusable": false
}
]
}
},
"ApplyCraft": [
"484, 496, 380, 392"
]
}
{
"InvEdit": {},
"InvCustom": {
"362": {
"Count": 10,
"Ingredients": [
{
"ItemId": 496,
"Count": 10,
"IsReusable": false
},
{
"ItemId": 380,
"Count": 1,
"IsReusable": true
}
]
},
"403": {
"Count": 1,
"Ingredients": [
{
"ItemId": 484,
"Count": 6,
"IsReusable": false
}
]
},
"419": {
"Count": 1,
"Ingredients": [
{
"ItemId": 496,
"Count": 6,
"IsReusable": false
}
]
},
"496": {
"Count": 1,
"Ingredients": [
{
"ItemId": 484,
"Count": 4,
"IsReusable": false
}
]
},
"507": {
"Count": 4,
"Ingredients": [
{
"ItemId": 392,
"Count": 2,
"IsReusable": false
},
{
"ItemId": 630,
"Count": 4,
"IsReusable": false
}
]
}
},
"ApplyCraft": [
496
]
}
{
"InvEdit": {
"507": [
{
"ItemId": 392,
"Count": 2,
"IsReusable": false
},
{
"ItemId": 476,
"Count": 4,
"IsReusable": false
}
]
},
witch i dont have now other than that you cannot make multiple craft recipys with one item i made 4 leafs craft 1 money and 6 1 rope but it didnt work then i made 2 leafs and 1 money witch still didnt work beouz you can craft something else with money so i thout money is really bugged so i made it 2 sticks and 2 leafs
"403": {
"Count": 1,
"Ingredients": [
{
"ItemId": 392,
"Count": 2,
"IsReusable": false
},
{
"ItemId": 484,
"Count": 2,
"IsReusable": false
}
]
},
witch still made it not work this one includes 2 sticks and 1 bone for it and this is currently what i use now and it still does not work so i think its on rope
{
"InvEdit": {},
"InvCustom": {
"362": {
"Count": 10,
"Ingredients": [
{
"ItemId": 496,
"Count": 10,
"IsReusable": false
},
{
"ItemId": 380,
"Count": 1,
"IsReusable": true
}
]
},
"403": {
"Count": 1,
"Ingredients": [
{
"ItemId": 392,
"Count": 2,
"IsReusable": false
},
{
"ItemId": 405,
"Count": 1,
"IsReusable": false
}
]
},
"419": {
"Count": 1,
"Ingredients": [
{
"ItemId": 496,
"Count": 6,
"IsReusable": false
}
]
},
"496": {
"Count": 1,
"Ingredients": [
{
"ItemId": 484,
"Count": 4,
"IsReusable": false
}
]
}
},
"ApplyCraft": [
496
]
}
please help :( it even shows on craft menu and the crafting cog appears but when i click it it does not craft
also i might be doing something wrong with the json idk
{
"InvEdit": {},
"InvCustom": {
"362": {
"Count": 10,
"Ingredients": [
{
"ItemId": 630,
"Count": 10,
"IsReusable": false
},
{
"ItemId": 380,
"Count": 1,
"IsReusable": true
}
]
},
"363": {
"Count": 8,
"Ingredients": [
{
"ItemId": 630,
"Count": 8,
"IsReusable": false
},
{
"ItemId": 484,
"Count": 8,
"IsReusable": false
},
{
"ItemId": 380,
"Count": 1,
"IsReusable": true
}
]
},
"364": {
"Count": 8,
"Ingredients": [
{
"ItemId": 364,
"Count": 8,
"IsReusable": false
},
{
"ItemId": 380,
"Count": 1,
"IsReusable": true
}
]
},
"387": {
"Count": 5,
"Ingredients": [
{
"ItemId": 362,
"Count": 10,
"IsReusable": false
},
{
"ItemId": 380,
"Count": 1,
"IsReusable": true
}
]
}
},
"ApplyCraft": [
362,
363,
364,
387,
484
]
}
{
"InvEdit": {},
"InvCustom": {
"362": {
"Count": 111,
"Ingredients": [
{
"ItemId": 362,
"Count": 1
},
{
"ItemId": 380,
"Count": 1
}
]
},
"363": {
"Count": 111,
"Ingredients": [
{
"ItemId": 363,
"Count": 1
},
{
"ItemId": 380,
"Count": 1
}
]
},
"364": {
"Count": 111,
"Ingredients": [
{
"ItemId": 364,
"Count": 1
},
{
"ItemId": 380,
"Count": 1
}
]
},
"368": {
"Count": 111,
"Ingredients": [
{
"ItemId": 368,
"Count": 1
},
{
"ItemId": 380,
"Count": 1
}
]
},
"369": {
"Count": 111,
"Ingredients": [
{
"ItemId": 369,
"Count": 1
},
{
"ItemId": 380,
"Count": 1
}
]
},
"373": {
"Count": 111,
"Ingredients": [
{
"ItemId": 373,
"Count": 1
},
{
"ItemId": 380,
"Count": 1
}
]
},
"387": {
"Count": 111,
"Ingredients": [
{
"ItemId": 387,
"Count": 1
},
{
"ItemId": 380,
"Count": 1
}
]
}
},
"ApplyCraft": [
362,
363,
364,
369,
368,
373,
387
]
}
{
"InvEdit": {},
"InvCustom": {
"362": {
"Count": 111,
"Ingredients": [
{
"ItemId": 362,
"Count": 1,
"IsReusable": false
},
{
"ItemId": 380,
"Count": 1,
"IsReusable": true
}
]
},
"363": {
"Count": 111,
"Ingredients": [
{
"ItemId": 363,
"Count": 1,
"IsReusable": false
},
{
"ItemId": 380,
"Count": 1,
"IsReusable": true
}
]
},
"364": {
"Count": 111,
"Ingredients": [
{
"ItemId": 364,
"Count": 1,
"IsReusable": false
},
{
"ItemId": 380,
"Count": 1,
"IsReusable": true
}
]
},
"368": {
"Count": 111,
"Ingredients": [
{
"ItemId": 368,
"Count": 1,
"IsReusable": false
},
{
"ItemId": 380,
"Count": 1,
"IsReusable": true
}
]
},
"369": {
"Count": 111,
"Ingredients": [
{
"ItemId": 369,
"Count": 1,
"IsReusable": false
},
{
"ItemId": 380,
"Count": 1,
"IsReusable": true
}
]
},
"373": {
"Count": 111,
"Ingredients": [
{
"ItemId": 373,
"Count": 1,
"IsReusable": false
},
{
"ItemId": 380,
"Count": 1,
"IsReusable": true
}
]
},
"387": {
"Count": 111,
"Ingredients": [
{
"ItemId": 387,
"Count": 1,
"IsReusable": false
},
{
"ItemId": 380,
"Count": 1,
"IsReusable": true
}
]
}
},
"ApplyCraft": [
362,
363,
364,
369,
368,
373,
387
]
}
If I only I had the time to make some JSON exporter, but at least there is smart people helping.
.txt file or does it go somewhere else? I was looking to slightly
change the recipe of the tech armor to remove the need for batteries so I
think the code below was all I needed. Figured I would include it since I needed to ask where to put it anyway.
{
"InvEdit": {
"553": [
{
"ItemId": 553,
"Count": 1,
"IsReusable": false
}
{
"ItemId": 416,
"Count": 1,
"IsReusable": false
}
{
"ItemId": 419,
"Count": 3,
"IsReusable": false
}
{
"ItemId": 418,
"Count": 3,
"IsReusable": false
}
]
}
}
{
"InvEdit": {
"553": [
{
"ItemId": 553,
"Count": 1,
"IsReusable": false
},
{
"ItemId": 416,
"Count": 1,
"IsReusable": false
},
{
"ItemId": 419,
"Count": 3,
"IsReusable": false
},
{
"ItemId": 418,
"Count": 3,
"IsReusable": false
}
]
},
"InvCustom": {},
"ApplyCraft": []
}
Go to you game folder, create new folder and name it BepInEx, open it and copy recipes.json file there and you are ready to craft new items ;)
You can start game with r2modmann without any further issues