Docs

Road & Street Builder

Draw a spline and get a finished street: lanes, curbs, sidewalks, markings, junctions with crosswalks and signals, signs, furniture, bridges and tunnels, graded into your landscape. For Unreal Engine 5.6, 5.7 and 5.8.

Two suburban roads crossing at a junction with crosswalks, curb ramps and stop signs
In five minutes: enable the plugin, open Place Actors → Exaro, drag a road into your level and drag its spline points. Draw a second road across the first and the junction builds itself. Everything below is detail.

1. Install and enable

From Fab:

  1. In the Epic Games Launcher, open Fab Library, find Exaro Road & Street Builder and click Install to Engine for your engine version (5.6, 5.7 or 5.8).
  2. Open your project. Go to Edit → Plugins, type Road in the search box and tick Exaro Road & Street Builder.
  3. Click Restart Now.

From the Exaro store: the download is one zip with the plugin and ready-built Windows binaries for each engine.

  1. Copy the ExaroRoad folder into your project's Plugins folder (create Plugins next to your .uproject file if it is not there).
  2. Open the Binaries for UE 5.x folder that matches your engine and copy the Binaries folder inside it into Plugins/ExaroRoad/.
  3. Open the project. If Unreal asks, enable the plugin and restart.

On Mac or Linux, or if you skip step 2 and have Visual Studio installed, Unreal builds the plugin from its source when the project opens. INSTALL.txt in the zip has the same steps.

The kit meshes are Nanite. Check Project Settings → Platforms → Windows → D3D12 Targeted Shader Formats includes SM6 (new projects have it already).

To see every feature in one place, open the demo map: in the Content Browser, click Settings → Show Plugin Content, then open Exaro Road & Street Builder Content/Demo/L_ExaroRoad_Demo.

2. Place a road

  1. Open Window → Place Actors if the panel is not already showing.
  2. Click Exaro in the panel's left column, just under Basic (outlined below).
  3. The list shows every road type and the roundabout, then guardrails, barriers and noise walls. Drag one into the viewport and drop it on the ground. Every Exaro plugin you have installed lists its tools in this one tab.
The Place Actors panel on the Exaro tab: Exaro Road, Exaro Roundabout, every road type, then guardrail, barriers and noise wall
Place Actors → Exaro: the roundabout and every road type, then the guardrail, barriers and noise wall (with Fence & Wall Builder installed, its styles follow).

You can also drag a style asset straight from the Content Browser (Exaro Road & Street Builder Content/Styles, files named DA_RoadStyle_…).

A short new suburban road on a grassy hill, selected, with its bounds shown
A new road is a short straight run with two spline points, already graded into the ground.

3. Shape it with the spline

With the road selected:

  • Move a point: click a spline point and drag the move gizmo.
  • Add a point: select the end point, hold Alt and drag it. A new point follows your mouse.
  • Insert a point mid-road: right-click the spline and choose Add Spline Point Here.
  • Remove a point: select it and press Delete.
  • Smooth All Points and Straighten All Points in the Road section tidy every point at once.

Points drop onto the ground as you drag them across it, so a road follows hills without any extra work. To raise or lower a point on purpose (for an overpass, say), move it only up or down: a height set that way is kept. Points on a bridge or in a tunnel are never dropped. To place every point by hand, untick Points On Ground in the Road section's advanced options.

The road rebuilds as you drag. Only the stretches you changed are rebuilt, so long roads stay quick. Curbs, lights, signs and furniture follow the road; the landscape is graded to meet it.

The road bent into a long S curve across the hills
Four points, dragged into a curve.

The settings you will use most are at the top of the Details panel:

The Details panel of a selected road showing the Road and Terrain sections
Road: Style, Direction, Range Overrides, Bridges, Tunnels and Speed Limit. Terrain: how the road meets the ground.
SettingWhat it does
StyleThe road type. Swap it at any time and the same spline becomes a highway or a dirt track.
DirectionTwo way, or one way in either direction. Markings and signs follow.
Range OverridesChange part of the road over a stretch: remove a sidewalk, widen a shoulder, change a material, end a lane.
Bridges, TunnelsStretches of the road carried on a bridge or through a tunnel (sections 7 and 8).
Speed LimitIn mph. 0 uses the style's posted speed (US Suburban is 25 mph, Highway 65 mph). Any other value overrides it, and the speed limit signs show the nearest posted speed.

Joining two roads

Drag a road's end onto another road's end (within about 4 m) and let go. If both roads have the same style and settings, they become one road, and any bridges, tunnels and overrides on either are carried over to the right place on it. If the styles differ, the ends snap together and the road you dropped fits itself to the other over the last 15 m: curbs and sidewalks the other road lacks end, its lanes and shoulders or parking widen or narrow to meet the other road's, and both meet the ground at the same height. A road that ends on the side of another road makes a junction instead (next section). To place an end freely, untick Join Ends in the Road section's advanced options.

4. Junctions

Draw a second road across or into the first. The junction is found and built for you: curb returns, crosswalks, curb ramps with tactile strips, stop bars, STOP signs and street name signs. Move either road and the junction follows.

A crossing appears in the Outliner as two junction actors, one for each side road. Select either to change the crossing: Control, crosswalks, Corner Radius and Ramp Width are shared, so changing one half changes both.

The Details panel of a selected junction showing Control, Corner Radius, Approach Treatment and medians
A selected junction. Control is at the top.
SettingWhat it does
ControlStop (STOP signs and stop bars on the side road), Yield, Uncontrolled, or Signal: traffic signals over every approach.
Corner RadiusTick the box to set your own curb return radius instead of the style's.
Edge TapersTick to set how quickly shoulders and verges narrow into the junction.
Approach TreatmentRealign bends a road that arrives at a sharp angle so it meets the other road square.
Main Median, Side MedianOn divided roads: carry the median through, or end it with a nose before the junction.
CrosswalksCrosswalks with curb ramps across the side road, the main road, or both. Ramp Width is here.

Traffic signals

Set Control to Signal. Mast-arm signals go up over every approach and stop bars are painted on the main road too.

The crossing with traffic signals on mast arms over each approach
Control: Signal.

The timing is on the junction's Signal Controller component: Main Green, Side Green, Yellow and All Red in seconds, and an Offset to stagger neighbouring junctions. In play the lights cycle main green, yellow, all red, side green, yellow, all red. Blueprint can read the state with GetState and GetTimeToChange.

5. Roundabouts

  1. Drag Exaro Roundabout from Place Actors → Exaro into the level.
  2. Set its Radius (to the middle of the ring) and its Style: Roundabout (one lane) or Roundabout Two-Lane.
  3. Draw roads so they end on the ring. Each becomes an entry with a YIELD sign, a yield line and a painted splitter island.
  4. Click Rebuild after adding or moving roads.
A one-lane roundabout with four roads joining it, each with crosswalks and splitter islands
The Details panel of a selected roundabout showing Rebuild, Radius, Style and Island
Edit the roundabout, not the ring road it makes. Deleting the roundabout removes its ring.

6. Condition and wear

Condition Preset in the Appearance section ages the whole road in one step: New, Maintained, Worn, Aged, Neglected and Abandoned. Older roads get sealed cracks, repair patches, faded and chipped paint, potholes, weeds, litter, tipped bins, bent signs and broken lamps.

The same junction four times: New, Worn, Neglected and Abandoned
New, Worn, Neglected and Abandoned.
SettingWhat it does
ConditionFine control between presets, 0 (new) to 1 (abandoned).
Marking WearHow worn the painted lines are. Leave it at -1 to follow Condition, or set 0 to 1 yourself.
Wetness0 is dry. Raise it for wet asphalt and puddles after rain.
Seed, Randomize SeedA different arrangement of cracks, wear and props.

7. Bridges

  1. Select the road. In the Road section, click + next to Bridges.
  2. Set Start Distance and End Distance: where the bridge starts and ends, in centimetres along the road from its first point.
  3. Pick Height. Span runs straight between the road's heights at each end, for crossing a valley. Spline uses your spline points' heights: raise points for an overpass.
  4. Rise lifts the whole bridge and its approaches ease up to it.

The bridge gets a concrete deck, barriers, piers down to the ground every Pier Spacing and an abutment wall at each end. Roadside furniture keeps off the bridge and its approaches. Guardrail on the approaches is bolted to the bridge's barriers through a steel transition; on roads with concrete barriers along the shoulders (Urban Freeway), the barriers meet the bridge's parapet and the median barrier carries on across the deck. The landscape under the bridge is left alone.

A road carried across a valley on a concrete bridge with piers
A bridge with concrete barriers and piers down to the ground.

8. Tunnels

  1. Select the road. Click + next to Tunnels.
  2. Set Start Distance and End Distance as for a bridge.
  3. Choose a Shape: Horseshoe (most road tunnels), Box (cut and cover) or Round.
  4. Choose a Portal: Headwall (plain concrete), Masonry (stone or brick with arch stones, pick which in Masonry) or Hood (the lining sticks out of the hillside).
Four tunnel mouths: concrete headwall, stone masonry, brick masonry with a round tube, and a concrete hood
Portals: Headwall, Masonry stone, Masonry brick with a Round tube, and Hood.

Inside, Lights adds light strips along the ceiling (on by default) and Lane Signals adds a green arrow over each lane at each mouth. Clearance sets the height inside. Cover Depth is the earth kept over the tube: where the ground is lower than that, the landscape is raised over it.

Inside a lit horseshoe tunnel looking towards the far mouth
Tunnels need two things from your landscape so the ground can be cut away at each mouth: Edit Layers turned on (select the landscape, Details → Enable Edit Layers), and a landscape material with a Landscape Visibility Mask node plugged into Opacity Mask, with Blend Mode set to Masked. Without them the hill covers the mouth, and the editor says so in the Message Log (Map Check) the first time you add a tunnel.

9. Street lights

Lamps are placed as meshes only. Nothing adds a light to your level unless you ask: lights cost performance and most projects light their own streets. To light the lamps, open the road's style asset and tick Roadside → Lights → Lit. Each lamp then gets one shadowless point light and a glowing lens. Intensity, colour, radius, shadows and a maximum light count are next to it.

10. Bake when you are done

Roads stay editable until you bake. Bake Network in the Output section of any road replaces the whole network with static meshes: road and junction surfaces merged by material, props as instanced meshes, collision kept. Unbake Network brings the live roads back.

You do not have to bake: live roads work in packaged games too. Baking removes the construction step and lets you edit the result as ordinary meshes. Traffic signals keep working after a bake: each signal junction becomes a small Signals_ actor with its own controller, on the same timing and clock.

Traffic and AI

Build AI Lanes (ZoneGraph) in the Output section makes ZoneGraph lanes for the whole network, including the turns through every junction, so Mass traffic and crowds can drive it. Press it again after editing roads. AI traffic itself is a separate add-on.

From Blueprint or Python, GetLaneGraph returns every drivable lane with its width, speed and links, and FindNearestLane and GetLanePoint let a vehicle find and follow one.

The road types

StyleWhat you get
US SuburbanTwo lanes, parking both sides, curbs, sidewalks, lamps, benches, bins, hydrants.
US DowntownFour lanes, parking, wide sidewalks, meters, street trees.
Rural Two-LaneTwo lanes, paved shoulders, grass verges, guardrails on bends, utility poles.
Divided BoulevardTwo lanes each way either side of a raised grass median with trees.
Highway, Urban FreewayTwo lanes each way, shoulders, median barrier or grass median, guardrails.
RampA one-way slip road for joining and leaving highways.
IndustrialWide concrete lanes, no parking.
Cobblestone Street, Brick StreetPaved old-town streets.
Gravel Road, Dirt TrackUnpaved rural roads, no markings.
AlleyOne shared lane, no sidewalks.
Roundabout, Roundabout Two-LaneThe ring styles used by Exaro Roundabout.

Make your own style

A style is a data asset: a Profile (the cross-section, layer by layer from the centre out, each with a kind, width, height and material), plus marking rules, roadside rules and terrain settings. The quickest way is to duplicate one of ours (right-click → Duplicate), move it into your own folder and change it. Set Style Name and it appears in Place Actors → Exaro. Every lamp, sign, bench and tree can be swapped for your own mesh.

Troubleshooting

The Exaro tab is missing or empty

It sits just under Basic in Place Actors (on a short panel, look under More). If the list is empty, close and reopen Place Actors once the editor has finished loading.

The road sits in a trench or floats above the ground

A point you moved only up or down keeps that height. Drag it sideways a little and it drops back onto the ground. Also check Terrain Mode in the Terrain section. Grade shapes the ground to the road. When the layout is final, click Commit Landscape to write the grading into the landscape itself.

A tunnel mouth is blocked by the hill

Your landscape needs Edit Layers and a Visibility Mask in its material (see the note in section 8).

The junction did not appear

The two roads must actually meet or cross. Drag one road's end point onto the other road, or across it.

I can't see the plugin's content

In the Content Browser, open Settings and tick Show Plugin Content.

Need help?

Email [email protected] with your engine version and a screenshot.