SpawnSphere

SpawnSphere is a marker object used to define spawn positions in a level. In BeamNG levels, it is most commonly used as a named spawn point referenced by info.json.

A SpawnSphere is a type of MissionMarker, so it is mainly a 3D editor marker rather than gameplay geometry. It is shown in the World Editor, but it is not intended to be visible as a normal level object during gameplay.


Basic example

Example SpawnSphere in items.level.json:

{
  "class": "SpawnSphere",
  "name": "spawns_default",
  "position": [0, 0, 1],
  "rotationMatrix": [1, 0, 0, 0, 1, 0, 0, 0, 1],
  "scale": [1, 1, 1],
  "dataBlock": "SpawnSphereMarker"
}

This object can then be referenced from info.json:

{
  "defaultSpawnPointName": "spawns_default",
  "spawnPoints": [
    {
      "translationId": "levels.example.spawnpoints.default",
      "description": "levels.example.spawnpoints.default.description",
      "objectname": "spawns_default",
      "preview": "spawns_default.jpg"
    }
  ]
}

Main purpose

In modern level creation, SpawnSphere is mainly used for:

  • Player spawn positions
  • Spawn point selection in the level UI
  • Big map spawn point POIs
  • Freeroam spawn locations
  • Scenario/mission reference positions
  • Editor-visible spawn markers

The object name is the key value. info.json spawn point entries reference a SpawnSphere by its objectname.


Important fields

Field Type Description
class string Must be "SpawnSphere".
name string Scene object name. Used by info.json spawn point entries.
position array[3] Spawn marker world position.
rotationMatrix array[9] Spawn orientation. Used to orient spawned vehicles/camera.
scale array[3] Editor marker scale. Usually [1, 1, 1].
dataBlock string Marker datablock used for editor visualization, usually SpawnSphereMarker.
spawnClass string Legacy/generic object spawning field. Usually not needed for level spawn points.
spawnDatablock string Legacy/generic object spawning field.
spawnProperties string Legacy/generic object spawning properties.
spawnScript string Legacy script executed after spawning an object.
autoSpawn bool Legacy behavior: spawns an object when the SpawnSphere is created.
spawnTransform bool Applies the SpawnSphere transform to spawned object when using legacy spawn behavior.
radius number Deprecated.

Relationship with info.json

Spawn points shown in the level selector and big map are defined in info.json, but their actual world transform comes from a scene object.

The objectname field in info.json should match the SpawnSphere object name.

Example:

{
  "translationId": "levels.example.spawnpoints.docks",
  "description": "levels.example.spawnpoints.docks.description",
  "objectname": "spawns_docks",
  "preview": "spawns_docks.jpg"
}

Matching scene object:

{
  "class": "SpawnSphere",
  "name": "spawns_docks",
  "position": [125, 420, 3],
  "rotationMatrix": [0, -1, 0, 1, 0, 0, 0, 0, 1],
  "scale": [1, 1, 1],
  "dataBlock": "SpawnSphereMarker"
}
If info.json references a spawn point object that does not exist, the spawn point may not appear or may fail when selected.

Default spawn point

The default spawn point is selected in info.json using:

"defaultSpawnPointName": "spawns_default"

This should match a SpawnSphere object name.

{
  "class": "SpawnSphere",
  "name": "spawns_default",
  "position": [0, 0, 1],
  "rotationMatrix": [1, 0, 0, 0, 1, 0, 0, 0, 1]
}

If no matching default spawn point is found, the level system may create a fallback default spawn entry.


Position

position defines where the spawn point is located.

"position": [100, 200, 2]

Place spawn points:

  • On valid ground or road surface
  • With enough clearance for the default vehicle
  • Away from walls, props, and traffic
  • Away from steep slopes unless intended
  • In locations that are safe after level load

Rotation

rotationMatrix defines the spawn orientation.

This affects the direction vehicles face when spawned.

Example identity rotation:

"rotationMatrix": [
  1, 0, 0,
  0, 1, 0,
  0, 0, 1
]

When setting spawn points, make sure the forward direction points toward a safe driving direction.

If a vehicle spawns facing the wrong way, rotate the SpawnSphere object in the World Editor and save the level.

Scale

scale controls the editor marker size.

"scale": [1, 1, 1]

For normal level spawn points, keep this at:

"scale": [1, 1, 1]

The old radius field is deprecated and should not be relied on for modern spawn point behavior.


dataBlock

Spawn spheres are usually visualized with a marker datablock:

"dataBlock": "SpawnSphereMarker"

This datablock defines the editor shape used to display the marker, commonly a green octahedron.

If the datablock is missing, the spawn point may still exist logically, but editor visualization may be broken.


MissionMarker behavior

SpawnSphere inherits from MissionMarker.

Mission markers are added to the scene mainly while editing, so they can be seen and manipulated in the World Editor.

They are not intended to act as visible gameplay meshes.


Legacy generic spawning fields

SpawnSphere also supports older generic spawning behavior through fields such as:

"spawnClass": "Player",
"spawnDatablock": "DefaultPlayerData",
"spawnProperties": "name = \"Bob\";",
"spawnScript": "echo(\"Spawned object\");",
"autoSpawn": true,
"spawnTransform": true

This system can create an object using spawnClass and spawnDatablock, optionally applying properties and script.

However, for modern BeamNG level spawn points, these fields are usually not needed.

For normal level spawn locations, use SpawnSphere as a named marker referenced by info.json. Do not use autoSpawn unless you specifically need legacy object spawning behavior.

spawnObject()

SpawnSphere has a spawnObject() function that can create an object based on its legacy spawn fields.

The spawned object can optionally receive the SpawnSphere transform if:

"spawnTransform": true

The object is added to MissionCleanup if available.

This is mostly legacy functionality and should not be confused with normal player spawn point selection.


Big map and POI integration

Spawn points from info.json can appear as POIs in the big map.

The level system:

  1. Reads info.json.
  2. Iterates through spawnPoints.
  3. Finds the object named by objectname.
  4. Uses that object’s position for the POI marker.
  5. Uses preview/description data from info.json.

If the SpawnSphere object is missing, the POI may not be created.


Example: multiple spawn points

items.level.json:

{"class":"SpawnSphere","name":"spawns_city","position":[100,200,1],"rotationMatrix":[1,0,0,0,1,0,0,0,1],"scale":[1,1,1],"dataBlock":"SpawnSphereMarker"}
{"class":"SpawnSphere","name":"spawns_highway","position":[500,100,1],"rotationMatrix":[0,-1,0,1,0,0,0,0,1],"scale":[1,1,1],"dataBlock":"SpawnSphereMarker"}
{"class":"SpawnSphere","name":"spawns_docks","position":[-250,400,1],"rotationMatrix":[1,0,0,0,1,0,0,0,1],"scale":[1,1,1],"dataBlock":"SpawnSphereMarker"}

info.json:

{
  "defaultSpawnPointName": "spawns_city",
  "spawnPoints": [
    {
      "translationId": "levels.example.spawnpoints.city",
      "description": "levels.example.spawnpoints.city.description",
      "objectname": "spawns_city",
      "preview": "spawns_city.jpg"
    },
    {
      "translationId": "levels.example.spawnpoints.highway",
      "description": "levels.example.spawnpoints.highway.description",
      "objectname": "spawns_highway",
      "preview": "spawns_highway.jpg"
    },
    {
      "translationId": "levels.example.spawnpoints.docks",
      "description": "levels.example.spawnpoints.docks.description",
      "objectname": "spawns_docks",
      "preview": "spawns_docks.jpg"
    }
  ]
}

Best practices

  • Use SpawnSphere for level spawn locations.
  • Give each spawn point a clear, stable name.
  • Reference spawn points from info.json using objectname.
  • Make sure defaultSpawnPointName matches a valid spawn point.
  • Place spawn points on safe, flat enough surfaces.
  • Orient spawn points toward a safe driving direction.
  • Keep scale at [1, 1, 1] unless you need a larger editor marker.
  • Do not rely on deprecated radius.
  • Avoid legacy autoSpawn behavior for normal level spawns.
  • Use preview images for each spawn point in info.json.

Common issues

Spawn point does not appear in level selector

Possible causes:

  • Missing info.json entry
  • spawnPoints entry has no objectname
  • objectname does not match the SpawnSphere name
  • Spawn point object is missing from items.level.json

Default spawn is wrong

Check:

"defaultSpawnPointName": "spawns_default"

and verify that a matching SpawnSphere exists.

Vehicle spawns facing wrong direction

Rotate the SpawnSphere in the World Editor and save the level.

Vehicle spawns inside geometry

Move the SpawnSphere to a safer location with enough clearance.

Spawn marker is not visible in editor

Possible causes:

  • Missing dataBlock
  • Editor marker visualization disabled
  • Not in editor mode
  • Marker object is hidden

Unexpected object spawns automatically

Check whether legacy spawning is enabled:

"autoSpawn": true

For normal level spawn markers, this should usually be false or omitted.


Summary

SpawnSphere is the standard marker object for level spawn positions.

In modern BeamNG levels, it is mainly used as a named transform referenced by info.json spawn point entries. The object provides the position and rotation, while info.json provides UI text, preview images, and default spawn selection.

Legacy generic object spawning fields still exist, but they are not normally needed for level spawn point setup.

See also: Level info (info.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.