UNPKG

@cccode/fxr

Version:

JavaScript library for creating and editing FXR files for Dark Souls 3, Sekiro, Elden Ring, Armored Core 6, and Elden Ring Nightreign.

1 lines 36.7 kB
{"ActionType":{"desc":"Values used to represent different types of FXR actions.","members":{"None":{"value":0,"desc":"This action does nothing. It fits into most action slots and acts as a way to disable the effects of the other actions that go in those slots."},"Unk10002_Fluid":{"value":10002,"desc":"Unknown action that *may* exist in Dark Souls 3. It is not used in vanilla, but its name and ID have been found in the game's executable."},"Unk10010_Tracer":{"value":10010,"desc":"Unknown action that *may* exist in Dark Souls 3. It is not used in vanilla, but its name and ID have been found in the game's executable."},"NodeAcceleration":{"value":1,"desc":"Controls the movement of the node. This is the most basic action for controlling the acceleration of nodes."},"NodeTranslation":{"value":15,"desc":"Translates the node using a property, meaning it can be animated. This can be useful if you need the node to follow a specific path."},"NodeSpin":{"value":34,"desc":"Controls the angular speed of the node."},"StaticNodeTransform":{"value":35,"desc":"Controls the translation and rotation of a node."},"RandomNodeTransform":{"value":36,"desc":"Controls the translation and rotation of a node, and can also randomize them."},"NodeAttachToCamera":{"value":46,"desc":"Attaches the node to the camera."},"ParticleAcceleration":{"value":55,"desc":"Controls the movement of particles. This is the most basic action for controlling the acceleration of particles."},"ParticleSpeed":{"value":60,"desc":"Controls the movement of particles. This is the most basic action for controlling the speed of particles."},"ParticleSpeedRandomTurns":{"value":64,"desc":"Controls the movement of particles. This extends [ParticleSpeed](https://fxr-docs.pages.dev/~#ActionType.ParticleSpeed) with the ability to make particles make random turns at a fixed interval."},"ParticleSpeedPartialFollow":{"value":65,"desc":"Controls the movement of particles. This extends [ParticleSpeedRandomTurns](https://fxr-docs.pages.dev/~#ActionType.ParticleSpeedRandomTurns) with the ability to make particles partially follow the parent node."},"NodeSound":{"value":75,"desc":"Plays a sound effect when the node activates."},"EmissionSound":{"value":81,"desc":"Plays a sound effect every time the node emits particles. It only plays the sound once per emission, not once per particle."},"NodeAccelerationRandomTurns":{"value":83,"desc":"Controls the movement of the node. This extends [NodeAcceleration](https://fxr-docs.pages.dev/~#ActionType.NodeAcceleration) with the ability to make the node turn a random amount at a given interval."},"ParticleAccelerationRandomTurns":{"value":84,"desc":"Controls the movement of particles. This extends [ParticleAcceleration](https://fxr-docs.pages.dev/~#ActionType.ParticleAcceleration) with the ability to make particles make random turns at a fixed interval."},"ParticleAccelerationPartialFollow":{"value":105,"desc":"Controls the movement of particles. This extends [ParticleAccelerationRandomTurns](https://fxr-docs.pages.dev/~#ActionType.ParticleAccelerationRandomTurns) with the ability to make particles partially follow the parent node."},"NodeAccelerationPartialFollow":{"value":106,"desc":"Controls the movement of the node. This extends [NodeAccelerationRandomTurns](https://fxr-docs.pages.dev/~#ActionType.NodeAccelerationRandomTurns) with the ability to make the node partially follow or exaggerate the parent node's movement."},"NodeAccelerationSpin":{"value":113,"desc":"Controls the movement of the node. This extends [NodeAcceleration](https://fxr-docs.pages.dev/~#ActionType.NodeAcceleration) with the ability to control the node's angular speed."},"NodeSpeed":{"value":120,"desc":"Controls the movement of the node. This is the most basic action for controlling the speed of nodes."},"NodeSpeedRandomTurns":{"value":121,"desc":"Controls the movement of the node. This extends [NodeSpeed](https://fxr-docs.pages.dev/~#ActionType.NodeSpeed) with the ability to make the node turn a random amount at a given interval."},"NodeSpeedPartialFollow":{"value":122,"desc":"Controls the movement of the node. This extends [NodeSpeedRandomTurns](https://fxr-docs.pages.dev/~#ActionType.NodeSpeedRandomTurns) with the ability to make the node partially follow or exaggerate the parent node's movement."},"NodeSpeedSpin":{"value":123,"desc":"Controls the movement of the node. This extends [NodeSpeed](https://fxr-docs.pages.dev/~#ActionType.NodeSpeed) with the ability to control the node's angular speed."},"NodeAttributes":{"value":128,"desc":"Controls various things about the node, like its duration, and how it is attached to the parent node."},"ParticleAttributes":{"value":129,"desc":"Controls the duration of particles emitted by the node, and how the particles are attached to the node."},"Unk130":{"value":130,"desc":"Unknown action that is in every basic config in every game, and still literally nothing is known about it."},"ParticleModifier":{"value":131,"desc":"Modifies particles in various ways.\n\nNote: This is **not** a [property modifier](https://fxr-docs.pages.dev/~#Modifier), it is an action that modifies particles emitted from the same node."},"SFXReference":{"value":132,"desc":"References another SFX by its ID."},"LevelsOfDetailThresholds":{"value":133,"desc":"Used in the [levels of detail config](https://fxr-docs.pages.dev/~#ConfigType.LevelsOfDetail) to manage the duration and thresholds for the [levels of detail node](https://fxr-docs.pages.dev/~#NodeType.LevelsOfDetail)."},"StateConfigMap":{"value":199,"desc":"Maps states to configs in the parent node."},"SelectAllNodes":{"value":200,"desc":"Used in [NodeEmitter configs](https://fxr-docs.pages.dev/~#ConfigType.NodeEmitter) to emit all child nodes every emission."},"SelectRandomNode":{"value":201,"desc":"Used in [NodeEmitter configs](https://fxr-docs.pages.dev/~#ConfigType.NodeEmitter) to emit a random child node every emission."},"PeriodicEmitter":{"value":300,"desc":"Emits particles periodically."},"EqualDistanceEmitter":{"value":301,"desc":"Emits particles once it has moved a certain distance from where it last emitted particles."},"OneTimeEmitter":{"value":399,"desc":"Emits one particle once."},"PointEmitterShape":{"value":400,"desc":"Makes the emitter a single point."},"DiskEmitterShape":{"value":401,"desc":"Makes the emitter disk-shaped."},"RectangleEmitterShape":{"value":402,"desc":"Makes the emitter rectangular."},"SphereEmitterShape":{"value":403,"desc":"Makes the emitter spherical."},"BoxEmitterShape":{"value":404,"desc":"Makes the emitter cuboidal."},"CylinderEmitterShape":{"value":405,"desc":"Makes the emitter cylindrical."},"NoSpread":{"value":500,"desc":"Makes all emitted instances have the default initial direction from the emitter. See [InitialDirection](https://fxr-docs.pages.dev/~#InitialDirection) for more information."},"CircularSpread":{"value":501,"desc":"Gives each emitted instance a random initial direction offset within a circular cone. See [InitialDirection](https://fxr-docs.pages.dev/~#InitialDirection) for more information."},"EllipticalSpread":{"value":502,"desc":"Gives each emitted instance a random initial direction offset within an elliptical cone. See [InitialDirection](https://fxr-docs.pages.dev/~#InitialDirection) for more information."},"RectangularSpread":{"value":503,"desc":"Gives each emitted instance a random initial direction offset within a rectangular cone. See [InitialDirection](https://fxr-docs.pages.dev/~#InitialDirection) for more information."},"PointSprite":{"value":600,"desc":"Very basic point sprite particle. Similar to [BillboardEx](https://fxr-docs.pages.dev/~#ActionType.BillboardEx), but far simpler."},"Line":{"value":601,"desc":"Simple line particle. It automatically rotates to match the direction it's moving."},"QuadLine":{"value":602,"desc":"Simple rectangular particle, very similar to [Line particles](https://fxr-docs.pages.dev/~#ActionType.Line), but has properties that control the width as well as the length. It automatically rotates to match the direction it's moving."},"BillboardEx":{"value":603,"desc":"Particle with a texture that may be animated. This is the most common particle type and it has a lot of useful fields and properties."},"MultiTextureBillboardEx":{"value":604,"desc":"Particle with multiple textures that can scroll."},"Model":{"value":605,"desc":"Particle with a 3D model.\n\nSome models don't work properly with this action for some reason. For example, the Carian greatsword model in Elden Ring (88300), gets horribly stretched and distorted when used with this action. If you find a model like this that you want to use, try using the [RichModel action](https://fxr-docs.pages.dev/~#ActionType.RichModel) instead."},"LegacyTracer":{"value":606,"desc":"Creates a trail behind moving effects.\n\nThis is an older version of [Tracer](https://fxr-docs.pages.dev/~#Tracer) with fewer features."},"Distortion":{"value":607,"desc":"A particle that distorts anything seen through it.\n\nNote: This particle is not visible if the \"Effects\" setting is set to \"Low\"."},"RadialBlur":{"value":608,"desc":"A particle that applies a radial blur to anything seen through it.\n\nNote: This particle is not visible if the \"Effects\" setting is set to \"Low\"."},"PointLight":{"value":609,"desc":"Point light source."},"SimulateTermination":{"value":700,"desc":"Allows the effect to play out once it terminates. Particle emitters will stop emitting new particles, but particles with a finite duration that have already been emitted will stay around for as long as their duration allows them to.\n\nNote: An effect terminates when it reaches [State](https://fxr-docs.pages.dev/~#State) -1."},"FadeTermination":{"value":701,"desc":"Allows the effect to continue playing normally after it terminates, but its opacity will gradually fade out over a given duration.\n\nNote: An effect terminates when it reaches [State](https://fxr-docs.pages.dev/~#State) -1."},"InstantTermination":{"value":702,"desc":"Makes the effect instantly disappear when it terminates.\n\nNote: An effect terminates when it reaches [State](https://fxr-docs.pages.dev/~#State) -1."},"NodeForceSpeed":{"value":731,"desc":"Controls how the node is affected by forces. For more information about forces that can affect nodes and particles, see:\n- [CancelForce](https://fxr-docs.pages.dev/~#ActionType.CancelForce)\n- [WindForce](https://fxr-docs.pages.dev/~#ActionType.WindForce)\n- [GravityForce](https://fxr-docs.pages.dev/~#ActionType.GravityForce)\n- [ForceCollision](https://fxr-docs.pages.dev/~#ActionType.ForceCollision)\n- [TurbulenceForce](https://fxr-docs.pages.dev/~#ActionType.TurbulenceForce)"},"ParticleForceSpeed":{"value":732,"desc":"Controls how the particles emitted by the node is affected by forces. For more information about forces that can affect nodes and particles, see:\n- [CancelForce](https://fxr-docs.pages.dev/~#ActionType.CancelForce)\n- [WindForce](https://fxr-docs.pages.dev/~#ActionType.WindForce)\n- [GravityForce](https://fxr-docs.pages.dev/~#ActionType.GravityForce)\n- [ForceCollision](https://fxr-docs.pages.dev/~#ActionType.ForceCollision)\n- [TurbulenceForce](https://fxr-docs.pages.dev/~#ActionType.TurbulenceForce)"},"NodeForceAcceleration":{"value":733,"desc":"Controls how the node is affected by forces. For more information about forces that can affect nodes and particles, see:\n- [CancelForce](https://fxr-docs.pages.dev/~#ActionType.CancelForce)\n- [WindForce](https://fxr-docs.pages.dev/~#ActionType.WindForce)\n- [GravityForce](https://fxr-docs.pages.dev/~#ActionType.GravityForce)\n- [ForceCollision](https://fxr-docs.pages.dev/~#ActionType.ForceCollision)\n- [TurbulenceForce](https://fxr-docs.pages.dev/~#ActionType.TurbulenceForce)"},"ParticleForceAcceleration":{"value":734,"desc":"Controls how the particles emitted by the node is affected by forces. For more information about forces that can affect nodes and particles, see:\n- [CancelForce](https://fxr-docs.pages.dev/~#ActionType.CancelForce)\n- [WindForce](https://fxr-docs.pages.dev/~#ActionType.WindForce)\n- [GravityForce](https://fxr-docs.pages.dev/~#ActionType.GravityForce)\n- [ForceCollision](https://fxr-docs.pages.dev/~#ActionType.ForceCollision)\n- [TurbulenceForce](https://fxr-docs.pages.dev/~#ActionType.TurbulenceForce)"},"ParticleForceCollision":{"value":800,"desc":"Enables particles emitted by the node to collide with surfaces, and controls how those collisions affect the movement of the particles.\n\nNote that this works very differently from the collision-related fields in the GPU particle appearance actions. The collision detection for those are entriely based on the distances between the camera and everything in its view, so if a particle is farther away from the camera than an object, the particle will be able to collide with it. The collision detection used in this action is based on the real 3D geometry of the scene, so particles can collide with anything, even while they are out of view.\n\nAlso note that this action seems to cause the game to crash very easily. If a particle affected by this action despawns due to its limited duration, the game will crash no matter what."},"GPUStandardParticle":{"value":10000,"desc":"An entire particle system in a single action. This emits GPU particles, which means thousands of particles can be rendered without much impact on performance.\n\nNote that while this emits particles, it is itself not a particle, and the particles emitted by this action are not affected by everything that affects regular particles.\n\nThe name of this action is from Elden Ring's RTTI, where it's called \"StandardParticle\"."},"GPUStandardCorrectParticle":{"value":10001,"desc":"Very similar to [GPUStandardParticle](https://fxr-docs.pages.dev/~#ActionType.GPUStandardParticle), with no known differences.\n\nThe name of this action is from Elden Ring's RTTI, where it's called \"StandardCorrectParticle\". An action with the same ID had the name \"WanderingVision\" in Dark Souls 3, and that action could still exist in DS3, but it is not found in the vanilla game, so testing it is difficult.\n\nNote: This action does not exist in Dark Souls 3 or Sekiro, but it still has unknown fields and properties named after those games. This is because it makes the conversion between this action and [GPUStandardParticle](https://fxr-docs.pages.dev/~#ActionType.GPUStandardParticle) much simpler. When written for those two games, this action will be converted to the other action automatically."},"LightShaft":{"value":10003,"desc":"A pretty simple light shafts effect only used in Dark Souls 3. It shows up if converted for Sekiro, but it doesn't seem to work correctly in that game. It does not seem to work at all in Elden Ring or Armored Core 6."},"GPUSparkParticle":{"value":10008,"desc":"Similar to [GPUStandardParticle](https://fxr-docs.pages.dev/~#ActionType.GPUStandardParticle), this is essentially an entire particle system in a single action. It defines everything about an emitter as well as the particles it emits. The particles emitted by this action are GPU particles, which means that a lot of them can be rendered at the same time without much impact on performance. The particles are also not affected by most things that affect regular particles, like [ParticleMovement actions](https://fxr-docs.pages.dev/~#ActionSlots.ParticleMovementAction).\n\nWhat makes this different from [GPUStandardParticle](https://fxr-docs.pages.dev/~#ActionType.GPUStandardParticle) is that this actions seems to be designed specifically for effects that create sparks. While the other action's particles is more like billboard particles from, for example, [BillboardEx](https://fxr-docs.pages.dev/~#ActionType.BillboardEx), this action's particles are more like [QuadLine](https://fxr-docs.pages.dev/~#ActionType.QuadLine) or [Tracer](https://fxr-docs.pages.dev/~#ActionType.Tracer) particles. They bend and rotate to align with the direction they are traveling, and they stretch based on how fast they're moving.\n\nThe name of this action is from Elden Ring's RTTI, where it's called \"SparkParticle\".\n\nThis action was first used in Armored Core 6, but definitely also works in Sekiro and Elden Ring. It might work in Dark Souls 3, but its structure is at least somewhat different there, and what that structure looks like is unknown. AC6's structure is compatible with Sekiro and ER, but some features may not work due to having been added in later versions."},"GPUSparkCorrectParticle":{"value":10009,"desc":"Very similar to [GPUSparkParticle](https://fxr-docs.pages.dev/~#ActionType.GPUSparkParticle), just like how [GPUStandardCorrectParticle](https://fxr-docs.pages.dev/~#ActionType.GPUStandardCorrectParticle) is similar to [GPUStandardParticle](https://fxr-docs.pages.dev/~#ActionType.GPUStandardParticle), except these two spark actions have some known differences.\n\nNot all of the differences have been documented yet, but here are some:\n- This action seems to have swapped some axes of rotation, causing some confusing things to happen when the node is spinning.\n- The particles from this action are smaller.\n- The particles from this action move slower. It's possible that this action uses a different unit of distance, since that would explain both the slower movement and the smaller particles.\n\nThe name of this action is from Elden Ring's RTTI, where it's called \"SparkCorrectParticle\"."},"Tracer":{"value":10012,"desc":"Creates a trail behind moving effects.\n\nThis is a newer version of [LegacyTracer](https://fxr-docs.pages.dev/~#LegacyTracer) with more features, like being able to make the opacity of the trail be based on the movement speed of the particle."},"WaterInteraction":{"value":10013,"desc":"Simulates an interaction with water, allowing effects to create ripples in nearby water. The interaction basically pushes water in a shape controlled by a texture down to a given depth and holds it there for a duration before releasing it."},"LensFlare":{"value":10014,"desc":"Creates lens flares with up to 4 textured layers with different colors and sizes."},"RichModel":{"value":10015,"desc":"Particle with a 3D model. Similar to [Model](https://fxr-docs.pages.dev/~#ActionType.Model), but with some different options.\n\nSome models only work properly with this action and not with the Model action for some unknown reason. A good example of this is the Carian greatsword model in Elden Ring (88300), which gets horribly stretched and distorted when used with the other action, but it works fine with this one.\n\nThe name is from Elden Ring's RTTI."},"Unk10100":{"value":10100,"desc":"Unknown root node action."},"CancelForce":{"value":10200,"desc":"Cancels all forces in a volume. This includes wind from weather, and forces from the following actions:\n- [WindForce](https://fxr-docs.pages.dev/~#ActionType.WindForce)\n- [GravityForce](https://fxr-docs.pages.dev/~#ActionType.GravityForce)\n- [TurbulenceForce](https://fxr-docs.pages.dev/~#ActionType.TurbulenceForce)\n\nThe name of this action is based on Elden Ring's RTTI, where it's called \"ForceFieldCancelArea\"."},"WindForce":{"value":10300,"desc":"Creates a directional force in a volume, which is most often useful for creating wind effects. The direction of the force is based on the direction of the node.\n\nThe name of this action is based on Elden Ring's RTTI, where it's called \"ForceFieldWindArea\"."},"GravityForce":{"value":10301,"desc":"Creates a radial force in a volume. This pulls things towards itself, or pushes away if the force is negative.\n\nThe name of this action is based on Elden Ring's RTTI, where it's called \"ForceFieldGravityArea\"."},"ForceCollision":{"value":10302,"desc":"Controls the volume used to detect whether or not the node is inside a force volume.\n\nThe name of this action is based on Elden Ring's RTTI, where it's called \"CollisionFieldArea\"."},"TurbulenceForce":{"value":10303,"desc":"Creates a chaotic force in a volume.\n\nThe name of this action is based on Elden Ring's RTTI, where it's called \"ForceFieldTurbulenceArea\"."},"Unk10400":{"value":10400,"desc":"Unknown root node action."},"Unk10500":{"value":10500,"desc":"Unknown root node action."},"SpotLight":{"value":11000,"desc":"Light source with an elliptic cone shape, a spot light."}}},"AttachMode":{"desc":"Values used to represent different modes of attachment.","members":{"None":{"value":0,"desc":"Completely detached."},"Parent":{"value":1,"desc":"Translates and rotates with the parent node."},"DummyPoly":{"value":2,"desc":"Translates and rotates with the attachment point (dummypoly). Parent transformations are ignored."},"ParentTranslation":{"value":3,"desc":"Only translates with the parent node. Rotations are entirely ignored."},"DummyPolyTranslation":{"value":4,"desc":"Only translates with the attachment point (dummypoly). Rotations are entirely ignored."}}},"BlendMode":{"desc":"Values used to represent different types of blend modes.","members":{"Unk0":{"value":0,"desc":"Seemingly identical to [Add](https://fxr-docs.pages.dev/~#BlendMode.Add)?"},"Source":{"value":1,"desc":"Completely ignores blending. The source layer (particle) will be drawn in place of the background, ignoring the alpha of the layer."},"Normal":{"value":2,"desc":"The source layer (particle) will be drawn on over the background. Transparent or partially transparent parts of the layer will allow the background to be seen through the layer.\n\nAlso known as \"source-over\", and is the same as the \"normal\" blend mode found in many image editors."},"Multiply":{"value":3,"desc":"The source layer (particle) will be multiplied with the background, ignoring the alpha of the layer.\n\nSame as the \"multiply\" blend mode found in many image editors."},"Add":{"value":4,"desc":"The source layer (particle) multiplied by its alpha (clamped to [0, 1]) will be added to the background.\n\nSame as the \"add\", \"additive\", or \"linear dodge\" blend modes found in many image editors. The opposite of [Subtract](https://fxr-docs.pages.dev/~#BlendMode.Subtract)."},"Subtract":{"value":5,"desc":"The source layer (particle) multiplied by its alpha (clamped to [0, 1]) will be subtracted from the background.\n\nSame as the \"subtract\" or \"difference\" blend modes found in many image editors. The opposite of [Add](https://fxr-docs.pages.dev/~#BlendMode.Add)."},"Unk6":{"value":6,"desc":"Seemingly identical to [Normal](https://fxr-docs.pages.dev/~#BlendMode.Normal)?"},"Unk7":{"value":7,"desc":"Seemingly identical to [Add](https://fxr-docs.pages.dev/~#BlendMode.Add)?"}}},"ConfigType":{"desc":"Values used to represent different types of node configurations, also known as \"effects\". There is one for each [type of node](https://fxr-docs.pages.dev/~#NodeType) that supports multiple configs.","members":{"LevelsOfDetail":{"value":1002,"desc":"Manages the duration and thresholds for the [levels of detail node](https://fxr-docs.pages.dev/~#NodeType.LevelsOfDetail).\n\n**Class**: [LevelsOfDetailConfig](https://fxr-docs.pages.dev/~#LevelsOfDetailConfig)"},"Basic":{"value":1004,"desc":"Config used in [basic nodes](https://fxr-docs.pages.dev/~#NodeType.Basic) to apply transforms and to control emission and properties of particles.\n\n**Class**: [BasicConfig](https://fxr-docs.pages.dev/~#BasicConfig)"},"NodeEmitter":{"value":1005,"desc":"Config used in [node emitter nodes](https://fxr-docs.pages.dev/~#NodeType.NodeEmitter) to control the emission of child nodes.\n\n**Class**: [NodeEmitterConfig](https://fxr-docs.pages.dev/~#NodeEmitterConfig)"}}},"DistortionMode":{"desc":"Used by [Distortion](https://fxr-docs.pages.dev/~#ActionType.Distortion) particles to control what type of distortion to apply.","members":{"Stir":{"value":0,"desc":"Distorts the background as if you stuck something into it and stirred it. It is animated, and the stir speed is controlled by a property."},"NormalMap":{"value":1,"desc":"Distorts the background based on the normal map."},"Twist":{"value":2,"desc":"Distorts the background as if the edges were held in place and you grabbed the center and twisted it."},"Unk3":{"value":3,"desc":"Seemingly identical to [NormalMap](https://fxr-docs.pages.dev/~#DistortionMode.NormalMap)?"},"Unk4":{"value":4,"desc":"This seems to just squeeze everything to the bottom left corner?"}}},"DistortionShape":{"desc":"Possible shapes for [distortion](https://fxr-docs.pages.dev/~#ActionType.Distortion) particles.","members":{"Rectangle":{"value":0,"desc":"A flat rectangle."},"Hemiellipsoid":{"value":1,"desc":"Half of an ellipsoid. (Like a hemisphere, but with three different radii.)"},"Ellipsoid":{"value":2,"desc":"An ellipsoid. (Like a sphere, but with three different radii.)"}}},"EmitterShape":{"desc":"Emitter shapes for the following actions:\n- [GPUStandardParticle](https://fxr-docs.pages.dev/~#ActionType.GPUStandardParticle)\n- [GPUStandardCorrectParticle](https://fxr-docs.pages.dev/~#ActionType.GPUStandardCorrectParticle)\n- [GPUSparkParticle](https://fxr-docs.pages.dev/~#ActionType.GPUSparkParticle)\n- [GPUSparkCorrectParticle](https://fxr-docs.pages.dev/~#ActionType.GPUSparkCorrectParticle)\n\nNot related to the [emitter shape actions](https://fxr-docs.pages.dev/~#ActionSlots.EmitterShapeAction).","members":{"Line":{"value":0,"desc":"A simple line."},"Box":{"value":1,"desc":"A cuboid.\n\nThe difference between this and [Box2](https://fxr-docs.pages.dev/~#EmitterShape.Box2) is how the\n[distribution](https://fxr-docs.pages.dev/~#GPUStandardParticle.emitterDistribution) field acts on it."},"Box2":{"value":2,"desc":"A cuboid.\n\nThe difference between this and [Box](https://fxr-docs.pages.dev/~#EmitterShape.Box) is how the\n[distribution](https://fxr-docs.pages.dev/~#GPUStandardParticle.emitterDistribution) field acts on it."},"Unk3":{"value":3,"desc":"Seemingly identical to [Line](https://fxr-docs.pages.dev/~#EmitterShape.Line)?"},"Cylinder":{"value":4,"desc":"A cylinder."},"Unk5":{"value":5,"desc":"Not yet tested. Found in 800020 in Sekiro."}}},"ForceVolumeShape":{"desc":"Values representing different shapes of the volume where force actions apply their force.","members":{"Boundless":{"value":0,"desc":"Allows the force to affect everything, everywhere."},"Sphere":{"value":1,"desc":"A spherical volume."},"Box":{"value":2,"desc":"A cuboid volume."},"Cylinder":{"value":3,"desc":"A cylindrical volume."},"SquarePrism":{"value":4,"desc":"A square prism volume."}}},"InitialDirection":{"desc":"An emitted instance's initial direction is used for various things that require a direction, but does not have a set one to follow.\n- [ParticleModifier action](https://fxr-docs.pages.dev/~#ActionType.ParticleModifier)'s [speed](https://fxr-docs.pages.dev/~#ParticleModifier.speed).\n- [Line action](https://fxr-docs.pages.dev/~#ActionType.Line)'s initial rotation.\n- [QuadLine action](https://fxr-docs.pages.dev/~#ActionType.QuadLine)'s initial rotation.\n\nThe initial direction can be further modified by the following actions:\n- [NoSpread](https://fxr-docs.pages.dev/~#ActionType.NoSpread)\n- [CircularDirectionSpread](https://fxr-docs.pages.dev/~#ActionType.CircularSpread)\n- [EllipticalDirectionSpread](https://fxr-docs.pages.dev/~#ActionType.EllipticalSpread)\n- [RectangularDirectionSpread](https://fxr-docs.pages.dev/~#ActionType.RectangularSpread)","members":{"Emitter":{"value":0,"desc":"The direction will depend on the emitter shape.\n| Emitter Shape | Direction |\n|:-|:-|\n| [Point](https://fxr-docs.pages.dev/~#ActionType.PointEmitterShape) | Same as [LocalNorth](https://fxr-docs.pages.dev/~#InitialDirection.LocalNorth). |\n| [Disk](https://fxr-docs.pages.dev/~#ActionType.DiskEmitterShape) | Same as [LocalNorth](https://fxr-docs.pages.dev/~#InitialDirection.LocalNorth). |\n| [Rectangle](https://fxr-docs.pages.dev/~#ActionType.RectangleEmitterShape) | Same as [LocalNorth](https://fxr-docs.pages.dev/~#InitialDirection.LocalNorth). |\n| [Sphere](https://fxr-docs.pages.dev/~#ActionType.SphereEmitterShape) | The direction cannot be changed for this emitter shape. |\n| [Box](https://fxr-docs.pages.dev/~#ActionType.BoxEmitterShape) | If [emitInside](https://fxr-docs.pages.dev/~#BoxEmitterShape.emitInside) is true, it picks a direction parallel to a random local axis. If it is false, the direction will be out from the box, perpendicular to the side where the particle was emitted. |\n| [Cylinder](https://fxr-docs.pages.dev/~#ActionType.CylinderEmitterShape) | Out from the cylinder's axis. |"},"Up":{"value":1,"desc":"Global up. (+Y)"},"Down":{"value":2,"desc":"Global down. (-Y)"},"North":{"value":3,"desc":"Global north. (+Z)"},"LocalUp":{"value":4,"desc":"Local up. (+Y)"},"LocalDown":{"value":5,"desc":"Local down. (-Y)"},"LocalNorth":{"value":6,"desc":"Local north. (+Z)"}}},"LightingMode":{"desc":"Values representing different lighting modes.\n\nThese values and the fields they are used in require more testing. It's best to not assume they will work exactly as described. Values not covered by this enum are also used in vanilla effects, so there are a lot of unknown things about this.","members":{"UnkMinus2":{"value":-2,"desc":"Same as [Lit](https://fxr-docs.pages.dev/~#LightingMode.Lit), but this seems to sometimes have an extra light source from somewhere?"},"Unlit":{"value":-1,"desc":"Lighting does not affect the particles. No shadows or specular hightlights."},"Lit":{"value":0,"desc":"Lighting affects the particles just like most regular objects."}}},"ModelOrientationMode":{"desc":"Values representing different orientation modes for [Model](https://fxr-docs.pages.dev/~#ActionType.Model) particles.","members":{"North":{"value":0,"desc":"Faces global north."},"CameraPlane":{"value":1,"desc":"Faces away from the camera plane, the same direction as the camera itself."},"ParticleDirection":{"value":2,"desc":"Faces in the direction the particle is moving. This direction can be modified by [DirectionSpread actions](https://fxr-docs.pages.dev/~#ActionSlots.DirectionSpreadAction), and is initially the particle's [InitialDirection](https://fxr-docs.pages.dev/~#InitialDirection)."},"GlobalPitch":{"value":3,"desc":"Tries to face the camera, but is limited to rotation around the global X-axis.\n\nSeemingly identical to [UnkGlobalPitch](https://fxr-docs.pages.dev/~#ModelOrientationMode.UnkGlobalPitch)?"},"GlobalYaw":{"value":4,"desc":"Tries to face the camera, but is limited to rotation around the vertical global Y-axis."},"UnkGlobalPitch":{"value":5,"desc":"Tries to face the camera, but is limited to rotation around the global X-axis.\n\nSeemingly identical to [GlobalPitch](https://fxr-docs.pages.dev/~#ModelOrientationMode.GlobalPitch)?"}}},"NodeType":{"desc":"Values used to represent different types of FXR nodes.","members":{"Root":{"value":2000,"desc":"The root of the FXR tree structure.\n\n**Class**: [RootNode](https://fxr-docs.pages.dev/~#RootNode)"},"Proxy":{"value":2001,"desc":"Acts as a node containing another SFX.\n\n**Class**: [ProxyNode](https://fxr-docs.pages.dev/~#ProxyNode)"},"LevelsOfDetail":{"value":2002,"desc":"A node that only displays one of its child nodes at a time based on distance thresholds for each.\n\n**Class**: [LevelsOfDetailNode](https://fxr-docs.pages.dev/~#LevelsOfDetailNode)"},"Basic":{"value":2200,"desc":"A basic node that can emit particles, play sounds, have transforms and child nodes.\n\n**Class**: [BasicNode](https://fxr-docs.pages.dev/~#BasicNode)"},"NodeEmitter":{"value":2202,"desc":"A node that emits its child nodes.\n\n**Class**: [NodeEmitterNode](https://fxr-docs.pages.dev/~#NodeEmitterNode)"}}},"OrientationMode":{"desc":"Values representing different orientation modes for most particles.","members":{"South":{"value":0,"desc":"Faces global south.\n\nSee also:\n- [UnkSouth](https://fxr-docs.pages.dev/~#OrientationMode.UnkSouth)"},"CameraPlane":{"value":1,"desc":"Faces the camera plane.\n\nSee also:\n- [Camera](https://fxr-docs.pages.dev/~#OrientationMode.Camera)"},"LocalSouth":{"value":2,"desc":"Faces the -Z direction of the parent node."},"UnkSouth":{"value":3,"desc":"Faces global south.\n\nSimilar to [South](https://fxr-docs.pages.dev/~#OrientationMode.South), but this seems to change the projection of the particle in some way."},"GlobalYaw":{"value":4,"desc":"Tries to face the camera, but is limited to rotation around the vertical global Y-axis."},"East":{"value":5,"desc":"Faces global east."},"Camera":{"value":6,"desc":"Faces the camera.\n\nThis is different from [CameraPlane](https://fxr-docs.pages.dev/~#OrientationMode.CameraPlane), as this makes it face the camera's position instead of the camera plane."},"LocalYaw":{"value":7,"desc":"Tries to face the camera, but is limited to rotation around the Y-axis of the parent node."},"Unk11":{"value":11,"desc":"Not yet tested. Found in 639742 in Elden Ring. This also implies the existence of 8, 9, and 10, but they have not been tested or found yet."}}},"PropertyArgument":{"desc":"Arguments used when evaluating properties.\n\nThere is no way to change what argument is given to a property. Each property has one specific argument given to it, and this is sometimes the only difference between two properties in the same action.","members":{"Constant0":{"value":0,"desc":"A constant value of 0."},"ParticleAge":{"value":1,"desc":"Time in seconds since the particle was emitted."},"ActiveTime":{"value":2,"desc":"Time in seconds since the action became active.\n\nAn action becoming active is for example the delay from [NodeAttributes](https://fxr-docs.pages.dev/~#ActionType.NodeAttributes) being over, or the active [State](https://fxr-docs.pages.dev/~#State) changing, making a node change which of its configs is active."},"EmissionTime":{"value":3,"desc":"Time in seconds between the effect being created and the particle being emitted. Stays constant per particle."},"ExternalValue":{"value":4,"desc":"An external value.\n\nIn property modifiers, which external value is used is controlled by a field in the modifier."}}},"ReflectionMode":{"desc":"Used by [lens flares](https://fxr-docs.pages.dev/~#ActionType.LensFlare) to control the direction of the offset vector.","members":{"None":{"value":0,"desc":"No offsets. The flare(s) will appear at the source's position."},"Radial":{"value":1,"desc":"The source's screen-space position will be reflected through the center of the screen to calculate the offset vector."},"Horizontal":{"value":2,"desc":"The source's screen-space position will be flipped horizontally to calculate the offset vector."}}},"RichModelOrientationMode":{"desc":"Values representing different orientation modes for [RichModel](https://fxr-docs.pages.dev/~#ActionType.RichModel) particles.","members":{"North":{"value":0,"desc":"Faces global north.\n\nSeemingly identical to [UnkNorth](https://fxr-docs.pages.dev/~#RichModelOrientationMode.UnkNorth)?"},"CameraPlane":{"value":1,"desc":"Faces away from the camera plane, the same direction as the camera itself."},"ParticleDirection":{"value":2,"desc":"Faces in the direction the particle is moving. This direction can be modified by [DirectionSpread actions](https://fxr-docs.pages.dev/~#ActionSlots.DirectionSpreadAction), and is initially the particle's [InitialDirection](https://fxr-docs.pages.dev/~#InitialDirection)."},"UnkNorth":{"value":3,"desc":"Faces global north.\n\nSeemingly identical to [North](https://fxr-docs.pages.dev/~#RichModelOrientationMode.North)?"},"GlobalYaw":{"value":4,"desc":"Tries to face the camera, but is limited to rotation around the vertical global Y-axis."}}},"TracerOrientationMode":{"desc":"Values representing different orientation modes for [Tracer](https://fxr-docs.pages.dev/~#ActionType.Tracer) and [LegacyTracer](https://fxr-docs.pages.dev/~#ActionType.LegacyTracer) particles.","members":{"Travel":{"value":0,"desc":"The tracer source is perpendicular to the direction it's travelling and the direction of the camera."},"LocalZ":{"value":1,"desc":"The tracer source is aligned with the local Z-axis, which is detenmined by the rotation of the node that emits the tracer."},"Vertical":{"value":2,"desc":"The tracer source is aligned with the global vertical axis."},"GlobalX":{"value":3,"desc":"The tracer source is aligned with the global X-axis."},"Cross":{"value":4,"desc":"Creates two sources for the tracer with different orientation modes. One has [Vertical](https://fxr-docs.pages.dev/~#TracerOrientationMode.Vertical) and the other has [GlobalX](https://fxr-docs.pages.dev/~#TracerOrientationMode.GlobalX), forming a cross."},"Diagonal":{"value":5,"desc":"The tracer source is parallel to the global diagonal (1, 1, 1)."}}}}