Nullius


In this Factorio prequel, you're an android terraforming planets and seeding them with life. Replaces all recipes and technology. No life means no coal, oil, wood, biters, or free oxygen, requiring varied renewable energy sources. For reliability, you'll focus on abundant elements from the air, sea, or common minerals such as iron ore, bauxite, sandstone, and calcite. Advanced technology enables asteroid mining of rarer elements.

Overhaul
9 months ago
1.1
33.6K
Environment Mining Fluids Manufacturing Power

g porting

3 years ago

how would I go ahead with porting my mod to work with yours? or is that on your part?

3 years ago
(updated 3 years ago)

I assume you're talking about things like techs, recipes, and items. You should be able to get those working in your own mod. Nullius will disable third party techs and recipes unless they have a "nullius-" prefix in either the order or the name. Items will be hidden if they aren't referenced by an unhidden recipe, so the items should take care of themselves once you port the recipe. Most of the items are different in Nullius, so you'll have to change the ingredients. And for techs you'll need to change the prerequisites.

If you have a bunch of recipes and techs to port, I would suggest you have a separate file like nullius.lua in your prototypes, with logic like if mods["nullius"] then to guard your changes so you only define Nullius versions of stuff if Nullius is actually enabled (with the if statement inside the file, never conditionalize a file dependency). One approach would be to have an alternate version of the ported recipes and techs, with a "nullius-" prefix on their name, and different ingredients/prereqs, defined in the data.lua stage. Another approach would be to override parts of your existing recipes and techs, in the data-updates.lua stage. You can see examples of Nullius using both approaches to port other mods, in prototypes/mods.lua (where it defines a bunch of "nullius-" versions of recipes/techs for other mods), and in prototypes/override_mod.lua (where it changes the order field on existing techs and recipes to have a "nullius-" prefix, and changes just the ingredients or prereqs).

3 years ago

thanks for response but may i ask why even do disable everything that doesnt have a "nullius-" prefix, seems extreme

3 years ago

if there was a script method that i could just add i would but porting every singe recipe over again... no other mod needs that...

3 years ago
(updated 3 years ago)

Almost every item is different, so the recipes won't work anyway if you don't modify them. Copper isn't a thing, most of the other intermediates are different. Even the crafting machines are different, so you wouldn't be able to craft most of them anyway. There's no getting around porting them.

Changing the order field is the least of your worries compared to the actual substantive changes required. Overriding the order field is literally a one line change, and that one line change in a data-update pass is all that's required to keep a tech or recipe from being disabled. You don't have to change the name of the recipe, it's either/or, whichever method is easier. And usually padding a prefix to the order field is no big deal because order isn't meaningful except in relation to everything else. And everything else in Nullius will have that in the order field already, so you'd want the order field set for it to sort properly.

Same with techs. None of the prereqs exist in Nullius, so none of your technologies will be accessible anyway. All of the science flasks are different, so your techs aren't going to work until you change the research costs. There's no way to get around manual porting. And if you have to give it a manual once over, changing the relatively unimportant order field to have a Nullius prefix is the least of your worries.

You basically need a separate Nullius version of your recipes and techs for Nullius for all the reasons I mentioned, not just because of an arbitrary naming convention. The naming convention is just an easy way to mark that that work has been done and they are expected to actually work. All of these required changes can either be conditionalized to be overridden when Nullius is enabled, or they can be separate versions that are defined when Nullius is enabled.

Nullius is a complete overhaul that doesn't use any Vanilla techs or recipes, and only uses a small subset of the Vanilla items. The available resources are quite different. Most other mods keep the basic Vanilla framework and add to it instead of replacing everything. The more different they are from vanilla, the harder it is to port stuff to them.

I've ported around 20 popular mods to work with Nullius already. It's often only a couple hours of work if it's just a matter of porting the recipes and techs. It depends on what else may need to change, depending on the mod whether it's any more complicated than that. You can see these ports in the files I mentioned previously. Most of them are actually quite simple and a small amount of code, with a few exceptions like transport drones and advanced fluid handling that need more than just the recipes and techs ported.

3 years ago
(updated 3 years ago)

e

3 years ago
(updated 3 years ago)

I don't understand why that setting would need to be in Nullius settings instead of your own mod's settings. The normal way for a mod to influence another mod's settings might be to change the default in settings-updates.lua, not to redefine the same setting in multiple mods. What's the goal here and why would it need to be done this way? You can see in the nullius settings-updates.lua how it changes a bunch of third party mod settings defaults that way. But if you're changing your own mod settings, you could do it in your own settings-updates file based on whether mods["nullius"] is set.

3 years ago

! didn't know that was even possible (the settings-updates.lua), thanks for clearing it up for me

3 years ago
(updated 3 years ago)

.

New response