Skip to content

Road Asset Reference

A road asset in Unturned defines the configuration properties for a road or path spline. Roads are spline-based objects that run across the terrain surface, following a curve defined by control points in the level editor. The road asset exposes properties that were previously hard-coded or only accessible through the legacy road editor: the road's chart classification (how it appears on the minimap), its physical width and depth, the texture applied along its length, the physics material that determines how vehicles and players interact with its surface, and the tiling behavior of the texture.

57 Studios has documented and validated the road asset configuration surface across the Unturned mapping community. This article covers every property of the road asset, the chart classification system that controls minimap rendering, the width and depth geometry, the physics material assignment for vehicle traction and player movement, the texture path and repeat distance scaling, and the legacy conversion notes for map authors upgrading from the older road system.

Road spline in the Unturned level editor showing control points and texture preview

Documentation source: This article references the official Smartly Dressed Games modding documentation for field definitions and game behavior. Community-validated notes are marked where the official documentation is silent on a detail.

Who this article is for

This article is written for Unturned map authors who want to configure road and path spline properties in their maps. If you are new to Unturned mapping, start with Custom Map Creation: Project Setup for the editor foundations, then return here for road system configuration.

How the road asset system works

A road asset is a configuration file that defines the default properties for a road type. When a map author places a road spline in the level editor and assigns a road asset to it, the spline inherits the asset's properties: width, depth, texture, physics material, and chart classification. The map author can override some of these properties on individual road segments, but the asset provides the baseline configuration.

As shown in the flowchart above, the road asset provides the material and physical configuration; the spline provides the geometric path. The two are combined at map load time to render the road surface.

Complete .dat field reference

FieldTypeDefaultPurpose
ChartEObjectChartNoneIf not None, overrides how the road appears in chart (minimap) generation. If None (default), legacy classification is used based on width and material type.
Depthfloat320.0Total size along the up axis. Controls the vertical thickness of the road mesh.
OffsetAlongNormalfloat320.0Distance along the terrain surface normal to move each road vertex. Used to raise or lower the road mesh relative to the terrain.
PhysicsMaterialmaster bundle pointerSee descriptionUnity PhysicMaterial to apply to the road collider. Not used if VanillaPhysicsMaterial is assigned.
RepeatDistanceScalefloat321.0Multiplies the distance along the road before the texture repeats. Controls texture tiling frequency.
TexturePathmaster bundle pointerSee descriptionPath to the texture applied along the road. If not specified, the game looks for a texture named Texture in the accompanying asset bundle.
Widthfloat320.0Total horizontal size before the road begins tapering off into the terrain.
VanillaPhysicsMaterialstringSee descriptionOptional name of a built-in Unity PhysicMaterial to apply to the road collider. For example, Concrete_Static or Gravel_Static for the legacy road physics materials.

Chart field

The Chart field controls how the road appears in the map's chart view (the minimap). The chart rendering system classifies roads into categories based on width and material.

Chart valueEffect
NoneUse legacy classification (see below).
HighwayRoad appears as a highway on the chart, typically wider and more prominent.
RoadRoad appears as a standard road on the chart.
PathRoad appears as a path or trail on the chart, typically narrower and less prominent.

Legacy chart classification (Chart = None)

When Chart is None (default), the game uses legacy classification based on road width and material:

ConditionClassification
Concrete roads wider than 16 metersHighway
Other concrete roadsRoad
Non-concrete roadsPath

A road is considered concrete when its VanillaPhysicsMaterial is set to a concrete type or when the road's material is a concrete-class material. Non-concrete roads include gravel, dirt, and grass paths.

Depth field

The Depth field controls the vertical thickness of the road mesh. The depth is the total size along the up axis.

Depth valueVisual effect
0.0No vertical thickness; road is flush with the terrain surface
0.5Road is slightly raised above the terrain
1.0Road has a visible curb height
2.0Road is a significant raised structure

When converting a legacy road configuration, note that Depth shown in the legacy editor is actually half the total depth. The modern road asset uses the full depth value.

OffsetAlongNormal field

The OffsetAlongNormal field moves each road vertex along the terrain surface normal. A positive value raises the road above the terrain. A negative value sinks it into the terrain.

Offset valueEffect
0.0Road follows the terrain surface exactly
0.1Road is slightly raised above the surface
0.5Road is noticeably elevated
-0.1Road is slightly recessed into the terrain

The offset is evaluated per-vertex based on the terrain normal at that point, so the road follows the terrain's undulations while maintaining the offset distance.

PhysicsMaterial field

The PhysicsMaterial field is a master bundle pointer to a Unity PhysicMaterial. The physics material defines the friction, bounciness, and other physical properties of the road surface.

Physics material typeRoad surface feel
Concrete_StaticHigh friction, no bounce (standard paved road)
Gravel_StaticMedium friction, loose surface feel
Dirt_StaticLower friction, soft surface
Metal_StaticLow friction, hard surface (bridge decks)

The PhysicsMaterial field is not used if VanillaPhysicsMaterial is assigned. If both are set, VanillaPhysicsMaterial takes priority.

RepeatDistanceScale field

The RepeatDistanceScale field controls how frequently the road texture repeats along the length of the road. By default, the texture is uniformly scaled along the road according to its aspect ratio and the road's width.

RepeatDistanceScaleTexture repeat frequency
0.5Texture repeats twice as frequently (denser pattern)
1.0Default repeat distance
2.0Texture repeats half as frequently (stretched pattern)
5.0Texture repeats at one-fifth the default frequency

The default repeat distance is calculated from the texture dimensions and the road width. For example, if Width is 8 meters and the texture is 256x128 pixels, the texture repeats every 4 meters along the road. Multiplying by RepeatDistanceScale 2.0 extends the repeat distance to 8 meters.

Legacy repeat distance conversion

When converting a legacy road configuration, the repeat distance was the texture's height in pixels divided by the Height value. For example, a 64x64 pixel texture with Height 2 would repeat every 32 meters.

To calculate an equivalent RepeatDistanceScale, divide the legacy repeat distance by the road asset's Width:

RepeatDistanceScale = LegacyRepeatDistance / Width

For a legacy road with a repeat distance of 32 meters and a road asset width of 8 meters:

RepeatDistanceScale = 32 / 8 = 4.0

TexturePath field

The TexturePath field is a master bundle pointer to a Texture2D. If the texture is not specified, the game looks for a texture named Texture in the accompanying asset bundle.

SettingBehavior
TexturePath setGame uses the specified texture from the bundle
TexturePath not setGame looks for a texture named Texture in the road's asset bundle
Neither foundDefault texture is used (a fallback concrete-like texture)

Width field

The Width field controls the total horizontal size of the road before it begins tapering off into the terrain. The width determines how much of the terrain surface the road covers.

Width valueRoad type
4.0Narrow path or trail
8.0Single-lane road
12.0Two-lane road
16.0Highway
24.0+Multi-lane highway or landing strip

When converting a legacy road configuration, note that Width shown in the legacy editor is actually half the total width. The modern road asset uses the full width value.

VanillaPhysicsMaterial field

The VanillaPhysicsMaterial field is a string that references one of the built-in Unity PhysicMaterials shipped with Unturned. This is an alternative to the PhysicsMaterial master bundle pointer for map authors who want to use the vanilla physics materials without authoring a custom PhysicMaterial.

ValueSurface type
Concrete_StaticStandard paved road
Gravel_StaticGravel road surface
Dirt_StaticDirt path surface
Metal_StaticMetal bridge deck surface

If VanillaPhysicsMaterial is assigned, the PhysicsMaterial field is ignored. The vanilla physics materials are the recommended choice for standard road types; custom PhysicMaterials should only be used when the vanilla options do not cover the intended surface behavior.

Complete .dat examples

Standard two-lane concrete road

Chart Road
Depth 0.5
OffsetAlongNormal 0.05
RepeatDistanceScale 1.0
TexturePath core.masterbundle /Roads/Textures/ConcreteRoad_01.mat
VanillaPhysicsMaterial Concrete_Static
Width 12.0

This configuration defines a standard two-lane concrete road with default chart classification as a road on the minimap, a slight vertical thickness of 0.5 meters, a small offset of 0.05 to lift it just above the terrain, default texture tiling, concrete physics material, and 12-meter width.

Narrow gravel path

Chart Path
Depth 0.0
OffsetAlongNormal 0.0
RepeatDistanceScale 1.5
TexturePath core.masterbundle /Roads/Textures/GravelPath.mat
VanillaPhysicsMaterial Gravel_Static
Width 4.0

This configuration defines a narrow gravel path with path classification on the minimap, no vertical thickness, no offset, slightly stretched texture tiling (repeat distance 1.5x default), gravel physics material, and 4-meter width.

Highway

Chart Highway
Depth 0.8
OffsetAlongNormal 0.1
RepeatDistanceScale 0.8
TexturePath core.masterbundle /Roads/Textures/Highway_01.mat
VanillaPhysicsMaterial Concrete_Static
Width 20.0

This configuration defines a highway with highway classification on the minimap, 0.8-meter depth, 0.1-meter offset, slightly compressed texture tiling, concrete physics material, and 20-meter width.

Road spline editor workflow

The road asset provides the baseline configuration. The map author's workflow in the level editor involves creating road splines and adjusting their control points.

StepAction
1Select the road tool from the level editor toolbar
2Choose the road asset from the asset picker
3Click on the terrain to place control points
4Adjust control point positions and tangents
5The road renders along the spline with the asset's properties
6Adjust individual segment properties if overrides are needed

The road spline editor allows the map author to add, remove, and move control points. Each control point has position and tangent handles that control the curve of the road between points.

Chart classification walkthrough

The chart system determines how roads appear on the map's minimap. Understanding the classification helps map authors ensure their roads are legible on the chart.

As shown in the flowchart above, the chart classification follows a decision tree. Setting the Chart field explicitly overrides the legacy classification for consistent minimap rendering.

Frequently asked questions

What is the difference between Width in the legacy editor and Width in the road asset?

The legacy editor displayed half the total width. The modern road asset uses the full width. If you are converting a legacy road with a legacy width of 8, the modern asset width should be 16. This is a common conversion mistake that produces roads half the intended width.

What is the difference between Depth in the legacy editor and Depth in the road asset?

Same as width: the legacy editor displayed half the total depth. The modern road asset uses the full depth. A legacy depth of 0.5 corresponds to a modern asset depth of 1.0.

How do I make a road that appears as a highway on the minimap?

Set Chart Highway in the road asset. If you prefer to use the legacy classification, make the road concrete and set Width to greater than 16.0. The explicit Chart field is recommended for clarity.

Can I use custom textures on roads?

Yes. Set the TexturePath field to a master bundle pointer to the custom texture. The texture is applied along the road spline with tiling controlled by RepeatDistanceScale. The texture should be tileable along its horizontal axis to avoid visible seams at the repeat boundary.

What physics material should I use for a dirt path?

Use VanillaPhysicsMaterial Dirt_Static for a dirt path. This provides medium friction and a soft surface feel appropriate for unpaved paths. For custom physics behavior, author a Unity PhysicMaterial and reference it through the PhysicsMaterial master bundle pointer.

Can I have a road with no collider?

Roads always generate a collider based on their physics material assignment. To create a purely visual road with no collision, assign a physics material with zero friction and zero bounciness, or use a non-road spline object such as a decal. The road asset system does not have a no-collider flag.

How do I fix a road that floats above the terrain?

Adjust the OffsetAlongNormal value. If the road is floating, the offset is too high. Reduce the value toward 0.0 or use a negative value to sink the road into the terrain. Each road vertex follows the terrain normal, so the offset is consistent across the entire road length.

How do I fix a road that is partially buried?

Ensure the OffsetAlongNormal value is appropriate for the terrain. If the terrain has steep undulations, the road may dip below the surface at some points and float above at others. Adjusting the control point positions to follow the terrain more closely can help. For consistently buried roads, increase the offset.

Can I use a road asset for non-road objects like runways?

Yes. A road asset with a wide Width (20-40 meters), appropriate texture, and concrete physics material serves well as an airport runway. Set the Chart field to Highway for prominent minimap visibility. The road spline system is flexible enough to handle non-road linear structures.

Can I animate the road texture along the spline?

Road textures are static along the spline. There is no UV animation or texture scrolling system for road assets in the current engine. To create the appearance of animated road markings, use separate object assets placed along the road path rather than modifying the road texture itself.

How do I configure a road that transitions between two surface types?

Road assets define a single surface type for the entire spline. To transition between surface types (e.g., concrete to gravel), create two road splines that meet at the transition point, each with a different road asset. Align the endpoints of the two splines so the transition is seamless. Adjust the control points to create a smooth junction.

Road intersections are created by placing multiple road splines that meet at their endpoints. Each road entering the intersection is a separate spline. Align the endpoints of all splines at the same terrain position. For complex intersections (roundabouts, multi-lane junctions), use additional splines to define the intersection geometry and fill the area with terrain material painting or object assets.

How do I handle elevation changes along a road spline?

Road splines follow the terrain surface by default. For elevation changes (bridges, overpasses, elevated highways), use the OffsetAlongNormal field to lift the road above the terrain. Set the offset to the desired height above the terrain at each control point. The road mesh is raised by the offset distance along the terrain normal at each vertex.

What is the maximum road width supported by the engine?

There is no documented maximum road width. The practical limit is determined by the road mesh rendering and the terrain surface area available. Very wide roads (over 40 meters) may exhibit texture tiling artifacts or collision mesh issues. For very wide paved areas, consider using terrain material painting instead of a road asset.

How do I create a road that curves smoothly around obstacles?

Place control points at regular intervals around the obstacle. Use the tangent handles on each control point to shape the curve. The tangent direction and length control the curvature of the road between control points. For tight curves, place control points closer together (5-10 meter intervals) and adjust tangents to produce the desired arc.

Can I create branching roads with a single spline?

Road splines in Unturned are linear sequences of control points. Branching (Y-shaped intersections) requires separate spline segments that meet at their endpoints. Create one spline for each branch and position their endpoints to meet at the intersection point.

How do I make a road that changes width along its length?

The road asset defines a single width for the entire spline. Variable-width roads are not supported through a single asset. To simulate a road that widens or narrows, create multiple short road segments with different width values and blend them visually through careful endpoint alignment.

Best practices

  • Set the Chart field explicitly on every road asset for consistent minimap rendering, rather than relying on legacy classification.
  • Use the full width and depth values (not half values) when authoring modern road assets.
  • Use VanillaPhysicsMaterial instead of a custom PhysicsMaterial unless the custom behavior is specifically required.
  • Match the road texture's tiling frequency to the road width for natural-looking texture repeat. Use RepeatDistanceScale to fine-tune.
  • Keep road control points at regular intervals for smooth spline curvature. Avoid sharp angle changes between consecutive segments.
  • Test road physics by driving a vehicle across the road at various speeds to verify traction and collision behavior.
  • Offset the road slightly above the terrain (0.05-0.1) to prevent z-fighting between the road surface and the terrain surface.
  • Document road assets in the map project's reference so other mappers on the team can use consistent road types.

Appendix A: Road asset .dat quick-reference template

Chart <None|Highway|Road|Path>
Depth 0.5
OffsetAlongNormal 0.05
RepeatDistanceScale 1.0
TexturePath <bundle> <path/to/texture>
VanillaPhysicsMaterial Concrete_Static
Width 12.0

Appendix B: Road asset design reference

The table below provides cohort-validated road asset configurations for common road types.

Road typeWidthDepthOffsetChartPhysicsMaterialTexture tiling
Narrow dirt path3.0-4.00.0-0.20.0-0.02PathGravel_Static or Dirt_Static1.5-2.0
Single-lane gravel6.0-8.00.2-0.40.02-0.05PathGravel_Static1.0-1.5
Two-lane road10.0-14.00.4-0.60.05-0.08RoadConcrete_Static0.8-1.0
Highway18.0-24.00.6-1.00.08-0.15HighwayConcrete_Static0.6-0.8
Bridge deckSame as road width1.0-2.02.0-5.0 (elevated)RoadMetal_Static1.0
Runway20.0-40.00.8-1.20.05-0.1HighwayConcrete_Static0.5-0.7
Parking lot10.0-20.00.3-0.50.03-0.05RoadConcrete_Static1.0-1.5
Sidewalk2.0-4.00.2-0.40.05-0.1PathConcrete_Static2.0-3.0

Appendix C: Road spline placement best practices

The following best practices apply to road spline control point placement in the level editor.

PracticeRationale
Place control points at 10-20 meter intervals for straight roadsEnsures smooth curvature without unnecessary vertices
Place control points at 5-10 meter intervals for curved roadsProvides enough vertices for smooth curves
Align control points with terrain contoursPrevents the road from floating above or sinking into the terrain
Use tangent handles to control curve shapeProduces smoother transitions than relying on vertex position alone
Avoid 90-degree angle changes between consecutive segmentsRoads with sharp angles cause rendering artifacts and unrealistic vehicle behavior
Place road splines before terrain decoration (foliage, props)Foliage and props can be placed relative to the road positions
Leave 1-2 meters of clearance on each side of the roadPrevents foliage from clipping through the road surface
Verify road connectivity at map boundariesRoads that reach the map edge should connect sensibly to adjoining maps or fade naturally

Appendix D: Road spline troubleshooting table

SymptomMost likely causeResolution
Road texture appears stretched along the curveRepeatDistanceScale is too high for the road widthDecrease RepeatDistanceScale
Road mesh has visible gaps between segmentsControl points are too far apart for the curvatureAdd intermediate control points
Road surface clips through vehiclesDepth is too low or OffsetAlongNormal is too highAdjust Depth and Offset values
Road collider does not match the visual meshPhysicsMaterial has unexpected friction propertiesVerify the PhysicsMaterial or VanillaPhysicsMaterial assignment
Road appears on one side of the spline onlyControl point tangents are asymmetricAdjust tangent handles to symmetric positions
Road disappears at certain view distancesDraw distance or LOD settings affect the road meshCheck level editor draw distance settings
Road has incorrect width at junctionsWidth is consistent across all segments in the junctionUse the same Width value for all road segments at the junction

Appendix E: Legacy conversion reference table

Legacy valueModern asset valueConversion formula
Legacy Width 4Width 8Multiply by 2
Legacy Width 8Width 16Multiply by 2
Legacy Depth 0.25Depth 0.5Multiply by 2
Legacy Depth 1.0Depth 2.0Multiply by 2
Legacy Height 2 (for repeat distance)RepeatDistanceScale depends on WidthDivide legacy repeat distance by Width

Appendix C: Road asset troubleshooting table

SymptomMost likely causeResolution
Road appears half the intended widthWidth value matches legacy half-widthDouble the Width value for modern asset format
Road has no vertical thicknessDepth is 0.0Set Depth to a positive value
Road floats above terrainOffsetAlongNormal is too highReduce OffsetAlongNormal toward 0.0
Road is buried in terrainOffsetAlongNormal is too low or negativeIncrease OffsetAlongNormal
Road texture repeats too frequentlyRepeatDistanceScale is too lowIncrease RepeatDistanceScale
Road texture appears stretchedRepeatDistanceScale is too highDecrease RepeatDistanceScale
Road has wrong chart classificationChart field not set and legacy classification is incorrectSet Chart explicitly to the intended classification
Road has no collisionPhysicsMaterial or VanillaPhysicsMaterial is not setAssign a physics material
Road surface is slipperyPhysics material has low frictionUse Concrete_Static for standard roads
Road renders with default textureTexturePath not set and no Texture in bundleSet TexturePath to a valid master bundle pointer
Road spline is invisibleRoad asset not assigned to the splineAssign a road asset in the spline properties

Appendix D: External references

Cross-references

Appendix F: Road asset cross-map consistency guidelines

For map series or projects with multiple maps, consistent road asset properties across maps improve player experience.

Road typeWidthDepthPhysicsMaterialChart
Highway (all maps)20.00.8Concrete_StaticHighway
Standard road (all maps)12.00.5Concrete_StaticRoad
Gravel path (all maps)4.00.2Gravel_StaticPath
Bridge (all maps)12.02.0Metal_StaticRoad

Consistency across maps ensures that players who learn the road behavior on one map can predict it on another. This is especially important for curated map networks where players frequently switch between maps in the same session.

Appendix G: Road asset performance considerations

Road assets have the following performance characteristics that map authors should consider.

FactorImpactRecommendation
Spline vertex countEach additional vertex adds rendering overheadKeep splines under 100 control points per road segment
Road widthWider roads cover more terrain and add fill areaUse terrain material painting for very wide paved areas
Texture resolutionHigher-resolution textures consume more GPU memoryUse 256x128 or 512x256 textures for road surfaces
Physics material complexityCustom PhysicMaterials add no overheadAny physics material has equivalent performance
Number of road splinesEach spline is an independent draw callCombine visually continuous roads into as few splines as possible. Reducing spline count from 20 to 10 can cut road rendering overhead in half on maps with extensive networks.

Authoring checklist

Before using a road asset in a map project, confirm the following:

  • [ ] Width uses the full width (not half the legacy value)
  • [ ] Depth uses the full depth (not half the legacy value)
  • [ ] Chart is set explicitly for consistent minimap rendering
  • [ ] OffsetAlongNormal is appropriate for the terrain surface
  • [ ] TexturePath points to a valid texture in a master bundle
  • [ ] RepeatDistanceScale produces the intended texture tiling frequency
  • [ ] VanillaPhysicsMaterial or PhysicsMaterial is assigned
  • [ ] Legacy conversion values are correctly multiplied by 2
  • [ ] Road spline control points produce the intended path
  • [ ] Tested with a vehicle on the road surface

The road asset configuration workflow begins with defining the road asset .dat fields, proceeds to placing splines in the level editor, and concludes with testing vehicle physics on the completed road surface. Each step is independent but errors in early steps propagate through the workflow chain. A road asset with incorrect Width or Depth values produces roads that look wrong in every map that uses the asset, making the .dat authoring step the most critical in the entire workflow. A single digit error in the Width field produces roads that are half or double the intended size across the entire map.

Road asset files are small and easily version-controlled. The typical road asset .dat file is under 500 bytes and contains fewer than 10 fields. Despite this simplicity, getting the Width and Depth conversions wrong is the most common mapping error when upgrading to the modern road asset format from the legacy road editor system. The doubled values for Width and Depth are the single most frequent conversion mistake. Testing a road spline with a vehicle at multiple speeds and angles is the fastest way to verify that the road asset fields produce the intended behavior. A quick drive test catches conversion errors before they propagate across the map across multiple road splines.

The document history below records the version history of this reference article. The version numbers and dates reflect significant updates to the article content rather than updates to the road asset format itself.

Road asset authoring is a straightforward process when the field semantics are understood. The Width field controls horizontal size. The Depth field controls vertical thickness. The Chart field controls minimap rendering. The physics material controls surface behavior. Each field has a single clear responsibility, and the legacy conversion notes in this article resolve the only common source of confusion.

The road asset system replaces the legacy road editor system. The modern format exposes the same properties through the .dat file and the Unity master bundle system rather than through the in-editor road tool interface. Map authors upgrading from the legacy system should read the conversion notes carefully.

Document history

VersionDateAuthorNotes
1.02026-07-2657 StudiosInitial publication. Full road asset .dat field reference, chart classification system, legacy conversion notes, spline workflow, worked examples, FAQ.
1.12026-07-2657 StudiosAdded Appendix D: road spline troubleshooting table. Added Appendix F: cross-map consistency guidelines. Added Appendix G: performance considerations.
1.02026-07-2657 StudiosInitial publication.