Although I'm not really a modder, having only made a couple of minor mods for myself, I would still like to add a suggestion that helps modders (or more specifically, tile designers and potentially overhaul modders who want to use special tile layouts) if that is close enough to the topic.
Suggestion
It would be helpful to have a tag for allowed connections to tiles for each side of a tile. For example, a tile could have NorthTags, EastTags, SouthTags, WestTags. Only tiles that have a matching tag can connect on that side of the tile. Null or "any" would work the same as is currently being done.
Use Case
If you've ever driven down a long road in a town, you have likely noticed that the roads will alternate often between 2-lane roads, 4-lane roads, and even divided roads (boulevards) without much rhyme or reason. This is because all types of roads can connect to one another. The vanilla tiles attempt to have transitions at each edge so it doesn't matter what kind of road it connects to, but these often look really odd because they are very short transitions that are intended to work no matter which road type it is being connected to.
An example of using this suggestion would be to design a set of boulevard tiles. These tiles are tagged to only connect to other tiles that have a boulevard tag on the side that is being connected. You would also need a set of transition tiles that have boulevard as the tag on the boulevard end of the transition and something like 2lane or 4lane on the other road exit(s), depending what type of road exits the tiles in other directions.
The result would be that you can have a full set of boulevard tiles without needing to have an edge transition that might connect to another boulevard or to a 2-lane road or to a 4-lane road and hope it looks okay in all cases. You would instead have something like this for a straight road:
Tile 1: Straight tile with 2-lane road at both edges.
Tile 2: Straight transition tile with 2-lane road on one edge and boulevard on the other edge.
Tile 3: Straight tile with boulevard at both edges.
Tile 4: Straight transition tile with boulevard on one edge and 2-lane road on the other edge.
Tile 5: Straight tile with 2-lane road at both edges.
That's just a very basic 5-tile example, but it could include other tile types (T, intersection, corner, cap) and the middle section (Tile 3) could have any number of boulevard-only tiles, including a mix of different tile types. You could even have an intersection with a boulevard going East to West and a 2-lane road going North to South or other combinations.
By having actual transition tiles, you wouldn't have to worry about what the boulevard connects to, because it will always connect to a boulevard and the transition tile will do the change from boulevard to 2-lane or 4-lane.
Note that for tile edges without roads, the tag would be either null or empty, allowing for any tiles to connect to that side. The tiles would of course still follow normal connection rules so you don't get a road edge going to a non-road edge. It would just mean there isn't any restriction to what other tiles can be connected on that side.
Alternate Uses
There are a variety of different types of roads or other things you could use this with, including raised/elevated roads, train tracks, tile-based rivers or lakes, bridges that take up more than one tile, subways, tunnels, and more. The boulevard example is just one possible use. This also works for just a simple 2-lane to 4-lane road or one-way roads. A one-way road could use tags such as OneWayEnter and OneWayExit to make sure the road is facing the right way. That isn't necessary if the road doesn't have something like a yellow line on one side to designate the direction or arrows on the road to designate the direction, but if you had those on the road, the tags would help.
How is this easier or better than what we have now?
Right now, all road exits can connect to all other road exits without regard to the type of road. This means that you need a transition at the edge of a tile to handle any possible change in road type, but that can look wrong because the tile designer has no way to know if the tile being connected to will be the same road type or a different road type and no way to know which different road type it will be. There is currently no way to control this in RWG, which means you have to either manually places your tiles or change the tiles that RWG places. This is very time consuming and basically makes it so you aren't likely to have anyone designing tiles that aren't basic 2-lane or 4-lane roads, greatly limiting the interesting options you could have for towns.
Other Notes
If this is added, a tile designer would need to create at least one full set of tiles for the road type or whatever else they might be making (train track, rivers, etc), including straight, T, intersection, corner, and cap. Ideally, they'd make more than one set, but one full set would be necessary. If they want the road type to be in multiple districts, they'd also need at least one full set of tiles for every district they want the road type to appear in. In addition, they'd need to have a minimum of one transition tile for each district so that even if the road type is only intended to be in one district, there will be a transition into any other district that RWG connects it to. It may be necessary to include all tile types in the transition tile (the cap type wouldn't really be a transition, but it would allow the road type to end if connected to another district and RWG wants to place a cap there). So this does mean that anyone interested in doing something special like this would need to make a lot of additional tiles. But it would make for some very interesting towns and there are probably some people who would be interested in making something like that. Unfortunately, the way it is now, there isn't much reason to do so because you'd have to manually place each tile since RWG doesn't control what tiles connect to what other tiles based on road type.
Also note that this would benefit vanilla tiles as well by removing the problem with transitions, though it would mean vanilla would also need to include full sets of tiles for 4-lane and boulevards (I think 2-lane already has a full set), as well as transition tiles.
Clarification
- I am using "tile types" to indicate T, corner, intersection, straight and cap. Those are often referred to as road type, but to avoid confusion with the kind of road, I'm using tile type here.
- I am using "road types" to indicate 2-lane, 4-lane, one way, boulevard, raised/elevated road, etc.
- Hopefully I didn't mix those up anywhere.