I really wanted to make a discussion thread about how we want the system to handle multiple mods and how we can help each other to make mods work well with each other.
These are a few ideas that could work together in order for us to collaborate and build upon each other's work.
Dependencies: Building mods that are dependent on other mods doesn't really work at this state.
If I'm making a mod that extends the wood economy, for example if I make a simple mod that adds a wooden bed (which can only work when there is wood in the game). There needs to be a way for me to make sure that the wood economy mod has been loaded into the game before mine.
A decently simple way to do this is if we can add dependencies in the About.xml, before my mod loads, check that the dependencies are enabled, then load dependencies in a tree-like fashion from the top dependency down to my mod.
An extension to this system would be optional dependencies - if the dependency is enabled, load it before the mod, if it's disabled then continue anyway.
The second feature I propose for this ecosystem is a way for us to extend existing thingDefs (or any other defs maybe for that matter).
If I have a dependency(including the core) that contains a definition, but I want my extension to only change a specific value, I should be able to extend the original thingDef and only change/add a specific property, instead of copying over the entire object and overwriting it (possibly breaking every time the original object updates).
The third suggestion is something that's up to us as a community. Now that we start making all of these wonderful mods, we should think about how our creations can work together with the greater mod infrastructure, beyond simply how it affects the core game.
These are my thoughts on the subject. How do you, fellow mod-makers, think we could get good integration between our creations?
These are a few ideas that could work together in order for us to collaborate and build upon each other's work.
Dependencies: Building mods that are dependent on other mods doesn't really work at this state.
If I'm making a mod that extends the wood economy, for example if I make a simple mod that adds a wooden bed (which can only work when there is wood in the game). There needs to be a way for me to make sure that the wood economy mod has been loaded into the game before mine.
A decently simple way to do this is if we can add dependencies in the About.xml, before my mod loads, check that the dependencies are enabled, then load dependencies in a tree-like fashion from the top dependency down to my mod.
An extension to this system would be optional dependencies - if the dependency is enabled, load it before the mod, if it's disabled then continue anyway.
The second feature I propose for this ecosystem is a way for us to extend existing thingDefs (or any other defs maybe for that matter).
If I have a dependency(including the core) that contains a definition, but I want my extension to only change a specific value, I should be able to extend the original thingDef and only change/add a specific property, instead of copying over the entire object and overwriting it (possibly breaking every time the original object updates).
The third suggestion is something that's up to us as a community. Now that we start making all of these wonderful mods, we should think about how our creations can work together with the greater mod infrastructure, beyond simply how it affects the core game.
These are my thoughts on the subject. How do you, fellow mod-makers, think we could get good integration between our creations?