Skip to content
dream-ini
reference

Differences from OpenMW's importer

Where dream-ini and OpenMW's mwiniimporter part ways, and why: load order, missing files, output, and what each keeps of your cfg.

dream-ini reimplements mwiniimporter, the C++ importer that ships with OpenMW and that the OpenMW launcher runs on first start. It imports the same keys, with the same list of fallback settings, and returns the same exit code for a missing INI. Everything below differs on purpose. The C++ side was checked against OpenMW’s source in September 2026.

The load order#

mwiniimporterdream-ini
OrderSorted by modification time, to the second; then each plugin’s header is read and the list sorted so masters come before what needs them; then Tribunal is put before BloodmoonMorrowind.exe’s order: master files, then plugins, each by modification time to the nanosecond. Headers are not read
A GameFile that is not foundWarning: ... not found, ignoring, and the list goes onA warning, and the list stops there, as in Morrowind.exe
GameFile key caseExactAny
Which names countAny name ending in the letters esm or espNames ending in .esm or .esp. A path instead of a file name fails the import

The rules Morrowind.exe follows for its GameFile list are Greatness7’s research. Following them means an install imports into the load order it already had in Morrowind, whatever its plugin headers say.

Finding files#

mwiniimporterdream-ini
Searched for contentdata=, then data-local=, then Data Files beside the INI--data, then data=, then Data Files beside the INI. data-local= is a setting for OpenMW, not a place Morrowind’s files live
ArchivesNot looked for; any name is writtenEach must be found, or the import fails. Only .bsa names
data= linesNever addedThe folders content and archives were found in are added

Your cfg#

mwiniimporterdream-ini
Files needed--ini and --cfg, or it prints its help and exits with 0--ini. Without --cfg, it starts from an empty cfg
Paths as argumentsmwiniimporter Morrowind.ini openmw.cfg worksRefused: always --ini and --cfg
Where the result goesWritten over --cfg, unless --outputStandard output, unless --output or --in-place
What is writtenEvery key, sorted, one per line. Comments, config= chains and the file’s order are lostThe cfg’s own file with only the imported keys changed. See Writing the cfg
HowThe file is opened and writtenA new file, renamed over the old one when complete
An INI or cfg that cannot be readImported as emptyAn error

Messages#

mwiniimporterdream-ini
WarningsStandard outputStandard error
Content files and their timesAlways printed during --game-filesOnly with --verbose

What dream-ini adds#

  • --data, a folder to search first.
  • --data-local, --resources and --user-data, to set those settings in the same run.
  • --in-place, shell completions, a manual page and install-launcher.
  • A GUI for desktops, controllers and handhelds.
  • The importer as a Rust library and a Luau module.