Skip to content

5. Merged Files

ImmortalRDI edited this page Nov 25, 2023 · 10 revisions
Index

Merged Files Defined

To begin discussing merged files is to set an understanding about them. They are required for any LSFX to work, yet at the same time, they are merely a brief summary reference to the LSFX information. So let's dig in.


Setting Up

As with all files using the XML Language, it needs to be set up properly. In the case of Merged files, your starting point is here:


<?xml version="1.0" encoding="utf-8"?>
<save>
	<version major="4" minor="0" revision="9" build="0" lslib_meta="v1,bswap_guids" />
	<region id="EffectBank">
		<node id="EffectBank">
			<children>

The set up is the same as your RootTemplate and MEI files, except for one difference. In this case, your region id and core node id values will be "EffectBank. Of course, as always, close your tags.

Now let's take a look at the rest of a merged file.


<node id="Resource">
	<attribute id="BoundsMax" type="fvec3" value="3 5 3" />
	<attribute id="BoundsMin" type="fvec3" value="-3 -1 -3" />
	<attribute id="Center" type="fvec3" value="0 2 0" />
	<attribute id="CullingDistance" type="float" value="0" />
	<attribute id="Duration" type="float" value="6.999999" />
	<attribute id="EffectName" type="FixedString" value="VFX_Spells_Cast_Intent_Warlock_Necrotic_ShoutAoe_ArmsOfHadar_BodyFX_01" />
	<attribute id="ID" type="FixedString" value="0757e6ed-36ee-0e8e-1885-6302478afca5" />
	<attribute id="Initialized" type="bool" value="True" />
	<attribute id="InterruptionMode" type="uint32" value="0" />
	<attribute id="Localized" type="bool" value="False" />
	<attribute id="Looping" type="bool" value="False" />
	<attribute id="Name" type="LSString" value="VFX_Spells_Cast_Intent_Warlock_Necrotic_ShoutAoe_ArmsOfHadar_BodyFX_01" />
	<attribute id="Radius" type="float" value="3" />
	<attribute id="SourceFile" type="LSString" value="Public/Shared/Assets/Effects/Effects_Banks/Spells/Cast/Warlock/VFX_Spells_Cast_Intent_Warlock_Necrotic_ShoutAoe_ArmsOfHadar_BodyFX_01.lsfx" />
	<attribute id="_OriginalFileVersion_" type="int64" value="144115198813274212" />
	<children>
		<node id="Dependencies">
			<children>
				<node id="DependentResource">
					<attribute id="Object" type="FixedString" value="d76259d5-8693-a0c0-9377-d04d5222677c" />
				</node>
				<node id="DependentResource">
					<attribute id="Object" type="FixedString" value="54d78b10-5ede-fa84-a8e4-e46076ee3640" />
				</node>
				<node id="DependentResource">
					<attribute id="Object" type="FixedString" value="5333441b-5f77-22f7-f695-e13e6274c686" />
				</node>
			</children>
		</node>
	</children>
</node>

Now, of course this looks a little daunting, but don't fret, I'm here to guide you through it.

For the most part, this node functions as a reference for the content inside the LSFX, and mostly doesn't do much else, but we'll cover them anyways.


Attribute ID Definitions

Below we'll see the definitions of the various attribute id found throughout the _merged.


Bounds

The Bounds Min/Max attribute id are one set of two references to the size. More specifically, it references the size in terms of X=Horizontal, Y=Vertical, and Z=Depth/Width.


Center

Center is pretty self explanatory as it references the center of the effect placement. In the case of the shown Resource, it'd be located 2m above the source or target.


CullingDistance

This refers to how far a particle will travel before it disappears. In the case of 0, it will travel as far as the LSFX defines it.


Duration

Another fairly explanatory attribute id, that tells you how long the effect is intended to last, in seconds.


EffectName

This is the effect name, plain and simple. It will always be the same as the "Name" attribute id. But the Effect name is what you will need to place inside the FX attribute ids of the RootTemplate.


ID

The ID is, you guessed it, the VFX unique UUID. When making a new effect, always make sure you generate a new one of these. This will get used by the MultiEffectInfos attribute id EffectResourceGuid seen here.

EffectResourceGuid

Without the UUID you generate here placed there, this is all you will see.

UCANTCME


Interrupt Mode

Now, I am not 100% sure, but I believe this defines how the spell gets cancelled. Depending on the type, an incorrect interrupt mode will not let you cancel a spell before casting via Right Click.


Localized/Initialized

I haven't figured this out yet, I believe these are related to non-prepare effects though.


Looping

This tells you whether or not the effect will loop. This node will only be true for effects intended with longer durations than the duration of a standard cast, such as a Prepare Effect or Buff/Debuff Effect.


Radius

This is the simplified reference to the effect size.


Source File

This tells the game where the referenced LSFX is stored. It is very important that this folder path matches the LSFX.


Original File Version

This is just a reference to the game itself. All Merged nodes will have the same exact value as the one shown above.


Dependencies

This is purely a reference that you will find both here and in the LSFX, telling you the UUIDs of the effect components inside the LSFX.


Folder Structure

This one is slightly different than the previous file types, as it has to be saved in a very special way.

  1. The file MUST be saved as

Notice

You can save within a subfolder of /Effects/, but the subfolder title must be prefaced with [PAK]_ before the name.

  1. The file will be saved here:

MergedFolderStructure


Clone this wiki locally