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

i Compatibility with QoL mods requiring research

3 years ago
(updated 3 years ago)

Since this is a complete overhaul that fully replaces the technology tree, any mods that require research to get started work but are essentially unavailable. I'm assuming this is because the prerequisite technologies no longer exist and so mod techs won't get incorporated into the tree.

It's obviously unfeasible to manually adjust the tech prerequisites for every other mod, but if you can map the base tech tree to the nullius version (just to tell mods that if you required such-and-such tech, now you need this other one) it would be much appreciated. You'd also probably need to adjust the science packs to use the new ones but that should be doable using a similar method.

I'm also not sure how much you've altered the base items, in which case this might not be as useful if you can't build any mod items.

Quite enjoying it so far though, nice work!

3 years ago

The majority of items are different (not 100%, but maybe 90%), so most recipes would not just work. Most vanilla items and techs could reasonably be mapped to a Nullius equivalent, but it would be a significant amount of data entry to set up. Some Nullius things (e.g. copper) are way higher on the tech tree which might put things out of reach until the end game that were intended to be cheaper, so there would need to be some adjustments. The crafting machines are mostly different, broken up into different crafting categories than vanilla, so the recipes would need to have their crafting category adapted to something that makes sense for Nullius, and in some cases an auto-conversion could get awkward for various reasons. Even the item groups are different so the crafting menu is likely to get messed up with out of place recipes.

Another big problem is that it's hard to distinguish the vanilla techs that are supposed to be disabled by Nullius from mods that we'd want to be included. Also all the angelbob recipes from prereq mods are meant to be disabled. So there may have to be a big blacklist of all the vanilla or prereq techs to disable those but not other mods, and that list would be hard to maintain any time any of those other mods change a tech.

It would be nice to be able to set it up so that other mods could seamlessly integrate, but it seems like there are enough difficult problems to overcome that it's going to require finessing them on a case by case basis. I may try to do a compatibility layer for some of the more popular mods, but there's no way to get them all, and some of the mods that introduce lots of new recipes seem like a lost cause unless someone wants it enough to put some time in. Nullius was designed to rework a lot of vanilla stuff which makes it a more unified design, but the major downside is a near total lack of out-of-the-box interoperability with other mod techs/recipes, and it's not trivial to solve.

3 years ago
(updated 3 years ago)

That's fair. I'll probably just manually correct the few I want, or maybe make a small personal mod to do the mapping for them then.

3 years ago
(updated 3 years ago)

Another big problem is that it's hard to distinguish the vanilla techs that are supposed to be disabled by Nullius from mods that we'd want to be included. Also all the angelbob recipes from prereq mods are meant to be disabled. So there may have to be a big blacklist of all the vanilla or prereq techs to disable those but not other mods, and that list would be hard to maintain any time any of those other mods change a tech.

Why not let other mods add their stuff themselves to the blacklist? Adding this to data.lua of your mod AND other mods would help:

nullius_blacklist = nullius_blacklist or {}
-- Add whatever data is needed, e.g.:
nullius_blacklist[mod_name] = { data }

Then you can work with these data in data-updates.lua.

3 years ago

The blacklist would mainly have to include all of vanilla and the prereq bobangel mods. I don't expect either of them to fill out a blacklist for my mod themselves, and it would be a huge mess if all of those techs and recipes were not already disabled in Nullius. I don't expect many mod makers at all to fill out that kind of data for my mod, so it wouldn't solve much. Regardless of how it's done, a large blacklist has maintainability issues.

I've gone through and added compatibility for the LTN mod in 1.0.3, so you should be able to use LTN with Nullius now. I intend to go through the list of most popular mods and add some compatibility features for the ones that make sense and don't require a huge amount of porting. I'm looking at Factorissimo2, Jetpack, and AAI Signal Transmission for starters.

3 years ago

I don't expect many mod makers at all to fill out that kind of data for my mod

When I noticed your mod yesterday, I actually delayed uploading the new release of Bio Industries, so I could check if anything would require blacklisting from our end. (Turns out everything from BI was disabled anyway -- which makes sense, because the world in your mod isn't fit for Bio stuff yet.) I still have to check my other mods, once I've a bit more time. But if it would make sense story-wise, and if there was an interface, I'd definitely use that. :-)

I've gone through and added compatibility for the LTN mod in 1.0.3, so you should be able to use LTN with Nullius now. I intend to go through the list of most popular mods and add some compatibility features for the ones that make sense and don't require a huge amount of porting. I'm looking at Factorissimo2, Jetpack, and AAI Signal Transmission for starters.

3 years ago

The current status quo is that tech has to be whitelisted instead of blacklisted, since that was the most practical solution. The downside is that there needs to be some porting to get it working, but that porting can be done either on the Nullius side or the other mod's side if they want to opt in to Nullius. I plan to do the porting myself for well known mods where there aren't a huge number of techs/recipes.

3 years ago

Hello, I'm looking at porting some mods and looking at how you ported LTN, it seems you duplicate the technologies and recipes rather than modifying the existing one and un-hiding them. Is there a reason to this, is it the correct way to proceed ?

3 years ago

That's probably easiest in most cases. The nullius mod looks for techs and recipes with the nullius- prefix and disables the rest. Bob's long inserter tech is a special case since the mod's scripts recognize it by name. I'm currently porting Factorissimo2 and that's a special case too, for similar reasons. But if it's just a normal tech that unlocks recipes, it's probably easier to just have a duplicate version with the nullius- prefix, conditionalized under if mods["nullius"] then.

I may add some interface for other mod writers to keep their techs from being disabled, which would give them the option of overriding the requirements and costs rather than the entire tech. Do you have any suggestions on what would be easiest? I could do something like just introduce an arbitrary new boolean field to techs (like nullius_safe = true), since lua allows you to add fields like that without having to conform to a prototype of official fields. Then if Nullius sees anything like that it knows not to disable them.

3 years ago

By the way, once I have a few more mods ported I'm planning to add them to the FAQ, so if you do get yours ported, let me know and I'll include it on the list of mods with techs and recipes compatible with Nullius.

3 years ago

Allright. I'm looking at advanced underground pipes atm.
Nothing fancy, just many recipes to rewire
If it goes well, I'll look into some other mods we often use on our server.
I hope to start the map tomorow evening, so I'll keep you updated on my progress.

About the interface, I'm not familiar enough with Lua to give good advices :/

New response