Skyrim Mod:Mod File Format/SCRL

The UESPWiki – Your source for The Elder Scrolls since 1995

Internally, all alchemy items (food, drinks, potions, and poisons), enchantments, ingredients, scrolls and spells derive from the same object, MagicItem, and thus share a similar structure.

Auto-calc:

  • Charge Time: The longest Casting Time of all of the effects.
  • Spell Cost: The total of all effect costs.
C Field Name Type/Size Info
+ EDID EditorID zstring Max 0x200 bytes, including null terminator.
+ OBND ObjectBounds OBND Always 12 bytes even if all 0s
- FULL FullName lstring Full (in-game) name
- KSIZ KSIZ uint32 KYWD count
* KWDA KWDA formid[KSIZ] Array of KYWD formids
+ MDOB MenuIcon formid Menu display object STAT
+ ETYP EquipType formid Equip slot EQUP
+ DESC Description lstring In-game description - if 0 concatenated descriptions of effects is shown ingame.
- MODL Model MODL Ground Model
- YNAM PickupSound formid Pickup SNDR
- ZNAM DropSound formid Drop SNDR
+ DATA ItemData struct 8 bytes
uint32 - Value
float - Weight
+ SPIT ScrollData struct 36 bytes
uint32 - Spell Cost - but all scrolls in the game data use autocalcc
uint32 - Flags
0x000001 - ManualCalc
0x080000 - Area Effect Ignores Line of Sight
0x100000 - Script Effect Always Applies
0x200000 - No Absorb/Reflect
 ? - Force Touch Explode
uint32 - Unknown - Always 0? This seems to match spell type for SPEL but is always a Spell (0)
float - ChargeTime
uint32 - Unknown - Always 0x03 or 0x02 This seems to match cast type Value is usually Scroll (3)
uint32 - TargetType
0x00 - Self
0x01 - Touch
0x02 - Aimed
0x03 - Target Actor
0x04 - Target Location
uint32 - CastDuration- Always 0? Doesn't seem applicable to scrolls
uint32 - Range - Always 0? Doesn't seem applicable to scrolls
uint32 - HalfCostPerk - Always 0? Doesn't seem applicable to scrolls
- DEST destruction data DEST See DEST page.
* Effects Effect[] One entry per effect.
Effect
+ EFID EffectID formid Magic Effect MGEF
+ EFIT EffectItem struct 12 bytes
float Magnitude
uint32 Area of Effect
uint32 Duration (0 = instant)

For auto-calc purposes, the game calculates the cost of an effect as:

effect_base_cost * (Magnitude * Duration / 10) ^ 1.1

A Magnitude < 1 is treated as 1, and a Duration of 0 as 10.

* CTDA Conditions CTDA Conditions on the effect.