Skip to content
openmw-config
api

Content files and archives

content=, groundcover= and fallback-archive=: iterate, check, add, remove and replace.

Three lists of file names, which OpenMW looks up in its data directories. Each iterates in load order and yields FileSettings. Names compare exactly, case included.

Removing or replacing entries a parent config defined makes the user’s config replace the list, behind a replace= line, so save_user() persists the change: see where changes go.

Content files#

content= lines: the plugins, .esm, .esp, .omwaddon, .omwscripts and the rest.

fn content_files_iter(&self) -> impl Iterator<Item = &FileSetting>
fn has_content_file(&self, file_name: &str) -> bool
fn add_content_file(&mut self, content_file: &str) -> Result<(), ConfigError>

Appends to the end of the load order, attributed to the user’s config. Fails with CannotAddContentFile, naming the file that already lists it, if the name is anywhere in the chain.

fn remove_content_file(&mut self, file_name: &str)

Removes every entry with that name, whichever file it came from. Removing a parent’s entry makes the user’s config replace the list with replace=content when saved.

fn set_content_files(&mut self, plugins: Option<Vec<String>>)

Removes every content= entry and adds plugins in order, attributed to the user’s config, behind a replace=content line when a parent had contributed. None leaves the list empty. Does not check for duplicates.

Groundcover#

groundcover= lines: plugins whose grass OpenMW instances instead of placing as objects.

fn groundcover_iter(&self) -> impl Iterator<Item = &FileSetting>
fn has_groundcover_file(&self, file_name: &str) -> bool
fn add_groundcover_file(&mut self, content_file: &str) -> Result<(), ConfigError>

Appends, attributed to the user’s config. Fails with CannotAddGroundcoverFile if the name is already listed.

fn remove_groundcover_file(&mut self, file_name: &str)

Removes every entry with that name. When one was a parent’s, the user’s config replaces the list with replace=groundcover when saved. There is no set_ form for groundcover.

Archives#

fallback-archive= lines: BSA archives, loaded in order.

fn fallback_archives_iter(&self) -> impl Iterator<Item = &FileSetting>
fn has_archive_file(&self, file_name: &str) -> bool
fn add_archive_file(&mut self, archive_file: &str) -> Result<(), ConfigError>

Appends, attributed to the user’s config. Fails with CannotAddArchiveFile if the name is already listed.

fn remove_archive_file(&mut self, file_name: &str)

Removes every entry with that name. When one was a parent’s, the user’s config replaces the list with replace=fallback-archive when saved.

fn set_fallback_archives(&mut self, archives: Option<Vec<String>>)

Removes every fallback-archive= entry and adds archives in order, attributed to the user’s config, behind replace=fallback-archive when a parent had contributed. None leaves none. Does not check for duplicates.