I have a question to experienced modders. What are the pros and cons of deleting a tech from game data and hiding the tech by setting a flag?
I was told, that for removing a tech from the game, the proper way to do it, is to hide it rather than delete it from the game data. This ensures mod compatibilitay. Until now my stance was, when I make a mod, that specifically removes a tech, I don't want the tech to be usable by other mods. As I am updating that mod for 0.18 I am gathering new info on the topic now and may reconsider my stance, depending.
For background but not to narrow a general discussion here, the mod and discussion in question was this: https://mods.factorio.com/mod/Impatient ... 000ddb5201
Deleting tech vs hiding tech
Re: Deleting tech vs hiding tech
If I wanted to remove a tech, I would hide it, rather then remove it. Removing the tech from the tree may break another mod.
Hiladdar
Hiladdar
- Deadlock989
- Smart Inserter
- Posts: 2528
- Joined: Fri Nov 06, 2015 7:41 pm
Re: Deleting tech vs hiding tech
Pros of hiding it: It won't "break" other mods in the sense that those mods which reference the tech won't stop the game from loading with an error. So on the surface, it seems like it's the "more compatible" thing to do.
Cons of hiding it: It may still result in a broken game anyway because the overwhelming majority of mods on the portal assume they are working with pristine vanilla prototypes and will set up the tech you hid as a prerequisite for their own new techs etc.. without thinking to make sure it's not hidden. This will invisibly halt player progress when they reach that tech because they'll apparently reach a tech that stays locked no matter what, perhaps after many hours of play.
So it depends on the scope of your mod. If it's a total overhaul situation, you may as well delete them, because other mods are likely not going to be compatible anyway. If it's a smaller adjustment in line with vanilla play, I would go for hiding it every time. But unless your mod is some kind of minor QOL thing, total mod compatibility isn't possible anyway - the more you change, the more likely there will be a conflict of some sort.
Cons of hiding it: It may still result in a broken game anyway because the overwhelming majority of mods on the portal assume they are working with pristine vanilla prototypes and will set up the tech you hid as a prerequisite for their own new techs etc.. without thinking to make sure it's not hidden. This will invisibly halt player progress when they reach that tech because they'll apparently reach a tech that stays locked no matter what, perhaps after many hours of play.
So it depends on the scope of your mod. If it's a total overhaul situation, you may as well delete them, because other mods are likely not going to be compatible anyway. If it's a smaller adjustment in line with vanilla play, I would go for hiding it every time. But unless your mod is some kind of minor QOL thing, total mod compatibility isn't possible anyway - the more you change, the more likely there will be a conflict of some sort.