Plintorio - Clean & Safe Spawn Area

by Plinfut

Provides a cleaner and safer spawn area on new maps than vanilla map generation does.

Overhaul
a month ago
2.0
87
Combat Environment Mining Fluids Cheats

a Backstory & Design Choices

a month ago
(updated a month ago)

Version 1.0.0

As "a bit" of a perfectionist (maybe even mild undiagnosed OCD), it always annoyed me how forests, cliffs and irregular ore patches in fixed positions pushed me towards messy factory layouts. I wanted a clear area to start with and create my own resources in the map editor. I also didn't like biters appearing before I set up proper perimeter and while I still had to improvise my defenses.

Safe Start and Ore Eraser came to the rescue! But I regularly came up with new strategies requiring a fresh start and had to keep clearing the ores on every new map. I also disliked how the barriers of Safe Start were permanent and made defenses obsolete, making the game too easy for my taste. So I decided to learn how to make my own mods so I could keep enemies away for a while but allow them in once I was prepared, hence the decaying barrier in this mod. And while I was modifying the spawn area, I thought I could just as well remove the ores in the same process too instead of manually.

Another thing I did on every map was covering the whole safe zone in light dirt for a consistent look. This can be done in the vanilla map editor, but was a manual task. With my new mod already combing through the spawn area modifying things, why not let it take care of that too? With the spaceship wreck removed, it's easy to lose track of the actual spawnpoint, so I wanted to mark that with another tile type. But then there were the decorative elements that served no purpose but to give the world a more diverse (also known as messy) look. I found Lawn Mower to deal with that, but again: manually, every single time I decided to start over because I learned something new. As my own mod already came so far, that should be another job for it.

At this point I was happy with it, but it took a lot of work. I figured that if I made it a little more flexible with settings instead of hardcoded values, it may be useful to others as well and provide a better total return of value for the time I put in. So here it is: my very first Factorio mod available to the public! I hope you enjoy it as much as I do. And if not, learning how to add settings was still fun for me, and maybe it will come in handy if I decide to start another game yet again.

a month ago
(updated a month ago)

Version 2.0.0

I wrote the first version of this mod while learning Factorio's modding system and coding language. For the creation of other mods after this, I looked at many more examples and found a few ways to accomplish some things more efficiently, better organized and less prone to error.

I also realized an issue with removing everything in the spawn area except for what players want to keep: anything I forgot to add a setting for, or what may be added in an update to the game, would be removed. I figured no destructive action should ever be implicit, so I turned the settings around to let players decide what to remove rather than what to keep.

Then I figured chunks are a rather programmer-minded measurement and players probably think more in tiles, so I changed the setting to define the size of the clean zone to use tiles instead of chunks. And finally I changed the interval for barrier decay from minutes to seconds for more fine-tuning and added one for the minimum damage to trees before they are removed, which was hardcoded before.

This update may cause some issues in saves created with version 1.0.0, but nothing major. The cleaning settings (old or new) aren't used anymore once the clean zone has been fully explored, which most players probably already did right away. Tree barrier decay may stop working with the new default settings, but if players redefine the clean zone size and tree barrier width to match the old settings when they started the game, it should continue to work the same way.

This thread has been locked.