Custom Terrain Generation


Changes how land and water are generated. Highly customizable.

4 months ago
0.16 - 1.1
994
Environment

i peninsula

5 years ago

is it possible to create maps with peninsulas?

5 years ago

Can you be more specific about what you are looking for?

It is possible with eg Comb() to make a regular series of peninsulas, or other geometric shapes with peninsulas in them. The natural-looking land generation procedure will sometimes randomly produce peninsulas by chance, but is inherently isotropic so it will not do it very often and would be hard to modify for the purpose of peninsula generation.

If you can be specific about what you have in mind, I may be able to suggest something similar to it. Nice geometric shapes are easiest but anything is possible.

5 years ago
(updated 5 years ago)

I would like to create a map with a large peninsula that is easy to defend and that contains everything you need to get to the midgame

5 years ago

(By the way, the mod isn't quite ready for 0.17, but it will be updated when I have time to do so.)

Here's one suggestion:
Union(Circle(300), Rectangle(0, 400, -10, 10), Intersection(Not(Circle(310)), <pattern>))
This creates a circular region with radius 300 at the origin, and a moat of width 10 around that, and then the rest of the world is filled with <pattern> (you could use AllLand() if you want the rest to be just land, or one of the NoiseCustom options if you would like good looking terrain, or whatever you want). The rectangle is a bridge across the moat to the east; you can use Rectangle(-400, 400, -10, 10) if you would like a bridge on both west or east or get rid of it to have no bridge, etc. If you'd like <pattern> to be the normal water generated by Factorio naturally, you can use <pattern> = AllLand() and then uncheck the startup setting "remove default water". However you might end up with some extra generated water on your peninsula if you do that.

If a narrow bridge of width 20 is too easy to defend, you could do:
Union(Rectangle(-300, 400, -300, 300), Intersection(Not(Rectangle(-310, 310, -310, 310)), <pattern>))
This starts you on a square, 600 tiles on each side, with the whole east side connected to the rest of the world, which is more like a proper peninsula. There is a moat of width 10 on the north, west, and south.

Here is the same thing but starting on a circle instead of a square:
Union(Circle(300), Rectangle(0, 400, -300, 300), Intersection(Not(Circle(310)), Not(Rectangle(0, 300, -310, 310)), <pattern>))

I'm not sure if 300 is big enough to fit your starting base and the starter resources; I just chose the number randomly.

The maze patterns tend to create quite defensible terrain. Maze2 is my favorite and both Maze1 and Maze2 should be quite twisty, with plenty of dead-ends that make peninsulas. However if you choose a narrow width it is rather hard to build a base on the maze. SquaresAndBridges is a lot easier to play on than the maze patterns. It doesn't make peninsulas, but it creates a bunch of squares with narrow chokepoints connecting them, which are natural points of defense. Each square will have four chokepoints, at its connections to the neighbors north, south, east, and west.

Let me know if you find something that works for you. If you want to build a very particular shape you can usually do it by using Union and Intersection with rectangles and circles (like I did above)... it might look ugly but you can control exactly where the terrain is that way.

New response