Comments (3)
Here are the results of my testing across all relevant games:
Game | sTestFile order | sTestFile fallback order | Can interleave plugins.txt and sTestFile plugins? |
---|---|---|---|
Oblivion | Ascending file modification timestamp | Descending filename order | Yes, plugins.txt order doesn't matter |
Skyrim | Unclear: changing timestamps, filenames, sTestFile indexes and order of sTestFile entries all had no effect on load order. | ||
Skyrim SE | Ascending file modification timestamp | Descending filename order | No, with one plugin activated by sTestFile and another by plugins.txt, their order did not change whether one had the higher timestamp or the other had it. |
Fallout 3 | Ascending file modification timestamp | Descending filename order | Yes, plugins.txt order doesn't matter |
Fallout New Vegas | Ascending file modification timestamp | Descending filename order | Yes, plugins.txt order doesn't matter |
Fallout 4 | Ascending file modification timestamp | Descending filename order | No, plugins.txt is ignored when sTestFile plugins are defined |
Starfield | Ascending file modification timestamp | Ascending filename order | No, plugins.txt is ignored when sTestFile plugins are defined |
I double-checked Starfield's fallback order since it's different from the rest. I also double-checked Skyrim, but I can't figure it out...
from libloadorder.
In the reduce-ambiguity
branch I've made changes with the following effects:
- For the timestamp-based games:
- Plugins with equal timestamps are now sorted in descending filename order, they were previously sorted in ascending filename order.
is_ambiguous
now always returnsOk(false)
.
- For Skyrim and asterisk-based games:
- Plugins that are installed but not listed in loadorder.txt (or plugins.txt, if loadorder.txt does not exist) are sorted in ascending file modification timestamp order, with files with equal timestamps being sorted in descending filename order. If a plugin's timestamp can't be read, it is sorted earlier than those that can be read. The sorted files are appended to the end of the load order (with adjustments for the usual rules like masters loading before non-masters).
- This change affects unlisted inactive plugins as well as implicitly active plugins, but retains consistency between the two and the behaviour is now more consistent with xEdit and Wrye Bash (which sort such plugins by file modification timestamp).
- For asterisk-based games:
is_ambiguous()
now treats the positions of all implicitly active plugins as unambiguous, rather than just early-loading plugins.
from libloadorder.
Done as of 28b3ad1. I've left the behaviour for Skyrim unchanged.
from libloadorder.
Related Issues (20)
- Use new Fallout4.ccc and Skyrim.ccc files to determine Creation Club plugins
- Add some kind of automated benchmarking to help catch regressions HOT 3
- set_active_plugins counts light masters and non-light-masters by file extension HOT 1
- set_load_order should not add additional plugins to the load order HOT 1
- Return string slices from ReadableLoadOrder methods HOT 1
- Check performance impact of parallel iterators not involving filesystem interaction
- Refactor common test code so that it's reusable
- Setting load order accepts Creation Club plugins in invalid positions HOT 1
- Replace Error::GameMasterMustLoadFirst with a more generic hardcoded plugin position error variant HOT 1
- Expose FFI function to get a game's implicitly active plugins HOT 1
- Plugins that are invalid past their header are treated as valid HOT 3
- Fix API exposing private types HOT 1
- Plugin filename comparisons do not handle path case insensitivity as Windows does
- Allow creation of a handle for Morrowind without supplying a local data path on Linux HOT 1
- Are hardcoded plugins actually hardcoded? HOT 6
- bUseMyGamesDirectory for games other than Oblivion? HOT 2
- Support sTestFile1 to sTestFile10 ini properties HOT 3
- Add support for Starfield HOT 1
- Update support for Starfield HOT 18
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from libloadorder.