You are viewing a potentially older version of this package. View all versions.
Sirdoggy-SideloaderMint-1.5.0 icon

SideloaderMint

Text-based asset replacer for H3VR

Date uploaded 3 days ago
Version 1.5.0
Download link Sirdoggy-SideloaderMint-1.5.0.zip
Downloads 1054
Dependency string Sirdoggy-SideloaderMint-1.5.0

This mod requires the following mods to function

BepInEx-BepInExPack_H3VR-5.4.1700 icon
BepInEx-BepInExPack_H3VR

BepInEx pack for H3VR. Preconfigured and ready to use.

Preferred version: 5.4.1700
bbepis-XUnity_ResourceRedirector-4.16.3 icon
bbepis-XUnity_ResourceRedirector

The resource director allows you to modify resources loaded through the Resources and AssetBundle API as they are being loaded by the game.

Preferred version: 4.16.3

README

Introduction

SideloaderMint is an asset loader for H3VR focused on easily making asset replacements. It's been forked from Sideloader and updated with plenty of new features. SideloaderMint supports per-firearm and per-magazine sound replacements, allows overriding pitch and volume of AudioClips, includes quality-of-life improvements for writing addon manifests, and more!

The full developer documentation is available at: https://gitlab.com/Sirdoggy/SideloaderMint/-/wikis/home

Configuring installed addons

Installed addons can be configured via the SideloaderMint.cfg config file — you can set their load priorities and disable them individually (very handy if several addons are packed into a single Thunderstore mod!). You must launch the game to have your installed addons appear in the config.

Q&A

Can I uninstall the old Sideloader if I have this?

You should still keep it installed if you have mods that depend on it. SideloaderMint will not conflict with Sideloader - you can have both installed alongside each other.

I'm a mod developer - can this load my Sideloader mods?

Yes, but you need to port them first. Doing this is very easy, see: Porting addons from Sideloader

I want to make mods with this, where should I start?

Try making your first addon by following the guide here: Getting Started

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 sharedassets bundles, as long as they’re loaded at game startup
    • To use, put SharedAssets: in target instead of h3vr_data\\streamingassets\\<bundle name>:
    • Proper documentation will be available in the wiki soon!
  • Fixed material, mesh, and prefab replacements not working in revision "2" manifests
  • Manifest path and paths properties 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

1.3.0

Additions for addon developers

  • Added soundVolumeMultiplier and soundPitchMultiplier properties for AudioClip and GunSound/AudioSet replacements. If used together with the existing soundVolume and soundPitch properties, the multiplier is applied after them.
  • Added wildcard support to the path and paths properties.
    • 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
  • 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 path or paths fields 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 priority parameter to addon manifests, which can be used to specify the default priority value in an addon's config.
    • The parameter takes values between -20 and 20.
    • If the parameter is not specified, default addon priority of 0 will be used.
  • 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 (for BoltSlideForward) — triggers only after a firearm shot.
    • AfterManualCharge (for BoltSlideForward) — triggers only after a player's manual interaction with the firearm bolt.
    • AfterHKSlap (for BoltSlideForward:AfterManualCharge and HandleForward) — triggers only after a bolt handle HK-slap.
    • These are meant to serve as a better alternative to using the vanilla BoltRelease event, which is very unreliable.
    • See the wiki for further explanations on how to use these.
  • Added support for "_mute" as a valid value for the path parameter 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