Starfield Toolkit

A Windows GUI for managing Bethesda Creations — load order, updates, rule books, and Fast Lane compatibility, without ever touching your game files.

Auto-Sort overview

What happens between clicking Auto Sort and reviewing the diff.

The pipeline

Auto-Sort is a constraint-solver pipeline. Each stage contributes constraints; a final pass merges them by priority and topologically sorts the result.

1

Gather creations

Read Plugins.txt and ContentCatalog.txt. Group multi-file creations.

2

Run each sorter

TES4, LOOT, Categories, Rule Books — each emits its own constraint set.

3

Merge by priority

Highest-priority sorter wins on conflict. See Sorter priority.

4

Topological sort

Produce a total ordering consistent with the merged constraints.

5

Diff & review

Open the Diff dialog. No writes yet.

Stage 1 — gather creations

The tool reads the game's metadata files into a list of creation info records. Multi-file creations (one creation that ships, say, an .esm and a patch .esp) are grouped so they always move together — the game can break if they're split.

Stage 2 — run each sorter

Four sorters run in parallel. Each produces a bag of sort constraints. The constraint vocabulary is small:

Every constraint carries a source (which sorter produced it) and a priority.

Stage 3 — merge

When two sorters disagree (one says A-before-B, another says B-before-A; or two rule books give different tiers), the constraint with the higher priority wins. The loser is retained in a rejected list — this is what the Hint dialog shows.

Stage 4 — solve

The merged constraint set forms a directed graph. A stable topological sort turns it into a linear order, breaking ties by original read order (so unaffected creations don't jump around). See Constraints solver for the gory details, including cycle detection.

Stage 5 — diff

The proposal is presented to you. The tool does not write Plugins.txt until you Apply. On Apply, a final TES4 validation pass ensures the ordering respects master dependencies; if it doesn't, the write is refused.

Design properties