• Share page
  •  
  •  
  •  
  •  

How to add moving smoke, fire, fog, water, etc. to MSFS scenery / How to use Visual Effect Editor

By using the Visual Effect Editor built into the MSFS SDK, you can add moving smoke, fire, fog, water, etc. to the scenery for Microsoft Flight Simulator. This increases the realism of the scenery.
Here, I will explain how to create a simple VFX with a minimum number of steps and how to install it in the MSFS scenery.

What is Visual Effect (VFX)?

Visual Effects (VFX) in Microsoft Flight Simulator is a feature that generates particles with textures attached to them within the game screen. You can freely specify the color, size, frequency, and number of particles. You can also create more complex VFX by attaching animated textures (Atlas textures) to particles. By adding complex movements to the particles, you can create all kinds of visual effects, such as rising smoke, falling water, and smoke from an airplane engine or tires when landing.
However, while there is a high degree of creative freedom, the tools are complicated to use and still have many bugs. Creating VFX can be a struggle.
Here, based on the explanation in Federico Pinotti's YouTube video attached below, I will explain how to create a very simple VFX and install it in an MSFS scene.
Microsoft Flight Simulator SDK Tutorial - VisualEffect - How to make fire and smoke
YouTubeで見る

Compatibility with MSFS2024

The VFX created using the procedure introduced here can be used with both MSFS2020 and MSFS2024. You can simply copy the VFX built with the MSFS2020 SDK to the MSFS2024 Community folder and use it. However, the color and transparency at which the VFX is displayed are slightly different between MSFS2020 and MSFS2024. You will need to make adjustments so that the color and transparency look natural in either case.

Installation of various development tools

To create add-on content for Microsoft Flight Simulator, first install various tools on your computer. Please refer to the page below.

Where VFX is made

VFX are created as an asset group called "VisualEffectLib" in the MSFS SDK. They can be created in any type of project that is handled by the MSFS SDK. However, to place the VFX you created in, for example, a scenery, the VFX must already be installed in the Community folder. Unlike 3D model ModelLibs, after creating a VFX in a project, you cannot immediately place it in a scenery in the same project.
For this reason, it is a good idea to create VFX as an independent VFX library project and reference it from other projects. This makes it easy to use one VFX in multiple scenery projects.

Creating a project for the VFX library

Think about the package name for the VFX library you want to create. The MSFS SDK has strict package naming rules. Think about a package name that follows the rules.
However, there is no set naming convention for specifying a VFX library. This time, I followed the scenery naming convention and named it "Scenery-vfx-Fire_and_Smoke".
(Additional Note: According to the MSFS 2024 SDK documentation, the correct format for naming a VFX package is <company>-vfx-<name>. In this case, the correct name would be "Vfx-Fire_and_Smoke".)
Once the package name has been decided, create an empty project using the MSFS SDK.
PC First, launch the MSFS Free Flight/World Map screen.
Due to the structure of MSFS, in order to check the VFX currently in development on the game screen, a SimObject (airplane) is required as the source of the effects. Also, if you pause the game with the Active Pause function, the VFX will also stop. For this reason, please specify a parking spot at the airport as the starting point and launch the Free Flight/World Map screen.
When selecting an airplane, please choose a small aircraft such as a Cessna.
PC Once you start a flight with MSFS, select [File]-[New project] from the developer menu. Then this window will open.
In the Projects Folder field, specify the folder in which to save the project. Since large amounts of data will be read and written many times, we recommend using a large-capacity hard disk rather than an SSD.
In the Project Name field, specify the project name without the developer name part. In this example, we used "Scenery-vfx-Fire_and_Smoke".
In the Default creator name field, enter the developer's name. Specify your name, pen name, etc.
In the Default company name field, enter the production company name. If you are an individual developer, it should be the same as the Default creator name field.
Then click the [Create new project] button at the bottom right of the screen. Then, a project folder named "Scenery-vfx-Fire_and_Smoke" will be created under the folder specified in the Projects Folder field.
PC Next, a wizard screen like this will open. Since we are creating a package this time, click the [Package] button on the far left of the screen. Then click [Next] at the bottom right of the screen.
PC Next, you will see a screen like this. Just like when developing scenery, click the [Custom] button on the far right of the screen.
It's probably okay to select [VisualEffect] here, but I haven't tested this.
When you click [Custom], the following items will appear below it.
In the Display title field, specify the display name for this package. This will be displayed as the title of your package in the MSFS Marketplace, the "MSFS Addons Linker" tool, etc. As shown in the example, please enter a title that will let anyone immediately understand the contents of your package.
In the Company name field, enter the production company name. If you are an individual developer, specify your name, pen name, etc.
In the Package name field, specify the package name determined according to the naming rules. I named it "scenery-vfx-fire-and-smoke" to match the project name.
In the Content-Type field's drop-down list, specify the package type. If you are creating a VFX library, select "MISC".
Then click [Next] at the bottom right of the screen.
PC Next you will see the screen for specifying an asset group. "BGL" is not necessary for library packages that store only VFX. Prepare one asset group of type "VisualEffectLib" and store multiple VFX in it.
In the Asset group name field, specify the name of the asset group. The name specified here will be the VFX package name when referenced from the scenery project through the Objects screen.
In the Asset type field, specify the type of asset group. Here, select "VisualEffectLib".
Then click [Create] at the bottom of the screen.
PC The project will then be generated. Select the package name in blue text in the Project Editor screen, and check the project contents in the Inspector screen. Set the appropriate version number in the Version field. Then select [Project]-[Save] in the Project Editor to save the project.
For information on how to specify each item on the Inspector screen, please also refer to the How to create a project for MSFS add-on content page.

Generate new VFX

PC Open the VFX library project with MSFS SDK, and on the Project Editor screen click the "▼" mark on the left side of the blue package name to expand it. Then select "VisualEffectLib". Next, click "Load in Editor" on the Inspector screen.
PC This will launch the Visual Effect Editor and open four screens as shown on the right.
The Visual Effect Editor screen is the main screen.
The Inspector screen is for checking and updating the contents of each element that makes up the VFX. It is separate from the Inspector screen that is opened from the Project Editor.
The Templates/Instances Debugger screen is used to debug VFX.
The Node Graph screen displays a graph of the internal structure of the VFX, and is used to edit the VFX.
These windows can be shown or hidden using the View menu on the Visual Effect Editor screen. If you accidentally close a window, you can open it from here.
The Visual Effect Editor has so many features and operations that it's impossible to cover them all here. For more detailed information, see the following pages of the MSFS SDK documentation.
PC To create a new VFX, select [File]-[New Effect] from the menu on the Visual Effect Editor screen.
You can create multiple VFX in one VisualEffectLib. You can create VFX of various sizes and colors in one VisualEffectLib and place them in various places in the scenery.
PC Think of a name for your new VFX and enter it, then click the Create button.
PC This will generate a VFX with default values ​​set. The generated VFX will be displayed in the Visual Effect Editor screen with the name [(VFX name)].xml. From here on, we will mainly use the Node Graph and Inspector screens to modify the VFX.
Operation tips
You can change the display position of the graph by dragging while holding down the right mouse button on the Node Graph screen. You can zoom in and out of the graph by turning the mouse scroll wheel on the Node Graph screen.
PC When you generate a new VFX, the first thing you should do is enter a name. On the Node Graph screen, click on the top VisualEffect block. The block's information will then be displayed on the Inspector screen.
Enter a name for the new VFX in the Properties - Name field of the Inspector screen. If you do not enter a name here, you will not be able to reference this VFX from another project.
PC Then, select [File]-[Save] from the menu on the Visual Effect Editor screen to save it. Please continue to save your VFX work by selecting [File]-[Save] from the menu every time you complete a section of editing.

Previewing VFX on the game screen while editing

You can display the VFX you are editing on the game screen and check the results of your edits in real time. However, the VFX you are editing needs to be attached to SimObjects (e.g. an airplane) on the game screen.
Meanwhile, the completed VFX can be placed anywhere in the MSFS scenery.
PC If you click on an empty area on the Node Graph screen, the Inspector screen will look like the image on the right. Alternatively, you can open the same screen by clicking the [Spawner] tab on the Templates/Instances Debugger screen.
In the SimObjects section, select the object to which you want to attach (generate) VFX. Usually, the airplane you selected when launching the Free Flight/World Map screen is selected. There is no problem leaving it as it is.
In the ContactPoint field, select where to attach the VFX. If you select Propeller, the VFX will appear on the tips of the plane's propellers.
In the Offset field, specify the distance from the ContactPoint to the VFX. For example, if you enter 5 in the third box, the VFX will appear 5m ahead of the tip of the propeller.
Then click the [Spawn] button.
PC The VFX will then be displayed in the specified location. However, you may have to wait a few seconds for the VFX to appear. The image on the right shows a preview of the VFX with default values ​​set.
If you have created multiple VFX in one VisualEffectLib asset group, you can preview multiple VFX simultaneously by selecting each VFX and clicking the [Spawn] button on the Visual Effect Editor screen.
PC Clicking [Stop All] on this screen will pause all VFX. Clicking [Destroy All] will erase all VFX previews.
You can make the VFX you removed appear again by clicking the [Spawn] button.

Node Graph Overview

PC Looking at the Node Graph, we see five orange boxes lined up vertically from top to bottom: "VisualEffect", "Emitter", "Init", "Update", and "Output". These orange boxes are called "blocks".
The VisualEffect block holds the basic information for a VFX.
The Emitter block determines how particles are generated.
The Init block holds the initial values ​​of the particles.
The Update block determines how the parameters of the particles change over time, etc.
The Output block determines how the particles are displayed on the game screen.
A purple box is connected to the parameters within each block. These purple boxes are called "nodes." A variety of nodes are available, including numerical values, mathematical formulas, random numbers, in-game parameters, and particle parameters, etc. By combining nodes, you can create complex VFX.
For more information, see the following pages of the MSFS SDK documentation.

Determine how particles are generated with the Emitter block

PC The Emitter block is a block that specifies how particles are generated. If you click on an Emitter block in the Node Graph screen, the Emitter block information will be displayed in the Inspector screen. For the Emitter block, almost all parameters can be edited from either the Node Graph screen or the Inspector screen.
EmitInLocalSpace
Select whether to represent particle positions and speeds in World Space: ECEF (Earth centered, Earth fixed) (checked off) or in Local Space (checked on). When controlling particle movement using vectors, the direction of movement will change depending on what you specify here. For example, if you want to use vectors to control particles such as rising smoke or falling water, check this box. If particles are flowing in unexpected directions, try checking this box on or off.
TimeEmission
Specifies the time (sec) that particles will continue to be generated. If you set this to -1, particles will continue to be generated forever.
Delay
Specifies the time (sec) from when VFX is generated in the game until particles start being generated. If you set this to 0, particles will be generated as soon as the game starts.
Capacity
Specifies the maximum number of particles to generate. Increasing this will allow you to display larger or denser smoke or water, but will also increase the load on the game.
MaxDistanceEmission
Specifies how many meters the camera (point of view) must be close to the VFX before particles are generated. Increasing this will make the VFX visible from farther away, but will increase the load on the game.
RateType and Rate
Specifies the particle emission speed. If you specify "Time" for RateType, particles will be generated at a speed of "[Rate] particles/second". If you specify "Distance" for RateType, particles will be generated at a speed of "[Rate] particles/meter movement". [Rate] particles will be generated for every 1 meter the VFX moves. Increasing this will allow you to display denser smoke or water, but will also increase the load on the game.
For more information about Emitter block, see the following pages of the MSFS SDK documentation.

Change the color of particles and make them emit light

You can freely set the color of the particles using RGBA values. Even for things that don't naturally emit light, such as smoke, you can recreate the appearance of light being lit by surrounding buildings at night by adding a small amount of emissive color.
PC The color of the particles is specified by a "Vector4" node connected to the Color parameter of the Output block. Specify the R, G, B, A values ​​of the color in the X, Y, Z, W fields.
PC To make particles emit light, add a "Material Emissive" parameter to the Output block and specify a color there. Click on the Output block in the Node Graph screen and click the "Material Emissive (+)" button in the Inspector screen.
PC This will add a "Material Emissive" parameter to the Output block. Next, right-click on an empty area of ​​the Node Graph screen. A menu like the one on the right will appear, so select [Types]-[Vector4].
PC A new "Vector4" node will then appear on the screen. Click on a terminal of the "Vector4" node and drag it to the "Material Emissive" terminal of the Output block, and a line will connect the two. If you specify R, G, B, and A values ​​in the new "Vector4" node, the particles will emit light in those colors.
For more information about Output block, see the following pages of the MSFS SDK documentation.

Changing the particle texture

PC The particle texture is specified in the Output block properties. Click the Output block on the Node Graph screen, and click the texture name "VFX_EngineSmoke" displayed in the Material column in the Inspector screen.
PC This will open the Material Editor screen, so click on the texture you want to use and click on the texture name: "VFX_EngineSmoke" in the Inspector screen to set the selected texture name there. You can search for textures by entering keywords in the Filter field on the Material Editor screen. Here we will use a texture named "Smoke_Atlas01".
PC This will change the shape of the particles. This time we selected an 8x8 frame "Atlas" type texture, so all frames (64 frames) of the animation are displayed simultaneously on one particle.
PC In the Inspector screen, set the UVMode field to "Atlas" and both AtlasSize fields to 8.
PC Now each particle has one frame of the animation attached to it.
PC To animate on the spot, first stop each particle from rising. In the Node Graph screen, right-click on the "GravityVector" node connected to the Velocity parameter of the Init block and select "Delete". This will make the particles stay in one place.
PC Next, set the "TextureIndex" parameter in the Update block. Click the Update block on the Node Graph screen and click the "TextureIndex (+)" button on the Inspector screen.
PC Right-click on an empty area of ​​the Node Graph screen. A menu like the one on the right will appear, so select [Animation] - [AtlasPlayer].
PC Connect the newly added AtlasPlayer terminal to the TextureIndex of the Update block. Then specify the frame rate (FPS value) of the animation in the "FrameRate" field of AtlasPlayer.
PC This will play an animation of a flickering flame. In the Emitter block, set the Rate parameter to 0.5, in the Output block, set the Color parameter to 1, 0.5, 0, 0.5, and in the Material Emissive parameter to 10, 2, 0, 0. You will get the flames shown on the right.

Changing the size of particles

PC If you want to change the size of the particles, it's easy to change the "Size" parameter of the Init block. Here you can specify the radius of the generated particles in meters. If you specify 5 here, particles with a diameter of 10 meters will be generated, as shown on the right.
Alternatively, you can add a "Scale" parameter to the Init block and specify the scale factor in the x, y, and z directions. However, even if you specify different values ​​for the x, y, and z parameters of the Scale parameter, the result will be the same scale as specified by the x value.

Randomly raise particles

Let's make the particles rise while spreading in random directions, like smoke from a fire. Add random values to the x and z axis directions of the particle's Velocity parameter.
PC Since we will be using a vector to raise the particles, check EmitInLocalSpace in the Emitter block. If you do not check this, the flow of particles will be tilted toward the North Pole.
PC Connect a Vector3 node to the Velocity of the Init block. The y value of the Vector3 node should be the rising speed of the particles. For example, if you are creating smoke, a value of around 0.5 to 1.5 would be good. Also, if you want to create particles that move downwards, set this to a negative value.
To add a Vector3 node, right-click on an empty area of ​​the Node Graph screen and select [Types]-[Vector3].
PC Connect the RandomValue node to the x and z terminals of the Vector3 node you just added. Specify the range of the random values ​​that will be output in the MinRandValue and MaxRandValue of the RandomValue node. Changing this value will change how the particles spread. For example, to create smoke, a MinRandValue value of around -0.3 to -0.6 and a MaxRandValue value of around 0.3 to 0.6 would be good.
To add a RandomValue node, right-click on an empty area of ​​the Node Graph screen and select [Random]-[RandomValue].
PC Connect the GetParticleAttribute node to the RandSeed terminal of the RandomValue node we just added. Here, we use the ID value that each particle has individually as the seed. Also, specify different values​for the x-axis and z-axis for the RandIndex of the RandomValue node.
If the random number seed is not changed for each particle, each axis, all of the particles will move in the same direction.
To add a GetParticleAttribute node, right-click on an empty area of ​​the Node Graph screen and select [Effect & Environment]-[GetParticleAttribute].
PC When you click the GetParticleAttribute node in the Node Graph screen, the Inspector screen will look like the image on the right. Select "id" in the ParticleAttributeType drop-down list. This will make each particle spread in a random direction.

Narrow the particle spread gradually / Manipulate each component of the vector separately

The Split node allows us to break down a vector and manipulate each component individually. We can make the random directional movement of the smoke we set up above more realistic by gradually narrowing it as the particles rise.
Each frame, we take the velocity vector of each particle and decrease its x and z values ​​by a small amount.
PC Click the Update block and click the [Velocity (+)] button in the Inspector window to add a Velocity parameter. Here you can specify the movement vector of the particles for each frame. The initial value is 0, so the particles will stop.
Next, create a new [Types]-[Vector3] node and connect it to the Velocity of the Update block.
PC Connect a Multiply node to each parameters of the Vector3 node you just added. The value specified here (0.998 in the example on the right) is the value that will be multiplied by the x and z axes of the movement vector each frame. The x and z values ​​of the movement vector will become smaller by 0.02 percent each frame.
The value specified on the y-axis gradually increases the particle's upward velocity over time. In the example on the right, at 1.002, the particle's upward movement speed increases by 0.02 percent each frame.
To add a Multiply node, right-click on an empty area of ​​the Node Graph screen and select [Arithmetic]-[Multiply].
PC Connect the Split node to the x parameter of the Multiply node you just added. The Split node outputs each element of a vector input separately. The first output of the Split node is the x value, the second is the y value, and the third is the z value.
To add a Split node, right-click on an empty area of ​​the Node Graph screen and select [Types]-[Split].
PC Connect the GetParticleAttribute node to the Split node you just added. Click the GetParticleAttribute node and select "velocity" for ParticleAttributeType in the Inspector window. This will extract the velocity vector of the particle for each frame.
To add a GetParticleAttribute node, right-click on an empty area of ​​the Node Graph screen and select [Effect & Environment]-[GetParticleAttribute].

Making particles flow with the wind/Reproducing the effects of wind

By using the WindDirection node, you can obtain the wind direction and speed at the location where the VFX is installed. Using the Split node explained above, extract the x and z vectors from this and add them to the velocity of each particle.
PC Connect a Split node to the WindDirection node to extract the x and z axis values. Click the WindDirection node in the Node Graph screen and select "Raw" for WindDirOptions in the Inspector screen. You will then be able to extract the wind direction and speed (feet/sec).
Connect a Multiply node to the x and z axes and calculate the value to add to the particle vector for each frame. The value to be multiplied here (0.001 in the example on the right) needs to be adjusted to match the particle size and movement/ascent speed of the VFX you created.
To add a WindDirection node, right-click on an empty area of ​​the Node Graph screen and select [Effect & Environment]-[WindDirection].
PC For example, add the wind direction and speed values ​​calculated above to the Velocity input of the Update block. This will roughly reproduce the effects of wind.
However, this graph cannot accurately reflect the effects of wind direction and speed. To reflect wind direction and speed more accurately, a more complex graph would be needed.

Gradually make particles transparent

Makes particles gradually more transparent over time.
PC The transparency of the particles is specified by the w value of the "Vector4" node connected to the Color parameter of the Output block. Setting this closer to 0 over time will make the particles gradually become transparent.
Connect a BezierCurve node to the w value of the Vector4 node that is connected to the Color parameter.
To add a BezierCurve node, right-click on an empty area of ​​the Node Graph screen and select [Maths function]-[BezierCurve].
PC When you click on the BezierCurve node in the Node Graph screen, the Inspector screen will look like the image on the right. Here you can specify how the transparency will change.
The horizontal axis of the graph is input (time passing) and the vertical axis is output (opacity). Both values ​​range from 0 to 1. I created a graph so that the transparency decreases slightly over time (the color becomes darker), and then gradually becomes transparent. When creating smoke, as shown in the right image, even if you set the peak opacity to around 0.1, the color will be dark enough.
Press the [Add new point] button and click on the graph to place a point there. You can move the point by dragging it.
PC Connect the GetParticleAttribute node to the BezierCurve node you just added. Then click the GetParticleAttribute node in the Node Graph screen and select "AgeOverLifetime" from the ParticleAttributeType drop-down list displayed in the Inspector screen. This will give you a value between 0 and 1 indicating the time elapsed from the birth of each particle to its death.
To add a GetParticleAttribute node, right-click on an empty area of the Node Graph screen and select [Effect & Environment]-[GetParticleAttribute].

Gradually make particles bigger

Gradually increases the size of particles over time.
PC The size of the particles is specified by the Size parameter added to the Update block. Click the Update block on the Node Graph screen and click the [Size (+)] button in the Inspector screen.
Next, connect the Add node to the Size parameter of the Update block. Then enter the initial size of the particles into the y value of the Add node.
To add an Add node, right-click on an empty area of ​​the Node Graph screen and select [Arithmetic]-[Add].
PC Connect the Multiply node and GetParticleAttribute node to the Add node you just added. Then click the GetParticleAttribute node in the Node Graph screen and select "AgeOverLifetime" in the ParticleAttributeType drop-down list displayed in the Inspector screen. Also, for the y value of the Multiply node, enter the particle's [maximum size] -(minus) [initial size].
To add a Multiply node, right-click on an empty area of ​​the Node Graph screen and select [Arithmetic]-[Multiply]. To add a GetParticleAttribute node, right-click on an empty area of the Node Graph screen and select [Effect & Environment]-[GetParticleAttribute].

Putting multiple Emitters in one VFX

PC You can also place multiple Emitter-Init-Update-Output blocks in one VFX. You can define different VFX effects for each one. For example, you can create a flame and smoke rising from it in one VFX.
PC To connect each newly placed block, you need to add a terminal to the next block in the Inspector screen. For example, for the Update block, click the [ParticleOutput (+)] button to add a terminal to the Output block.
On the Node Graph screen, you can copy blocks and nodes using the "Duplicate" menu. However, it seems that copied "blocks" may not work properly. Always add new blocks.
Please note that immediately after connecting blocks, the connection lines will not be displayed on the Node Graph screen. Click another VFX on the Visual Effect Editor screen, then click the original VFX to display the connection lines.

Delete VFX that are no longer needed

PC If you no longer need VFX, you can delete them using the right-click menu on the Visual Effect Editor screen. Once you've deleted them, save and build again.

Finalize the VFX

Once the VFX is roughly what we want, we make final adjustments to each parameter.

Design Adjustments


To increase density, increase the Rate of the Emitter block. However, simply increasing the Rate may cause the VFX to be cut off, so you may also need to increase the Capacity of the Emitter block or the Lifetime of the Init block.
To make smoke rise higher, increase the Lifetime of the Init block. In this case, you may also need to increase the Capacity of the Emitter block.
To make the smoke larger, increase the Size in the Init block and the parameters that control the size in the Update block. You may also need to adjust the parameters that determine the rise/fall speed accordingly.
Conversely, if you manipulate the parameters that determine the ascent/descent speed, you will also need to adjust density and lifetime.
In this way, VFX behavior is achieved by many parameters interacting with each other. Changing one parameter will require adjusting several other parameters as well. Take your time to complete the VFX until you are satisfied with it.

Performance Tuning


Once you've completed your VFX design, tune it for performance. Change the three Emitter block parameters, Capacity, MaxDistanceEmission, and Rate, to the smallest possible values. In some cases, you may also need to adjust the particle movement speed and direction when making these changes. When you lower the Rate, you may be able to hide this by lowering the particle transparency and making the color darker. Once you've completed your MSFS scenery with VFX installed, try flying over it to check if the game's performance has been affected.

Building and installing the VFX library

PC Once your VFX is complete, save it by selecting [File]-[Save] from the menu on the Visual Effect Editor screen. Then on the Project Editor screen, click [Project]-[Save] to save the entire project. Click the [Build All] button on the Project Editor screen to start a build.
PC If the build is successful, a folder with the package name will be created under the "Packages" folder. Copy this to the "Community" folder in the MSFS data storage folder and restart MSFS, and it will be installed on your MSFS. When you want to distribute the package, compress this folder and upload it to a distribution site etc.
If "layout.json" and "manifest.json" are not generated under the [Packages]-[(package name)] folder in the project folder, the build has failed.

Installing VFX in MSFS scenery

PC The procedure for placing the VFX you created in the MSFS scenery is the same as the procedure for placing a 3D object in the scene .
Open the scenery project in which you want to place the VFX using the MSFS SDK. Then open the [View]-[Objects] screen from the Scenery Editor screen. In the "Object type" column on the Objects screen, select "VFX". In the "Packages" column, select the name of the asset group of type "VisualEffectLib" created above.
A list of the VFX you created in that asset group will then be displayed in the "Objects" column. Select the VFX you want to install and click the [Add] button, and the VFX will appear on the Scenery Editor screen and game screen.
Furthermore, if you restart MSFS, the VFX names displayed on the Scenery Editor screen will all change to just "VFX", making it impossible to tell which VFX you have selected. However, if you select "Rename" in the right-click menu on the Scenery Editor screen, the name you enter here will be retained. Once you have placed the VFX, we recommend that you immediately "rename" it back to its original name.

Note:
When you generate a new VFX, if you forget to enter a name for the VFX in the Properties - Name field of the VisualEffect block, a blank line will appear in the "Objects" field on this screen. You can click on that blank line to select the VFX, but if you have created multiple VFX, you will not be able to distinguish between them.
PC On the Scenery Editor screen, right-click the added VFX to open the Properties screen and uncheck "Snap to ground". Then you can move the VFX to the height you want.
Once you have placed the VFX where you want it, click the "Save Scenery" button at the bottom left of the Scenery Editor screen to save the scenery. Then click "Build All" on the Project Editor screen to build the project. This completes the installation of the new VFX.
PC If you want to adjust the position and direction of a VFX, select the VFX on the Scenery Editor screen, then open the [View]-[Gizmo] screen from the Scenery Editor menu. Clicking "Translate" will adjust the position of the object on the game screen. Similarly, clicking "Rotate" will adjust the direction. However, it seems that you cannot adjust the size of a VFX by clicking "Scale".
PC Adding moving smoke, fire, fog, and water to a scenery increases its realism.
PC Fire VFX can increase the realism of night scenes in scenery.

How to enjoy Microsoft Flight Simulator

Basic operations

Advanced operations

Useful tools

Add-on scenery development