SideloaderMint
Text-based asset replacer for H3VR
CHANGELOG
1.5.0
- Performance optimizations to help with hitches when many addons are installed
- Improved how asset conflicts are logged in console
- Fixed prefab replacements not working
- Fixed volume/pitch settings in AudioClip replacements being applied over GunSound/GunAudioSet replacements if both were loading the same asset
Also in other news, documentation for making texture, material, mesh, and prefab replacements is finally done! You can read it here.
1.4.3
- Fixed SideloaderMint not replacing AudioClips correctly if cached replacements for the same sounds were also loaded by old Sideloader.
1.4.2
Additions
- Added ability to reload all addons by pressing Ctrl + R. New assets might not load in until the scene is also reloaded.
1.4.1
Additions for addon developers
- Added support for replacing individual GunAudioSets of multi-caliber ModularWorkshop guns (as long as they have unique names).
1.4.0
- Texture, material, and mesh replacements can now replace assets from
sharedassetsbundles, as long as they’re loaded at game startup- To use, put
SharedAssets:in target instead ofh3vr_data\\streamingassets\\<bundle name>: - Proper documentation will be available in the wiki soon!
- To use, put
- Fixed material, mesh, and prefab replacements not working in revision "2" manifests
- Manifest
pathandpathsproperties now can only contain wildcards if they belong to a sound replacement asset type
1.3.3
- Fixed even more memory usage spikes, related to texture and material replacers
1.3.2
- Attempted to fix a crash related to mesh replacements (fixed memory usage spikes)
1.3.1
Additions for addon developers
- $schema is now a valid manifest field
- This can be used with the new SideloaderMint JSON schema to have code completion in VSCode!
- Even if you don't use VSCode, other JSON editors should also support this json schema — check their documentation
1.3.0
Additions for addon developers
- Added
soundVolumeMultiplierandsoundPitchMultiplierproperties for AudioClip and GunSound/AudioSet replacements. If used together with the existingsoundVolumeandsoundPitchproperties, the multiplier is applied after them. - Added wildcard support to the
pathandpathsproperties.- Wildcards can only be used in the file name segment of the path. For example
"path": "MySounds/*/*"is invalid. - Wildcards do not match directories and can not search directories recursively.
- Example usage:
"path": "Gunshots/*"— selects all files in the "Gunshots" directory"paths": ["concrete_impact*", "rock_impact*"]— selects all files in the same directory as the manifest whose names start with "concrete_impact" or "rock_impact""paths": ["*.wav"]— selects all .wav files in the same directory as the manifest
- Wildcards can only be used in the file name segment of the path. For example
- Added support for accessing files outside of an addon's directory.
- You can reference any file as long as it's in your mod's plugin directory.
- Paths are still relative to the manifest, so use
../to navigate up to the parent directories. - For example, to access files from one sub-addon in another sub-addon you can do something like this:
"path": "../OtherSubAddon/some_file.wav"
Breaking changes
- All paths specified in
pathorpathsfields are now validated before an addon loads.- If any path points to a non-existent file, the addon will not load
- Wildcards are also validated and must match at least one file
- All addons currently uploaded on Thunderstore were tested to ensure compatibility
1.2.2
- Sub-addon directory names now have less strict validation — allowed characters are now:
a-z,A-Z,0-9,,_,.,,,(, and).
1.2.1
Additions
- If you uninstall an addon, all of it's associated settings will now be removed from the config file upon launching the game.
- This behaviour is enabled by default, but can be disabled in the config file.
1.2.0
Additions
- Added ability to disable addons and set addon priorities via the config file.
- If a mod author bundles several addons in one Thunderstore mod, you can configure them individually.
- Addon priorities determine their load order in case of conflicts.
- You must launch the game to have your installed addons appear in the config file.
Changes for addon developers
- Added optional
priorityparameter to addon manifests, which can be used to specify the default priority value in an addon's config.- The parameter takes values between
-20and20. - If the parameter is not specified, default addon priority of
0will be used.
- The parameter takes values between
- Stricter validation for sub-addon directory names — allowed characters are now
a-z,A-Z,0-9, and_.
1.1.1
Fixes
- Fixed filepath not being logged in the console when a file could not be loaded from an addon.
1.1.0
Additions for addon developers
- Added new target sub-segments for bolt-related events in GunAudioSet and GunSound replacements, which can be used to scope them to only trigger in specific circumstances:
AfterShot(forBoltSlideForward) — triggers only after a firearm shot.AfterManualCharge(forBoltSlideForward) — triggers only after a player's manual interaction with the firearm bolt.AfterHKSlap(forBoltSlideForward:AfterManualChargeandHandleForward) — triggers only after a bolt handle HK-slap.- These are meant to serve as a better alternative to using the vanilla
BoltReleaseevent, which is very unreliable. - See the wiki for further explanations on how to use these.
- Added support for
"_mute"as a valid value for thepathparameter in AudioClip, GunAudioSet, and GunSound replacements. Using"_mute"will silence the target sound, which means you no longer need a dedicated .wav file for that in your addons. Requires ManifestRevision"2".
Other changes
- Names of addons that are being loaded by SideloaderMint are now printed to the console when launching the game.
1.0.0
Initial release