Hi, I want to import my OpenDrive file using the Road Architect. I select “Import road network from disk” → “Import from File”, then I browse to my xodr file, double click it and then the “File Import” dialog closes and then nothing happens. Neither the map is changing nor are there any Roads or Junctions in the Road Architect to select.
There is no error or other message and I cannot find anything in the logs.What can I do?
Hi @sebp,
Thanks for reporting the issue!
Could you please let us know which version of BeamNG.tech you’re using? That would help us narrow down the cause.
In the meantime, you might want to try using the Python API provided by BeamNG for OpenDRIVE import. There’s a helpful example script you can test here:
This might give you more visibility into any potential issues during the import process and help validate your .xodr file.
Also, make sure you’re trying the import on a map with proper terrain (for example, tech_ground) instead of minimal maps like smallgrid, which may not support road network rendering properly.
Let us know how it goes or if you encounter any further issues!
Hi, thanks for the response. I tried with the script. But the map that starts is empty. It simply shows the ego vehicle on a grey ground. The python script logs the following output.
2025-07-04 15:32:45,689 |INFO |beamngpy |Started BeamNGpy logging.
Initializing BeamNG...
2025-07-04 15:32:47,722 |INFO |beamngpy.BeamNGpy |Opening BeamNGpy instance.
2025-07-04 15:32:47,745 |INFO |beamngpy.BeamNGpy |Started BeamNG.
2025-07-04 15:32:57,746 |INFO |beamngpy.BeamNGpy |Connecting to BeamNG.tech at: (localhost, 25252)
2025-07-04 15:32:57,752 |INFO |beamngpy.BeamNGpy |Successfully connected to BeamNG.tech.
2025-07-04 15:32:57,753 |INFO |beamngpy.BeamNGpy |BeamNGpy successfully connected to BeamNG.
Extracting road data from file...
Primitives to import: lines: 10 ; arcs: 4 ; spirals: 0 ; explicit cubics: 0 ; parametric cubics: 1815
Generating geometric primitives...
Adding road lateral offsetting...
Adjusting global elevation...
Loading import in scenario...
Import complete.
Making scenario...
2025-07-04 15:33:04,593 |INFO |beamngpy.BeamNGpy |Loaded map.
2025-07-04 15:33:05,153 |INFO |beamngpy.Vehicle |Vehicle ego_vehicle connected to simulation.
2025-07-04 15:33:05,153 |INFO |beamngpy.BeamNGpy |Attempting to connect to vehicle ego_vehicle
2025-07-04 15:33:07,170 |INFO |beamngpy.BeamNGpy |Successfully connected to BeamNG.tech.
2025-07-04 15:33:07,170 |INFO |beamngpy.BeamNGpy |Successfully connected to vehicle ego_vehicle.
2025-07-04 15:33:07,171 |INFO |beamngpy.Scenario |Connected to scenario: roads_importer
2025-07-04 15:33:07,192 |INFO |beamngpy.BeamNGpy |Starting scenario.
Completed. Press Enter to exit...
The BeamNG.tech Console logs:
000.145|I|engine::OnlineServiceProvider::createOnlineServiceProvider|Online service provider is not used
000.423|I|GELua.|============== GELUA VM loading ===============
000.508|W|GELua.core_levels.|info.json missing: /levels/art/info.json
000.508|E|GELua.core_levels.|No entry point for level found: /levels/art. Ignoring level.
000.512|W|GELua.core_levels.|info.json missing: /levels/GridMap/info.json
000.513|E|GELua.core_levels.|No entry point for level found: /levels/GridMap. Ignoring level.
000.513|W|GELua.core_levels.|info.json missing: /levels/import/info.json
000.513|E|GELua.core_levels.|No entry point for level found: /levels/import. Ignoring level.
000.513|W|GELua.core_levels.|info.json missing: /levels/main/info.json
000.513|E|GELua.core_levels.|No entry point for level found: /levels/main. Ignoring level.
000.995|I|GELua.TechCom|Started listening on 127.0.0.1/25252.
001.974|W|engine::MaterialManager::mapMaterial|Warning, duplicate material. Overwriting. Old: /art/shapes/common/common.materials.json / shock_absorber / mapTo = shock_absorber vs new: /art/shapes/common/common.materials.json / shock_absorber / mapTo = shock_absorber
001.974|W|engine::SimNameDictionary::insert|Warning! You have a duplicate datablock name of shock_absorber. This can cause problems. You should rename one of them. ID (this object) 1670 and 1667 are conflicting.
002.036|I|GELua.|============== GELUA VM loaded ================
002.103|W|engine::run|Lua security sandbox not enabled! This can be dangerous if you are running untrusted Lua code.
To hide this warning, run BeamNG with either the '-enable-sandbox' argument to enable the sandbox
or with the '-disable-sandbox' argument to explicitly disable it.
In future versions of BeamNG.tech, '-enable-sandbox' will become the default option.
005.038|I|GELua.adas_gauge_light.modscript|adas_gauge_light loaded (BeamNG.tech)
010.385|I|GELua.tech_techCore.TechGE|Accepted new client: 127.0.0.1/55144
012.661|W|GELua.core_levels.|info.json missing: /levels/art/info.json
012.662|E|GELua.core_levels.|No entry point for level found: /levels/art. Ignoring level.
012.662|W|GELua.core_levels.|info.json missing: /levels/GridMap/info.json
012.663|E|GELua.core_levels.|No entry point for level found: /levels/GridMap. Ignoring level.
012.663|W|GELua.core_levels.|info.json missing: /levels/import/info.json
012.663|E|GELua.core_levels.|No entry point for level found: /levels/import. Ignoring level.
012.665|W|GELua.core_levels.|info.json missing: /levels/main/info.json
012.665|E|GELua.core_levels.|No entry point for level found: /levels/main. Ignoring level.
012.745|W|GELua.core_levels.|info.json missing: /levels/art/info.json
012.746|E|GELua.core_levels.|No entry point for level found: /levels/art. Ignoring level.
012.748|W|GELua.core_levels.|info.json missing: /levels/GridMap/info.json
012.749|E|GELua.core_levels.|No entry point for level found: /levels/GridMap. Ignoring level.
012.749|W|GELua.core_levels.|info.json missing: /levels/import/info.json
012.750|E|GELua.core_levels.|No entry point for level found: /levels/import. Ignoring level.
012.750|W|GELua.core_levels.|info.json missing: /levels/main/info.json
012.750|E|GELua.core_levels.|No entry point for level found: /levels/main. Ignoring level.
012.754|I|GELua.tech_techCore.TechGE|Loading scenario: /levels/tech_ground/scenarios/roads_importer.json
012.754|I|GELua.tech_techCore.TechGE|Scenario found...
012.780|I|GELua.core_quickAccess.|Loaded radial menu recent actions
013.517|I|GELua.levelLoading|Level loading: '/levels/tech_ground/'...
013.933|I|engine::SceneStaticManagerRender::_onObjectsReady|*** Built static data in 0.000s
013.935|I|GELua.levelLoading|Level loaded: /levels/tech_ground/main.level.json
013.936|I|engine::BeamNGPhysicsPlugin::reload|Physics collision reloading...
013.943|I|engine::BeamNGPhysicsPlugin::reload|Physics collision reloaded in 0.006s (0 entries generated in 0.006s, using 0.00mb)
014.064|I|spawn|Spawning object 'etk800' with default config
014.116|W|GELua.core_vehicle_partmgmt.|Problems reading requested configuration: ""
014.117|W|GELua.core_vehicle_partmgmt.main|Supplied config file: not found. Using default config instead.
014.386|W|GELua.core_vehicles.setPlateText|license plate format not found '52-11' in style 'vehicles/common/licenseplates/default/licensePlate-default.json'
014.386|I|GELua.core_vehicles.setPlateText|license plate fallback used 'vehicles/common/licenseplates/default/licensePlate-default-52-11.json'
014.544|I|collada| # Mesh Cache rebuilt summary: 6 of 122 files freshly loaded, 0 files already in cache
014.545|I|collada|893 of 3232 meshes loaded -> 27.63 %
016.357|E|GELua.scenario_scenarios.scenarios|Prefab: roads_importer already exist in level. Rejecting loading of duplicate.
016.357|I|engine::BeamNGPhysicsPlugin::reload|Physics collision reloading...
016.754|I|engine::BeamNGPhysicsPlugin::reload|Physics collision reloaded in 0.396s (1829 entries generated in 0.396s, using 0.02mb)
016.767|I|GELua.levelLoading|Loading screen disabled after 3.249s
016.767|I|GELua.levelLoading|Level loaded in 3.250s: init 0.146s + datablocks 0.047s + materials 0.062s + objects 0.164s + ai.map 0.000s + decals 0.000s + physics 0.007s + cam 0.000s + player 0.000s + fade 2.823s
016.798|I|GELua.ui_uinavi.|No minimap data found in levels info.json. Creating minimap data from terrainblock data...
016.855|I|libbeamng.engine.staticCollision|*** Loaded Static Collision in 0.054s, Triangles: 1686880, Memory: 84.34MB
017.569|I|libbeamng.TechCom|Started listening on 127.0.0.1/55146.
017.634|I|GELua.tech_techCore.TechGE|New vehicle connection: 18020, 55146
017.668|I|GELua.scenario_waypoints.waypoints|initialise called....
017.669|I|GELua.scenario_waypoints.waypoints|No lapconfig found or lapconfig empty. Not initializing waypoints system
019.708|I|libbeamng.TechVE|Accepted new vehicle client: 127.0.0.1/55147
0] GE-Lua>
I’m using BeamNG.tech 0.35.5.0.18098
Hi @sebp,
Thanks for the detailed logs. Please try the following steps to help identify the issue:
- Clean your setup
- Back up or rename your current BeamNG.tech user folder
- Re-extract a clean copy of the BeamNG.tech release
- Make sure everything is up to date
- Use the latest version of BeamNG.tech
- Use the latest compatible version of BeamNGpy
- Send the map file
If the issue persists, please provide the .xodr file so we can reproduce and debug the issue on our end.
Let us know how it goes.