Gameplay Areas and Points of Interest

BeamNG levels use helper objects for gameplay interaction areas and points of interest:

Class Purpose
BeamNGGameplayArea Editor-visible box area used by gameplay systems.
BeamNGPointOfInterest Named point/icon metadata used by map, career, facilities, deliveries, and other gameplay systems.

These objects are commonly used by fuel stations, dealerships, deliveries, garages, parking, and other interaction locations.


BeamNGGameplayArea example

{
  "class": "BeamNGGameplayArea",
  "name": "garage_area_01",
  "__parent": "garage_interaction",
  "position": [100, 200, 5],
  "rotationMatrix": [1, 0, 0, 0, 1, 0, 0, 0, 1],
  "scale": [2, 4, 2],
  "area2D": false
}

BeamNGPointOfInterest example

{
  "class": "BeamNGPointOfInterest",
  "name": "garage_icon_01",
  "__parent": "garage_interaction",
  "position": [100, 200, 7],
  "title": "Garage",
  "desc": "Vehicle service location",
  "type": "garage"
}

Important fields

Class Field Type Description
BeamNGGameplayArea position array[3] Area center.
BeamNGGameplayArea rotationMatrix array[9] Area orientation.
BeamNGGameplayArea scale array[3] Area volume size.
BeamNGGameplayArea area2D bool Treats the area as 2D where supported.
BeamNGGameplayArea color color Editor/debug draw color.
BeamNGPointOfInterest position array[3] POI location.
BeamNGPointOfInterest title string POI title or translation key.
BeamNGPointOfInterest desc string POI description or translation key.
BeamNGPointOfInterest type string POI type used by gameplay/UI systems.

Dynamic fields

Many shipped gameplay areas and points of interest are driven by Lua systems and related files.

Additional fields may be saved on these objects depending on the feature that owns them.

External tools should preserve unknown fields on gameplay helper objects. They may be required by career, delivery, fuel station, dealership, or mission scripts.

Tool notes

For tools that generate gameplay areas:

  • Keep related area and POI objects in the same group.
  • Preserve persistentId values unless creating new objects.
  • Preserve unknown dynamic fields.
  • Align the POI position with the visible icon/interaction point.
  • Make the gameplay area large enough for the intended vehicle interaction.
  • Validate related sites, facilities, or mission data when moving these objects.

Common issues

  • Interaction does not appear because the POI type or related gameplay metadata is missing.
  • Vehicle cannot interact because the area is too small or misplaced.
  • Icons appear in the wrong place because the POI position is separate from the area center.
  • Generated objects lose dynamic fields used by gameplay scripts.

Validation criteria

  • Area volume covers the intended interaction space.
  • POI position is readable on the map/UI.
  • Related gameplay data references the correct area/POI names where applicable.
  • Unknown dynamic fields are preserved by tools.

See also: Fuel Stations , Facilities , Gameplay Data , Sites , Level object files (items.level.json) .

Last modified: July 23, 2026

Any further questions?

Join our discord
Our documentation is currently incomplete and undergoing active development. If you have any questions or feedback, please visit this forum thread.