Create virtual file system for mod manager #6
Labels
No labels
ci
crate/dtmm
crate/dtmt
crate/sdk
crate/serde_sjson
kind
bug
kind
documentation
kind
enhancement
kind
feature
kind
question
kind
upstream
part/bundle
part/filetype
stage
actionable
stage
design
stage
proposal
status/duplicate
status/good first issue
status/help wanted
status/invalid
status
need-replicate
status/wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Blocks
#27 Use hard links for mod deployment}
bitsquid_dt/dtmt
Reference: bitsquid_dt/dtmt#6
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
On Linux, this should be fairly simple with OverlayFS, but will require setting up a directory where all the mod bundles and modified game bundles are stored in a way that they can overlay the game bundle folder. But given that Linux also has easy access to hard links, that shouldn't be a problem.
For Windows, there are two approaches:
ProjFS would be the more sane solution, and examples and documentation look quite nice at first glance.
Either way, once the virtual folder is set up, the game needs to be started with that as the working directory.
Although, since the game has a CLI flag to specify a bundle directory, it might be possible to make just that bundle directory the virtual folder.
The general architecture would be
bundle/<mod_bundle>
) to the actual path on disk (wherever the manager stores its imported mods)so the hook for reads would be something like
Another potential example of VFS on Windows: https://www.nexusmods.com/skyrim/mods/90868
The recent hotfix didn't produce any errors for the bundle patcher, simply re-patching was enough. This suggests that a VFS might not be strictly necessary.
A bigger patch may result in actual breakage, but this can be delayed until something like that happens.