Fluid Permutations

by spiwn

Rotate fluid inputs and outputs of buildings

Utilities
3 years ago
0.16 - 1.1
15.7K

g Incompatibility with Omnilib?

4 years ago

I am not sure how aware of this you are, but your mod is marked as incompatible with Omnilib, despite this mod working just fine with it. I find this quite annoying, so I am trying to sort out why this is the case and to see if I can get this removed.

Part of the problem seems to be that this mod copies code from Omnilib and Omnipermute, and you have not stated that in the mod description or license. As far as I can tell, the things that seem closest to plaigarized are the "factorial()", "fluidCount()", possibly "permutations()", "separateFluids()", and "concatTables()", but I find it very difficult to really parse out what is going on in all the mods' code. Is there any chance you can acknowledge OmnissiahZelos or talk to them in order to resolve this dispute?

4 years ago
(updated 4 years ago)

So here is what happened.

I have copied no code. I have written it from scratch . I have taken some inspiration for how the mod should work from Omnipermute (as stated in the information tab).

Initially I contacted EmperorZelos with suggestions how he/she could improve Omnipermute, I got no reply and later EmperorZelos deleted my post. The thing with the omni suite is that it does (or at least did) not try to be compatible with other mods. The main issue with Omnipermute is that it requires Omnilib, which does quite a lot of things and does (did) not work with some mods. Omnilib modifies the recipe prototypes in "data" and sort of standardizes them, converting all the different ways to specify a recipe into one, so that the other mods in the omni suite have to cover only that one case. So I realized that some of those improvements I wanted would never happen in Omnipermute (for example being able to add the mod to an existing game without getting all your factories reset, having no dependencies).
Once I created the mod I made a few improvements, such as being able to rotate the recipe during crafting and preserving any progress (crafting, productivity and production statistics) and materials.
I then contacted EmperorZelos again and we discussed what the differences between the two mods were. He said "as I see it, you really added nothing of any significans then", but once realizing that is not true, he did some changes to Omnipermute (preserving crafting progress). He then said that my mod would not be compatible with all his other mods and proceeded to mark his mod(s) as incompatible with Fluid Permutations. And indeed that was the case, as the omni suite is checking that recipe names end with a specific pattern. And the recipe names generated by Fluid Permutations would not match. I then changed my mod, so that it detects omni mods and when it generates additional recipes(permutations) for and omni recipe it adds the pattern the omni mods require. This works because Fluid Permutations doesn't care for the position of the pattern in the name, making it compatible with other mods that need to add data in the recipe names. And so Fluild Permutations was fully compatible with the omni suite. However EmperorZelos added an explicit check for Fluid Permutations and if it is present just throws an error.

And this is the situation as I last knew it, though I haven't checked the state recently.

P.s. At the time I wrote Fluid Permutations some of those functions you listed were not in the omni suite, so EmperorZelos might have copied from here, which would be fine because Fluid Permuations' license is MIT. And speaking of that, at the time Fluid Permuations was created, Omnipermute's license was and still is MIT. So talking about plagiarism is absurd.

4 years ago

Judging from the response I was getting in the Cult Omnissiah discord, they seemed convinced that you were obviously plagiarizing, but looking at the code I do believe you. This is even more ridiculous than I imagined. Serious thanks for the thoughtful reply, would you consider talking with EmperorZelos again to get the incompatibility fixed since you seem to have fixed those problems this mod was having with the Omni suite? I did test this mod with most of Omni suite, I didn't get any crashes/inconsistencies anymore.

4 years ago

I am guessing this is what happens when two mods do the same thing.
I can try to talk to EmperorZelos, but I make no promises.

However I have to ask, if you want to play with the Omni suite, can't you just use Omnipermute?

4 years ago

I am making another mod, and want to support this mod rather than Omnipermute because I think this mod does things better than Omnipermute and it is easier to work with. However, because omnilib is incompatible with this mod, I can't really do that.

New response