# Scenery Objects {{% tagged "internal" %}} {{< callout context="note" title="NOTE" icon="outline/bulb" >}} This object is not available when the Scenery Editor is in {{< link "../the-scenery-editor/#worldhub" >}}World Hub Mode{{< /link >}}. {{< /callout >}} {{% /tagged %}} A **scenery** object is an object element that is not specifically part of an airport and that does not have any simulation elements (ie: it will not participate in any way with the physics/world simulation) which can be added into a scene or a SimProp Container. For example, buildings, landscape items, parked vehicles, etc... When you select this object type you will be presented with a list of different scenery object elements listed in the [Objects](../../menus/the-view-menu/#objects) window: {{< image-center src="images/2_DevMode/scenery_editor/Objects/scenery/scenery_obj_0_list.png" alt="Different Scenery Object Elements Listed In The Objects Window" >}} The exact number and kind of elements listed will depend on the version of Microsoft Flight Simulator 2024 that you are running as well as what packages you have installed and whether you have added any custom [ModelLib](../../../project-editor/asset-types/#modellib) packages. You can add any of these elements into your scene without the need for an airport to be present, as outlined on the section on the [Objects](../../menus/the-view-menu/#objects) window. To place a Scenery object element in the scene you can click the {{< button "Add" />}} button, and then use the Translate [Gizmo](../../menus/the-view-menu/#gizmo) to position the object where you want, or you can enable {{< button "One-Click Placing" />}} and simply click in the world to place it. You may also use the Rotation [Gizmo](../../menus/the-view-menu/#gizmo) to change the angle the element is shown at, as well as the Scale [Gizmo](../../menus/the-view-menu/#gizmo) to change its size. ### Properties Scenery objects have different combinations of the following [Properties](../../menus/the-view-menu/#properties) which can be edited: {{< image-center src="images/2_DevMode/scenery_editor/Objects/scenery/scenery_obj_1_props.png" alt="The Properties Window For A Scenery Object" >}} - ##### Name This is the name of the element as defined from its file. - ##### Display Name This is the name of the element as it will be displayed in the [The Scenery Contents List](../../the-scenery-editor/#the-scenery-contents-list). This can be edited and is helpful for identifying elements when you have a lot of items in the content list. - ##### Assign Instance ID Clicking this button will create a {{< glossterm >}}guid{{< /glossterm >}}-formatted **Instance ID** unique to the instance of the object element placed within the simulation. This is distinct to the GUID value (explained below), as the GUID will be shared by all elements of the same object, while the instance ID will be unique to each instance of that object. This can be useful for many things like when creating mission scripts (for example). - ##### GUID This shows the unique {{< glossterm >}}guid{{< /glossterm >}} for the object element. This ID value is for the base object element itself, and will be shared with all instances of the element that are placed in the world. Use the {{< button "Assign Instance ID" />}} button if you require a unique GUID for a specific instance of the object element. You can press the {{< button "Copy" />}} button to copy the GUID to the clipboard if required. - ##### Package This shows the name of the package that the currently selected object element comes from. - ##### Snap To Ground This option is enabled by default, and will "snap" the object element to the ground so that - regardless of the terrain height - the element will always be at ground level, even when moving it. Enabling this means that the altitude [Gizmo](../../menus/the-view-menu/#gizmo) does nothing, while disabling this will permit you to change the altitude. When this is disabled, you will have a new option present in the Properties window: - ##### Offset To Ground This value is the altitude from the ground for the object, and editing it will raise or lower the element (and changing the altitude using the Translate Gizmo will also change this value automatically). - ##### Snap To Normal When enabled, the object element will change orientation based on the terrain surface normal underneath the center-point of the element. When disabled, it will maintain the default orientation regardless of the terrain underneath (or the orientation which is set using the Rotation [Gizmo](../../menus/the-view-menu/#gizmo), and note that when enabled the Rotation Gizmo will only affect the horizontal axis around the center of the element). This option is disabled by default. - ##### Snap To Building When enabled, the scenery object element will snap to the height of any procedural building that is at the position where it has been placed. This option is disabled by default. - ##### Use Low Resolution Altitude This option, when checked, will force the simulation to use a lower resolution altitude calculation when calculating the placement of the object in relation to the camera. In general this option only needs to be checked when the object is placed on a slope and you can see it "bounce" up or down in altitude as the camera gets closer/farther from it. Enabling this option should stop this changing visual altitude. - ##### Ground As Reference When this is enabled, the object altitude will be based on [AGL](../worldscript-objects/#), meaning that the object will always follow the height of the terrain and adapt to any changes that have been made by other scenery. - ##### Cast Shadow This option will enable or disable the ability for the element model to cast a shadow on the terrain. This option is enabled by default. - ##### Hide on TIN When checked, this option will hide the object element unless the {{< glossterm >}}tin{{< /glossterm >}} data is unavailable, for example when the user is offline, at which point it will be visible. The option is disabled by default. - ##### Use Instancing This option can be used to enable *object instancing* for the object being placed. This means that each time you place the object in the scene, you will be adding an "instance", and all instances will be batched and drawn in a **single** draw call. For an object to be instanced, it cannot be animated nor have multiple nodes - although it can use *fast lights* - and the property options will be limited. - ##### No Snow This option will enable or disable snow on the element (if supported). An element like an apron, for example, can have snow on it if the weather conditions and area have snow, and this option can tell the simulation to ignore that and to always display the element without snow. This option is disabled by default. - ##### No Decal This option will enable or disable [Decals](../decal-objects/) on the element (if supported). An element like a building, for example, can have decals on it to simulation weathering or some other effect, and this option can tell the simulation to ignore that and to always display the element without any decals. This option is disabled by default. - ##### Replace With The {{< button "Replace with..." />}} button permits you to select a different Scenery object / SimObject / SimPropContainer for the tower object element: {{< image-center src="images/2_DevMode/scenery_editor/Objects/scenerychange.png" alt="The Replace With... Menu" >}} Depending on what you select from the window these options open, the properties for the object may change. - ##### Convert To SimPropContainer The {{< button "Convert To SimObjectContainer" />}} button permits you to convert the current Control Tower object into a [SimPropContainer Object](../simpropcontainer-objects/). Clicking this button will open a new sub-window with the following options: {{< image-center src="images/2_DevMode/scenery_editor/Objects/simpropcreate.png" alt="The Create SimPropContainer Window" >}} - **Name**: The name that you want to give the new SimProp. - **Package**: The package that the SimProp will belong to. - **SimPropContainerLib**: The SimPropContainer library to add the SimProp to (a new one can be created here if none exist already). - **Reference Point**: If the object has reference points defined for it then they will be listed here and can be selected as the main "central" point to be used for placing the SimProp. {{< callout context="caution" title="IMPORTANT!" icon="outline/alert-triangle" >}} Creating a SimPropContainer in this way means that the object model becomes the pivot reference for the entire SimPropContainer. From this point on, if you edit the model and re-export, you should not change the pivot position in your modelling program otherwise you will be changing the entire SimPropContainer reference pivot. {{< /callout >}} - ##### Has Beacon Selecting this option will permit you to attach a [**beacon**](https://en.wikipedia.org/wiki/Aerodrome_beacon) to the object element. {{< callout context="note" title="NOTE" icon="outline/bulb" >}} This option is designed for object elements that have a custom model/mesh assigned to them, as you need to supply the name of an attach point which is a node on the model. {{< /callout >}} When enabled you will be presented with the following extra options: {{< image-center src="images/2_DevMode/scenery_editor/Objects/scenery/scenery_obj_2_beacon.png" alt="The Properties Of Scenery Object With A Beacon" >}} - **Attach Point Name**: The name of the attach point node on the model. - **Attach Instance ID**: This is a unique {{< glossterm >}}guid{{< /glossterm >}} which can be used to identify the beacon. - **Beacon Type**: The type of beacon to be added, either CIVILIAN, MILITARY or CANADIAN. - **Beacon Base**: The type of base to give the beacon, either SEABASE, AIRPORT or HELIPORT. - ##### Model Info This section will only be available if the object is using a model from the current package being edited. Expanding this section will show the following: {{< image-center src="images/2_DevMode/scenery_editor/Objects/scenery/scenery_obj_8_modelinfo.png" alt="Model Info Details In The Properties" >}} - **LODs**: If the `model.xml` has any LODs defined, they will be shown here along with their MinSize value. You cannot add or remove LOD settings here, but you can change their MinSize values, which will be saved to the XML when you save the package. - **Tags**: From this section you can assign specific *tags* to the model. These are used in the [Objects](../../menus/the-view-menu/#objects) window as another type of filter to help find the objects you wish to use. To add a tag, click the {{< button "Add tag" />}} button, and you can remove a tag using the {{< button "X" />}} button. #### SimProp Container Only Properties {{< image-center src="images/2_DevMode/scenery_editor/Objects/simprop_container/simprop_12_extraproperties.png" alt="Additional Options When The Object Is Used In An SPC" >}} If the Scenery Object is being added to a SimProp Container, the properties will show the following additional 3 options: - ##### Only In Edition When this is checked, the scenery object will *only* be visible when the the simprop is being edited, but *not* when placed in the simulation. - ##### Optimizable Checking this option means that the decal object can be "optimized" - ie: the simulation will modify the spawn probability - based on the user graphics settings and platform: - Ultra: 100 % - High: 50 % - Medium: 25% - Low: 12% - xbox: 12% - ##### Override AO Strength When checked, this option will show a slider that permits you to override the automatic ambient occlusion settings. This can let you better match the lighting on the object with the rest of the scene. ### Creating A Scenery Object To create a static object that you can then use within the simulation or as part of a [SimPropContainer Object](../simpropcontainer-objects/), you will need to create a project and add a [ModelLib](../../../project-editor/asset-types/#modellib) asset group to it. You can find out how to create a new project from the following page: - [Using The Scenery Editor](../../using-the-scenery-editor/) Once you have the project in [The Project Editor](../../../project-editor/the-project-editor/), you can select the package and then, in [The Package Inspector](../../../project-editor/the-project-inspector/), scroll to the bottom and click the {{< button "Add Asset Group" />}} button: {{< image-center src="images/2_DevMode/scenery_editor/Objects/scenery/scenery_obj_3_modellib.png" alt="Adding An Asset Group In The Project Inspector" >}} This will then open the **Asset Group Wizard**, where you should select the {{< button "Custom" />}} button: {{< image-center src="images/2_DevMode/scenery_editor/Objects/scenery/scenery_obj_4_wizard.png" alt="Selecting The Custom Asset Group In The Asset Creation Wizard" >}} In the next window you will be asked to **name** your object, and give it an **asset type**, which should be **ModelLib**: {{< image-center src="images/2_DevMode/scenery_editor/Objects/scenery/scenery_obj_5_assettype.png" alt="Selecting The ModelLib Asset Type" >}} After clicking the {{< button "Create" />}} button, the modellib asset group will be added to your package. At this point you need to add the `*.glTF`, `*.bin` and `*.xml` files to the folder that this group created in the package (see the section on [Modeling Scenery](../../../../../models-and-textures/modeling/landscape/modeling-scenery/) for information on these files). You can find the ModelLib folder in **PackageSources**, within the main package folder, eg: {{< image-center src="images/2_DevMode/scenery_editor/Objects/scenery/scenery_obj_6_location.png" alt="ModelLib Location In PackageSources" >}} Once you've added the required files, you can then [build the package](../../../project-editor/the-project-editor/#building-a-package) and in the scenery editor you'll be able to select the object(s) to add into the scene: {{< image-center src="images/2_DevMode/scenery_editor/Objects/scenery/scenery_obj_7_newobject.png" alt="The New Model Placed In A Scene" >}}