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.
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"
}
]
}
In modern level creation, SpawnSphere is mainly used for:
The object name is the key value. info.json spawn point entries reference a SpawnSphere by its objectname.
| 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. |
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"
}
info.json references a spawn point object that does not exist, the spawn point may not appear or may fail when selected.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 defines where the spawn point is located.
"position": [100, 200, 2]
Place spawn points:
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.
SpawnSphere object in the World Editor and save the level.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.
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.
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.
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.
SpawnSphere as a named marker referenced by info.json. Do not use autoSpawn unless you specifically need legacy object spawning behavior.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.
Spawn points from info.json can appear as POIs in the big map.
The level system:
info.json.spawnPoints.objectname.info.json.If the SpawnSphere object is missing, the POI may not be created.
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"
}
]
}
SpawnSphere for level spawn locations.info.json using objectname.defaultSpawnPointName matches a valid spawn point.scale at [1, 1, 1] unless you need a larger editor marker.radius.autoSpawn behavior for normal level spawns.info.json.Possible causes:
info.json entryspawnPoints entry has no objectnameobjectname does not match the SpawnSphere nameitems.level.jsonCheck:
"defaultSpawnPointName": "spawns_default"
and verify that a matching SpawnSphere exists.
Rotate the SpawnSphere in the World Editor and save the level.
Move the SpawnSphere to a safer location with enough clearance.
Possible causes:
dataBlockCheck whether legacy spawning is enabled:
"autoSpawn": true
For normal level spawn markers, this should usually be false or omitted.
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)
Was this article helpful?