Skip to content

Initial Starfield Support #667

@Infernio

Description

@Infernio

Central issue for tracking support. This is not about adding Bashed Patch support yet, just the basics for now (like FO4 before #482).

Needed Info

  • What files are in the Data folder by default? - Initial Starfield Support #667 (comment)
  • Where is the load order stored?
    • Speaking of LO, which of the plugins in the Data folder are forcibly active? - Initial Starfield Support #667 (comment)
    • Is there anything in Starfield.ccc? - no Starfield.ccc yet, though the game does look for it.
    • It seems the LO is in plugins.txt, but it's bugged - the game doesn't create it but does read it, but it also can't even load third-party plugins right now.
  • Has the BA2 structure changed?
    • Apparently compression changed? - Yes and no. v2 BA2s are unchanged (except for two new unknowns in the header), but v3 BA2s have a third unknown in the header and use LZ4 block compression - note SSE uses LZ4 frame compression.
    • Extension is still .ba2 & GNRL vs DX10 is still a thing, according to xEdit sources.
    • Valid BA2 versions seem to be 2 and 3 - general BA2s use version 2, texture BA2s use version 3
    • Starfield seems to use forward slashes in its BA2s by default, important once we want to write them (we already handle reading forward slashes correctly since many modded BSAs used them in previous games).
  • We need the icon, extracted from the official EXE. - Initial Starfield Support #667 (comment)
  • SF does not seem to have registry keys? If so, we need to accelerate our plans for a new Steam detection method (see Initial Starfield Support #667 (comment)).
  • Does SF support ESLs? What about .esl files? - yes, but the flag is 0x100, not 0x200
  • Are the plugin-name-specific dirs the same (i.e. do sound/voice, meshes/actors/character/facegendata/facegeom and meshes/actors/character/facecustomization have folders with plugin names in them)? Are there new ones? - there are three: meshes/actors/character/facegendata/facegeom, sound/voice and textures/actors/character/facecustomization/starfield.esm.
  • What about INIs?
  • I assume SF uses Papyrus. Is the extension the same (.psc/.pex)? What about the folder it's in (scripts)?
  • What about saves?
    • The extension is .sfs, seen on many Nexus save uploads.
    • What does the header look like? - The whole thing is wrapped inside a new BCPS zlib-compressed container, save screenshots don't seem to exist anymore, but beyond that the header is similar. There are two unknown bytes after the master list that clearly belong to it (master list size stored in the save is e.g. 82, but we only get 80 bytes by reading regular + ESL masters) - maybe a new overlay plugin block?
  • What about record structure?
    • Is it generally the same in terms of records, headers and subrecords? - Yes, though Bethesda has made the plugin format much worse yet again (REFL and BFCB/BFCE).
    • Does SF have the expanded plugin range from FO4 (i.e. start from 0x001 instead of 0x800)? Does Next Object ID begin at 0x001? - Yes, it appears so.
    • Does the file extension force ESM/ESL flags like in FO4 and SSE? - Yes, confirmed by aers on Discord.
    • Only valid header version appears to be 0.96, according to xEdit sources.
    • Is the maximum leveled list size still 255? Are there even leveled lists? - Yes and yes.
    • Has someone dumped the CTDA functions yet? - Nope.
      • Is there a GetVATSValue function with the same quirk as in earlier games? - Unknown, see above.
    • What are the top GRUPs? - https://github.com/TES5Edit/TES5Edit/blob/c3f0246f3836888732273611e1754ba7c2e0c65/Core/wbDefinitionsSF1.pas#L17445-L17619
    • I implemented a basic TES4 record, does it work? - Yes.
  • Add a proper SFSE link, currently just links to the github.

Later Stuff

  • There is a second Data folder in My Games\Starfield\Data that takes priority over the game's Data folder
    • Vortex replaces that one with a junction linking back to the main Data folder, we may have to take that account when we add support for the second folder
  • What about localized plugins?
    • Does SF still use strings files?
    • If yes, has the strings format changed? And are they still in the same folder with the same naming convention?
  • Add CTDA info once dumped.
  • Add CK info once the CK comes out.
  • Does SF have achlists? Probably need to wait for the CK?
  • There appears to be a new flag (0x200, what the ESL flag used to be) that makes plugins not take up a load order slot, but prevents them from adding new records. Would be really great for unlimited conflict resolution patches! But let's wait until we have confirmation how that works. -> new issue: Add Support for Overlay Plugins #668
  • Check what key SF1Edit uses (guessing sf1View).
  • Any useful INI tweaks?
    • The enable/disable loose files tweak is needed again.
  • Wait for the CK, then see if they made the same mistake with source/scripts again.

Links

Metadata

Metadata

Assignees

Labels

A-new-gameArea: New Game Implementation (new subpackage in the game package)C-goalCategory: Long term goal. May be code-related or a meta goal.G-starfieldGame: StarfieldM-relnotesMisc: Issue should be listed in the version history for its milestone

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions