Level gameplay data is the layer that connects a level’s scene, roads, sites, traffic, missions, POIs, and map UI. Most of these systems already have dedicated format or class pages. This page is a high-level integration guide: use it to understand which systems depend on each other and where to continue reading.
For field-level reference, use the dedicated pages instead of this overview:
info.json)
.sites.json)
map.json)
signals.json)
*.buslines.json)
*.facilities.json)
*.vehGroup.json)
driftSpots/)
crawls/)
dragstrips/)
Gameplay features usually combine several kinds of data:
| Layer | Owns | Used by |
|---|---|---|
info.json |
Level metadata, spawns, traffic support, road rules, minimap layer references | Level selector, spawn UI, big map, minimap, traffic, regional gameplay |
| Scene objects | Roads, waypoints, triggers, gameplay areas, POIs, spawn spheres | Navgraph, traffic, missions, facilities, speedtraps, bus stops |
.sites.json files |
Locations, zones, parking spots, boundaries | Facilities, parking, traffic, missions, career/freeroam features |
map.json |
Manual navgraph corrections and special links | AI, traffic, navigation, route UI, minimap/big map routes |
signals.json |
Traffic signal logic | Traffic AI, red-light cameras, intersection behavior |
| Feature folders | Bus routes, drag strips, drift spots, crawls, quickrace, scenarios | Feature-specific Lua systems and editor tools |
gameplay/missions/ |
Modern mission definitions | Mission manager, mission type constructors, Flowgraph |
Treat these as connected data, not independent files. A mission may start from gameplay/missions/, use path data from race.race.json, query sites from the level, route over the navgraph, show a marker through the POI system, and depend on scene triggers or waypoints.
A gameplay-heavy level may include some of these folders or files:
levels/<levelName>/
+-- buslines/
+-- crawls/
+-- dragstrips/
+-- driftSpots/
+-- facilities/
+-- quickrace/
+-- scenarios/
+-- camPaths/
+-- city.sites.json
+-- facilities.sites.json
+-- map.json
+-- signals.json
+-- triggers.json
+-- *.vehGroup.json
Not every level needs all of them. Small sandbox or test levels may only need info.json, a scene tree, spawn points, and simple road/navgraph data.
Facilities give gameplay meaning to places such as garages, gas stations, dealerships, computers, delivery providers, private sellers, and drag strips. Their spatial data is usually supplied by sites and scene objects rather than being duplicated in the facility entry.
Use the existing pages for details:
*.facilities.json)
for the general facility file format..sites.json)
for zones, parking spots, boundaries, and named locations.When something facility-related does not appear in freeroam, career, or the big map, check the chain in this order: facility entry, referenced sites file, referenced zone/parking names, referenced scene objects, and POI provider behavior.
Bus route data lives in buslines/, but the route usually depends on more than the JSON file. A route may require scene bus stop objects or triggers, valid stop ids, route helper nodes, and a connected navgraph.
Keep bus route names, stop ids, and waypoint names stable after missions or UI reference them. For format details, see Bus Lines (*.buslines.json)
. For trigger object behavior, see BeamNGTrigger
.
These feature folders are level-local gameplay data. They often pair feature-specific files with shared systems such as sites, navgraph routes, scene markers, facilities, and missions.
| Feature | Typical level folder | Usually depends on |
|---|---|---|
| Drift spots | driftSpots/<spotName>/ |
Drift metadata, route/path data, boundary sites, marker scene objects, big map POIs |
| Crawls | crawls/ |
Path/trail data, boundaries, starting positions, sites, mission-local data where applicable |
| Drag strips | dragstrips/ |
Strip data, timing/staging data, lane waypoints, prefabs, facilities, scene objects |
See Drift Spots , Crawls , and Drag Strips for the folder/file references.
Traffic is a combined result of:
info.jsonmap.json.sites.jsonsignals.jsontraffic.vehGroup.json or police.vehGroup.jsonUse Navigation map (map.json)
for graph corrections, Traffic Signals (signals.json)
for signal data, DecalRoad
for road fields, and Speedtraps
for camera setup.
Use Vehicle Groups (*.vehGroup.json)
for shared, level-specific, or mission-specific vehicle pools.
After editing roads, waypoints, map segments, signals, or traffic-related sites, reload the navgraph and test with live traffic. The same graph is also used by route previews, missions, bus routes, and map UI, so traffic problems often point to a shared graph issue.
Modern missions usually live outside the level folder:
gameplay/missions/<levelName>/<missionType>/<missionName>/
Mission folders commonly connect to level data:
| Mission data | Connects to |
|---|---|
Mission info.json |
Mission type, UI metadata, unlocks, rewards, start data |
race.race.json or feature path files |
Checkpoints, route paths, start positions, recovery points |
*.flow.json |
Flowgraph mission logic and custom behavior |
bounds.sites.json or other sites |
Boundaries, zones, and mission areas |
| Level scene objects | Triggers, waypoints, markers, POIs, barriers |
| Level systems | Navgraph, facilities, bus routes, drag strips, traffic, parking |
Mission types such as busMode, crawl, drift, dragStripRace, delivery, garageToGarage, timeTrial, aiRace, rallyStage, and flowgraph each consume different combinations of this data. When a mission appears in the UI but behaves incorrectly, check the mission folder first, then the level systems it references.
Legacy content under levels/<levelName>/scenarios/ is separate from modern gameplay/missions/. Some levels still contain both.
POIs are not owned by one required level file. The big map aggregates POIs from spawn metadata, missions, facilities, gas stations, drift spots, crawls, drag strips, parking/sites, and scene BeamNGPointOfInterest objects.
The optional levels/<levelName>/pois/ folder may be used by tools, but it is not the only POI source. When a marker is missing, identify the owning feature first, then check that feature’s references.
The minimap and big map also use the navgraph. A minimap image layer can be valid while route generation is broken, and route generation can work while a minimap image is missing. Check info.json minimap references separately from roads, waypoints, and map.json.
Some level folders are feature-specific and should stay out of the main file-format pages unless they get a dedicated schema reference:
| Folder or file | Purpose |
|---|---|
quickrace/ |
Level-local quickrace tracks and generated race content. |
camPaths/ |
Camera path files used by tools, missions, scenarios, or presentation. |
triggers.json |
Freeroam or level-specific trigger wiring. |
*.vehGroup.json |
Optional traffic, police, or mission vehicle pools. |
Use these as integration points. If a feature has its own authoring page, keep detailed setup there and link to it from this overview.
For a new gameplay-heavy level, this order keeps dependencies manageable:
info.json metadata, spawn entries, traffic support, road rules, and minimap references.map.json.Before shipping level gameplay data, check:
map.json, signal, or site edits.Was this article helpful?