Why are terrains so... chaotic? And what should I be using instead?

I’m used to Godot, where “terrains” are basically Mario Maker style tiling. If you make every variant, you can smoothly paint (usually) without worrying about how tiles connect.

In Tiled, even a properly filled out terrain can lead to this:


I used a single Terrain Fill for this.

Tiled does not have a Terrain Fill, so I assume you mean the terrain mode on the Bucket Fill Tool, which doesn’t do what you probably think it does, and should generally not be used. Terrain Fill fills the space with a random arrangement of all the Terrains in a Terrain Set, which is not very useful. If you were expecting to fill an area with a single selected terrain, that feature is requested here: Terrain Bucket Fill · Issue #3614 · mapeditor/tiled · GitHub

For now, if you want to fill a large shape with a single terrain, you have to build it up with the Terrain Brush Tool. If you hold down Ctrl, you can paint a slightly larger area, which helps draw large shapes quickly.
There’s also a rather basic scripted tool available here to draw large rectangles filled with a terrain, which may help speed things up: tiled-scripts/Terrain Rectangle Tool at main · eishiya/tiled-scripts · GitHub
(There’s also an updated version of it using the more recent terrains API which can also fill ellipses, but unfortunately the UX on it is rather poor so I haven’t added it to my public repo. If you’re desperate enough to want it anyway, let me know xP)