# The 3DS Max Plugin {{< callout context="caution" title="IMPORTANT!" icon="outline/alert-triangle" >}} This part of the documentation has not been fully updated for Microsoft Flight Simulator 2024 and is currently a work in progress. {{< /callout >}}   This section of the SDK documentation is for help with the support for all [Autodesk 3DS Max](https://www.autodesk.com/products/3ds-max/overview) **versions 2022 through to 2026**. This software is officially supported by the Microsoft Flight Simulator 2024 SDK and is recommended for use when creating models, animations and materials for your add-ons. {{< callout context="note" title="NOTE" icon="outline/bulb" >}} Previous versions of the SDK had limited support for versions before 2022, however due to the fact that AutoDesk has completly removed those versions from availability, for customers, they are no longer supporteed by the MSFS 2024 SDK either. {{< /callout >}}   During installation of the Microsoft Flight Simulator 2024 SDK, existing installations of 3D Studio Max will be detected and the appropriate plug-in for the installed version will be added. If you did not have 3D Studio Max installed when you installed the SDK and then later install it, *you will need to reinstall the SDK to correctly add the plugin*. {{< callout context="caution" title="IMPORTANT!" icon="outline/alert-triangle" >}} If you are updating the SDK and have previously installed the 3Ds Max plugin, you may experience issues using 3Ds Max due to corrupted preferences in the 3Ds Max user cache. This cache can be cleared by removing the files found in the following location: {{< /callout >}} `C:\Users\[USER_NAME]\AppData\Local\Autodesk\3dsMax\[Version]\ENU` For more information about updating your 3DsMax installation and workflow for please see here: [Updating 3DS Max Projects](../convert-to-msfs2024/)   The plugin itself consists of the following features which can be found from the **MSFS2024** menu at the top, or from context specific buttons in 3DS Max (lights, for example):   - [MSFS2024 Utilities](msfs2024-utilities/) - [Symplygon Utilities](simplygon-utilities/) - [Texture Tool](texture-tool/) - [Multi-Exporter](multi-exporter/) - [Wiper Mask Generator Tool](../wiper-mask-generator-tool/) - [Lights](../lights/) - [Containers](containers/)     ### 3DS Max Versions Tool Differences {{< callout context="caution" title="IMPORTANT!" icon="outline/alert-triangle" >}} For updating your 3DsMax installation and workflow for please see here: [Updating 3DS Max Projects](../convert-to-msfs2024/) {{< /callout >}} The Microsoft Flight Simulator 2024 SDK is designed to work best with 3DS Max versions 2022, 2023 and 2024 *only*. We have made compatible tools available for earlier versions and the tools will also work with later versions, though some tools will not be available for earlier versions. Below you can find an outline of what tools are supported on which versions:   #### {{< glossterm >}}v2016_and_v2017{{< /glossterm >}} - FlightSim Light - FlightSim Material - SphereFade - AsoboSphereGizmo - AsoboCylinderGizmo - AsoboBoxGizmo - MaterialTool - ObjectsRenamer - Babylon - Babylon Utilities/Create Animation Group From Selection #### {{< glossterm >}}v2018_and_v2019{{< /glossterm >}} - FlightSim Light - FlightSim Material - SphereFade - AsoboSphereGizmo - AsoboCylinderGizmo - AsoboBoxGizmo - MaterialTool - ObjectsRenamer - Babylon - Babylon Utilities/Create Animation Group From Selection - Legacy Modeldef Converter #### {{< glossterm >}}v2019.3_and_v2020.x_to_2021.x{{< /glossterm >}} {{< callout context="note" title="NOTE" icon="outline/bulb" >}} If you're using v2020 you will need **v2020.2** to use the export tools, the rest will still work {{< /callout >}} - FlightSim Light - FlightSim Material - SphereFade - AsoboSphereGizmo - AsoboCylinderGizmo - AsoboBoxGizmo - MaterialTool - ObjectsRenamer - Babylon - Babylon Utilities/Create Animation Group From Selection - Legacy Modeldef Converter - MultiExporter - PBRViewportManager *(In the viewport window \[+\]/FlightSim IBL/... )* - Babylon Utilities/Update Container ID - Plane Validation/Fix End Lines - Plane Validation/Layers - Plane Validation/LODs Hierarchy - Plane Validation/Nodes - Plane Validation/Unique Names - Plane Validation/Rebuild Nodes *(risky)* - Count Materials - Animation Tools - LOD Utilities #### {{< glossterm >}}v2022___v2024{{< /glossterm >}} - Support for all Material Codes - Support for material animations - glTF Merge - Container system support - AsoboSphereGizmo - AsoboCylinderGizmo - AsoboBoxGizmo - ObjectsRenamer - Babylon - Babylon Utilities / Create Animation Group From Selection - Babylon Utilities / Update Container ID - MultiExporter - PBRViewportManager - Plane Validation/Fix End Lines - Plane Validation/Layers - Plane Validation/LODs Hierarchy - Plane Validation/Nodes - Plane Validation/Unique Names - FlightSim Light - ASOBO\_animation\_retargeting - ASOBO\_gizmo\_object - ASOBO\_macro\_light - ASOBO\_material\_alphamode\_dither - ASOBO\_material\_anisotropic - ASOBO\_material\_anisotropic\_v2 - ASOBO\_material\_antialiasing\_options - ASOBO\_material\_blend\_gbuffer - ASOBO\_material\_clear\_coat - ASOBO\_material\_detail\_map - ASOBO\_material\_disable\_motion\_blur - ASOBO\_material\_draw\_order - ASOBO\_material\_environment\_occluder - ASOBO\_material\_fake\_terrain - ASOBO\_material\_fresnel\_fade - ASOBO\_material\_ghost\_effect - ASOBO\_material\_glass - ASOBO\_material\_invisible - ASOBO\_material\_parallax\_window - ASOBO\_material\_pearlescent - ASOBO\_material\_shadow\_options - ASOBO\_material\_SSS - ASOBO\_material\_UV\_options - ASOBO\_material\_windshield - ASOBO\_material\_windshield\_v2 - ASOBO\_material\_windshield\_v3 - ASOBO\_normal\_map\_convention - ASOBO\_property\_animation - ASOBO\_fade\_global\_scale - ASOBO\_fade\_object - ASOBO\_material\_antialiasing\_options - ASOBO\_material\_cockpit\_occluder - ASOBO\_material\_distance\_field\_layer - ASOBO\_unique\_id - ASOBO\_tags - ASOBO\_scene\_fade\_scale - ASOBO\_material\_day\_night\_switch - ASOBO\_material\_code - ASOBO\_flightsim\_material     ### 3DS Max Renderer 3Ds Max has a number of different renderers, however the SDK plugins will only work with the following two: - **Scanline** - **Quicksilver Hardware Renderer** {{< image-center src="images/3_Models_And_Textures/Plugins/3DsMax/3dsmax_renderer.png" alt="3Ds Max Render Options" >}} You should ensure that that you are using one of these when working with the SDK plugins to create or edit assets for Microsoft Flight Simulator 2024. If you do not have selected one of these render options then you will not be able to use the [FlightSim Materials](../../textures/materials/flightsim-materials/) (and they will not be listed in the Materials window). {{< callout context="caution" title="IMPORTANT!" icon="outline/alert-triangle" >}} If you are using 3Ds Max 2021, then you are further limited to **only** using the **Quicksilver Hardware Renderer** since there is an issue with the Scanline renderer and the SDK plugin shaders. {{< /callout >}}   One thing to be aware of when selecting the renderer is that the render output file properties may not be setup correctly, as 3DS Max will apply the *last settings used* which may not be appropriate for working with Microsoft Flight Simulator 2024. To fix this, in the render window, scroll down to the **Render Output** section, and click on the `Files...` button: {{< image-center src="images/3_Models_And_Textures/Plugins/3DsMax/3dsmax_render_files.png" alt="The 3DS Max Render Output Settings" >}}   Clicking this will open a file explorer, and here you can give an output **name** and select the **file type**. For the file type, the only thing you need to do here is select PNG, and the after that click on the `Setup` button: {{< image-center src="images/3_Models_And_Textures/Plugins/3DsMax/3dsmax_renderer_output.png" alt="The Render Output Window" >}}   The Setup button will open the following window, where you should select **RGB 48 bit** and check the **Alpha Channel** option: {{< image-center src="images/3_Models_And_Textures/Plugins/3DsMax/3dsmax_renderer_setup.png" alt="The PNG Configuration For The Render Output" >}}   After clicking {{< button "Okay" />}}, you can then click {{< button "Save" />}} in the Render Output window.     ### RMB Menu Options {{< image-center src="images/3_Models_And_Textures/Plugins/3DsMax/3dsmax_rmb_menu.png" alt="The MSFS2024 RMB Menu In 3DS Max" >}}   Within 3DS Max after you install the SDK plugin, you can *right-click* in the scene and then select one of the following options:   - ##### Scene Properties This option opens the following window: ![The Scene Properties Window](images/3_Models_And_Textures/Plugins/3DsMax/3dsmax_rmb_sceneprops.png)Here you have these options: - **Do Not Optimise Animations** - By default animations are optimised and the Exporter will try to prevent the exporting of keyframes that are similar (thus exporting less animation data). However, if you notice "jaggy" animations, you *may* want to check this option. - **Morph Target Options** - Here you can select to **Export Normals** or **Export Tangents** when working with Morph Targets. {{< callout context="note" title="NOTE" icon="outline/bulb" >}} Morph Targets are not supported by the [MSFS 2024 glTF Format](../../msfs-2024-gltf-format/). {{< /callout >}} - **Fade Global Scale** - This is used in the simulation to change the point at which an object will fade out of view. This is only useful for *scenery objects*.   - ##### Store Animation Groups This option will store all the animation group data in a single object in 3DS Max. The data can be found in the *User Defined Properties* for the object, and can be reloaded into the Animation Groups window using the **Load Animation Groups** option. {{< image-center src="images/3_Models_And_Textures/Plugins/3DsMax/3dsmax_rmb_saveanim.png" alt="Example Of A Stored Animation Group Object" >}}   - ##### Load Animation Groups This option can be used to repopulate the Animation Groups window with the data from an object previously created with the *Store Animation Group* option.   - ##### Animation Groups This option will open the Animation Group window where you can set up the animations for export. ![The Animation Groups Window](images/3_Models_And_Textures/Plugins/3DsMax/3dsmax_rmb_animgroups.png)**IMPORTANT!** Currently, when using linear animations on a node, there have to be animation keys on the **start** and **end** frames, matching the animation group it belongs to. The animation names *must* match the animation names in the `.xml` file so that the simulation knows how to use the model animations correctly. The aircraft-specific model `.xml` must be next to the model file and have the same name as the model file (except for the extension). The `.xml` defines link with the [simulation variables](../../../programming-apis/simvars/simulation-variables/), as well as [GUID](msfs2024-utilities/#)s, for use with the Microsoft Flight Simulator 2024 animation system. You can find more information on this here: - [Models](../../../content-configuration/models/models/) - [Animation XML Properties](../../../content-configuration/models/animation-xml-properties/)     ### Object Properties When you open the **Object Properties** in 3DS Max, there are certain details that can be added into the **User Defined** tab: {{< image-center src="images/3_Models_And_Textures/Plugins/3DsMax/3dsmax_object_properties.png" alt="The User Defined Tab Of The Object Properties" >}}   The strings that can be added here are as follows:   - `babylonjs_GUID` - This is a unique GUID that has been generated for the object. You should never need to add or edit this, however it's also not used by Microsoft Flight Simulator 2024.   - `flightsim_uniqueID` - This will be added to the object automatically when you first export the project with the [Asobo Unique ID](multi-exporter/#Asobo%20Unique%20ID)   - **Export transforms** - There are four different export transform options available, and they will all be considered a `true` if not explicitly flagged here: - `flightsim_export_position` - If set to *false*, object position will be reset to \[0,0,0\] on export. - `flightsim_export_rotation` - If set to *false*, object rotation will be reset to \[0,0,0\] on export. - `flightsim_export_scale` - If set to *false*, object scale will be reset to 100% on each axis on export. - `flightsim_export_transform` - If set to *false*, object scale / position / transform will be reset to 100% on each axis. If this is used, then you do not need any of the other strings.