Oxygen Not Included

Oxygen Not Included

Customize Recipe
179 Comments
Fumihiko  [author] 13 Jul @ 12:35am 
Okay. But I just have that for debugging. The game is not really playable with that anyways.
JingJing 12 Jul @ 6:48am 
My game broke when I build Atmot suit forge when I checked Cheat free. Can you check please?
xiao_peng2nd 27 Jun @ 9:02pm 
Nothings changes,but still great thanks for making this mod
Fumihiko  [author] 27 Jun @ 10:13am 
Try install Mod Updater or Mod Manager
If this does not work, or you don't want to; you can also download the files here:
Download [github.com] and overwrite the files here C:\Users\%username%\Documents\Klei\OxygenNotIncluded\mods\Steam\2587551532
Fumihiko  [author] 27 Jun @ 10:12am 
https://imgur.com/a/a8UcafB
Idk what the problem is.
xiao_peng2nd 27 Jun @ 6:56am 
Recipe below are fine.
{
"Id": "GlassForge_I_SO_O_LO",
"Building": "GlassForge",
"Inputs": [
{
"material": "SolidMethane",
"amount": 1000.0
}
],
"Outputs": [
{
"material": "LiquidOxygen",
"amount": 1000.0,
"temperatureOperation": "Melted"
}
],
"Time": 10.0,
"Description": "控温融化"
}
{
"Id": "GlassForge_I_SH_O_LH",
"Building": "GlassForge",
"Inputs": [
{
"materials": ["SolidHydrogen","RefinedCarbon"],
"amounts": [1000.0,2000]
}
],
"Outputs": [
{
"material": "LiquidMethane",
"amount": 1000.0,
"temperatureOperation": "Melted"
}
],
"Time": 10.0,
"Description": "控温融化"
}
xiao_peng2nd 27 Jun @ 6:55am 
My bad.
Just this specific recipe.
{
"Id": "GlassForge_I_SM_O_LM",
"Building": "GlassForge",
"Inputs": [
{
"material": "SolidMethane",
"amount": 1000.0
}
],
"Outputs": [
{
"material": "LiquidMethane",
"amount": 1000.0,
"temperatureOperation": "Melted"
}
],
"Time": 10.0,
"Description": "控温融化"
}
Fumihiko  [author] 26 Jun @ 8:20am 
Seems unlikely. I checked the function and it does not access the output of the recipe. It only reads the inputs (to build the description text).

Can you show me what you are using?
xiao_peng2nd 25 Jun @ 11:40pm 
Question: Cannot use LiquidMethane as output in GlassForge ,why?
LiquidOxygen or LiquidHydorgen are fine.
Select the recipe on GlassForge cause crash.
Just want to know the reason , Tks.

NullReferenceException: Object reference not set to an instance of an object

SelectedRecipeQueueScreen.RefreshIngredientDescriptors () (at <de400b4adfd7413aba747f509f69c810>:0)
SelectedRecipeQueueScreen.AutoSelectBestRecipeInCategory () (at <de400b4adfd7413aba747f509f69c810>:0)
麻雀 24 Jun @ 2:21am 
thank you, it help me alot:steamthumbsup:
Fumihiko  [author] 23 Jun @ 7:40am 
I do not understand the question. It might help you to look at the default values:
https://pastebin.com/1KUzfz7g
麻雀 22 Jun @ 8:10pm 
what shoule i do if i want use new 'materials' to make recipe?what kind of word will be there?
Fumihiko  [author] 21 Jun @ 3:56am 
If you use 'materials', you must give it an array. And it will generate a new recipe for each entry in post production. Not my idea, that's how the game handles it.

'material' is a legacy field that works just like before. You must not use both. You can mix it with 'amount' and 'amounts' like you want. If amounts is null, it will use amount for every entry.
aleph void 20 Jun @ 12:04pm 
so, there is a difference between material and materials, and my blind eyes didn't see it. Hope this fix it
aleph void 20 Jun @ 9:57am 
when using the game own recipes I get an error, it seems it cant use the new array recipes, as it only accepts strings for recipes.
xiao_peng2nd 17 Jun @ 9:05pm 
mod updater(crashed) , Mod manager force update(file not replaced)
manual download works
tks
Fumihiko  [author] 17 Jun @ 10:35am 
Try install Mod Updater or Mod Manager
If this does not work, or you don't want to; you can also download the files here:
Download [github.com] and overwrite the files here C:\Users\%username%\Documents\Klei\OxygenNotIncluded\mods\Steam\2587551532
xiao_peng2nd 17 Jun @ 1:02am 
normal (ID is in game)
{
"Id": "RockCrusher_I_Fossil_O_Lime_SedimentaryRock",
"Building": "RockCrusher",
"Inputs": [
{
"material": "Water",
"amount": 100.0
},
{
"material": "Dirt",
"amount": 50.0
}
],
"Outputs": [
{
"material": "Lime",
"amount": 25.0
},
{
"material": "SedimentaryRock",
"amount": 10.0
}
],
"Time": 5.0,
"HEP": 0,
"Description": "This is the description."
}
xiao_peng2nd 17 Jun @ 1:02am 
crash (ID modified)
{
"Id": "RockCrusher_I_Fossil_O_Lime_SedimentaryRock123",
"Building": "RockCrusher",
"Inputs": [
{
"material": "Water",
"amount": 100.0
},
{
"material": "Dirt",
"amount": 50.0
}
],
"Outputs": [
{
"material": "Lime",
"amount": 25.0
},
{
"material": "SedimentaryRock",
"amount": 10.0
}
],
"Time": 5.0,
"HEP": 0,
"Description": "This is the description."
}
xiao_peng2nd 17 Jun @ 1:01am 
bug report:
if not defined ID or using a new ID,will crash.
seems this mod forced to write consumedHEP data when crate a new recipe

logs below

Error in GameAssets(Clone).Assets.OnPrefabInit at (0.00, 0.00, 0.00)

System.IndexOutOfRangeException: Index was outside the bounds of the array.
at ComplexRecipe..ctor (System.String id, ComplexRecipe+RecipeElement[] ingredients, ComplexRecipe+RecipeElement[] results) [0x0001b] in <0a2895d5c82a47bb81d4ef7d78009a8f>:0
...
at ComplexRecipe..ctor (System.String id, ComplexRecipe+RecipeElement[] ingredients, ComplexRecipe+RecipeElement[] results, System.Int32 consumedHEP) [0x00000] in <0a2895d5c82a47bb81d4ef7d78009a8f>:0
at CustomizeRecipe.RecipePatch.Process (CustomizeRecipe.RecipeData setting) [0x000b1] in ...
Build: U56-674504-S
Gariba 16 Jun @ 9:59am 
@Fumihiko, do you intend to make a "Customize Critters" mod down the line?
Fumihiko  [author] 16 Jun @ 7:42am 
@Garbia: I am not so sure about that. Most of the time you need to edit ElementConverter, which has struct properties which are not supported even in the advanced settings.

@Omegapent: I don't understand. The mod doesn't change how recipes work. It just let's you modify the game's data. If you have trouble since the update, you might want to reset your settings, since a bunch of stuff is different now.
Omegapent 16 Jun @ 4:27am 
For Egg Cracker, when switching between multi ingredients, the picture and description shown in the UI don't alternate to match the selected ingredient, is this basegame problem? also when choosing some recipes such as 'Pacus', Gulp Fish Egg will be selected as default instead of Pacu Egg.
Gariba 15 Jun @ 4:53pm 
@Meo
Fumihiko recently added a function in Customize Buildings to change input consumption, "FUEL_MASS_PER_SECOND". In combination with "BuildingAdvancedMachineMultiplier" could produce what you are looking for.
Fumihiko  [author] 15 Jun @ 6:05am 
No, these are not recipes. It's possible to mod (albeit annoying), but not in my collection.
Meo 15 Jun @ 5:59am 
Is it possible to change the Input/Output of machine like Oil Refinery, Water Sieve, and many more?
Fumihiko  [author] 14 Jun @ 11:56am 
Finally. I also made it clean up the corrupt entries. But it would be safer to reset your settings.
VTrista 14 Jun @ 7:30am 
Would be cool if we could do that too. I use your mod for resource transmutation via Vacillator Recharges and this setup with multiple items in an array would be REALLY neat.
Fumihiko  [author] 14 Jun @ 7:19am 
Oh. There is a new field for defining an array of ingredients, inplace of a single item. No wonder.
Fumihiko  [author] 14 Jun @ 7:15am 
Ah. That looks like a bug.
VTrista 14 Jun @ 7:11am 
Ok, just found out that you can't load the current recipes to the config because it breaks. It turns all the fuzzy ingredients to "0" and loading the game with the new config breaks all the recipes, assuming "0" to be Neutronium.
Fumihiko  [author] 14 Jun @ 6:52am 
Maybe that's the wrong word. Before the update, if a recipe uses AnyWater, it will randomly pick Water or Saltwater as ingredient. Now you get a radio button to select what you want.

Behind the scene each ingredient is resolved into all possible alternatives and each combination creates a new recipe. So I had to change the logic to inject the modification right before that splitting, otherwise your modifcations would not be applied for those recipies.

I got no clue what you mean with "0". The update should not change a thing for you.
VTrista 14 Jun @ 6:44am 
How do these "fuzzy" ingredient recipes work here. I notice that on said "fuzzy" ingredient that the ingredient is called "0", but so far I don't see a way to find out what types this "0" ingredients is.

Would be neat to also gain access to make our own "fuzzy" ingredients.
Fumihiko  [author] 14 Jun @ 5:37am 
Okay. I fixed fuzzy ingredients too. I don't know what happens if load a save with a recipe that no longer exists. Just keep in mind that it is probably a good idea to not remove possible ingredient variants (if anyone even does that).
Fumihiko  [author] 14 Jun @ 4:58am 
The game now splits recipes for each input variant. The new logic caused issues. Should work again. Btw, chaning ingredients will now change existing recipes.... Oh now, just writing this just make me realize some new bug...
麻雀 14 Jun @ 1:35am 
it break, i can`t find my custom recipe in game, i play just with DLC"Bionic".
by the way, my version is U56-674504-VR
fated 12 Jun @ 8:46pm 
Thanks for the quick update! However, it seems like adding new recipe is not working.

E.g.
```
{
"Id": "MetalRefinery_I_Sand_O_Glass",
"Building": "MetalRefinery",
"Inputs": [
{
"material": "Sand",
"amount": 400.0
}
],
"Outputs": [
{
"material": "Glass",
"amount": 100.0
}
],
"Time": 40.0,
"HEP": 0,
"Description": "从<link=\"SAND\">沙子</link>中提取出纯<link=\"GLASS\">玻璃</link>。"
},
```

this does not show in the recipe list
maelegro 12 Jun @ 9:27am 
Nice mod, one of my favorites. It's unfortunately broken with prehistoric planet dlc. An update would be much appreciated.
MathiusXII 10 Jun @ 2:03am 
Fantastic mod!
Fumihiko  [author] 25 Apr @ 9:03am 
Mh... customizing building conversion is difficult. There are too many hard coded interactions. Like item delivery, and storage checks. Some buildings might be easy, but there is no general approach for this.

I did start a critter mod years ago. And then got frustrated on the complexity. Probably 70% done. Then an update changed a bunch of stuff and I would need to start over. I gave up on that. I still have so much other projects, I will not touch this for a while.
Fumihiko  [author] 25 Apr @ 8:57am 
I was unaware of that. Obviously the game needs to know the recipes somehow. It has an internal list of them. This mod simply allows you to change that list. So I don't know what all settings do either.

Since there are no recipes (that I am aware of) which release liquids/gas from storage (gas forge releases to pipe), the default behaviour is to drop it. That being bottled might be normal. But maybe you use CustomizeBuildings, in which case try disabling AirfilterDropsCanisters.
Unfortunately changing that behaviour specifically just for recipes is not so simple. A global change will break the bottler building.

The temperature of recipe outputs is a building specific thing. It's not stored in the recipe. I think CustomizeBuildings has a setting BuildingAdvancedOutputTemp which handles that. But not sure if that applies to food stuff...
Crovax 25 Apr @ 8:54am 
And of course, I wish if there was a mod that does something similar to the non-recipe buildings, as I'd like the Water Sieve to produce Polluted Mud rather than Polluted Dirt.

And the same goes for Critter "inputs" & "outputs".
Crovax 25 Apr @ 8:42am 
My absolute favorite mod!!!

Took me a while though to realize that it supports more buildings than listed above: Like the "ManualHighEnergyParticleSpawner".

Also: I tried to have the Kiln release CarbonDioxide into the air, but never managed to do so. It only releases bottled Carbon Dioxide to the ground.

And the temperatureOperation & inheritedElement proprerties are still a mystery to me, as there are no examples. I've hoped I could increase the temperature of any meal created by the cooking staion, as it feels strange to me that they aren't heated up initially.
Fumihiko  [author] 28 Mar @ 8:42am 
I pushed an update yesterday which should make that obsolete.
Second Law 28 Mar @ 2:25am 
@henrenzhenderen

See line 31 here: https://bin.bloerg.net/bxygSCanRYo.json that:
```
"Description": ""
```
Is what caused my game to crash. Adding that line fixed the problem for me.
henrenzhenderen 27 Mar @ 9:35pm 
What does it mean? What should I do?
Second Law 27 Mar @ 12:08am 
@henrenzhenderen that's the exact same error I had, you just need to have Description field filled, even "Description": "" will do.
henrenzhenderen 26 Mar @ 11:06pm 
The message is required to be less than 1000 words, so I will send it in two parts.
henrenzhenderen 26 Mar @ 11:05pm 
at ResearchScreenSideBar.SetCompletionFilter (ResearchScreenSideBar+CompletionState state, System.Boolean suppressUpdate) [0x00060] in <d6e0ec444e7a4dfea1897dcc43d53b54>:0
at ResearchScreenSideBar.ConfigCompletionFilters () [0x00075] in <d6e0ec444e7a4dfea1897dcc43d53b54>:0
at ResearchScreenSideBar.OnSpawn () [0x0008f] in <d6e0ec444e7a4dfea1897dcc43d53b54>:0
at KMonoBehaviour.Spawn () [0x0005d] in <1f583ce96a48430ba66629e5477a0517>:0
Build: U55-661174-SCR
henrenzhenderen 26 Mar @ 11:04pm 
Error in SideBar.ResearchScreenSideBar.OnSpawn at (-1048.32, 0.00, 0.00)
System.NullReferenceException: Object reference not set to an instance of an object
at SearchUtil.CanonicalizePhrase (System.String s) [0x00006] in <d6e0ec444e7a4dfea1897dcc43d53b54>:0
at SearchUtil.CacheTechs () [0x000ac] in <d6e0ec444e7a4dfea1897dcc43d53b54>:0
at ResearchScreenSideBar.RefreshProjectsActive () [0x00021] in <d6e0ec444e7a4dfea1897dcc43d53b54>:0
at ResearchScreenSideBar.UpdateProjectFilter (System.Object data) [0x0006a] in <d6e0ec444e7a4dfea1897dcc43d53b54>:0