These are my raw notes without screenshots currently, plan is to improve this bare bones basic step by step list in the future. Join PMC Farming discord to chat about it.
GE -> file -> preferences -> general -> save and export as wavefront obj -> scale: 1
GE -> file -> preferences -> general -> save and export as wavefront obj -> frustum culled: unticked / un-selected / disabled
GE -> terrain -> file -> export selected -> obj
blender -> a -> x, yes for delete.
blender -> SHIFT-A -> Mesh -> Plane
blender -> N -> panel appears on right, view tab -> End: type in large number like 10,000 munknown.png 1 and unknown.png 2.
blender -> SHIFT-S (hold SHIFT) -> cursor to world origin
blender -> SHIFT-A -> curve -> bezier. press G and move it.
blender -> TAB, switched between edit mode and optic mode. Go to edit mode. Zoom into the placed bezier, click one of the handles (edges, ends) of the bezier and start moving it where the road goes.
While the bezier handles are selected press S so you can scale them up/down.
Press R and Z to rotate on Z axis.
Press E for (echo? huh what? hehe) to create another control vertex for the bezier and move it further down the road.
Once finished creating bezier curve for the road hit TAB back to optics mode.
Modifier properties is on the right hand side dialog panel, its BLUE WRENCH looking icon (tooltip shows its name), click that to open beziercurve and click "add modifier" and then choose "Shrinkwrap".
Press CTRL-A -> all transforms, this resets transform values to zero.
Then in right hand side panel beziercurve add modified shrinkwrap -> target, select your terrain heightmap. Now bezier curve "spline" is aligned to ground in the heightmap.
Adding road model into the bezier curve.
blender -> file -> import -> wavefront obj -> choose your road model.obj. Click the standard-road.obj to select it (get this from PMC Farming discord).
blender -> top / main menu -> object -> set origin -> origin to geometry. Now dot has appeared in the center of standard-road.obj.
blender -> SHIFT-S -> selection to cursor.
Have standard-road.obj selected, click on right side panel wrench icon modifier properties -> add modifier -> array. Then again add modifier -> curve.
Then check what is the road bezier curve name by looking at the scene collection right side panel. It should be "BezierCurve" nothing more.
Modifier properties -> curve -> curve object, click and choose "BezierCurve".
Standard-road.obj is now moved to the end of your beziercurve object.
Add texture to standard-road.obj by pressing SHIFT-A -> search -> image texture, now image texture dialog appears. From image texture dialog drag yellow color circle to principled BSDF dialog base color yellow color circle. Click image texture -> open, then browse into your texture and choose it, open image.
If your road in the beziercurve end is twisted up mangled like "the thing", select the beziercurve in editing mode, select the ending handle where twisting happens, hit R to rotate and Z for z axis, now just move until the road straightens up.
Starting to create the road.
Right hand side panel modifier properties -> array -> fit type, choose "fit length". Now just start adding more meters into the "length" slider and your 3d object mesh for road is grown / generated.
Note that the road mesh generation just follows the beziercurve, it does not stop once it reaches the end, so you cannot just type in some "100000 m" to fill it all at once, you have to painstakingly use the slider and scroll with mouse to grow road mesh until you reach the end.
Exporting roads its simple, click on the road, file -> export -> obj -> save it and load it in GE.
If road is really jagged in the curves/corners, then the road source/seed 3d model mesh is too long. Reduce its length and it should fix itself.