Visual Effects Editor- Where is the Video Tutorial per release notes?

From the Release Notes:

The Visual Effects Editor is now available! You can now create your own effects. We prepared a video tutorial and complete documentation that can be found at [ ]

(SDK Documentation) !

Has anyone been able to find the video tutorial? I see some written documentation but have not been able to find the video.

A description of where to find it or a link would be greatly appreciated.

Thanks in advance!


It’s a miss on our end here, the video tutorial has been delayed but will be available very soon (hopefully next week).
In the mean time, the documentation ( provides the same amount of information and you can already get started on creating VFX.
Have a good day!

1 Like

Thanks for the update, the documentation makes a reference saying the effects can be added via behaviors, however the link to these is indicating the documentation is still in progress.

Do you have any ETA of when this can be available or do you have an example we could look at to work it out ourselves in the meantime?



There will be a sample project added to the SDK in the future, and the documentation will be updated to explain properly how it should all be used. For now, there is only a short example on the following page: SDK Documentation

Hopefully that’s enough to get you started…

I am aware of that documentation. The issue is the lack of understanding for the “modelsbheaviours”

If you read the bottom when it says:

The example below is a complete example of a Visual Effect that has been added into a SimObject <ModelBehaviors> .

There is a link to discuss the model behaviors, however there is not enough information about how I should add a model behavior, structure, etc. in hence my question.

So do we have an example aircraft where I can see how to use the model behaviours and being able to add my fx spanner?



Thank you for the reply/information!

Okay so, for adding the effect to a SimObject… You will need to use the FX.xml model behaviour template, so to start with you need to make sure that you add the following line into the <ModelBehaviors> element:

<Include ModelBehaviorFile="Asobo\Generic\FX.xml"/>

Once you’ve done that, you can start to use the Component Templates. For this, first add a Component with a unique string ID attribute like this

<Component ID="#MyFXSpawner#">

This component can define several <DefaultTemplateParameters> that will be applied to all Visual Effect component children of your named component :

<Component ID="#MyFXSpawner#">

The available default parameter elements are :

  • FX_GUID: The GUID of the VFX Template. This can be found as the “InstanceID” attribute value of the <VisualEffect.VisualEffect> element in theVisual Effect XML asset source file

  • <FX_CONTACT_POINT_ID>: The index of the ContactPoint to use in case the node you want to attach a Visual Effect to is not found. If you want to use a ContactPoint instead of a Node, use Node names such as __USING_CONTACT_POINT__ (for example) to be sure that you won’t target any node you are not aware of in the Component “Node” attribute value (explained further down this page). Use -1 if you don’t want any. The contact point index references the contact points defined in the aircraft CFG files.

  • <FX_OFFSET_X>: X offset in the coordinate space defined for the Visual Effect, applied to the Visual Effect after spawn (meters)

  • <FX_OFFSET_Y>: Y offset in the coordinate space defined for the Visual Effect, applied to the Visual Effect after spawn (meters)

  • <FX_OFFSET_Z>: Z offset in the coordinate space defined for the Visual Effect, applied to the Visual Effect after spawn (meters)

  • <FX_ROTATION_OFFSET_P>: Pitch rotation angle in local space (degrees)

  • <FX_ROTATION_OFFSET_B>: Bank rotation angle in local space (degrees)

  • <FX_ROTATION_OFFSET_H>: Heading rotation angle in local space (degrees)

With that done, you can then define you spawning rules as further components like this:

<Component ID="#MyFirstUniqueSpawningRuleID#" Node="#MyNodeName#">
    <UseTemplate Name="ASOBO_GT_FX">

Now, the <UseTemplate> element is not enough to generate the Visual Effect and you will have to set at least one <FX_CODE> element with an RPN code expression inside. This expression is evaluated by the simulator and when it becomes true the Visual Effect is spawned. For example:

<UseTemplate Name="ASOBO_GT_FX">
    <FX_CODE>1 0 gt;</FX_CODE>

As mentioned previously, the “Node” attribute value has to match a node in your mesh model, unless you don’t want to use a mesh node and purposely put a ContactPoint index. However, you might want to use the ContactPoint as fallback eventually when some LODs don’t need it. For that, here are the additional parameters available to the <UseTemplate Name="ASOBO_GT_FX"> element that can override the default parameters defined earlier:

  • <FX_CODE>: RPN code that should return true in order to spawn the effect
  • <SURFACE_TYPE_N>: contains a string corresponding to the surface type that will spawn the following effect
  • <FX_SURFACE_TYPE_GUID_N>: the effect template GUID

If you defined these tuples, they will be prioritized over <FX_GUID> which will become a default choice. Note that the value N for the elements listed above is from 0 to whatever you need, but they should always be concurrent, e.g: 0,1,2,3 and not 0,3,1,2. Below is a further example using these elements:

<UseTemplate Name="ASOBO_GT_FX">
    <FX_CODE>1 0 gt;</FX_CODE>

This information will be in the next update to the SDK, and I’ll see if we can’t get the online docs updated sooner with it.


Can we expect the possibility to set a FX to a lat/lon/alt location anywhere in the world, without SimObject?
Or attach it to a scenery object?

1 Like

At the moment, it’s not possible but it’s definitely something that the team are investigating for a future update, so it might be possible sometime in the future.

1 Like

Not the best place for issue report maybe - but is anyone able to use Lerp as min/max limiter?
When I set up node like that, it returns 10 instead of 3

The Lerp node will now output a value between 0.1 and 3.0


Wait, so we can’t attach an effect to SceneryObject, despite what docs say? Nor by <Effect>, nor by
<AttachObject>? That’s a bummer.

Anyone has experience in SimObjects performance impact compared to scenery objects (no animations, maybe some visibility conditions).

“t” has to be between 0 and 1.

Yeah, I get it. So no min/max alternatives? I can use pow in most cases but still.

Not at the moment, but more nodes will be added with the coming updates (not sure which nodes those will be, but I know that there are a lot more coming).

1 Like

Thanks for the explanation above.
I still can’t get VFX to spawn in with my simobjects but 1 step at a time :slight_smile:

I was hoping someone could explain a possible reason for what’s in the image attached.
From my understanding, my vfx should be in ASSET PACKAGES not ASSET SYSTEM.
Anybody have any insight as to why this is happening?

Thanks for your help so far.

it’s in Asset Packages for me, Asset System is empty. are you working strictly in editor, or tried to copy package into community as well?

Thanks for the reply.
Not exactly sure what you mean but I completely emptied my Community folder (except for my simobject) so I imagine that means I’m working strictly in the editor.

Note: I have tried all manner of combinations, including copying my ‘built/compiled’ vfx into the Community folder. (I assume this is how it’s meant to finally work?)

If you expand that ‘empty entry’ under Contrail_QUAD, you’ll see a guid. I actually attached that guid(effect) to my simobject and got a result… It was a ‘broken’ vfx but at least it showed something working where it was supposed to.

I’m convinced now that if I can just get my effect into ‘Asset Packages’ that things will start to work correctly.

I’m for sure missing something basic… just wish I knew what :expressionless:

you can try attached project files

1 Like

Thank so much for that.
I opened your project and had exactly the same problem with the effect being in “Asset System” and not “Asset Package”.

I can only conclude there must be something corrupt in my MSFS installation.
Time for a re-install I think… 130Gb … That takes a few days on my rubbish australian internet.

Thanks again.

1 Like

I’m probably too inpatient and do everything wrong, but maybe this example will help someone to begin with advanced smoke effects

0:00 Package creation
1:45 Attaching effect to model node
4:55 Particle velocity modifier
11:22 Particles generator rate modifier
17:28 Particle rotation
19:15 Particle size modifier
22:58 Particle opacity modifier
28:00 Final adjustments
37:37 Effect injection into model