Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade to new Build 43 Mod Standards #42

Open
Nekuromu opened this issue Aug 31, 2024 · 0 comments
Open

Upgrade to new Build 43 Mod Standards #42

Nekuromu opened this issue Aug 31, 2024 · 0 comments
Labels
enhancement New feature or request

Comments

@Nekuromu
Copy link
Collaborator

Excerpt from August 29th The Indie Stone Blog titled 'MODPOCALYPSE'

With such a huge update to the game, it is inevitable that almost every mod that exists will be invalidated in some capacity. With the new crafting systems, especially, it’s unlikely any mod will work out of the box.

However, what we do have is a new modding architecture which will help a lot in the transition, that’s heavily inspired by the way that a certain game that’s set on a World out on the Rim does it.

Essentially, Aiteron’s been working on heavily improving the mod system to allow for versioned mods to be included in a Workshop item.

B41 currently uses the root directory of the workshop files as the mod: it contains a media directory and all the rest that allows the mod to override files in the core zomboid data directory. B42, meanwhile, instead introduces a functionality where a build of the game will query the mod for a subdirectory which contains the most recent compatible version of the mod – and to then use those files.

For example, a subscribed mod could have a 42 directory, a 42.21 directory, a 43 directory and a 43.31 directory. If you run a version of the game that’s 42.1 it’d use the 42 directory, and load that version of the mod. If you then upgraded to 42.25 then it would start using the 42.21 directory, and so on.

Within this there’s also a ‘common’ directory that’s used by any version of the mod and can be used to store large files such as art or sounds, that modders clearly don’t want duplicated over 20 versions of their mod.

(Though this aspect will only truly come into play in versions beyond 41, as we can’t at this point realistically modify Build 41 to use the new mod system – and B41 mods will clearly remain loading directly out of the root directory as they currently do while ignoring the B42+ versioned directories.)

What this will all mean is that when modders update their mods to work with B42, they can leave the B41 files within the mod package and continue to work on B41 content as and when they desire. Simultaneously, however, they’ll be able to support the B42 beta without destroying that compatibility with B41 stable

From that point on they’ll then have much more intelligent versioning to allow for extra power to update their mods, in ways that won’t be destructive to older builds of the game. In addition to this, 42’s new mod load order functionality will make submods and modpacks a lot easier to create.

Finally because of these huge changes, and the likelihood that so few mods at all will work B42 on first release, we currently plan to automatically disable all mods on first load – and B42 will be unable to load any of the B41 mod files until a workshop item has been prepared using a 42 directory. This will be necessary in limiting the amount of bug reports we’d inevitably get from people loading up their B41 mod lists and completely breaking the game.

Looks like there will be some major changes to how the mod is structures post-build 42! I imagine experiments on the work required will start a short time after 43 unstable release.

@Nekuromu Nekuromu added the enhancement New feature or request label Aug 31, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant