SIMPROPCONTAINER XML PROPERTIES
The <container_name.xml
file should be formatted as follows:
<?xml version="1.0" encoding="UTF-8"?>
<SimBase.Document>
<SimPropContainer.SimPropContainers>
<ReferencePointName>reference_point</ReferencePointName>
<SimPropContainer [attributes]>
<GUID>guid_here</GUID>
<Descr>SimProp-Container-Description-Here</Descr>
<SimPropBase [attributes]>
<!-- SIMPROP BASE PROPERTIES HERE -->
</SimPropBase>
<SimPropAttachs [attributes]>
<SimPropAttach [attributes]>
<!-- OBJECT PROPERTIES HERE -->
</SimPropAttach>
<SimPropAttach [attributes]>
<!-- OBJECT PROPERTIES HERE -->
</SimPropAttach>
<!-- FURTHER OBJECTS HERE -->
</SimPropAttachs>
</SimPropContainer>
</SimPropContainer.SimPropContainers>
</SimBase.Document>
Here you must include the <SimBase.Document>
element and within that the <SimPropContainer.SimPropContainers>
element (with no attributes).
IMPORTANT! The file details given here are meant purely for reference purposes and we do not recommend that you manually create these files but instead always use The Scenery Editor.
<ReferencePointName>
This element is used to assign a previously created Reference Point name to the SimProp Containers being defined. This reference point is the "root" or "origin" that will be used to position all SimProp Containers in the asset. The element has no attributes and is formatted as follows:
<ReferencePointName>CARGO_REF</ReferencePointName>
<SimPropContainer>
This element is used as a container element for all the other objects that comprise the SimProp Container object. It has the following attribute:
Attribute | Description | Type | Required |
---|---|---|---|
InstanceId |
The GUID used to identify this instance of the element. You can find more information on GUID's here: GUIDs | String | Yes |
Within this container the following elements are required:
<GUID>
This is a sub-element of the <SimPropContainer>
, <SimPropInclude>
, and <SimPropContainerInstance>
elements, and is used to give a GUID to the SimPropContainer object/instance or included object. This GUID will be used as a reference in other files for missions and scenery. The element is formatted like this:
<GUID>{FDE1EC0B-7021-45E9-AC3B-066E307B4979}</GUID>
You can find more information on GUID's here: GUIDs
<Descr>
This is a sub-element of <SimPropContainer>
and is used to give a name to the SimProp Container object. The element is formatted like this:
<Descr>Building-NE-Carpark</Descr>
<CameraDefinition>
This is a sub-element of <SimPropContainer>
and is used to supply a camera definition file to be used with the SimProp Container. The element has no attributes and requires the following sub-element:
<CameraDefinitionPath>
This is a sub-element of <CameraDefinition>
and is used to give the path to the cameras.cfg you want to associate with the SimProp Container. When the container is spawned, the camera definitions will be applied and made available, and when the Container is destroyed they will be removed. The element is formatted as follows:
<CameraDefinition>
<CameraDefinitionPath>SimPropContainers\containers\Hangar_Plane.CFG</CameraDefinitionPath>
</CameraDefinition>
<SimPropInclude>
This is a sub-element of <SimPropContainer>
and is used to include another SimProp Container object with the one being defined. The element is formatted like this:
<SimPropInclude>
<GUID>"{C382BACA-32F5-4EFF-88D1-73688CCD7EFC}"</GUID>
</SimPropInclude>
Within this element the following sub-element is required:
<Override>
This is a sub-element of <SimPropContainer>
and is used to override the current SimProp Container with another one, identified by its GUID . The element is formatted like this:
<Override>
<GUID>"{C382BACA-32F5-4EFF-88D1-73688CCD7EFC}"</GUID>
</Override>
Within this element the following sub-element is required:
<SimPropBase>
This is a sub-element of <SimPropContainer>
and is used to define the base "pivot" (root) object around which the SimProp Container will be positioned. This element can take one of the following sub-elements:
Optionally you can use the following sub-element:
<SimPropBase>
has the following attributes:
Attribute | Description | Type | Required |
---|---|---|---|
InstanceId |
The GUID used to identify this instance of the element. You can find more information on GUID's here: GUIDs | String | Yes |
DisplayName |
The name of the element as it is displayed in the Scenery Editor. | String | No |
<SimPropAttachs>
This is a sub-element of <SimPropContainer>
and is used to hold all the different objects that will be used in the SimProp Container (except the "pivot" object). This element can take the following sub-element:
This element requires a single attribute:
Attribute | Description | Type | Required |
---|---|---|---|
InstanceId |
The GUID used to identify this instance of the element. You can find more information on GUID's here: GUIDs | String | Yes |
<SimPropAttach>
This is a sub-element of <SimPropAttachs>
and is used to define a single object that is part of the SimProp Container. It has no elements and can have only one the following sub-elements (these define the "object" that is being attached):
<Container>
<DecalObject>
<EmptyWorldObject />
<Light>
<NodeName>
<ProceduralInstance>
<LibraryObject>
<SimPropContainerInstance>
<SceneryTree>
Additionally, the following optional elements can be used to modify certain properties for the object:
This element has the following attributes:
Attribute | Description | Type | Required |
---|---|---|---|
InstanceId |
The GUID used to identify this instance of the element. You can find more information on GUID's here: GUIDs | String | Yes |
DisplayName |
The name of the element as it is displayed in the Scenery Editor. | String | No |
Each object being defined by this element should have a <Transform>
and only one of the available object elements. The element is formatted like this:
<SimPropAttach InstanceId="{C382BACA-32F5-4EFF-88D1-73688CCD7EFC}">
<Transform InstanceId="{74B0FA51-1172-4D1B-A293-3E813C869215}">
<AttachedWorldObject>
<OffsetXYZ>-2.786,1.382,15.162,0.000</OffsetXYZ>
<Orientation>0.000,0.000,0.000</Orientation>
</AttachedWorldObject>
</Transform>
<LibraryObject InstanceId="{FC686017-FDDF-4E3B-93C8-7A92F9C95723}">
<MDLGuid>{D644CFFE-3CA0-481F-ADCA-291A1D3B99A5}</MDLGuid>
</LibraryObject>
</SimPropAttach>
<AOStrength>
This is a sub-element of the <SimPropAttachs>
element, and is used to set the ambient occlusion strength for the object. The value used here should normally be between 0 and 2 and will change the "brightness" of the object in the SimProp Container.
<Transform>
This is a sub-element of the <SimPropAttachs>
element, and is used to contain the <AttachedWorldObject>
element where the different values required to position and orientate the object are stored. This element requires a single attribute:
Attribute | Description | Type | Required |
---|---|---|---|
InstanceId |
The GUID used to identify this instance of the element. You can find more information on GUID's here: GUIDs | String | Yes |
<NodeName>
This is a sub-element of the <SimPropAttachs>
element, and is used to give the name for a "fake" node assigned to the object being added into the SimProp Container. This node name can then be referenced in other XML to spawn NPC characters and other objects. The element has no attributes.
<OnlyInEdition>
This is a sub-element of the <SimPropAttachs>
element, and - when set to 1 (True) - tells the simulation that this object should only be present when the SImProp Container is being edited in the Scenery Editor.
<Optimizable>
This is a sub-element of the <SimPropAttachs>
element, and - when set to 1 (True) - tells the simulation that this object can be optimised, such that it will appear or not based on the graphics settings of the user. Ideally this is used for those SimProp Containers that are purely visual in nature and that are not essential for a SimObject to function or for visual fidelity in a scene.
<AttachedWorldObject>
This is a sub-element of <Transform>
and is used to define the spacial representation of the object within the SimProp Container. It has no attributes and can have the following sub-elements:
<OffsetXYZ>
This sub-element of <AttachedWorldObject>
is used to define the position offset from the x/y/z position of the SimProp Container "pivot" that the object is being attached to. The element has no attributes and requires 3 float values, separated by a comma, to define the X, Y and Z offsets.
<Orientation>
This element is used <AttachedWorldObject>
to set the orientation of the attached object. It has no attributes, and requires 3 float values, separated by a comma for pitch, bank and heading (in degrees).
<LibraryObject>
This is a sub-element of either the <SimPropBase>
or <SimPropAttachs>
elements and is used to define a single scenery object that is part of the SimPropContainer. It can have the following sub-element:
This element requires a single attribute:
Attribute | Description | Type | Required |
---|---|---|---|
InstanceId |
The GUID used to identify this instance of the element. You can find more information on GUID's here: GUIDs | String | Yes |
<MDLGuid>
This is a sub-element of the <LibraryObject>
element, and is used to give a GUID to the scenery object instance. This GUID can be used as a reference in other files for missions and scenery. You can find more information on GUID's here: GUIDs
<Scale>
This is a sub-element of the <LibraryObject>
element, and is used to set the object scale, where a value of 1 is the default size the object was created at.
<Container>
This is a sub-element of either the <SimPropBase>
or <SimPropAttachs>
elements and is used to define a single SimObj object that is part of the SimProp Container. It can have the following sub-element:
This element requires a single attribute:
Attribute | Description | Type | Required |
---|---|---|---|
InstanceId |
The GUID used to identify this instance of the element. You can find more information on GUID's here: GUIDs | String | Yes |
<ContainerTitle>
This is a sub-element of the <Container>
element, and is used to give the container title of the SimObj object instance used in the SimProp Container. The container title is found in the aircraft.cfg file [FLTSIM.N]
section.
<SimPropContainerInstance>
This is a sub-element of either the <SimPropBase>
or <SimPropAttachs>
elements and is used to define a different SimProp Container to be used within the one being defined. It can have the following sub-element:
This element requires a single attribute:
Attribute | Description | Type | Required |
---|---|---|---|
InstanceId |
The GUID used to identify this instance of the element. You can find more information on GUID's here: GUIDs | String | Yes |
<ProceduralInstance>
This is a sub-element of the <SimPropAttachs>
element, and is used to define a proceedural object instance to use in the SimProp Container. This element requires a single attribute:
Attribute | Description | Type | Required |
---|---|---|---|
InstanceId |
The GUID used to identify this instance of the element. You can find more information on GUID's here: GUIDs | String | Yes |
<DecalObject>
This is a sub-element of the <SimPropAttachs>
element, and is used to define a decal object to use in the SimProp Container. This element can have the following sub-elements:
<DecalChannelFlags>
<DecalFadeAngle>
<DecalFadeDepth>
<DecalObjectSize>
<DecalOpacity>
<DecalOverrideNormal>
<DecalPriority>
<DecalOverrideNormal>
<MaterialGUID>
This element requires a single attribute:
Attribute | Description | Type | Required |
---|---|---|---|
InstanceId |
The GUID used to identify this instance of the element. You can find more information on GUID's here: GUIDs | String | Yes |
The element is formatted like this:
<DecalObject InstanceId="{0C82B71D-98EF-481C-BA0F-074A52304D04}">
<MaterialGUID>{B5B92BF8-FC5A-41A7-BEEE-FA1582283952}</MaterialGUID>
<DecalObjectSize>122.074,12.207,122.074</DecalObjectSize>
<DecalOpacity>0.090</DecalOpacity>
<DecalChannelFlags>7</DecalChannelFlags>
<DecalFadeAngle>1.000</DecalFadeAngle>
<DecalOverrideNormal>False</DecalOverrideNormal>
</DecalObject>
<DecalChannelFlags>
This is a sub-element of the <DecalObject>
element, and is used to define how the decal will be applied. It has no attributes and takes an integer where:
- 1 - on scenery
- 2 - on the ground
- 3 - on scenery and the ground
<DecalFadeAngle>
This is a sub-element of the <DecalObject>
element, and is used to define the fade out range of the decal based on the angle between the decal's backward direction and the vertex normal of the receiving surface.
<DecalFadeDepth>
This is a sub-element of the <DecalObject>
element, and is used to control how quickly the decal will fade it's opacity relative to the the center plane of the bounding box. A value of 1 will show the decal almost from the moment the bounding box intersects the opposing plane, while a value of 0 will fade the decal in/out as the bounding box moves through the opposing plane.
<DecalObjectSize>
This is a sub-element of the <DecalObject>
element, and is used to define the size of the decal. This element requires 3 values, separated by commas giving the X, Y, and Z size (in meters).
<DecalOpacity>
This is a sub-element of the <DecalObject>
element, and is used to define the opacity (alpha) of the decal, between 0 and 1. Note that values greater than 1 will raise the opacity threshold and gradually force the alpha of ALL pixels towards 1, so transparent and semi-transparent areas will become more opaque the higher the value.
<DecalOverrideNormal>
This is a sub-element of the <DecalObject>
element, and is used to defines whether the scenery/ground normal map will be overridden by the normal map for the decal object (1, True) or not (0, False).
<DecalPriority>
This is a sub-element of the <DecalObject>
element, and is used to define the priority of the decal. This is important if you have multiple decal objects that are overlapping, as it permits you to set the render order based on the priority.
<MaterialGUID>
This is a sub-element of the <DecalObject>
element, and is used to define a material to the decal, using the material GUID.
<EmptyWorldObject />
This is a sub-element of <SimPropBase>
and <SimPropAttachs>
is used to define an "empty" object for the SimProp container to use as the "pivot" point (root), or to be overriden depending on other factors using mission or cabin service XML. It is used when you do not wish to use a Scenery or SimObj for the pivot (root), and only requires a single attribute:
Attribute | Description | Type | Required |
---|---|---|---|
InstanceId |
The GUID used to identify this instance of the element. You can find more information on GUID's here: GUIDs | String | Yes |
<Overridable>
This is a sub-element of <EmptyWorldObject />
, and when set to 1 (True), it tells the simulation that this object can be overriden by another one. If omitted or set to 0 (False), the object cannot be overriden.
<Light>
This is a sub-element of <SimPropBase>
and <SimPropAttachs>
is used to define a light object that is to be part of the SimProp Container. This element has the following attribute:
Attribute | Description | Type | Required |
---|---|---|---|
InstanceId |
The GUID used to identify this instance of the element. You can find more information on GUID's here: GUIDs | String | Yes |
The element requires the following sub-element which will define what other sub- elements you can use:
If this is set to advanced then you can have the following additional elements:
If this is set to street light then you can have the following additional elements:
<LightIntensity>
<LightColor>
<LightTemperature>
<LightInnerAngle>
<LightOuterAngle>
<LightHasSymmetry>
<LightDayNightCycle>
<LightFlashDuration>
<LightFlashFrequency>
<LightFlashPhase>
<LightRandomPhase>
<LightRotationPhase>
<LightRotationSpeed>
<AdvancedLight>
This is a sub-element of the <Light>
element, and is used to set whether the light is an advanced light (1, True) or a street light (0, false).
<LightColor>
This is a sub-element of the <Light>
element, and is used to define the colour of the light. The element requires three values, separated by a comma in the fomrat of R, G, and B. Values should be between 0 and 1. This can be used by both advanced lights and street lights, but if it is used then you cannot use the <LightTemperature>
element.
<LightIntensity>
This is a sub-element of the <Light>
element, and is used to set the intensity of the light when fully on. Intensity is measured in candela, and higher values will mean a more intense light which will be visible at a greater distance. This can be used by both advanced lights and street lights.
<LightTemperature>
This is a sub-element of the <Light>
element, and is used to set the temeprature (in kelvin) of the light, determining its colour. This can be used by both advanced lights and street lights, but if it is used then you cannot use the <LightColor>
element.
<LightDayNightCycle>
This is a sub-element of the <Light>
element, and is used to define whether the light should obey the day/night cycle (1, True) set by the simulation, or not (0, False). This can only be used by street lights.
<LightFlashDuration>
This is a sub-element of the <Light>
element, and is used to set the duration of the flash (ie: when the light is on) for a flashing light. If set to 0, the duration is "infinite" and the light is always on. This can only be used by street lights.
<LightFlashFrequency>
This is a sub-element of the <Light>
element, and is used to give the combined total frequency of the light being on and the light being off (including fades in/out). For example, setting the duration to 10 and the frequency to 20 would have an "on" of 10 and an "off" of 10 (so the total is the frequency value of 20). This can only be used by street lights.
<LightFlashPhase>
This is a sub-element of the <Light>
element, and is used define the offset value for the light frequency so you can create sequences of flashing lights that flash on/off at different times but with the same frequency. This can only be used by street lights.
<LightRandomPhase>
This is a sub-element of the <Light>
element, and is used to set whether the light phase should be randomised (1, True) or not (0, False). This can only be used by street lights.
<LightRotationSpeed>
This is a sub-element of the <Light>
element, and is used to set the rotation speed (in RPM). If set to 0, the light will not rotate.
<LightRotationPhase>
This is a sub-element of the <Light>
element, and is used to create an offset value for the light rotation so you can create sequences of rotating lights that spin at different times but with the same speed. The value here should be between 0 and 1.
<LightHasSymmetry>
This is a sub-element of the <Light>
element, and is used to define whether the light is symmetrical (1, True) or not (0, False). This can only be used by street lights.
<LightInnerAngle>
This is a sub-element of the <Light>
element, and is used to define the inner angle (in degrees) of the light cone. This can only be used by street lights.
<LightOuterAngle>
This is a sub-element of the <Light>
element, and is used to define the outer angle (in degrees) of the light cone. This can only be used by street lights.
<LightShapeType>
This is a sub-element of the <Light>
element, and is used to define the shape of the light. It can only be one of the following strings:
- point
- spot
- disk
This can only be used by Advanced lights.
<LightSourceRadius>
This is a sub-element of the <Light>
element, and is used to set the radius of the light, in meters. This element is only used when the <LightShapeType>
is set to either point or disk. This can only be used by Advanced lights.
<SceneryTree>
This is a sub-element of the <SimPropAttachs>
element, and is used to add a tree object into the SimProp Container. The element has no attributes, but requires the following sub-elements:
<SpecieName>
This is a sub-element of the <SceneryTree>
element, and is used to give the name of the species of tree that is being spawned.
<SpecieModelGUID>
This is a sub-element of the <SceneryTree>
element, and is used to give the GUID of the tree model that should be used for the tree object being spawned.