Skip to content

PARAM tables and regulation

A PARAM is a numbered table of fixed-width rows. The file names its param type and data version, but does not carry the definitions of individual row fields. Paramdex supplies community definitions of those fields for each game and revision. Sourced · Paramdex

Game Container Confidence
Sekiro param/gameparam/gameparam.parambnd.dcx in the archives Observed · Sekiro
Elden Ring regulation.bin beside the executable Observed · Elden Ring

Both games’ params use little-endian integers, 64-bit row offsets, an offset to the ASCII param-type name and UTF-16 row names: 135 of Sekiro’s 138 params and all 194 of the installed Elden Ring 1.17.3 regulation. Every byte of each is accounted for by the header, the row index, the rows, the strings and zero padding at the end of the file, with no gap between parts. Proven · Sekiro, Elden Ring The same holds for all 5,489 params of the 29 Elden Ring regulations examined (the installed release and 28 earlier ones). Observed · Elden Ring

The file ends after the last string with 0, 2 or 8 zero bytes in the game params; the graphics-quality params of the archives (Gconfig_*.param, 24 files across both games) have real row names (five or more per file, such as the quality level names) and end in 4, 8, 12 or 15, and Elden Ring’s DefaultKeyAssign.param has 373 distinct Japanese row names. Observed · Sekiro, Elden Ring Two follow the shared empty row name. Where no row has a name, 8 follow the param type in 161 Elden Ring params (the five single-row *CommonParam types of each of the 29 regulations, and RuntimeBoneControlParam’s 1,465 rows in the 16 earliest regulations) and in five single-row Sekiro params, and none follow it in 58 Elden Ring params (NetworkParam and SpeedtreeParam in each regulation) and 7 Sekiro. Observed · Sekiro, Elden Ring

The strings follow the row data in one order: the param type (ASCII and a NUL) at the offset the header gives, then the row names, each UTF-16 and a NUL, in row order and directly after the type. The empty name is stored once and every row that has it shares that string; any other name is stored once for its own row, even when another row has the same text. Rebuilding a param from its parsed header fields, rows and names by this rule gives the stored bytes of the 235 archive params examined (Sekiro’s 190 in the 64-bit form, Elden Ring’s 45) and all 5,489 params of the 29 regulations, with the file’s trailing zero bytes and the header’s first word taken as stored. Proven · Sekiro, Elden Ring

Row names are not stored as text in these params. In every param of this form either no row has a name offset (219 Elden Ring params, 12 Sekiro) or every row has the same non-zero offset, which points at one empty UTF-16 string after the param type. None of the 4,323,743 name slots of the 29 Elden Ring regulations and Sekiro’s 135 params names a non-empty string. The names people use come from community lists. Observed · Sekiro, Elden Ring

PARAM header (the 0x85 form of both games)64 bytes91% known
ProvenObservedSourcedInferredUnknownNot described
OffsetSizeTypeFieldConfidenceNotes
0x04u32strings offsetObservedThe param type string's offset rounded up to a multiple of 16 in 4,939 of 5,724 params, the offset itself in the others (which one follows the tool version that wrote the file: the same param type has both forms in different regulation files); individual string pointers remain authoritative
0x42u16 = 0paddingProven
0x62u16unknownUnknown0, 1 or 2; fixed per param type (the same in all 29 Elden Ring regulations); 2 only in BehaviorParam and BehaviorParam_PC of both games, 1 in NpcParam
0x82u16data versionProven
0xA2u16row countProven
0xC4u32 = 0paddingProven
0x108u64param type string offsetProven
0x1820u8[20] = 0paddingProven
0x2C1u8big endianSourcedZero in every param examined
0x2D1u8format flags 1Sourced0x85 in every Elden Ring param and in 135 of 138 Sekiro params; 0x80 offset param type, 0x04 long data offset (SoulsFormatsNEXT); the 0x01 bit is unexplained
0x2E1u8format flags 2Sourced0x07 in the same params; bit 0 selects UTF-16 names
0x2F1u8unknownUnknownZero in all 5,627 params examined; not the definition's format version
0x308u64row data startProven
0x388u64 = 0paddingProven
PARAM row index entry (the 0x85 form)24 bytes100% known
ProvenObservedSourcedInferredUnknownNot described
OffsetSizeTypeFieldConfidenceNotes
0x04i32row IDProven
0x44u32 = 0paddingProven
0x88u64row data offsetProven
0x108u64row name offsetProvenZero means no name; the offset is one shared empty string in these params

The byte at offset 47 is zero in every param of both games, including the params whose Paramdex definition carries a format version other than 0: 106 or 203 in Elden Ring, 106, 201 or 202 in Sekiro. The definition’s format version is not stored in the file. Proven · Sekiro, Elden Ring

Three Sekiro params, default_AIStandardInfoBank, default_EnemyBehaviorBank and MenuColorTableParam, use an older form. Observed · Sekiro Format flags 1 is 0x01 (the first two) or 0x02 (the last), flags 2 is 0. The param type is a 32-byte inline string at offset 12, padded with spaces. Row entries are 12 bytes from offset 48: row ID, row data offset, row name offset. The 16-bit value at offset 4 is the offset of the first row’s data. Every row is named, with Shift-JIS text, 143 names in the three params (40, 22 and 81 rows); the rows are 128, 128 and 4 bytes. Observed · Sekiro

A definition’s row size is the sum of its fields in order, with a bit field taking a container of its declared width (u8 one byte, u16 two, u32 four): consecutive bit fields of the same declared width share a container while their bits fit, and a dummy8 bit field shares the byte of a u8 one. Under this rule the Paramdex definition’s size equals the file’s row size for every param of the installed Elden Ring regulation (194 of 194) and of Sekiro’s gameparam (135 of 135 in the 64-bit form), and for all 5,489 params of the 29 Elden Ring regulations when the definition is taken at the regulation’s version (below). Proven · Elden Ring Observed · Sekiro

The bit positions of the rule are confirmed by the data. In DecalParam, whose 32-bit flag word holds a four-bit pad_05 straddling a byte boundary, the rule leaves every padding bit zero in all 488 Elden Ring and 205 Sekiro rows; placing bit fields byte by byte so that none straddles a byte boundary moves ten fields and puts non-zero bits into pad_05 in 347 and 113 of them. Across all params of the two installs, the 238 dummy8 bit fields are zero in every row under the container rule except one in Sekiro’s AtkParam_Npc, whose two-bit padding field has its lower bit set in 22 of 2,396 rows. Observed · Sekiro, Elden Ring

A definition belongs to a param by the param type string of the file’s header, not by the name of the binder member: the 194 members of the installed Elden Ring regulation have 160 distinct param types, and 11 types are shared by 45 members (WWISE_VALUE_TO_STR_CONVERT_PARAM_ST by 13, the two draw-distance scale types by 7 each, GRASS_TYPE_PARAM_ST and KEY_ASSIGN_PARAM_ST by 3). Observed · Elden Ring Paramdex states that its file names are arbitrary and that a definition is applied by its metadata. Sourced · Paramdex

Smithbox’s copy of Paramdex’s definitions, laid out by the container rule at the binder’s regulation number, types every param of every regulation examined: the 194 params of the installed Elden Ring regulation (179,358 rows), 135 of Sekiro’s 138 (36,083 rows; the three 32-bit-form params are not read) and all 5,295 params of the 28 earlier Elden Ring regulations (4,137,031 rows). In every row each text field decodes (fixstr as Shift-JIS, fixstrW as UTF-16, each ending at its first NUL) and no bit that the definition does not declare is set. A second decoder written separately (its own XML, PARAM header, layout and value code) gives the same value for every field of every row of all 5,624 params. Observed · Sekiro, Elden Ring

The upstream Paramdex repository (the March 2026 head) has no FirstVersion or RemovedVersion in its Elden Ring or Sekiro definitions; only its Nightreign definitions carry them. Its Elden Ring definitions give the installed row size for 188 of the 194 params. The six that differ each give a smaller row than the installed regulation: BUDDY_PARAM_ST (96 against 160), CHR_MODEL_PARAM_ST (12 against 16), GAME_SYSTEM_COMMON_PARAM_ST (800 against 1,024), POSTURE_CONTROL_PARAM_WEP_RIGHT_ST (112 against 144), SIGN_PUDDLE_PARAM_ST (32 against 48) and SOUND_CUTSCENE_PARAM_ST (32 against 36). Its Sekiro definitions give the row size of all 135 params. Observed · Sekiro, Elden Ring

Every bit field in the Elden Ring and Sekiro definitions has the type u8, u16, u32 or dummy8; none is signed. Observed · Sekiro, Elden Ring

Every row’s ID and all 32 modelDispMask bits in both examined NPC tables match an independent SoulsFormats decode using the corresponding Paramdex definition. This does not validate the meanings of every other row field. Proven

Property Sekiro Elden Ring Confidence
Param type NPC_PARAM_ST Same Proven
Data version 14 9 Proven
Row size 896 bytes 736 bytes Proven
Masks 0–15 Bytes 334, 335 Bytes 330, 331 Proven
Masks 16–31 Bytes 338, 339 Bytes 334, 335 Proven

The bits select a model’s marked meshes; the enemy placement supplies the NPC row. See character parts and masks. Sourced · SoulsFormatsNEXT

The Elden Ring layout (data version 9, 736-byte rows, mask bytes 330, 331, 334 and 335) is the layout of NPC_PARAM_ST in all 29 regulations examined, from 1.00.0 to 1.17.3; all four bytes carry set bits in each. A row’s mask is the same in every regulation that has the row for 7,034 of the 7,045 rows of 1.17.3. Observed · Elden Ring

GRASS_TYPE_PARAM_ST has 276-byte rows (data version 1) in Elden Ring’s three grass params and 244-byte rows (data version 6) in Sekiro’s one. The fields up to byte 244 are at the same offsets: lodRange at 0, baseDensity at 8, the model name at 12 (16 UTF-16 characters), the flat texture name at 44 and the billboard texture name at 108 (32 characters each), spacing at 204 and simpleModelName at 212. Elden Ring adds a second 16-character model name, model1Name, at 244. Observed · Sekiro, Elden Ring Read this way, all 166 Sekiro rows and all 632 Elden Ring rows have only printable ASCII in their name fields. Observed · Sekiro, Elden Ring lodRange is signed in Sekiro, where 5 rows hold -1; no Elden Ring row has the sign bit set. Observed · Sekiro, Elden Ring

Which fields moved between regulations beyond the checked ones?

Row sizes and data versions are known for every param of every regulation examined (below), and the NPC masks were read in all of them. Whether the offsets of other fields stay put between regulations is checked only where a definition changes size; the checks of the outfit fields (character parts) and grass types are on the installed release.

What is the 16-bit value at offset 6?

It is 0, 1 or 2, constant for a param type across all 29 regulations (1 in NPC_PARAM_ST, 2 in the behavior params of both games). Nothing in the examined readers depends on it.

Sekiro’s MODEL_SFX_PARAM_ST (ModelSfxParam, 202 rows) and Elden Ring’s ASSET_MODEL_SFX_PARAM_ST (AssetModelSfxParam, 1,293 rows) have 128-byte rows of eight slots of 16 bytes: an effect id (sfxId_n, i32), the reference id of a dummy polygon of the placed model (dmypolyId_n, i32) and eight reserved bytes; Elden Ring’s last slot keeps its isDisableIV byte in the first of its reserved bytes. An unused slot holds -1 in Elden Ring and 0 in Sekiro (so a slot is in use when its effect id is positive). Read from these offsets, every field of every row equals a paramdef reading of the param. Proven · all rows of both installs against the Smithbox definitions The Elden Ring rows that reach a light name dummy 200 in every slot seen. Observed · Elden Ring The row key is the model’s number times 1000 in Sekiro (oNNNNNN) and, in Elden Ring, (nnn x 1000 + mmm) x 1000 + relative id for AEGnnn_mmm with the relative id of the asset part. Observed Sekiro’s param stores the key 1230000 twice, with different slots. Proven · Sekiro

only in Elden Ring Regulation uses AES-256-CBC, with the first 16 stored bytes supplying the IV; decrypted bytes hold a DCX envelope around a binder. Public decryption material is supplied by SoulsFormatsNEXT. Sourced · Elden Ring · SoulsFormatsNEXT One key decrypts the installed regulation and 28 earlier ones (1.00.0 to 1.17.3), which hold 185 params (1.00.0 to 1.06), 186 (1.07 to 1.10) and 194 (1.12.1 on). The envelope is DFLT through 1.10 and ZSTD from 1.12.1. Observed · Elden Ring

The file is the 16-byte IV, then the DCX envelope and the zero bytes that pad it to whole 16-byte blocks (0 to 15 of them, the number that makes the envelope’s length a multiple of 16), encrypted as one CBC chain. Encrypting what was decrypted with the file’s own IV gives the file back for all 29. Proven · Elden Ring

The binder’s eight version bytes are the regulation number in ASCII digits, such as 11730034 for 1.17.3; this equals the number in the release’s name for all 29 files. Observed · Elden Ring Paramdex’s FirstVersion and RemovedVersion on a field are these numbers: a field is in the row from the regulation named by FirstVersion and not from the one named by RemovedVersion. Taking each definition at the regulation’s number reproduces the file’s row size for all 5,489 params of the 29 regulations; ignoring the numbers does so for 4,653. The definition’s data version is a weaker guide: it differs from the file’s in 10 of the installed release’s 194 params (CHR_EQUIP_MODEL_PARAM_ST is 1 in the file and 2 in the definition) and in 151 of the 5,489 params of the 29 regulations, while the row size matches in every one of them. In Sekiro the definition’s data version equals the file’s for all 138 params. Observed · Elden Ring

The data version and the row size change independently between regulations. Of the 18 changes seen between consecutive releases, 3 moved both, 7 moved only the row size and 8 only the data version. Observed · Elden Ring

Param type Regulation seen first Data version Row size
ASSET_GEOMETORY_PARAM_ST 1.02.1, 1.07 3 to 4, 4 to 6 320
BONFIRE_WARP_PARAM_ST 1.03.1 6 168 to 236
BUDDY_PARAM_ST 1.08 2 96 to 160
CHR_MODEL_PARAM_ST 1.06, 1.12.1 2 to 3 (1.12.1) 12 to 16 (1.06)
EQUIP_PARAM_WEAPON_ST 1.02.1 5 to 6 648 to 664
GAME_SYSTEM_COMMON_PARAM_ST 1.02.1, 1.07, 1.12.1 2 to 3 (1.02.1) 800 to 880 (1.07), 880 to 1024 (1.12.1)
MAP_DEFAULT_INFO_PARAM_ST 1.02.1 4 to 6 64
OBJ_ACT_PARAM_ST 1.12.1 2 to 3 96
POSTURE_CONTROL_PARAM_WEP_RIGHT_ST 1.12.1 1 112 to 144
SIGN_PUDDLE_PARAM_ST 1.12.1 1 to 2 32 to 48
SOUND_CUTSCENE_PARAM_ST 1.02.1, 1.05 2 to 5, 5 to 6 32 to 36 (1.05)
WEATHER_ASSET_REPLACE_PARAM_ST 1.12.1 1 to 2 64
WORLD_MAP_POINT_PARAM_ST 1.03.1 6 192 to 256

The regulation columns give the first release that holds the new value; a change may have been made in any earlier release between it and the previous one. Nine params exist only from a later regulation: FinalDamageRateParam from 1.07, and from 1.12.1 ChrEquipModelParam, MapGridCreateHeightDetailLimitInfo, MapNameTexParam_m61, MapPieceTexParam_m61, MimicryEstablishmentTexParam_m61, SignPuddleSubCategoryParam, SignPuddleTabParam and WeatherLotTexParam_m61. Observed · Elden Ring

A spell’s Magic row names its effects and its projectiles. castSfxId, fireSfxId and effectSfxId are effect ids (FXR files of the effect binders), and the pairs refIdN and refCategoryN (N = 1 to 10) name what the spell launches, with the category 0 an attack, 1 a bullet and 2 a special effect (BEHAVIOR_REF_TYPE). Sourced · Paramdex An animation’s event 2 with Attack Index n takes pair n + 1. Inferred · Elden Ring Over the Magic rows of the installed regulation, 739 of the 746 references counted resolve to a Bullet row with category 1. Observed · Elden Ring A Bullet row names the effect that flies (sfxId_Bullet), the one at its hit (sfxId_Hit) and further bullets it makes on hit (HitBulletID) or along its path (intervalCreateBulletId), each -1 when unset. Sourced · Paramdex

Comet Azur (Magic row 4200) shows the chain: its castSfxId is 526250 and its effectSfxId 526255, and its references 1 and 2 are the Bullet rows 10420000 and 10420002. Bullet 10420000 flies effect 526251 with no hit effect, 10420002 flies 526252 and hits with 526253, 10420004 flies 526254, and 10420001 flies none. Their hitRadiusMax is -1. Observed · Elden Ring · the rows of the installed regulation

Elden Ring’s BULLET_PARAM_ST is revision 4 with rows of 272 bytes, 15,475 of them in regulation 11730034. Observed · Elden Ring The fields that say how a bullet flies, what it starts and what it makes sit at these offsets:

BULLET_PARAM_ST row (revision 4), the flight, effect and child fields272 bytesElden Ring0% known

Offsets and names are Paramdex's definition; a reader at these offsets matches a Paramdex-driven reader on every row.

ProvenObservedSourcedInferredUnknownNot described
OffsetSizeTypeFieldConfidenceNotes
0x44s32sfxId_BulletSourcedthe effect that flies with the bullet; -1 none
0x84s32sfxId_HitSourcedthe effect at its hit
0xC4s32sfxId_FlickSourcedthe effect when it is deflected
0x104f32lifeSourcedseconds; -1 for ever
0x144f32distSourcedthe range: travel after which the out-of-range acceleration and gravity apply
0x1C4f32gravityInRangeSourced
0x204f32gravityOutRangeSourced
0x244f32hormingStopRangeSourceddistance from the target at which homing stops
0x284f32initVellocitySourcedstarting speed, m/s
0x2C4f32accelInRangeSourced
0x304f32accelOutRangeSourced
0x344f32maxVellocitySourced
0x384f32minVellocitySourced
0x3C4f32accelTimeSourcedseconds before the acceleration starts
0x404f32homingBeginDistSourcedmetres flown before homing begins
0x544f32hormingOffsetRangeSourcedmetres it aims off its target on each axis
0x684s32HitBulletIDSourcedthe bullet made on hit; -1 none
0x822s16homingAngleSourcedthe turn per second, degrees
0x9A1u8FollowTypeSourcedthe low three bits
0x9C1u8isEnableAutoHomingSourcedbit 4
0xAC4s32intervalCreateBulletIdSourcedthe bullet made along its path; -1 none
0xB04f32intervalCreateTimeMinSourced
0xB44f32intervalCreateTimeMaxSourced
0xBC4f32intervalCreateWaitTimeSourced
0xC31u8isInheritSpeedToChildSourcedbit 0
0xD04f32lifeRandomRangeSourced
0xD42s16homingAngleXSourced-1 leaves it unchanged

A reader that takes these fields at these offsets gives the same value as a reader driven by Paramdex’s definition for every field of all 15,475 rows, integers compared as integers and floats bit for bit. Proven · Elden Ring · every row of regulation 11730034 The field meanings are Paramdex’s: a bullet starts at initVellocity along its forward, does not accelerate before accelTime, then accelerates at accelInRange until it has flown dist and at accelOutRange after, its speed held between minVellocity and maxVellocity, with gravity likewise gravityInRange then gravityOutRange. Sourced · Paramdex Of the rows, 5,458 have a maxVellocity of 0 or less, 8 of them with a positive initVellocity and 12 with a positive acceleration; 11 have a minVellocity above their maxVellocity; 25 have a negative life and 123 a life of 0; 8,681 name a HitBulletID and 1,091 an intervalCreateBulletId. Proven · Elden Ring · every row of regulation 11730034 What the engine does with a maximum of 0 or a minimum above the maximum is not read. Unknown · Elden Ring

Glintstone Pebble Great Glintstone Shard
Magic row, bullet 4000, 10400000 4001, 10400100
sfxId_Bullet, sfxId_Hit 523002, 523003 523022, 523023
life 1.12 1.25
initVellocity, accelInRange / accelOutRange, accelTime 13, 40 / 40, 0.32 the same
minVellocity, maxVellocity, dist, gravity 6, 25, 12, 0 the same
homingAngle, homingAngleX, hormingStopRange 35, -1, 0.4 the same

Observed · Elden Ring · the two rows of the installed regulation

BehaviorParam_PC, which resolves the player’s weapon-art and other non-spell launches, does not key its rows by the event’s fields: the row id equals variationId × 1000 + behaviorJudgeId in 1 of its 13,865 rows. Proven · Elden Ring · every row of the installed regulation

How does the game pick a BehaviorParam_PC row?

The id is not variationId × 1000 + behaviorJudgeId, so the step from an event 2’s Behavior Judge ID and the weapon’s variation to a row is not established.

WORLD_MAP_LEGACY_CONV_PARAM_ST (data version 2) has 48-byte rows and 196 rows in the installed 1.17.3 regulation. Each row says that a point of a legacy map (any map that is not an m60 or m61 overworld tile) is a point of another map: a source map with its reference point, a destination map with the same point in the destination’s frame, and a flag for the row that is the source’s base connection. Observed · Elden Ring The rows carry no rotation. Observed · Elden Ring Legacy maps in the overworld uses them to place each legacy map among the tiles.

WORLD_MAP_LEGACY_CONV_PARAM_ST row (data version 2)48 bytesElden Ring98% known
ProvenObservedSourcedInferredUnknownNot described
OffsetSizeTypeFieldConfidenceNotes
0x01u8flagsSourcedBit 0 is Paramdex's disableParam_NT (183 of 196 rows set it); the other bits are zero in every row
0x13u8[3] = 0paddingProven
0x41u8source areaObservedThe area of the source map's name (14 of m14_00_00_00); at most 99
0x51u8source grid XObserved
0x61u8source grid ZObserved
0x71u8 = 0paddingProven
0x812f32[3]source reference pointObservedMetres in the source map's frame (X, Y, Z)
0x141u8destination areaObserved
0x151u8destination grid XObserved
0x161u8destination grid ZObserved
0x171u8 = 0paddingProven
0x1812f32[3]destination reference pointObservedThe same point in the destination map's frame
0x241u8isBasePointObservedBit 0; 194 of 196 rows set it, and every one of the 98 source maps has a base row
0x2511u8[11] = 0paddingProven

All 196 rows read with every padding byte zero, area and grid numbers at most 99 and finite coordinates, and an independent parser of the decoded param gives the same fields. Proven · Elden Ring The rows name 98 source maps and 110 maps in all; 163 rows have an m60 (118) or m61 (45) tile as destination, 33 another legacy map. Proven · Elden Ring The map numbers have no variant byte: the destination m60_35_45 is the tile m60_35_45_00. Observed · Elden Ring The reference points of 132 of the 196 rows are corroborated by the maps’ own connection regions: the destination’s layout holds a connection region naming the source at the destination reference point, or the source’s holds one naming the destination at the source’s. Of the other 64 rows, 59 name a map that is not in the base-game install, and 5 name only installed maps and have no such region (rows 5, 10, 11, 16 and 17). Observed · Elden Ring

Each warp row names a target entity and an event. In 1.17.2, row 100008 names entity 10001958 and event 71008, and row 61423700 entity 1042371950 and event 76111. Observed · Elden Ring