Skip to content

FXR effect files

FromSoftware engineEffects and decalsApplies toSekiroElden Ring

An FXR file is one visual effect that the game spawns by its id: a small state machine, a tree of nodes, and in the nodes the actions that emit particles, move them, draw them and light the scene. The lights an effect carries are point and spot light actions (below); the lights of the map itself are the BTL banks. Observed

The effects are the members f%09d.fxr (the effect id, nine digits) of the BND4 binders sfx/sfxbnd_*.ffxbnd.dcx; the other members are resource lists and animation binders. Every archive entry that holds an .fxr member is one of these binders. Proven · every BND4 of both archives, named or not

Sekiro Elden Ring
binders with FXR members 8: commoneffects and m10 m11 m13 m15 m17 m20 m25 206 of the 220 sfxbnd binders: commoneffects, commoneffects_dlc02, 56 c* (characters), 24 m* (maps), 3 m*_*_*_*, 121 mimic*
.fxr files 2,913 12,155
distinct effect ids 2,669 11,912
commoneffects share 1,856 files 7,157 files, plus 1,482 in commoneffects_dlc02

Proven · Sekiro, Elden Ring

The id in a file’s header is the number in its member name in all 15,068 files, and a file that appears in several binders is byte-identical in each: 2,669 and 11,912 ids, each with one content. Proven 155 Sekiro ids occur in more than one binder (up to 5 copies) and 87 Elden Ring ids (up to 122), so either copy is the effect. Proven

Every file of both installs is version 5 with header minor 0, little-endian, 144 bytes of header, a 16-byte state map, and ten sections of fixed-size records that follow one another, each starting at the 16-byte-aligned end of the one before and the last ending at the end of the file; then the up to three id lists. Proven · a strict reader reads all 15,068 files and accounts for every byte; an independent walker agrees Version 4 is Dark Souls III’s (its header lacks the three id lists) and header minor 1 Nightreign’s; neither occurs in either install. Sourced · fxr

FXR header144 bytes89% known

Little-endian. The state map (16 bytes) follows at 144, then the sections.

ProvenObservedSourcedInferredUnknownNot described
OffsetSizeTypeFieldConfidenceNotes
0x04char[4] = FXRmagicProven
0x42u16 = 0header minorProven
0x62u16 = 5versionProven
0x84u32 = 1constantProven
0xC4i32effect idProvenThe number in the member name
0x104u32 = 144state map offsetProven
0x144u32 = 1state machine countProven
0x188u32[2]states sectionProvenoffset and count
0x208u32[2]conditions sectionProven
0x288u32[2]nodes sectionProven
0x308u32[2]configs sectionProven
0x388u32[2]actions sectionProven
0x408u32[2]properties sectionProven
0x488u32[2]modifiers sectionProven
0x508u32[2]conditional properties sectionProven
0x588u32[2]field lists sectionProven
0x608u32[2]fields sectionProven
0x684u32 = 1constantProven
0x6C4u32 = 0reservedProven
0x708u32[2]spawned effects (offset, count)ProvenThe ids an SFXReference action of the file names
0x788u32[2]second id list (offset, count)Unknowni32 values: 0 alone in 2,816 Sekiro and 10,997 Elden Ring files, 0 and 10000 in 92 and 26, empty in 5 and 1,035
0x808u32[2]third id list (offset, count)Unknowni32 values; empty in all but 37 Elden Ring files
0x888u32[2] = 0fourth listProvenOffset and count zero in every file
Section Record Size
state map 0, state count, states offset, 0 16
states 0, condition count, conditions offset, 0 16
conditions see below 96
nodes see below 48
configs see below 32
actions see below 64
properties see below 40
modifiers type words, counts, offsets 32
conditional properties the first 24 bytes of a property 24
field lists offset (8), count, 0 16
fields one 32-bit word 4

Proven

The parents name the records of each section exactly once and in order: the root node is the first node record, a node names its child nodes, configs and actions as runs of records, a config names its actions, an action names its properties and field lists, so the records of the states, conditions, nodes, configs, actions, properties, conditional properties and field lists tile their sections with no gap. Proven · every file of both installs The field words and the modifier lists are not tiled: identical constants are stored once and named by more than one property, a property of some files names a word inside the run of another record, and some words no record names. Observed · a sample of 2,400 files

FXR node48 bytes100% known

Pointers are 8 bytes (an offset and a zero word).

ProvenObservedSourcedInferredUnknownNot described
OffsetSizeTypeFieldConfidenceNotes
0x02i16node idObserved2000 for the root, 2200 for an ordinary node, 2001 and 2002 for others
0x22u8[2] = 0, 1constantProven
0x44u32 = 0reservedProven
0x84u32config countProven
0xC4u32action countProven
0x104u32child node countProven
0x144u32 = 0reservedProven
0x188u64configs offsetProven
0x208u64actions offsetProven
0x288u64children offsetProven
FXR config32 bytes100% known
ProvenObservedSourcedInferredUnknownNot described
OffsetSizeTypeFieldConfidenceNotes
0x02i16config idObserved1004 for the usual one
0x22u8[2] = 0, 1constantProven
0x48u64 = 0reservedProven
0xC4u32action countProven
0x108u64 = 0reservedProven
0x188u64actions offsetProven
FXR action64 bytes91% known
ProvenObservedSourcedInferredUnknownNot described
OffsetSizeTypeFieldConfidenceNotes
0x02i16action typeObserved64 types in Sekiro's files, 71 in Elden Ring's, type 0 (an empty slot) among them; see FXR typed actions
0x21u8flagUnknown0 or 1; 1 only with the next byte 0 and the word after it 0
0x31u8flagUnknown1 or 0
0x44i32unknown wordUnknown0 to 11
0x84u32first field list countProven
0xC4u32field list countProven
0x104u32first property list countProven
0x144u32second field list countProven
0x184u32 = 0reservedProven
0x1C4u32second property list countProven
0x208u64fields offsetProvenThe first list's words, then the second's
0x288u64field lists offsetProven
0x308u64properties offsetProvenThe first list's properties, then the second's
0x388u64 = 0reservedProven

A config holds the actions that run while the node is in the state that chooses it. Actions of type 0 hold no field word, property or field list in any file (111,431 of Sekiro’s 354,778 actions, 480,016 of Elden Ring’s 1,463,977). Proven What an action does is its type: the parameters are the field words (integers, floats, booleans, indistinguishable without the type’s definition) and the properties. The fxr project defines 80 types. Sourced · fxr The 72 types the installs hold, where each parameter sits, the layouts they store, the grammar of nodes, configs and slots, and the enumerated parameters are on FXR typed actions.

A node’s own actions include the state-config map (type 199): its first field list holds, for each state, the index of the config that state runs. Observed · read on the light-carrying nodes; see the lights An action of type 132 (SFXReference) spawns another effect, the id in its first field word; the header’s first id list is the set of these ids, in all 15,068 files, and every id exists in the same game’s FXR set. Proven

The light-carrying effects have one to three states (4,236 of Elden Ring’s 4,345 have one, 108 two, 1 three; Sekiro’s 633 of 635 have one). Observed A state holds conditions: each compares two operands and moves the effect to another state when the comparison fails. Observed The comparison and an operator modifier are in the first word (!= with modifier 2, >= with 2 and > with 2 are the only ones in the installs), the else-state follows; the operand types are literal (-4, a float), external value (-3, an integer index the game sets), time of day (-2) and state time (-1). Proven · all 15,835 conditions

FXR condition96 bytes100% known
ProvenObservedSourcedInferredUnknownNot described
OffsetSizeTypeFieldConfidenceNotes
0x02u16operatorProvenBits 0-1 the comparison (0 !=, 1 ==, 2 >=, 3 >), bits 2-3 a modifier (2 in every condition)
0x22u8[2] = 0, 1constantProven
0x44u32 = 0reservedProven
0x84i32else stateProven
0xC4u32 = 0reservedProven
0x102i16left operand typeProven
0x122u8[2] = 0, 1constantProven
0x144u32 = 0reservedProven
0x184u32has fieldProven1 for a literal or an external value, else 0
0x1C4u32 = 0reservedProven
0x208u64field offsetProven
0x2816u8[16] = 0reservedProven
0x3840u8[40]right operandProvenThe left operand's layout

A property is a value that is constant or a function of time, with one to four components. Proven · all 4,624,645 properties of both installs

FXR property40 bytes100% known

A conditional property (of a modifier) is the first 24 bytes.

ProvenObservedSourcedInferredUnknownNot described
OffsetSizeTypeFieldConfidenceNotes
0x02u16type wordProvenBits 0-1 components minus one (scalar, vector 2, vector 3, vector 4 or colour), bits 4-7 the function, bit 12 loop; no other bit is set
0x22u8[2] = 0, 1constantProven
0x44u32second type wordObservedcomponents minus one | function << 2 | loop << 4 in all but 1,393 of Sekiro's and 5,208 of Elden Ring's properties
0x84u32field word countProven
0xC4u32 = 0reservedProven
0x108u64fields offsetProven
0x188u64modifiers offsetProven
0x208u64modifier countProven
Function Value Field words (c = components)
0 zero every component 0 none
1 one every component 1 none
2 constant the components c floats
3 stepped, 4 linear keyframes held or joined by lines n (an integer), c floats, c floats, n positions, n x c values: 1 + 2c + n + nc words
5 Bezier, 6 Hermite keyframes with tangents the same, then two more blocks of n x c floats: 1 + 2c + n + 3nc words

Proven · the field count of every property of both installs fits its function; functions 0 to 6 only Function 7, Armored Core 6’s per-component Hermite, does not occur. Sourced · fxr The two blocks of c floats before the positions are the smallest and the largest value of each component over the keyframes in all but 87 of Sekiro’s 58,605 and 432 of Elden Ring’s 236,122 keyframed properties; the positions ascend in all of them. Proven · counted over every keyframed property

A property’s modifiers (random variation, dependence on an external value, …) are 32-byte records with two type words, their own field words and conditional properties. Observed Type word A holds the component count and the modifier’s kind, and every modifier of both installs is one of five kinds. Proven The kinds, their fields and their counts are in FXR typed actions, and the curve functions in property curves.

FXR modifier32 bytes81% known
ProvenObservedSourcedInferredUnknownNot described
OffsetSizeTypeFieldConfidenceNotes
0x02u16type word ASourcedBits 0-1 the component count minus one; the kind is (bits 12-13) << 4 | bits 4-7: 21, 24, 38, 39 or 53
0x22u8[2] = 0, 1constantProven
0x44u32type word BUnknown
0x84u32field word countProven
0xC4u32conditional property countProven
0x108u64fields offsetProven
0x188u64conditional properties offsetProven

Two action types carry lights: PointLight (609) and SpotLight (11000). LightShaft (10003) is defined by the fxr project for Dark Souls III and Sekiro; no file of either install holds one. Proven · 0 of 354,778 and 1,463,977 actions The installed files hold 834 point lights in 714 Sekiro files and 4,999 in 4,369 Elden Ring files, and 13 spot lights in 11 and 17 in 15 files; counted once per effect id that is 757 and 4,974 lights in 635 and 4,345 effects. Proven Every one sits in a config, never among a node’s own actions. Proven · every file They lie 2 to 9 nodes below the root, mostly 3. Observed A node with two configs holds 130 of the Elden Ring lights and 2 of Sekiro’s; the node’s state-config map chooses the light’s config in state 0 for all but 76 Elden Ring and 2 Sekiro lights. Proven

The lists of a light action differ in length by game and file; the stored counts of the properties and fields pick the layout (properties 1, properties 2, fields 1, fields 2): Proven

Light Layout Sekiro Elden Ring
point 10, 5, 2, 33 4,486
point 10, 5, 2, 31 513
point 10, 5, 2, 29 / 28 / 26 707 / 40 / 82
point 10, 2, 2, 25 (Dark Souls III’s layout) 5
spot 11, 0, 26 or 28 fields 5 and 12
spot 11, 0, 24 / 23 / 21 fields 8 / 4 / 1

The shorter lists are prefixes of the longer ones: the later fields were appended. The five Dark Souls III layout point lights have no multiplier properties and one more field word at index 12 (everything after it is one index later than in the other layouts). Observed

Point light (the layout of 29 or more fields 2; types are as the fxr project defines them, and every named field agrees with its reading of the 4,999 Elden Ring and 831 Sekiro point lights it parses, the five Dark Souls III layout ones on the fields the layouts share) Proven · against the fxr project

List and index Name Type
properties 1, 0 diffuse colour property, 4 components (unrestricted above 1)
properties 1, 1 specular colour property, 4 components (used when separate specular is set)
properties 1, 2 radius property, scalar (metres)
properties 2, 3 diffuse multiplier property, scalar; a linear fade-in in 4,181 of 4,957 Elden Ring lights
properties 2, 4 specular multiplier property, scalar
fields 2, 1 jitter and flicker on boolean
fields 2, 2 jitter acceleration float
fields 2, 4 to 6 jitter X, Y, Z float
fields 2, 7 and 8 flicker interval, shortest and longest float, seconds
fields 2, 9 flicker brightness float
fields 2, 10 casts shadows boolean
fields 2, 11 separate specular boolean
fields 2, 12 fade-out time integer, frames at 30 per second Sourced · fxr
fields 2, 13 shadow darkness float
fields 2, 23 maximum view distance float (0: none)
fields 2, 24 volume density float (fake volumetric fog)
fields 2, 26 to 28 fog phase function (boolean), asymmetry, adaptation exponent boolean, float, float
properties 1, 3 to 9; properties 2, 0 to 2; fields 1, 0 and 1; fields 2, 0, 3, 14 to 22, 25, 29 to 32 unnamed Unknown

Spot light (layout 11, 0, n): properties 1 are diffuse colour (0), specular colour (1), diffuse multiplier (2), specular multiplier (3), near (4), far (5), X radius (6), Y radius (7), then three unnamed; fields 1 repeat the point light’s flicker, shadow and fog fields shifted: jitter flag 1, acceleration 2, jitter 4 to 6, interval 7 and 8, brightness 9, shadows 10, separate specular 11, shadow darkness 12, fade-out frames 15, volume density 19, phase function 21, asymmetry 22, adaptation exponent 23. Proven · against the fxr project, all 30 spot lights The fxr project presents a spot light’s multipliers divided by ten; the stored values are ten times what it prints (8.0 where it prints 0.8). Sourced · fxr The executable’s code for a spot light reads the stored multiplier into the light’s intensity without dividing it (below). Inferred · code read, not run

A light’s place in its effect is the chain of its nodes. The static node transform (action 35) is six float field words, a translation and a rotation in degrees, and sits in a config, never in a node’s own actions: 20,878 Sekiro configs and 81,215 Elden Ring configs have one, none has two. Proven · every config of both installs Every node with several configs has a state-config map. Proven · every node of both installs Counted per light, 167 of Sekiro’s 847 and 725 of Elden Ring’s 5,016 have a rotation above them in the chain of the configs that state 0 chooses; the rest sit under translations only. Proven The rotation order and the translation’s place relative to it are the fxr project’s (rotations Z, X, Y, then the translation). Sourced · fxr A spot light under a node stored as rotation (-65, -75, -35) degrees and offset (0, 1, 0), with a child at (0, 0, -1), stands at the node offset plus the child offset turned by the rotation, and shines along (-0.4082, -0.9063, 0.1094): the axis in the lighting pass’s spot buffer is the negated turned child offset. That axis is the image of +Z when Z turns first, then X, then Y, with the Y angle in the usual right-handed sense and the X angle negated. Of the 48 readings (six orders of the three rotations, each axis in either sense) exactly two reproduce the axis to 1e-3, the two that differ only in the sense of Z; the nearest of the other 46 is 0.23 away (the unit-vector distance). Observed[one stored triple, Sekiro 1.06, the 18 spot records of each of four captures, all identical] The sense of the Z angle does not move a light’s axis when Z turns first, so it is not determined by a spot light whose child offset lies on Z; a chain with the child on X or Y would show it. Unknown

A light action becomes a light object of the renderer through a per-frame update in the executable: it evaluates the action’s properties at the effect’s time and writes the object’s colour, intensity, radius and flicker state. Inferred · Sekiro 1.06 code read, not run The light object is the one a BTL light becomes, so both reach the lighting shader as the same record (see BTL light banks): the record’s diffuse colour is colour^2 * intensity per channel. Observed · Sekiro

For a point light the code gives, per frame:

Light object field Value
colour the diffuse colour’s red, green and blue, times the effect instance’s own colour scale (1 unless the effect is spawned with another)
intensity diffuse multiplier times the diffuse colour’s alpha times the instance’s mean scale (the mean of its three scale values) times the instance’s brightness factor
radius the radius property times the instance’s mean scale
fourth diffuse value 1 divided by a property of the second list (unk_ds3_p2_0 in the fxr project’s naming)

Inferred · code read, not run The effect’s light settings are applied only when the effect has a light-parameter record, which none of the lights read back had. The fixed scale constants in that code are all 1.0. Inferred

Read back from a running Sekiro in Ashina Castle (four frames, 19 point records each):

  • Effect 300’s light (a steady light: no flicker, colour 200/230/255, alpha 1, multiplier 0.05, radius 1.5) is the record with diffuse colour 0.030757403, 0.040676665, 0.05, radius 1.5 and fourth value 5 = 1 / 0.2: colour^2 * multiplier exactly, to float rounding, and 1 / unk_ds3_p2_0. Observed · Sekiro[1 light, 4 frames]
  • Each of the other 14 non-BTL records of the first frame has the colour direction and radius of a stored effect light and a largest colour channel between the stored multiplier times alpha times flicker brightness and the stored multiplier times alpha (for example 4.80 to 6.40 for the 6.4 multiplier lights of flicker brightness 0.75; 9.0 to 9.8 for a multiplier of 10 and flicker 0.875). Over four frames the readings of one light vary within that band. Observed · Sekiro[14 lights, 1 frame]

So an effect light’s multiplier times its colour alpha is in the same unit as a BTL light’s power, with no factor between them; the data’s earlier estimate (an effect’s brightness about five times the nearest BTL light’s power) is a difference in how the lights were authored, not in the unit. Observed · Sekiro No alpha other than 1 was among the lights read back, so the product with alpha rests on the code. Inferred

A spot light’s update is the point light’s, with the multiplier at property 2 and the colour alpha taken the same way: no divisor by ten appears in the update, the packing or the shaders, and the packing’s scale factor for spot lights is 1.0 by default. The cone is built from the near and far planes and two angles 2 * atan(radius / 2 / far), so the stored radii act as the full width and height of the base rather than as half-extents. Inferred · code read, not run; no effect spot light was in the captured frames The spot record the packer writes, the setter that turns two full angles into the cone’s matrix and the shader were read back for five bank spot lights (BTL light banks): the setter takes full angles per axis, so the effect update’s 2 * atan(radius / 2 / far) is a half-angle of atan(radius / 2 / far). Inferred · bank spot lights read back; the effect update’s step read from code

only in Elden Ring An effect light’s record is scaled by the exposure term of the light object (BTL light banks), which for these lights is not 0: over a read of Stormveil Castle’s gate (263 light records of the lighting stage’s buffers, 41 distinct radius, fourth-value and colour groups) the records that stand on a stored effect light (same radius, same 1 / unk_ds3_p2_0, same colour direction) hold the stored brightness (multiplier times alpha, times a flicker factor between the flicker brightness and 1) times a factor of 0.0353 to 0.0427; the nine groups whose stored effect lights flicker give lower bounds of 0.0414 to 0.0432 for the factor, consistent with one factor for every effect. Observed · Elden Ring[9 groups] Effect 300’s light, which does not flicker (multiplier 0.2, colour (245, 255, 250) / 255, alpha 1, radius 2.5), reads 0.00705 to 0.00854 in its largest channel over six records found in 2.5 minutes in a steady scene, so its factor is 2^(-X) with X between 4.55 and 4.83 and changes between records (five of them lie within 0.2 % of one another, one is 17 % lower); one reading of the exposure value that fits a record (-4.5516038 for the factor 0.0426413) is also stored in the process’s memory with the opposite sign. Observed · Elden Ring[6 readings of 1 light] Bank lights of the same read have weight 0 and the factor 1 (BTL light banks), so an effect light’s brightness is about 25 times a bank power of the same value in this scene, not equal to it as in Sekiro, where effect lights read back with factor 1. Observed · Elden Ring That the factor comes from a weight of 1 set on effect lights by the effect’s light update, rather than from a constant, is an inference from the shape of the factor (it moves with the scene). Inferred

only in Elden Ring In one dispatch of another session at the same gate, seven point records stand within 5 cm of stored effect lights placed on assets’ dummy polygons: five on effect 800023 (radius 5, a multiplier keyframed from 0 to 10, flickering) and two on effect 800400 (radius 4, a constant multiplier of 8, flickering). Each record’s diffuse and specular colours are the stored colour^2 * alpha * multiplier (the multiplier at its last keyframe) times one scalar per record, the same in red, green and blue and in diffuse and specular: 0.0388, 0.0409, 0.0468, 0.0495 and 0.0495 for 800023, 0.0429 and 0.0436 for 800400; the radius is the stored one and the specular fourth value is the specular colour’s luma, as in bank lights. Observed · Elden Ring[7 records of 2 effects, 1 dispatch] With a flicker factor of at most 1, the exposure factor in that frame is at least 0.0495 (X at most 4.34), above the range of the first session, consistent with a factor that moves with the scene. Inferred As 800400’s multiplier is a constant, the scalar does not come from the time at which an effect’s curves are sampled. Inferred

What names an effect (params, animation events, map regions, event scripts and other effects), how many effect files each reaches, and how a weapon draws its trail are on What starts an effect.

A light has no place of its own: it stands where the effect stands, under the static node transforms of its chain (above). Where an effect stands is decided by what spawns it.

  • Map regions. An SFX region names an effect; the effect stands at the region’s position and rotation. Inferred
  • Placed models. A row of the model effect param names, for each of up to eight slots, an effect and the reference id of a dummy polygon of the model; the effect attaches to the dummy with that id (a model may carry several dummies with one id, and then the slot’s lights stand at each). Inferred
  • Spawned effects. Every SFXReference action of both installs is among a node’s own actions, none in a config: 543 in Sekiro’s 2,913 files and 5,228 in Elden Ring’s 12,155. Proven · independent walker: the same counts The effect it names stands in the frame of the node that holds the action. Inferred
  • Search order. The effects regions and rows name are in the binder of the map’s area (sfxbnd_m11 for Ashina Castle), in sfxbnd_commoneffects or, in Elden Ring, sfxbnd_commoneffects_dlc02, except for a few: of the 1,872 Sekiro and 1,523 Elden Ring regions, 1 and 9 name an effect held only by another map’s or a character’s binder. Observed

The stored colour of every light, at its first keyframe and where it settles, has components that are whole numbers of 255ths (5,082 components of Sekiro’s 847 lights and 30,075 of Elden Ring’s 5,016, the 7 colours that loop having no settled value). Proven · every light of both installs That is the representation of a byte, as the colours of the BTL lights are.

The light’s brightness is its colour’s alpha times its multiplier, both properties of time. Whether alpha is a factor is Inferred from the files’ use (the alpha settles at 1 in 731 of Sekiro’s 757 and 4,933 of Elden Ring’s 4,974 lights, and the fxr project’s Dark Souls III conversion makes the point light’s alpha its brightness). A spot light’s stored multiplier is ten times the unit a point light’s is in. Sourced · fxr

Brightness has no common scale with the powers of the BTL lights. Taking, per area, the median of the settled alpha times multiplier of the live point lights the area’s effects place and the median power of the point lights of the area’s BTL bank, the ratio of the two medians is 1.6 to 320 over the 68 Elden Ring areas that have both (median 16, quartiles 8 and 33) and 0.25 to 64 over Sekiro’s 9 (median 4): BTL powers are authored per area and the effects’ multipliers are not. Observed · the areas read with both kinds of light An effect light and a BTL light within 1.5 m of each other, which may be one fixture, have a median ratio of 5 (quartiles 3.2 and 10; 1,227 pairs in the Elden Ring areas and Sekiro’s 35 pairs in its 9 areas, median 5, quartiles 2.5 and 6.4), where pairs 3 to 12 m apart have medians of 16: the effect light’s brightness is about five times the BTL light’s power, to a factor of 2 to 3 either way. Inferred[from the pairs, assuming near lights are one fixture]

commoneffects_dlc02 holds 1,482 files, of which 717 carry a point light (799 point lights in all). Proven

Five point lights of the common effects are in Dark Souls III’s layout (above). Observed

What are the second and third id lists of the header?

The second list holds 0 in nearly every file, sometimes with 1, 2 or 10000 (one file family holds only 2000); the third is empty in all but 37 Elden Ring files. Their meaning, and whether the external-value operands of the conditions and modifiers are the values listed, is not established.

Which ModelSfxParam row does a Sekiro object use?

The part’s type data has no relative-id field as the Elden Ring asset part’s; rows at offsets 1 to 4 above the model number x 1000 exist for 335, 209, 66 and 51 placed objects, and what chooses them is not read.

Which way does an effect’s spot light shine?

The spot light stores a near plane, a far plane and the extents of an elliptic base there, and no axis: the axis is the effect’s own local direction, which the file does not name. The light object takes a transform from the effect’s node, but which of its axes the renderer’s cone follows was not read. No effect spot light was drawn in any frame captured: in the six Sekiro frames at the Ashina idol the lighting stage’s spot buffer was written by a map that stored no bytes, so it held no record, and in the Elden Ring frames of Stormveil’s gate the buffer holds no record that parses as a light. Observed · Sekiro, Elden Ring Sekiro’s spot lights are in effects 811050, 811052, 811053 and 811420 (Ashina Castle’s binder), 825160 and 825161 (another area) and 670010, 800270, 800271 and 800311 (the common binder); Elden Ring’s in 810200, 810203 and 810204 (Stormveil’s binder), 800031 and 800280 (common). Proven · Sekiro, Elden Ring · the effect binders read None is started by an SFX region of the map layout of Ashina Castle or Stormveil, so a frame that draws one needs the param row, event or asset that starts it. Observed The code’s cone angle (2 * atan(radius / 2 / far), above) and the absence of a tenth on a spot’s multiplier need one captured frame with a spot light to be proven.

What do the action’s flag bytes and unknown word mean?

The first two bytes are (0, 1) or (1, 0) and the word after them 0 to 11 (always 0 with (1, 0)).

Sources

  • fxr — Unlicense. Reader, writer and editor for FXR; the names, types and defaults of the action parameters
  • SoulsFormatsNEXT FXR3 — The record layouts (it calls nodes containers and configs effects)
  • Smithbox — Param Meta ExtRefs (which param fields name an FXR) and the TAE event templates

Implementations