The launcher installs the Forge packs a map or a saved Forge layout needs, at the exact versions they were built with, and keeps them while anything still needs them.
Forge packs. A map built with a Forge pack names the pack and the
version it was built with, and the launcher installs that release, or a
later one that keeps all its pieces, with the map. Its hash and signature
are checked before anything is unpacked. A
map the game downloads during a session brings its packs too, unless a
different version of one is already installed: that takes a restart
through the launcher, because the game cannot swap pieces it has already
loaded.
Saved layouts keep their packs. A layout saved with F5 records the
packs and versions it was built from. Before each launch the launcher
installs any that are missing, or a later compatible release of them.
Packs stay while a map needs them. Disabling or uninstalling a pack
that an enabled map needs is refused, and so is changing it to a release
the map was not built for. Pack updates that keep every piece install as
usual.
Pack materials keep their shaders. A pack whose glass or energy
materials carry their own shader library keeps the container number that
library needs, and two packs that need the same number are refused rather
than drawn without shaders.
Changed
Dependency versions follow the usual rules: a bare version such as
1.0.0 means exactly that release, and ^, ~, comparisons and ranges
work. A range the launcher cannot read is refused instead of matching any
version.