Skip to content

Add record schemas: MGEF, SPEL, PERK, KEYM, REFR - #3

Open
jeditobe1 wants to merge 2 commits into
BadDogSkyrim:mainfrom
jeditobe1:pr/record-schemas
Open

Add record schemas: MGEF, SPEL, PERK, KEYM, REFR#3
jeditobe1 wants to merge 2 commits into
BadDogSkyrim:mainfrom
jeditobe1:pr/record-schemas

Conversation

@jeditobe1

Copy link
Copy Markdown

Adds typed schemas for five Skyrim SE record types. Pure additions
to defs/tes5.py — no behavior changes elsewhere.

  • MGEF (Magic Effect): 152-byte DATA struct with all 39 fields
    including archetype, actor values, perk-to-apply, casting/delivery
    enums, and sound level.
  • SPEL (Spell): SPIT data struct plus repeating Effect group
    (EFID + EFIT + CTDA), matching the existing ALCH pattern.
  • PERK: DATA struct plus repeating Effect group (PRKE header, entry
    point DATA, conditions, function parameters EPFT/EPFD, PRKF end
    marker).
  • KEYM (Key): value, weight.
  • REFR (Placed Reference): NAME, DATA, XLOC (lock data with level
    enum + key FormID), XTEL (teleport destination), XESP (enable
    parent), XOWN, XLKR, XNDP, XMRK, VMAD, EDID, XSCL.

Includes enums for magic effect archetypes (47 values), casting
types, delivery types, spell types, perk entry points (75 values),
perk functions (16 values), and magic effect flags.

jeditobe1 and others added 2 commits May 6, 2026 10:55
Adds full schema definitions for three record types needed for
mod authoring:

- MGEF (Magic Effect): 152-byte DATA struct with all 39 fields
  including archetype, actor values, perk-to-apply, casting/delivery
  enums, and sound level. Tested against vanilla Standing Stone records.

- SPEL (Spell): SPIT data struct (type, cast type, target type, etc.)
  plus repeating Effect group (EFID + EFIT + CTDA) matching the
  existing ALCH pattern.

- PERK: DATA struct (trait, level, ranks, playable, hidden) plus
  repeating Effect group (PRKE header, entry point DATA, conditions,
  function parameters EPFT/EPFD, and PRKF end marker).

Includes enums for magic effect archetypes (47 values), casting types,
delivery types, spell types, perk entry points (75 values), perk
functions (16 values), and magic effect flags.

Round-trip tested: read vanilla Skyrim.esm records, clone to new ESP,
save, re-read — all subrecords preserved, all schema values accessible.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
KEYM: key items (value, weight)
REFR: placed object references — partial schema covering:
  - NAME (base object), DATA (position/rotation)
  - XLOC (lock data with level enum + key FormID)
  - XTEL (teleport destination)
  - XESP (enable parent), XOWN, XLKR, XNDP, XMRK
  - VMAD, EDID, XSCL

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant