Skip to content

Starfield: name some of the currently-unknwon RACE fields#1244

Merged
ElminsterAU merged 2 commits into
TES5Edit:dev-4.1.5from
YellowApple:race-field-names
Nov 5, 2023
Merged

Starfield: name some of the currently-unknwon RACE fields#1244
ElminsterAU merged 2 commits into
TES5Edit:dev-4.1.5from
YellowApple:race-field-names

Conversation

@YellowApple

@YellowApple YellowApple commented Nov 4, 2023

Copy link
Copy Markdown
Contributor

Identified Fields

SNAM - Plural Name

Only used 4 times in Starfield.esm:

  • Human -> Humans (in HumanRace, ChildRace, and HumanCrowdRace)
  • Human Corpse -> Human Corpses (in HumanCorpseRace)
  • Mannequin -> Mannequins (in MannequinRace)
  • MiniBotA -> minibota (in MiniBotARace)

Mannequin Skin Swaps

Only used by MannequinRace, and only to specify apparent indices into (or flags on?) LMS_Mannequin_SkinSwap referenced in the MSSA, hence the name.

  • "MSS" probably stands for "Mannequin Skin Swap"
  • Not sure what MSSS stands for ("Mannequin Skin Swap Skin"?) or what it is (maybe an index?)
  • I'd guess MSSI stands for "Mannequin Skin Swap Index"
  • Not sure what MSSA stands for ("Mannequin Skin Swap Assignment"?)

Probably won't be able to glean much more from this one until REFLs are more fully decoded.

Open questions

Leaving these as notes for the next person to take a crack at deciphering these fields (that person may or may not be future me).

Lots of rambling; click to expand

DAT2

Flag: Unknown 46

All RACEs in Starfield.esm have it except for the following:

  • SecurityCameraRace
  • BallisticTurretRace
  • LaserTurretRace

Does Unknown 46 mean "not a turret"? Maybe something about being completely stationary?

Flag: Unknown 55

All RACEs in Starfield.esm have it except for the following:

  • CritterRace
  • AutopilotRace
  • FloaterARace
  • ModelTRace
  • SecurityCameraRace
  • BallisticTurretRace
  • LaserTurretRace
  • MannequinRace
  • MiniBotARace
  • FlyerARace
  • SwimmerARace
  • MantaARace
  • LarvaARace
  • ParasiteARace

Not sure what the commonality here is.

Flag: Unknown 57

Only 3 RACEs have it:

  • TerrormorphRace
  • ParasiteARace
  • TerrormorphElderRace

Probably has something to do with Terrormorphs.

Flag: Unknown 58

Only HopperARace has it.

"Unknown"s

Offset 52

Always one of two values:

  • 02 00 00 00 (HumanRace, HumanCorpseRace, MannequinRace, ChildRace)
  • FF FF FF FF (every other RACE)

Offset 56

Always one of three values:

  • 00 00 00 00 (HumanRace, ChildRace)
  • 01 00 00 00 (HumanCrowdRace)
  • FF FF FF FF (every other RACE)

Offset 60

Always one of two values:

  • 0.01 (HumanRace, HumanCorpseRace, ChildRace, HumanCrowdRace)
  • 0.0 (every other RACE)

Comment in wbDefinitionsSF1 mentions this "must have to do with unarmed weapon".

Offset 76

Known values:

  • 0.0 (HumanCorpseRace, ModelTRace, BallisticTurretRace, LaserTurretRace, MannequinRace, TerrormorphRace, MantidARace, TerrormorphElderRace)
  • 10.0 (ModelSRace)
  • 20.0 (ModelARace, HopperARace, OctopedeARace, CritterRace, FloaterARace, CCT_DummyRace, MiniBotARace, BipedARace, FlyerARace, QuadrupedCRace, MantaARace, LarvaARace, ParasiteARace, HexapodARace, QuadrupedBRace)
  • 30.0 (HumanRace, AutopilotRace, QuadrupedARace, ChildRace, HumanCrowdRace)
  • 180.0 (SecurityCameraRace)

Are these angles in degrees?

Offset 80

Always 00 00 00 00.

Offset 84

Known values:

  • 1.0 (ModelARace, ModelSRace, MantaARace)
  • 0.75 (TerrormorphElderRace)
  • 0.25 (all other RACEs)

Offset 88

Known values:

  • 5.0 (OctopedeARace, CritterRace, FloaterRace, ModelTRace, SecurityCameraRace, CCT_DummyRace, BallisticTurretRace, LaserTurretRace, MannequinRace, MiniBotARace, LarvaARace, ParasiteARace, HexapodARace)
  • 15.0 (ModelARace, ModelSRace, TerrormorphRace, SwimmerARace, MantaARace, TerrormorphElderRace)
  • 30.0 (HopperARace)
  • 45.0 (HumanRace, AutopilotRace, HumanCorpseRace, FlyerARace, QuadrupedCRace, MantidARace, ChildRace, HumanCrowdRace)
  • 60.0 (QuadrupedARace, QuadrupedBRace)
  • 80.0 (BipedARace)

Are these angles in degrees?

Offsets 92 through 116

Always 00 00 00 00.

Offset 120

Known values:

  • 0.0 (SecurityCameraRace, BallisticTurretRace, LaserTurretRace, MannequinRace)
  • -300.0 (all other RACEs)

Offset 124

Always 00 00 00 00.

Offset 128

Always FF FF FF FF

Offset 132

Always 00 00.

Offset 134

Always 00 00 00 00.

Offsets 138 and 139

Always 00.

Offsets 160 through 180

Known values:

The following RACEs have 0.0 for all values: ModelARace, ModelSRace, CritterRace, AutopilotRace, FloaterARace, SecurityCameraRace, BallisticTurretRace, LaserTurretRace, MannequinRace, MiniBotARace, FlyerARace, SwimmerARace, MantaARace, LarvaARace, ParasiteARace

All other RACEs have various values here that I'm too tired to document right now ;)

Offsets 184 / 188

Known values:

  • 00 00 00 00
  • 01 00 00 00
  • 02 00 00 00
  • 03 00 00 00

These are probably integers or flags.

Struct at offset 192

Comment in wbDefinitionsSF1 mentions this is "Same as NPC_ -> ONA2 - Unknown 7. No new findings on my end aside from the fact that one of the floats (at offset 209) is always 0.0.

Skeleton Data

The "Unknown" FLLD is always set to Unknown 0

Movement Data Overrides

The only RACE with anything defined here is LarvaARace. A couple of the "unknown" values in there are approximately pi; all others are at 1.0 or below.

Chargen and Skintones

The "unknown" NNAM is set for HumanCrowdRace; male has AB AB AB AB 00 00 00 00 00 00 00 00 while female has AB AB AB AB AB AB AB AB AB AB AB AB. I wonder if this has anything to do with crowd NPCs being clones of one another (once you remove the skinsuits they wear as inventory items)?

Only used 4 times in Starfield.esm:

- Human -> Humans
- Human Corpse -> Human Corpses
- Mannequin -> Mannequins
- MiniBotA -> minibota
The material-swap-containing structs toward the end of the record are only used with `MannequinRace`.  The `MSSS` and `MSSI` subrecords are probably indices pertaining to the `LMSW` specified in `MSSA`, but any more specific info is likely hiding in the `LMSW`'s `REFL`.
@ElminsterAU ElminsterAU merged commit 6a9d2cb into TES5Edit:dev-4.1.5 Nov 5, 2023
@YellowApple YellowApple deleted the race-field-names branch November 6, 2023 00:23
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.

2 participants