Hello, here is the minimal steps needed to reproduce the issue on my end:
>>> from beamngpy import BeamNGpy, Scenario, Vehicle
>>> b = BeamNGpy(host="127.0.0.1", port=25252)
>>> scenario = Scenario("tech_ground", "On how to use custom mods")
>>> v=Vehicle("ego_vehicle", model="etk800", license="AI")
>>> scenario.add_vehicle(v, pos=(0, 0, 0), rot_quat=(0, 0, 1, 0))
>>> b.open()
<beamngpy.beamng.beamng.BeamNGpy object at 0x7fffe9388b60>
>>> scenario.make(b)
>>> b.scenario.load(scenario)
Exerpts from the lua console that seem relevant:
160.45826|I|spawn| Spawning object 'etk800' with default config
160.48770|D|GELua.core_vehicle_manager.vehicleLoader| partConfigData [string] = ""
160.48877|W|GELua.core_vehicle_partmgmt.| Problems reading requested configuration: ""
160.48885|W|GELua.core_vehicle_partmgmt.main| Supplied config file: not found. Using default config instead.
160.52286|E|GELua.jbeam.loadJBeamFile| Duplicate part found: license_plate_qld_1 from file /vehicles/common/licenseplates/mount_coottha/license-plate-mountcoottha-2-1.jbeam
...
161.40896|I|BeamNGVehicle| Unable to create UI texture, as UI is disabled
161.41715|I|BeamNGVehicle| Unable to create UI texture, as UI is disabled
161.41726|E|queueJSUITexture| UI texture '@etk800_gauges_screen' not found. Unable to execute JS code: setup({"uiUnitPower":"hp","uiUnitTorque":"metric","uiUnitVolume":"l","uiUnitDate":"ger","uiUnitConsumptionRate":"metric","uiUnitLength":"metric","displayWidth":512,"materialName":"@etk800_gauges_screen","displayHeight":256,"uiUnitWeight":"kg","uiUnitEnergy":"metric","uiUnitPressure":"bar","uiUnitTemperature":"c","htmlPath":"local://local/vehicles/etk800/gauges_screen/gauges_screen.html","unit":"metric"})
161.41726|E|queueJSUITexture| (currently available UI textures: )
161.42369|E|GELua.scenario_scenarios.scenarios| Prefab: on how to use custom mods already exist in level. Rejecting loading of duplicate.
...
161.93113|D|GELua.core_gamestate.gamestate| exiting : worldReadyState
161.93113|W|GELua.core_gamestate.gamestate| trying to exit state we haven't been in before -please check your code
161.93114|D|GELua.core_gamestate.gamestate| show main menu (false)
161.93115|D|GELua.core_gamestate.gamestate| exiting loading screen to menu
...
162.00093|E|queueJSUITexture| UI texture '@etk800_screen' not found. Unable to execute JS code: map.updateData({"x":9.291918541976e-05,"speed":0.33106674849987,"y":0.00031327302394857,"zoom":150.49660012275,"ignitionLevel":2,"rotation":359.99563368789})
162.00097|E|queueJSUITexture| (currently available UI textures: )
162.02892|E|queueJSUITexture| UI texture '@etk800_screen' not found. Unable to execute JS code: map.updateData({"x":-4.9842790303956e-05,"speed":0.4200365871191,"y":0.00037013318146251,"zoom":150.63005488068,"ignitionLevel":2,"rotation":359.99943127307})
162.02894|E|queueJSUITexture| (currently available UI textures: )
162.04114|D|libbeamng.XalVE| Loaded vehicle xlabCore
162.04121|I|libbeamng.TechCom| Started listening on 127.0.0.1/42749.
162.05289|I|GELua.tech_techCore.TechGE| New vehicle connection: 2665, 42749
162.06897|E|queueJSUITexture| UI texture '@etk800_screen' not found. Unable to execute JS code: map.updateData({"x":0.00015931217882326,"speed":0.48061328530312,"y":-0.00023253862434558,"zoom":150.72091992795,"ignitionLevel":2,"rotation":359.99977278252})
162.06899|E|queueJSUITexture| (currently available UI textures: )
...
162.39889|I|libbeamng.TechVE| Accepted new vehicle client: 127.0.0.1/38918
162.44295|E|queueJSUITexture| UI texture '@etk800_screen' not found. Unable to execute JS code: map.updateData({"x":7.638679729105e-05,"speed":0.32665564119816,"y":-0.00028206199522174,"zoom":150.4899834618,"ignitionLevel":2,"rotation":359.99958153723})
162.44297|E|queueJSUITexture| (currently available UI textures: )
etc.
And changing the vehicle model to utv
gives the @screen_gps
errors I reported earlier.
These results are with the suggested requestVehicleDashboardMap
patch, without loading my extensions.