SimGroup is a container object used to organize other level objects in the scene tree and in items.level.json files.
Most levels use a root group named:
MissionGroup
Nested groups are commonly used to keep props, lights, roads, terrain objects, markers, and generated content in manageable folders.
A simple group entry in items.level.json:
{
"class": "SimGroup",
"name": "road_props",
"__parent": "MissionGroup"
}
Objects can then use that group as their parent:
{
"class": "TSStatic",
"name": "barrier_01",
"__parent": "road_props",
"shapeName": "/levels/example/art/shapes/barrier.dae",
"position": [10, 20, 0],
"rotationMatrix": [1, 0, 0, 0, 1, 0, 0, 0, 1],
"scale": [1, 1, 1]
}
| Field | Type | Description |
|---|---|---|
class |
string | Must be "SimGroup". |
name |
string | Group name. Other objects use this value in __parent. |
__parent |
string | Parent group name. Usually "MissionGroup" or another group. |
persistentId |
string | Stable editor/runtime identifier where present. Usually generated automatically. |
hidden |
bool | Hides the group in supported editor/runtime contexts. Child objects may still exist. |
enabled |
bool/string | Group enabled state where present. |
__parent
Level item files commonly store hierarchy through __parent.
Example:
{
"name": "lights_night",
"class": "SimGroup",
"__parent": "MissionGroup"
}
Child object:
{
"name": "street_lamp_01",
"class": "SpotLight",
"__parent": "lights_night"
}
The group must be loaded before children that reference it, or the loading tool must rebuild the parent relationship.
__parent or intentionally rebuild the same group hierarchy.MissionGroup is the main level group used by the scene tree.
A typical main item file contains:
{
"name": "MissionGroup",
"class": "SimGroup",
"enabled": "1"
}
Most level objects are direct or indirect children of MissionGroup.
For tools that generate or transform levels:
__parent.persistentId values unless creating a new group.MissionGroup; large levels rely on nested groups for editing.__parent references the wrong group.__parent values are not updated.MissionGroup exists.__parent value resolves to an existing SimGroup.See also: Level object files (items.level.json)
.
Was this article helpful?