Tool Morrowind active
vfstool
OpenMW's virtual file system from the command line: find any file your load order provides, see why it wins, lock the result, and collapse it into one folder.
"org.dreamweave.vfstool" = "2.1.0"
- Stable
- 2.1.0 2026-10-23
- Package
- Jess package
- License
- MIT OR Apache-2.0
Overview
OpenMW does not read its files from one Data Files folder. It stacks every data= directory
in your openmw.cfg, and every archive listed as fallback-archive=, into one virtual file
system, and asks that for meshes/xbase_anim.nif. The last directory that has the file wins, and
any loose file beats any archive. With forty mods installed, which copy of a texture the game
loads has one right answer and no easy way to see it.
vfstool builds the same VFS from the same openmw.cfg, and answers:
$ jess workspace run --trusted vfstool -- find-file -s textures/tx_wood_01.dds
/tmp/mw/mods/Crisp Textures/Textures/Tx_Wood_01.dds
explain shows every copy behind that one, in load order; conflicts, shadowed and
contributions do the same for whole mods. lock writes down what every file resolves to, and
drift tells you later what changed. collapse writes the whole VFS out as one folder, and run
hands that folder to a tool that only understands one, then keeps what the tool wrote.
- Finding:
find-file,find,explain,duplicates,remaining,extract. - Load order:
conflicts,shadowed,contributions,diff,archives,archive-list. - Checking:
validatefor missing directories, archives and content files;lockand
drift for changes.
- Writing:
collapse, with links, copies or extracted archives, and a dry run;run.
It reads BSA and BA2 archives, from Morrowind's to Fallout 4's, writes its reports as YAML, JSON or TOML, and changes nothing on disk unless writing is the command's job.
Documentation§
vfstool is a Jess package, org.dreamweave.vfstool, and runs through jess from any workspace that
names it. Its commands are documented in vfstool/src/main.jsl, each where it is parsed; the guide
that explained the Rust program lives with it on the rust branch, and the package's own guide is
being written. The library underneath is vfstool_lib, the package
org.dreamweave.vfs.
Install
Jess package · 2.1.0
DreamWeave clientsCHIMERA and other tools that read the manifest
Give the tool this page's address, or the manifest directly. It finds the release for its channel, checks compatibility and dependencies, downloads from any listed source and refuses bytes whose SHA-256 does not match.
- Project id
- 34fc442a-5060-4b77-8c64-ca5ea9861a10
- Manifest
- https://dreamweave-mp.github.io/vfstool/dreamweave/projects/34fc442a-5060-4b77-8c64-ca5ea9861a10.json
What is in the archive
- vfstool.zip
- the mod's filesone data directory
- vfstool-dwmod.tomlthe project's mod.toml
- dreamweave.release.jsonwhat this archive is, for tools
Notes
jess install org.dreamweave.vfstool puts vfstool on your PATH. Without jess, unzip the
download for your platform and run the vfstool inside. In a workspace that names it under
[dev-dependencies], jess workspace run --trusted vfstool -- find-file -s textures/tx_wood_01.dds
runs it there. Either way it reads the openmw.cfg --config or OPENMW_CONFIG names, a file or
the folder holding it, else OpenMW's own.
Releases
-
2.1.0 stable
vfstool finds OpenMW's own configuration again, as the Rust program did.
Fixed
- With neither
--confignor OPENMW_CONFIG, vfstool reads the openmw.cfg in the folder OpenMW keeps its own in on this platform: Documents\My Games\OpenMW on Windows, wherever Documents was moved, Library/Preferences/openmw on macOS, and the XDG config folder elsewhere. Its?userconfig?and?userdata?are OpenMW's own folders. Needs jess 0.2.1 or later; the standalone downloads carry it.
org.dreamweave.vfstool-2.1.0.jpkVerify · sha256 314590d8841e…f55e2c20b
- Release
- 2.1.0 (stable)
- Size
- 62060 bytes
- SHA-256
- 314590d8841e4fbd3c6f240ca8457d7b4648e8334124399e85629c5f55e2c20b
- Commit
- 1eae7ab127b5
- Package
org.dreamweave.vfstool- Content digest
- eb05850223448c7d80c4723490c02a31dc3842e72ce0969019d15fd8c858ca09
- Sources
- 1
Check it yourself:
sha256sum org.dreamweave.vfstool-2.1.0.jpkmust print the digest above.vfstool-2.1.0.jswVerify · sha256 4fee62bbe250…03462e68c
- Release
- 2.1.0 (stable)
- Size
- 475758 bytes
- SHA-256
- 4fee62bbe250d338b08cf4f258a015450037b3f5d7e943fd54323e803462e68c
- Commit
- 1eae7ab127b5
- Sources
- 1
Check it yourself:
sha256sum vfstool-2.1.0.jswmust print the digest above.vfstool-Windows-X64.zipVerify · sha256 9fd98175b93b…a381d5730
- Release
- 2.1.0 (stable)
- Size
- 21367046 bytes
- SHA-256
- 9fd98175b93bc7d2ea22bd9606c1ef5ab66d8d1098c8ce895100cf5a381d5730
- Commit
- 1eae7ab127b5
- Sources
- 1
Check it yourself:
sha256sum vfstool-Windows-X64.zipmust print the digest above.vfstool-macOS-X64.zipVerify · sha256 84ad5ed450ed…5db6c394f
- Release
- 2.1.0 (stable)
- Size
- 22381552 bytes
- SHA-256
- 84ad5ed450ed2a6248d44bbc36b076ec5819e9c1708b5061b73b5685db6c394f
- Commit
- 1eae7ab127b5
- Sources
- 1
Check it yourself:
sha256sum vfstool-macOS-X64.zipmust print the digest above.vfstool-macOS-ARM64.zipVerify · sha256 671b4364b950…a6a057b33
- Release
- 2.1.0 (stable)
- Size
- 20318178 bytes
- SHA-256
- 671b4364b95066a733a03d6f5ae5f951763cd258a7150ce6a3798dca6a057b33
- Commit
- 1eae7ab127b5
- Sources
- 1
Check it yourself:
sha256sum vfstool-macOS-ARM64.zipmust print the digest above.vfstool-Linux-X64.zipVerify · sha256 7ef1c8cb9a1d…bf3e817e2
- Release
- 2.1.0 (stable)
- Size
- 23029654 bytes
- SHA-256
- 7ef1c8cb9a1d505f66eeb40da43132b1e266a38cef083820b733102bf3e817e2
- Commit
- 1eae7ab127b5
- Sources
- 1
Check it yourself:
sha256sum vfstool-Linux-X64.zipmust print the digest above. - With neither
-
2.0.1 stable
vfstool ships as a program again:
jess install org.dreamweave.vfstool, or a download that runs without jess for Windows, macOS and Linux.Added
- The release carries vfstool as an application:
vfstool.jsw, the package and everything it runs packed into one file, whichjess install org.dreamweave.vfstoolinstalls onto your PATH. - A standalone
vfstoolfor Windows x8664, macOS x8664 and ARM64, and Linux x86_64: jess carrying vfstool, zipped, needing nothing installed.
Fixed
vfstool help,--helpand-hprint the commands and options instead of a note about the test suite, and running vfstool with no command points at them.
Known issues
- vfstool doesn't look for
openmw.cfgin OpenMW's default location: name it, or the folder holding it, with--configorOPENMW_CONFIG.
org.dreamweave.vfstool-2.0.1.jpkVerify · sha256 4b0d613b3844…eaf65869e
- Release
- 2.0.1 (stable)
- Size
- 62357 bytes
- SHA-256
- 4b0d613b3844cfccc334446e1b6af746a9dfe70d1a9edcf2d58cb60eaf65869e
- Commit
- 66168bb6ed9b
- Package
org.dreamweave.vfstool- Content digest
- 90655f153e7363c0ca6acc05554f2d8ff650af5286947a8c505743e9428e9c5e
- Sources
- 1
Check it yourself:
sha256sum org.dreamweave.vfstool-2.0.1.jpkmust print the digest above.vfstool-2.0.1.jswVerify · sha256 0d56410a49dc…d92a96f49
- Release
- 2.0.1 (stable)
- Size
- 471955 bytes
- SHA-256
- 0d56410a49dc34e06cd21c2454cf9a1fa689500757c623ddcd919c5d92a96f49
- Commit
- 66168bb6ed9b
- Sources
- 1
Check it yourself:
sha256sum vfstool-2.0.1.jswmust print the digest above.vfstool-Windows-X64.zipVerify · sha256 9041a1d6abe8…9640e39f3
- Release
- 2.0.1 (stable)
- Size
- 21351467 bytes
- SHA-256
- 9041a1d6abe8c94bf2ee4f595e46ebcf7539ecc75cefd68c4e797719640e39f3
- Commit
- 66168bb6ed9b
- Sources
- 1
Check it yourself:
sha256sum vfstool-Windows-X64.zipmust print the digest above.vfstool-macOS-X64.zipVerify · sha256 2a49ee7c0a53…cfded454b
- Release
- 2.0.1 (stable)
- Size
- 22355872 bytes
- SHA-256
- 2a49ee7c0a53f66cc77ce8c60b2e343f1d55029e4e9628b70307bafcfded454b
- Commit
- 66168bb6ed9b
- Sources
- 1
Check it yourself:
sha256sum vfstool-macOS-X64.zipmust print the digest above.vfstool-macOS-ARM64.zipVerify · sha256 3e2bf4915a31…15471874b
- Release
- 2.0.1 (stable)
- Size
- 20284034 bytes
- SHA-256
- 3e2bf4915a3169f2d5e726baedf13b7720952ec9922ef155b664ec815471874b
- Commit
- 66168bb6ed9b
- Sources
- 1
Check it yourself:
sha256sum vfstool-macOS-ARM64.zipmust print the digest above.vfstool-Linux-X64.zipVerify · sha256 64ff1c46e306…44c822dc9
- Release
- 2.0.1 (stable)
- Size
- 23018715 bytes
- SHA-256
- 64ff1c46e306d40e02aa0456e452028a6a22916de04c885d9bb114f44c822dc9
- Commit
- 66168bb6ed9b
- Sources
- 1
Check it yourself:
sha256sum vfstool-Linux-X64.zipmust print the digest above. - The release carries vfstool as an application:
-
2.0.0 stable
vfstool is a Jess package, written in Luau; the Rust program continues on the rust branch at 1.0.1.
Breaking changes
- The tool is the Jess package
org.dreamweave.vfstool, run through jess rather than as a downloaded binary. The Rust program stays at 1.0.1 on its GitHub releases, crates.io and this repository'srustbranch, and is no longer developed on main.
org.dreamweave.vfstool-2.0.0.jpkVerify · sha256 4d8a14fffcbb…9340f010b
- Release
- 2.0.0 (stable)
- Size
- 61071 bytes
- SHA-256
- 4d8a14fffcbb1ab7dcc1c75afd3629ad28e86b75960453fb2f1286c9340f010b
- Commit
- 7050b6f37bd7
- Package
org.dreamweave.vfstool- Content digest
- 76d49ff1220dbe340c28eeca9592017ec6e39ec3e42f57029cceb71169d2e95a
- Sources
- 1
Check it yourself:
sha256sum org.dreamweave.vfstool-2.0.0.jpkmust print the digest above. - The tool is the Jess package
Credits
- MaintainerDreamWeave
- The virtual file system vfstool reimplements: data directory order, archives, and loose files over archivesOpenMW
- Case-insensitive findBenjamin Winger