diff --git a/.cargo/config.toml b/.cargo/config.toml index 4ae665f..6d70e9c 100644 --- a/.cargo/config.toml +++ b/.cargo/config.toml @@ -1 +1,4 @@ target.'x86_64-pc-windows-msvc'.rustflags = "-C target-feature=+crt-static" + +[env] +CARGO_WORKSPACE_DIR = { value = "", relative = true } diff --git a/Cargo.lock b/Cargo.lock index 25fb1fe..b8d4d70 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -509,6 +509,15 @@ dependencies = [ "subtle", ] +[[package]] +name = "dir-diff" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7ad16bf5f84253b50d6557681c58c3ab67c47c77d39fed9aeb56e947290bd10" +dependencies = [ + "walkdir", +] + [[package]] name = "directories" version = "5.0.1" @@ -1925,6 +1934,7 @@ dependencies = [ "chrono", "clap", "colored", + "dir-diff", "directories", "figment", "futures", diff --git a/Cargo.toml b/Cargo.toml index 1047bf2..48484b6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -52,3 +52,4 @@ winreg = "0.50" [dev-dependencies] tempfile = "3.19" +dir-diff = "0.3.3" diff --git a/resources/test/installers/bepinex/BepInEx-BepInExPack/BepInEx/config/BepInEx.cfg b/resources/test/installers/bepinex/BepInEx-BepInExPack/BepInEx/config/BepInEx.cfg new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/BepInEx-BepInExPack/BepInEx/core/0Harmony.dll b/resources/test/installers/bepinex/BepInEx-BepInExPack/BepInEx/core/0Harmony.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/BepInEx-BepInExPack/BepInEx/core/0Harmony.xml b/resources/test/installers/bepinex/BepInEx-BepInExPack/BepInEx/core/0Harmony.xml new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/BepInEx-BepInExPack/BepInEx/core/0Harmony20.dll b/resources/test/installers/bepinex/BepInEx-BepInExPack/BepInEx/core/0Harmony20.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/BepInEx-BepInExPack/BepInEx/core/BepInEx.Harmony.dll b/resources/test/installers/bepinex/BepInEx-BepInExPack/BepInEx/core/BepInEx.Harmony.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/BepInEx-BepInExPack/BepInEx/core/BepInEx.Harmony.xml b/resources/test/installers/bepinex/BepInEx-BepInExPack/BepInEx/core/BepInEx.Harmony.xml new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/BepInEx-BepInExPack/BepInEx/core/BepInEx.Preloader.dll b/resources/test/installers/bepinex/BepInEx-BepInExPack/BepInEx/core/BepInEx.Preloader.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/BepInEx-BepInExPack/BepInEx/core/BepInEx.Preloader.xml b/resources/test/installers/bepinex/BepInEx-BepInExPack/BepInEx/core/BepInEx.Preloader.xml new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/BepInEx-BepInExPack/BepInEx/core/BepInEx.dll b/resources/test/installers/bepinex/BepInEx-BepInExPack/BepInEx/core/BepInEx.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/BepInEx-BepInExPack/BepInEx/core/BepInEx.xml b/resources/test/installers/bepinex/BepInEx-BepInExPack/BepInEx/core/BepInEx.xml new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/BepInEx-BepInExPack/BepInEx/core/HarmonyXInterop.dll b/resources/test/installers/bepinex/BepInEx-BepInExPack/BepInEx/core/HarmonyXInterop.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/BepInEx-BepInExPack/BepInEx/core/Mono.Cecil.Mdb.dll b/resources/test/installers/bepinex/BepInEx-BepInExPack/BepInEx/core/Mono.Cecil.Mdb.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/BepInEx-BepInExPack/BepInEx/core/Mono.Cecil.Pdb.dll b/resources/test/installers/bepinex/BepInEx-BepInExPack/BepInEx/core/Mono.Cecil.Pdb.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/BepInEx-BepInExPack/BepInEx/core/Mono.Cecil.Rocks.dll b/resources/test/installers/bepinex/BepInEx-BepInExPack/BepInEx/core/Mono.Cecil.Rocks.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/BepInEx-BepInExPack/BepInEx/core/Mono.Cecil.dll b/resources/test/installers/bepinex/BepInEx-BepInExPack/BepInEx/core/Mono.Cecil.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/BepInEx-BepInExPack/BepInEx/core/MonoMod.RuntimeDetour.dll b/resources/test/installers/bepinex/BepInEx-BepInExPack/BepInEx/core/MonoMod.RuntimeDetour.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/BepInEx-BepInExPack/BepInEx/core/MonoMod.RuntimeDetour.xml b/resources/test/installers/bepinex/BepInEx-BepInExPack/BepInEx/core/MonoMod.RuntimeDetour.xml new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/BepInEx-BepInExPack/BepInEx/core/MonoMod.Utils.dll b/resources/test/installers/bepinex/BepInEx-BepInExPack/BepInEx/core/MonoMod.Utils.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/BepInEx-BepInExPack/BepInEx/core/MonoMod.Utils.xml b/resources/test/installers/bepinex/BepInEx-BepInExPack/BepInEx/core/MonoMod.Utils.xml new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/BepInEx-BepInExPack/doorstop_config.ini b/resources/test/installers/bepinex/BepInEx-BepInExPack/doorstop_config.ini new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/BepInEx-BepInExPack/winhttp.dll b/resources/test/installers/bepinex/BepInEx-BepInExPack/winhttp.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/H3VRUtilities/BepInEx/config/BepInEx.cfg b/resources/test/installers/bepinex/H3VRUtilities/BepInEx/config/BepInEx.cfg new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/H3VRUtilities/BepInEx/config/HookGenPatcher.cfg b/resources/test/installers/bepinex/H3VRUtilities/BepInEx/config/HookGenPatcher.cfg new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/H3VRUtilities/BepInEx/core/0Harmony.dll b/resources/test/installers/bepinex/H3VRUtilities/BepInEx/core/0Harmony.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/H3VRUtilities/BepInEx/core/0Harmony.xml b/resources/test/installers/bepinex/H3VRUtilities/BepInEx/core/0Harmony.xml new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/H3VRUtilities/BepInEx/core/0Harmony20.dll b/resources/test/installers/bepinex/H3VRUtilities/BepInEx/core/0Harmony20.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/H3VRUtilities/BepInEx/core/BepInEx-MonoMod_Loader/MonoMod.dll b/resources/test/installers/bepinex/H3VRUtilities/BepInEx/core/BepInEx-MonoMod_Loader/MonoMod.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/H3VRUtilities/BepInEx/core/BepInEx.Harmony.dll b/resources/test/installers/bepinex/H3VRUtilities/BepInEx/core/BepInEx.Harmony.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/H3VRUtilities/BepInEx/core/BepInEx.Harmony.xml b/resources/test/installers/bepinex/H3VRUtilities/BepInEx/core/BepInEx.Harmony.xml new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/H3VRUtilities/BepInEx/core/BepInEx.Preloader.dll b/resources/test/installers/bepinex/H3VRUtilities/BepInEx/core/BepInEx.Preloader.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/H3VRUtilities/BepInEx/core/BepInEx.Preloader.xml b/resources/test/installers/bepinex/H3VRUtilities/BepInEx/core/BepInEx.Preloader.xml new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/H3VRUtilities/BepInEx/core/BepInEx.dll b/resources/test/installers/bepinex/H3VRUtilities/BepInEx/core/BepInEx.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/H3VRUtilities/BepInEx/core/BepInEx.xml b/resources/test/installers/bepinex/H3VRUtilities/BepInEx/core/BepInEx.xml new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/H3VRUtilities/BepInEx/core/HarmonyXInterop.dll b/resources/test/installers/bepinex/H3VRUtilities/BepInEx/core/HarmonyXInterop.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/H3VRUtilities/BepInEx/core/Mono.Cecil.Mdb.dll b/resources/test/installers/bepinex/H3VRUtilities/BepInEx/core/Mono.Cecil.Mdb.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/H3VRUtilities/BepInEx/core/Mono.Cecil.Pdb.dll b/resources/test/installers/bepinex/H3VRUtilities/BepInEx/core/Mono.Cecil.Pdb.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/H3VRUtilities/BepInEx/core/Mono.Cecil.Rocks.dll b/resources/test/installers/bepinex/H3VRUtilities/BepInEx/core/Mono.Cecil.Rocks.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/H3VRUtilities/BepInEx/core/Mono.Cecil.dll b/resources/test/installers/bepinex/H3VRUtilities/BepInEx/core/Mono.Cecil.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/H3VRUtilities/BepInEx/core/MonoMod.RuntimeDetour.dll b/resources/test/installers/bepinex/H3VRUtilities/BepInEx/core/MonoMod.RuntimeDetour.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/H3VRUtilities/BepInEx/core/MonoMod.RuntimeDetour.xml b/resources/test/installers/bepinex/H3VRUtilities/BepInEx/core/MonoMod.RuntimeDetour.xml new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/H3VRUtilities/BepInEx/core/MonoMod.Utils.dll b/resources/test/installers/bepinex/H3VRUtilities/BepInEx/core/MonoMod.Utils.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/H3VRUtilities/BepInEx/core/MonoMod.Utils.xml b/resources/test/installers/bepinex/H3VRUtilities/BepInEx/core/MonoMod.Utils.xml new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/H3VRUtilities/BepInEx/monomod/WFIOST-H3VRUtilities/H3VRUtilities/Assembly-CSharp.H3VRUtilities.mm.dll b/resources/test/installers/bepinex/H3VRUtilities/BepInEx/monomod/WFIOST-H3VRUtilities/H3VRUtilities/Assembly-CSharp.H3VRUtilities.mm.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/H3VRUtilities/BepInEx/monomod/WFIOST-H3VRUtilities/H3VRUtilities/Assembly-CSharp.H3VRUtilitiesVehicles.mm.dll b/resources/test/installers/bepinex/H3VRUtilities/BepInEx/monomod/WFIOST-H3VRUtilities/H3VRUtilities/Assembly-CSharp.H3VRUtilitiesVehicles.mm.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/H3VRUtilities/BepInEx/patchers/BepInEx-MonoMod_Loader/BepInEx.MonoMod.Loader.dll b/resources/test/installers/bepinex/H3VRUtilities/BepInEx/patchers/BepInEx-MonoMod_Loader/BepInEx.MonoMod.Loader.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/H3VRUtilities/BepInEx/patchers/nrgill28-HookGenPatcher_H3VR/BepInEx.MonoMod.HookGenPatcher.dll b/resources/test/installers/bepinex/H3VRUtilities/BepInEx/patchers/nrgill28-HookGenPatcher_H3VR/BepInEx.MonoMod.HookGenPatcher.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/H3VRUtilities/BepInEx/patchers/nrgill28-HookGenPatcher_H3VR/MonoMod.RuntimeDetour.HookGen.exe b/resources/test/installers/bepinex/H3VRUtilities/BepInEx/patchers/nrgill28-HookGenPatcher_H3VR/MonoMod.RuntimeDetour.HookGen.exe new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/H3VRUtilities/BepInEx/patchers/nrgill28-Sodalite/Sodalite.Patcher.dll b/resources/test/installers/bepinex/H3VRUtilities/BepInEx/patchers/nrgill28-Sodalite/Sodalite.Patcher.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/H3VRUtilities/BepInEx/plugins/BepInEx-MonoMod_Loader/README.md b/resources/test/installers/bepinex/H3VRUtilities/BepInEx/plugins/BepInEx-MonoMod_Loader/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/H3VRUtilities/BepInEx/plugins/BepInEx-MonoMod_Loader/icon.png b/resources/test/installers/bepinex/H3VRUtilities/BepInEx/plugins/BepInEx-MonoMod_Loader/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/H3VRUtilities/BepInEx/plugins/BepInEx-MonoMod_Loader/manifest.json b/resources/test/installers/bepinex/H3VRUtilities/BepInEx/plugins/BepInEx-MonoMod_Loader/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/H3VRUtilities/BepInEx/plugins/WFIOST-H3VRUtilities/8-11-0.unitypackage b/resources/test/installers/bepinex/H3VRUtilities/BepInEx/plugins/WFIOST-H3VRUtilities/8-11-0.unitypackage new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/H3VRUtilities/BepInEx/plugins/WFIOST-H3VRUtilities/H3VRUtilities.dll b/resources/test/installers/bepinex/H3VRUtilities/BepInEx/plugins/WFIOST-H3VRUtilities/H3VRUtilities.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/H3VRUtilities/BepInEx/plugins/WFIOST-H3VRUtilities/H3VRUtilitiesVehicles.dll b/resources/test/installers/bepinex/H3VRUtilities/BepInEx/plugins/WFIOST-H3VRUtilities/H3VRUtilitiesVehicles.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/H3VRUtilities/BepInEx/plugins/WFIOST-H3VRUtilities/H3VRUtilsConfig.dll b/resources/test/installers/bepinex/H3VRUtilities/BepInEx/plugins/WFIOST-H3VRUtilities/H3VRUtilsConfig.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/H3VRUtilities/BepInEx/plugins/WFIOST-H3VRUtilities/README.md b/resources/test/installers/bepinex/H3VRUtilities/BepInEx/plugins/WFIOST-H3VRUtilities/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/H3VRUtilities/BepInEx/plugins/WFIOST-H3VRUtilities/icon.png b/resources/test/installers/bepinex/H3VRUtilities/BepInEx/plugins/WFIOST-H3VRUtilities/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/H3VRUtilities/BepInEx/plugins/WFIOST-H3VRUtilities/manifest.json b/resources/test/installers/bepinex/H3VRUtilities/BepInEx/plugins/WFIOST-H3VRUtilities/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/H3VRUtilities/BepInEx/plugins/nrgill28-HookGenPatcher_H3VR/README.md b/resources/test/installers/bepinex/H3VRUtilities/BepInEx/plugins/nrgill28-HookGenPatcher_H3VR/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/H3VRUtilities/BepInEx/plugins/nrgill28-HookGenPatcher_H3VR/icon.png b/resources/test/installers/bepinex/H3VRUtilities/BepInEx/plugins/nrgill28-HookGenPatcher_H3VR/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/H3VRUtilities/BepInEx/plugins/nrgill28-HookGenPatcher_H3VR/manifest.json b/resources/test/installers/bepinex/H3VRUtilities/BepInEx/plugins/nrgill28-HookGenPatcher_H3VR/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/H3VRUtilities/BepInEx/plugins/nrgill28-Sodalite/LICENSE b/resources/test/installers/bepinex/H3VRUtilities/BepInEx/plugins/nrgill28-Sodalite/LICENSE new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/H3VRUtilities/BepInEx/plugins/nrgill28-Sodalite/README.md b/resources/test/installers/bepinex/H3VRUtilities/BepInEx/plugins/nrgill28-Sodalite/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/H3VRUtilities/BepInEx/plugins/nrgill28-Sodalite/Sodalite.dll b/resources/test/installers/bepinex/H3VRUtilities/BepInEx/plugins/nrgill28-Sodalite/Sodalite.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/H3VRUtilities/BepInEx/plugins/nrgill28-Sodalite/YamlDotNet.dll b/resources/test/installers/bepinex/H3VRUtilities/BepInEx/plugins/nrgill28-Sodalite/YamlDotNet.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/H3VRUtilities/BepInEx/plugins/nrgill28-Sodalite/icon.png b/resources/test/installers/bepinex/H3VRUtilities/BepInEx/plugins/nrgill28-Sodalite/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/H3VRUtilities/BepInEx/plugins/nrgill28-Sodalite/manifest.json b/resources/test/installers/bepinex/H3VRUtilities/BepInEx/plugins/nrgill28-Sodalite/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/H3VRUtilities/BepInEx/plugins/nrgill28-Sodalite/universalpanel b/resources/test/installers/bepinex/H3VRUtilities/BepInEx/plugins/nrgill28-Sodalite/universalpanel new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/H3VRUtilities/doorstop_config.ini b/resources/test/installers/bepinex/H3VRUtilities/doorstop_config.ini new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/H3VRUtilities/winhttp.dll b/resources/test/installers/bepinex/H3VRUtilities/winhttp.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/config/BepInEx.cfg b/resources/test/installers/bepinex/Modmas_2021/BepInEx/config/BepInEx.cfg new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/config/HookGenPatcher.cfg b/resources/test/installers/bepinex/Modmas_2021/BepInEx/config/HookGenPatcher.cfg new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/core/0Harmony.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/core/0Harmony.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/core/0Harmony.xml b/resources/test/installers/bepinex/Modmas_2021/BepInEx/core/0Harmony.xml new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/core/0Harmony20.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/core/0Harmony20.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/core/BepInEx-MonoMod_Loader/MonoMod.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/core/BepInEx-MonoMod_Loader/MonoMod.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/core/BepInEx.Harmony.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/core/BepInEx.Harmony.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/core/BepInEx.Harmony.xml b/resources/test/installers/bepinex/Modmas_2021/BepInEx/core/BepInEx.Harmony.xml new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/core/BepInEx.Preloader.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/core/BepInEx.Preloader.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/core/BepInEx.Preloader.xml b/resources/test/installers/bepinex/Modmas_2021/BepInEx/core/BepInEx.Preloader.xml new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/core/BepInEx.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/core/BepInEx.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/core/BepInEx.xml b/resources/test/installers/bepinex/Modmas_2021/BepInEx/core/BepInEx.xml new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/core/HarmonyXInterop.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/core/HarmonyXInterop.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/core/Mono.Cecil.Mdb.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/core/Mono.Cecil.Mdb.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/core/Mono.Cecil.Pdb.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/core/Mono.Cecil.Pdb.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/core/Mono.Cecil.Rocks.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/core/Mono.Cecil.Rocks.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/core/Mono.Cecil.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/core/Mono.Cecil.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/core/MonoMod.RuntimeDetour.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/core/MonoMod.RuntimeDetour.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/core/MonoMod.RuntimeDetour.xml b/resources/test/installers/bepinex/Modmas_2021/BepInEx/core/MonoMod.RuntimeDetour.xml new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/core/MonoMod.Utils.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/core/MonoMod.Utils.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/core/MonoMod.Utils.xml b/resources/test/installers/bepinex/Modmas_2021/BepInEx/core/MonoMod.Utils.xml new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/monomod/WFIOST-H3VRUtilities/H3VRUtilities/Assembly-CSharp.H3VRUtilities.mm.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/monomod/WFIOST-H3VRUtilities/H3VRUtilities/Assembly-CSharp.H3VRUtilities.mm.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/monomod/WFIOST-H3VRUtilities/H3VRUtilities/Assembly-CSharp.H3VRUtilitiesVehicles.mm.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/monomod/WFIOST-H3VRUtilities/H3VRUtilities/Assembly-CSharp.H3VRUtilitiesVehicles.mm.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/monomod/cityrobo-OpenScripts/Assembly-CSharp.AttachmentStock.mm.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/monomod/cityrobo-OpenScripts/Assembly-CSharp.AttachmentStock.mm.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/monomod/cityrobo-OpenScripts/Assembly-CSharp.CapAndBallRevolver.mm.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/monomod/cityrobo-OpenScripts/Assembly-CSharp.CapAndBallRevolver.mm.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/monomod/cityrobo-OpenScripts/Assembly-CSharp.CustomQuickBeltSlots.mm.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/monomod/cityrobo-OpenScripts/Assembly-CSharp.CustomQuickBeltSlots.mm.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/monomod/cityrobo-OpenScripts/Assembly-CSharp.MagazineScripts.mm.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/monomod/cityrobo-OpenScripts/Assembly-CSharp.MagazineScripts.mm.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/monomod/cityrobo-OpenScripts/Assembly-CSharp.MeatBeatScanner.mm.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/monomod/cityrobo-OpenScripts/Assembly-CSharp.MeatBeatScanner.mm.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/monomod/cityrobo-OpenScripts/Assembly-CSharp.MeatyPages.mm.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/monomod/cityrobo-OpenScripts/Assembly-CSharp.MeatyPages.mm.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/monomod/cityrobo-OpenScripts/Assembly-CSharp.MeshCombiner_MonoMod.mm.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/monomod/cityrobo-OpenScripts/Assembly-CSharp.MeshCombiner_MonoMod.mm.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/monomod/cityrobo-OpenScripts/Assembly-CSharp.MovableWeaponPart.mm.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/monomod/cityrobo-OpenScripts/Assembly-CSharp.MovableWeaponPart.mm.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/monomod/cityrobo-OpenScripts/Assembly-CSharp.QBArmorPiece.mm.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/monomod/cityrobo-OpenScripts/Assembly-CSharp.QBArmorPiece.mm.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/monomod/cityrobo-OpenScripts/Assembly-CSharp.RSC_MagazineFollower.mm.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/monomod/cityrobo-OpenScripts/Assembly-CSharp.RSC_MagazineFollower.mm.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/monomod/cityrobo-OpenScripts/Assembly-CSharp.RifleGrenadeAdapter.mm.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/monomod/cityrobo-OpenScripts/Assembly-CSharp.RifleGrenadeAdapter.mm.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/monomod/cityrobo-OpenScripts/Assembly-CSharp.WeaponEnhancementAttachment.mm.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/monomod/cityrobo-OpenScripts/Assembly-CSharp.WeaponEnhancementAttachment.mm.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/patchers/BepInEx-MonoMod_Loader/BepInEx.MonoMod.Loader.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/patchers/BepInEx-MonoMod_Loader/BepInEx.MonoMod.Loader.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/patchers/DeliCollective-Deli/Deli.Newtonsoft.Json.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/patchers/DeliCollective-Deli/Deli.Newtonsoft.Json.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/patchers/DeliCollective-Deli/Deli.Patcher.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/patchers/DeliCollective-Deli/Deli.Patcher.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/patchers/DeliCollective-Deli/DotNetZip.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/patchers/DeliCollective-Deli/DotNetZip.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/patchers/DeliCollective-Deli/I18N.West.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/patchers/DeliCollective-Deli/I18N.West.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/patchers/DeliCollective-Deli/I18N.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/patchers/DeliCollective-Deli/I18N.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/patchers/DeliCollective-Deli/MonoMod.RuntimeDetour.HookGen.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/patchers/DeliCollective-Deli/MonoMod.RuntimeDetour.HookGen.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/patchers/DeliCollective-Deli/MonoMod.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/patchers/DeliCollective-Deli/MonoMod.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/patchers/Stratum-Deliter/Deliter.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/patchers/Stratum-Deliter/Deliter.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/patchers/Stratum-Deliter/DotNetZip.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/patchers/Stratum-Deliter/DotNetZip.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/patchers/Stratum-Deliter/I18N.West.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/patchers/Stratum-Deliter/I18N.West.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/patchers/Stratum-Deliter/I18N.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/patchers/Stratum-Deliter/I18N.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/patchers/Stratum-Deliter/Newtonsoft.Json.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/patchers/Stratum-Deliter/Newtonsoft.Json.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/patchers/Stratum-Deliter/YamlDotNet.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/patchers/Stratum-Deliter/YamlDotNet.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/patchers/Stratum-Deliter/config.yaml b/resources/test/installers/bepinex/Modmas_2021/BepInEx/patchers/Stratum-Deliter/config.yaml new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/patchers/Stratum-Mason/Mason.Core.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/patchers/Stratum-Mason/Mason.Core.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/patchers/Stratum-Mason/Mason.Patcher.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/patchers/Stratum-Mason/Mason.Patcher.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/patchers/Stratum-Mason/Newtonsoft.Json.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/patchers/Stratum-Mason/Newtonsoft.Json.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/patchers/Stratum-Mason/YamlDotNet.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/patchers/Stratum-Mason/YamlDotNet.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/patchers/nrgill28-HookGenPatcher_H3VR/BepInEx.MonoMod.HookGenPatcher.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/patchers/nrgill28-HookGenPatcher_H3VR/BepInEx.MonoMod.HookGenPatcher.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/patchers/nrgill28-HookGenPatcher_H3VR/MonoMod.RuntimeDetour.HookGen.exe b/resources/test/installers/bepinex/Modmas_2021/BepInEx/patchers/nrgill28-HookGenPatcher_H3VR/MonoMod.RuntimeDetour.HookGen.exe new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/patchers/nrgill28-Sodalite/Sodalite.Patcher.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/patchers/nrgill28-Sodalite/Sodalite.Patcher.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/AngryNoob-DestinyScript/HawkMoonScript.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/AngryNoob-DestinyScript/HawkMoonScript.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/AngryNoob-DestinyScript/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/AngryNoob-DestinyScript/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/AngryNoob-DestinyScript/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/AngryNoob-DestinyScript/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/AngryNoob-DestinyScript/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/AngryNoob-DestinyScript/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/BepInEx-MonoMod_Loader/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/BepInEx-MonoMod_Loader/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/BepInEx-MonoMod_Loader/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/BepInEx-MonoMod_Loader/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/BepInEx-MonoMod_Loader/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/BepInEx-MonoMod_Loader/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-Antique_Ammo/7mmpinfire b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-Antique_Ammo/7mmpinfire new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-Antique_Ammo/Antique_Ammo.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-Antique_Ammo/Antique_Ammo.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-Antique_Ammo/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-Antique_Ammo/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-Antique_Ammo/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-Antique_Ammo/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-Antique_Ammo/late_7mmpinfire b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-Antique_Ammo/late_7mmpinfire new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-Antique_Ammo/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-Antique_Ammo/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-Antique_Grenades/Antique_Grenades.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-Antique_Grenades/Antique_Grenades.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-Antique_Grenades/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-Antique_Grenades/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-Antique_Grenades/antiquegrenades b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-Antique_Grenades/antiquegrenades new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-Antique_Grenades/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-Antique_Grenades/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-Antique_Grenades/late_antiquegrenades b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-Antique_Grenades/late_antiquegrenades new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-Antique_Grenades/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-Antique_Grenades/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-BiC_RPG/BiC_RPG.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-BiC_RPG/BiC_RPG.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-BiC_RPG/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-BiC_RPG/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-BiC_RPG/bic_rpg b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-BiC_RPG/bic_rpg new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-BiC_RPG/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-BiC_RPG/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-BiC_RPG/late_bic_rpg b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-BiC_RPG/late_bic_rpg new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-BiC_RPG/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-BiC_RPG/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-Hotchkiss_M1922/Hotchkiss_M1922.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-Hotchkiss_M1922/Hotchkiss_M1922.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-Hotchkiss_M1922/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-Hotchkiss_M1922/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-Hotchkiss_M1922/hotchkiss1922 b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-Hotchkiss_M1922/hotchkiss1922 new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-Hotchkiss_M1922/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-Hotchkiss_M1922/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-Hotchkiss_M1922/late_hotchkiss1922 b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-Hotchkiss_M1922/late_hotchkiss1922 new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-Hotchkiss_M1922/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-Hotchkiss_M1922/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-MedievalSosigs/M_Archer.csosig b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-MedievalSosigs/M_Archer.csosig new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-MedievalSosigs/M_Assassin.csosig b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-MedievalSosigs/M_Assassin.csosig new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-MedievalSosigs/M_Jester.csosig b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-MedievalSosigs/M_Jester.csosig new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-MedievalSosigs/M_Jouster.csosig b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-MedievalSosigs/M_Jouster.csosig new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-MedievalSosigs/M_King.csosig b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-MedievalSosigs/M_King.csosig new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-MedievalSosigs/M_Knight.csosig b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-MedievalSosigs/M_Knight.csosig new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-MedievalSosigs/M_Musketeer.csosig b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-MedievalSosigs/M_Musketeer.csosig new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-MedievalSosigs/M_Peasant.csosig b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-MedievalSosigs/M_Peasant.csosig new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-MedievalSosigs/M_PlagueDoctor.csosig b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-MedievalSosigs/M_PlagueDoctor.csosig new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-MedievalSosigs/M_Soldier.csosig b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-MedievalSosigs/M_Soldier.csosig new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-MedievalSosigs/M_Wizard.csosig b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-MedievalSosigs/M_Wizard.csosig new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-MedievalSosigs/MedievalSosigs.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-MedievalSosigs/MedievalSosigs.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-MedievalSosigs/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-MedievalSosigs/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-MedievalSosigs/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-MedievalSosigs/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-MedievalSosigs/late_modmasitem35 b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-MedievalSosigs/late_modmasitem35 new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-MedievalSosigs/late_sosigviking b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-MedievalSosigs/late_sosigviking new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-MedievalSosigs/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-MedievalSosigs/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-MedievalSosigs/modmasitem35 b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-MedievalSosigs/modmasitem35 new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-MedievalSosigs/sosigviking b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-MedievalSosigs/sosigviking new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-ModmasCamos/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-ModmasCamos/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-ModmasCamos/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-ModmasCamos/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-ModmasCamos/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-ModmasCamos/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-ModmasCamos/xx_modmas_giftwrap_giftwrap1.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-ModmasCamos/xx_modmas_giftwrap_giftwrap1.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-ModmasCamos/xx_modmas_giftwrap_giftwrap2.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-ModmasCamos/xx_modmas_giftwrap_giftwrap2.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-ModmasCamos/xx_modmas_giftwrap_giftwrap3.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-ModmasCamos/xx_modmas_giftwrap_giftwrap3.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-ModmasCamos/xx_modmas_giftwrap_giftwrap4.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-ModmasCamos/xx_modmas_giftwrap_giftwrap4.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-ModmasCamos/xx_modmas_giftwrap_giftwrap5.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-ModmasCamos/xx_modmas_giftwrap_giftwrap5.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-ModmasCamos/xx_modmas_giftwrap_giftwrap6.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-ModmasCamos/xx_modmas_giftwrap_giftwrap6.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-ModmasCamos/xx_modmas_giftwrap_giftwrap7.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-ModmasCamos/xx_modmas_giftwrap_giftwrap7.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-ModmasCamos/xx_modmas_giftwrap_giftwrap8.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-ModmasCamos/xx_modmas_giftwrap_giftwrap8.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-ModmasCamos/xx_modmas_giftwrap_giftwrap9.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-ModmasCamos/xx_modmas_giftwrap_giftwrap9.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-NRS2_ScoutFiringKnife/NRS2_ScoutFiringKnife.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-NRS2_ScoutFiringKnife/NRS2_ScoutFiringKnife.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-NRS2_ScoutFiringKnife/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-NRS2_ScoutFiringKnife/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-NRS2_ScoutFiringKnife/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-NRS2_ScoutFiringKnife/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-NRS2_ScoutFiringKnife/late_nrs2 b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-NRS2_ScoutFiringKnife/late_nrs2 new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-NRS2_ScoutFiringKnife/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-NRS2_ScoutFiringKnife/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-NRS2_ScoutFiringKnife/nrs2 b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-NRS2_ScoutFiringKnife/nrs2 new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-OSS_Bigot_M1911A1/OSS_Bigot_M1911A1.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-OSS_Bigot_M1911A1/OSS_Bigot_M1911A1.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-OSS_Bigot_M1911A1/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-OSS_Bigot_M1911A1/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-OSS_Bigot_M1911A1/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-OSS_Bigot_M1911A1/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-OSS_Bigot_M1911A1/late_oss1911 b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-OSS_Bigot_M1911A1/late_oss1911 new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-OSS_Bigot_M1911A1/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-OSS_Bigot_M1911A1/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-OSS_Bigot_M1911A1/oss1911 b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-OSS_Bigot_M1911A1/oss1911 new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-Winchester_1885/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-Winchester_1885/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-Winchester_1885/Winchester_1885.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-Winchester_1885/Winchester_1885.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-Winchester_1885/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-Winchester_1885/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-Winchester_1885/late_w1885 b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-Winchester_1885/late_w1885 new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-Winchester_1885/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-Winchester_1885/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-Winchester_1885/w1885 b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Billiam_J_McGoonigan-Winchester_1885/w1885 new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/DeliCollective-Deli/Deli.Setup.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/DeliCollective-Deli/Deli.Setup.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/DeliCollective-Deli/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/DeliCollective-Deli/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/DeliCollective-Deli/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/DeliCollective-Deli/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/DeliCollective-Deli/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/DeliCollective-Deli/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Dr_Dog_PhD-Guncase_Lockout_Fix/DrDog.CaseLockoutFix.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Dr_Dog_PhD-Guncase_Lockout_Fix/DrDog.CaseLockoutFix.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Dr_Dog_PhD-Guncase_Lockout_Fix/DrDog.CaseLockoutFix.dll.mdb b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Dr_Dog_PhD-Guncase_Lockout_Fix/DrDog.CaseLockoutFix.dll.mdb new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Dr_Dog_PhD-Guncase_Lockout_Fix/LICENSE b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Dr_Dog_PhD-Guncase_Lockout_Fix/LICENSE new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Dr_Dog_PhD-Guncase_Lockout_Fix/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Dr_Dog_PhD-Guncase_Lockout_Fix/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Dr_Dog_PhD-Guncase_Lockout_Fix/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Dr_Dog_PhD-Guncase_Lockout_Fix/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Dr_Dog_PhD-Guncase_Lockout_Fix/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Dr_Dog_PhD-Guncase_Lockout_Fix/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/FraDirahra-Blaser_R93/Blaser_R93.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/FraDirahra-Blaser_R93/Blaser_R93.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/FraDirahra-Blaser_R93/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/FraDirahra-Blaser_R93/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/FraDirahra-Blaser_R93/blaserr93 b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/FraDirahra-Blaser_R93/blaserr93 new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/FraDirahra-Blaser_R93/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/FraDirahra-Blaser_R93/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/FraDirahra-Blaser_R93/late_blaserr93 b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/FraDirahra-Blaser_R93/late_blaserr93 new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/FraDirahra-Blaser_R93/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/FraDirahra-Blaser_R93/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/FraDirahra-KKM_Glock/KKM_Glock.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/FraDirahra-KKM_Glock/KKM_Glock.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/FraDirahra-KKM_Glock/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/FraDirahra-KKM_Glock/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/FraDirahra-KKM_Glock/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/FraDirahra-KKM_Glock/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/FraDirahra-KKM_Glock/kkmglock b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/FraDirahra-KKM_Glock/kkmglock new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/FraDirahra-KKM_Glock/late_kkmglock b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/FraDirahra-KKM_Glock/late_kkmglock new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/FraDirahra-KKM_Glock/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/FraDirahra-KKM_Glock/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/FraDirahra-KKM_Glock/mw_kkm_glock b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/FraDirahra-KKM_Glock/mw_kkm_glock new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/FraDirahra-LICC_LWS/264round b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/FraDirahra-LICC_LWS/264round new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/FraDirahra-LICC_LWS/LICC_LWS.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/FraDirahra-LICC_LWS/LICC_LWS.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/FraDirahra-LICC_LWS/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/FraDirahra-LICC_LWS/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/FraDirahra-LICC_LWS/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/FraDirahra-LICC_LWS/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/FraDirahra-LICC_LWS/late_264round b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/FraDirahra-LICC_LWS/late_264round new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/FraDirahra-LICC_LWS/late_licc b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/FraDirahra-LICC_LWS/late_licc new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/FraDirahra-LICC_LWS/licc b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/FraDirahra-LICC_LWS/licc new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/FraDirahra-LICC_LWS/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/FraDirahra-LICC_LWS/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/FraDirahra-LICC_LWS/mw_licc_lws b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/FraDirahra-LICC_LWS/mw_licc_lws new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/JerryAr-MD_F4E_Fighter/MD_F4E_Fighter.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/JerryAr-MD_F4E_Fighter/MD_F4E_Fighter.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/JerryAr-MD_F4E_Fighter/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/JerryAr-MD_F4E_Fighter/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/JerryAr-MD_F4E_Fighter/f4ephantom b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/JerryAr-MD_F4E_Fighter/f4ephantom new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/JerryAr-MD_F4E_Fighter/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/JerryAr-MD_F4E_Fighter/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/JerryAr-MD_F4E_Fighter/late_f4ephantom b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/JerryAr-MD_F4E_Fighter/late_f4ephantom new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/JerryAr-MD_F4E_Fighter/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/JerryAr-MD_F4E_Fighter/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/JerryAr-NO74_MKII_StickyGrenade/NO74_MKII_StickyGrenade.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/JerryAr-NO74_MKII_StickyGrenade/NO74_MKII_StickyGrenade.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/JerryAr-NO74_MKII_StickyGrenade/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/JerryAr-NO74_MKII_StickyGrenade/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/JerryAr-NO74_MKII_StickyGrenade/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/JerryAr-NO74_MKII_StickyGrenade/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/JerryAr-NO74_MKII_StickyGrenade/late_no74_mkii_stickygrenade b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/JerryAr-NO74_MKII_StickyGrenade/late_no74_mkii_stickygrenade new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/JerryAr-NO74_MKII_StickyGrenade/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/JerryAr-NO74_MKII_StickyGrenade/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/JerryAr-NO74_MKII_StickyGrenade/no74_mkii_stickygrenade b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/JerryAr-NO74_MKII_StickyGrenade/no74_mkii_stickygrenade new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/JerryAr-NSV/NSV.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/JerryAr-NSV/NSV.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/JerryAr-NSV/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/JerryAr-NSV/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/JerryAr-NSV/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/JerryAr-NSV/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/JerryAr-NSV/late_nsv b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/JerryAr-NSV/late_nsv new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/JerryAr-NSV/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/JerryAr-NSV/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/JerryAr-NSV/nsv b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/JerryAr-NSV/nsv new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2023-Modmas_Cases/Modmas_Cases.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2023-Modmas_Cases/Modmas_Cases.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2023-Modmas_Cases/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2023-Modmas_Cases/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2023-Modmas_Cases/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2023-Modmas_Cases/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2023-Modmas_Cases/late_modmas2023_cases b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2023-Modmas_Cases/late_modmas2023_cases new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2023-Modmas_Cases/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2023-Modmas_Cases/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2023-Modmas_Cases/modmas2023_cases b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2023-Modmas_Cases/modmas2023_cases new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/ADUILTEDSosigNEWCHANGEDNEWNOTEXHIBITIONIST.csosig b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/ADUILTEDSosigNEWCHANGEDNEWNOTEXHIBITIONIST.csosig new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/Billiam.csosig b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/Billiam.csosig new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/CitySosig.csosig b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/CitySosig.csosig new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/JerryArSig.csosig b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/JerryArSig.csosig new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/LuaSosig.csosig b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/LuaSosig.csosig new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/MODMAS2024FIN.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/MODMAS2024FIN.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/MODMAS2024ITEM02_VFO.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/MODMAS2024ITEM02_VFO.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/MODMAS2024ITEM03_VFO.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/MODMAS2024ITEM03_VFO.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/MODMAS2024ITEM04_VFO.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/MODMAS2024ITEM04_VFO.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/MODMAS2024ITEM11_VFO.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/MODMAS2024ITEM11_VFO.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/MODMAS2024ITEM22_VFO.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/MODMAS2024ITEM22_VFO.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/MODMAS2024ITEM29_VFO.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/MODMAS2024ITEM29_VFO.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/MODMAS2024ITEM34_VFO.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/MODMAS2024ITEM34_VFO.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/MODMAS2024ITEM38_VFO.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/MODMAS2024ITEM38_VFO.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/MODMAS2024ITEM50_VFO.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/MODMAS2024ITEM50_VFO.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/MODMAS2024ITEM51_VFO.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/MODMAS2024ITEM51_VFO.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/MODMAS2024ITEM68_VFO.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/MODMAS2024ITEM68_VFO.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/MODMAS2024ITEM69_VFO.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/MODMAS2024ITEM69_VFO.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/MODMAS2024ITEM70_VFO.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/MODMAS2024ITEM70_VFO.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/Modmas2023QuickBeltSlotPatch.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/Modmas2023QuickBeltSlotPatch.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/Modmas2024Base.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/Modmas2024Base.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/Modmas2024Map.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/Modmas2024Map.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/Modmas2024_SosigResources.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/Modmas2024_SosigResources.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/ModmasAssaultShieldSnowsig.csosig b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/ModmasAssaultShieldSnowsig.csosig new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/ModmasAssaultSnowsig.csosig b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/ModmasAssaultSnowsig.csosig new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/ModmasCivvieConstruction.csosig b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/ModmasCivvieConstruction.csosig new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/ModmasCivvieConstructionSupervisor.csosig b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/ModmasCivvieConstructionSupervisor.csosig new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/ModmasCivviesGateGuard.csosig b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/ModmasCivviesGateGuard.csosig new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/ModmasCivviesScarf.csosig b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/ModmasCivviesScarf.csosig new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/ModmasCivviesWacky.csosig b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/ModmasCivviesWacky.csosig new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/ModmasCivviesWackyDisarmed.csosig b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/ModmasCivviesWackyDisarmed.csosig new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/ModmasGronch.csosig b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/ModmasGronch.csosig new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/ModmasMGEMeBrotherArmed.csosig b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/ModmasMGEMeBrotherArmed.csosig new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/ModmasSnowsig.csosig b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/ModmasSnowsig.csosig new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/ModmasSnowsigCivvie.csosig b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/ModmasSnowsigCivvie.csosig new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/ModmasStorymodsFits.csosig b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/ModmasStorymodsFits.csosig new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/ModmasWolfie.csosig b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/ModmasWolfie.csosig new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/Okkim.csosig b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/Okkim.csosig new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/Packer.BossFight.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/Packer.BossFight.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/Packer.BossFight.dll.mdb b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/Packer.BossFight.dll.mdb new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/Packer_Sosig.csosig b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/Packer_Sosig.csosig new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/SceneLoaderObject.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/SceneLoaderObject.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/Volksig.csosig b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/Volksig.csosig new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/atlassceneloader b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/atlassceneloader new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/carl.csosig b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/carl.csosig new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/gram.csosig b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/gram.csosig new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/late_atlassceneloader b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/late_atlassceneloader new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/late_modmas2024_sosigresources b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/late_modmas2024_sosigresources new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/late_sirtatoesnote b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/late_sirtatoesnote new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/local_ModmasSosig.csosig b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/local_ModmasSosig.csosig new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/modmas 2024 base b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/modmas 2024 base new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/modmas2024_sosigresources b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/modmas2024_sosigresources new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/modmas2024newmap b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/modmas2024newmap new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/modmas2024newmap.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/modmas2024newmap.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/modmas2024newmap.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/modmas2024newmap.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/sirtatoesnote b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Modmas2024-Modmas_2024/sirtatoesnote new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Muzzle_Alt-HemmingerModel2Pistol/HemmingerModel2Pistol.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Muzzle_Alt-HemmingerModel2Pistol/HemmingerModel2Pistol.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Muzzle_Alt-HemmingerModel2Pistol/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Muzzle_Alt-HemmingerModel2Pistol/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Muzzle_Alt-HemmingerModel2Pistol/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Muzzle_Alt-HemmingerModel2Pistol/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Muzzle_Alt-HemmingerModel2Pistol/late_model_2.muzz b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Muzzle_Alt-HemmingerModel2Pistol/late_model_2.muzz new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Muzzle_Alt-HemmingerModel2Pistol/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Muzzle_Alt-HemmingerModel2Pistol/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Muzzle_Alt-HemmingerModel2Pistol/model_2.muzz b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Muzzle_Alt-HemmingerModel2Pistol/model_2.muzz new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Muzzle_Alt-Meloncorp_M1891_MkIV_Pistol/Meloncorp_M1891_MkIV_Pistol.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Muzzle_Alt-Meloncorp_M1891_MkIV_Pistol/Meloncorp_M1891_MkIV_Pistol.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Muzzle_Alt-Meloncorp_M1891_MkIV_Pistol/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Muzzle_Alt-Meloncorp_M1891_MkIV_Pistol/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Muzzle_Alt-Meloncorp_M1891_MkIV_Pistol/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Muzzle_Alt-Meloncorp_M1891_MkIV_Pistol/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Muzzle_Alt-Meloncorp_M1891_MkIV_Pistol/late_mkiv_pistol.muzz b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Muzzle_Alt-Meloncorp_M1891_MkIV_Pistol/late_mkiv_pistol.muzz new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Muzzle_Alt-Meloncorp_M1891_MkIV_Pistol/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Muzzle_Alt-Meloncorp_M1891_MkIV_Pistol/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Muzzle_Alt-Meloncorp_M1891_MkIV_Pistol/mkiv_pistol.muzz b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Muzzle_Alt-Meloncorp_M1891_MkIV_Pistol/mkiv_pistol.muzz new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Muzzle_Alt-Meloncorp_M55_Rifle/Meloncorp_M55_Rifle.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Muzzle_Alt-Meloncorp_M55_Rifle/Meloncorp_M55_Rifle.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Muzzle_Alt-Meloncorp_M55_Rifle/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Muzzle_Alt-Meloncorp_M55_Rifle/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Muzzle_Alt-Meloncorp_M55_Rifle/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Muzzle_Alt-Meloncorp_M55_Rifle/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Muzzle_Alt-Meloncorp_M55_Rifle/late_m55.muzz b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Muzzle_Alt-Meloncorp_M55_Rifle/late_m55.muzz new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Muzzle_Alt-Meloncorp_M55_Rifle/m55.muzz b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Muzzle_Alt-Meloncorp_M55_Rifle/m55.muzz new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Muzzle_Alt-Meloncorp_M55_Rifle/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Muzzle_Alt-Meloncorp_M55_Rifle/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Muzzle_Alt-Meloncorp_Reserves_G47_Rifle/Meloncorp_Reserves_G47_Rifle.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Muzzle_Alt-Meloncorp_Reserves_G47_Rifle/Meloncorp_Reserves_G47_Rifle.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Muzzle_Alt-Meloncorp_Reserves_G47_Rifle/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Muzzle_Alt-Meloncorp_Reserves_G47_Rifle/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Muzzle_Alt-Meloncorp_Reserves_G47_Rifle/g47.muzz b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Muzzle_Alt-Meloncorp_Reserves_G47_Rifle/g47.muzz new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Muzzle_Alt-Meloncorp_Reserves_G47_Rifle/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Muzzle_Alt-Meloncorp_Reserves_G47_Rifle/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Muzzle_Alt-Meloncorp_Reserves_G47_Rifle/late_g47.muzz b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Muzzle_Alt-Meloncorp_Reserves_G47_Rifle/late_g47.muzz new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Muzzle_Alt-Meloncorp_Reserves_G47_Rifle/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Muzzle_Alt-Meloncorp_Reserves_G47_Rifle/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-CamoShop/CamoShop.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-CamoShop/CamoShop.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-CamoShop/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-CamoShop/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-CamoShop/camoshop b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-CamoShop/camoshop new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-CamoShop/camospray b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-CamoShop/camospray new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-CamoShop/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-CamoShop/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-CamoShop/late_camoshop b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-CamoShop/late_camoshop new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-CamoShop/late_camospray b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-CamoShop/late_camospray new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-CamoShop/late_resizecontrol b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-CamoShop/late_resizecontrol new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-CamoShop/late_shaderholder b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-CamoShop/late_shaderholder new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-CamoShop/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-CamoShop/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-CamoShop/resizecontrol b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-CamoShop/resizecontrol new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-CamoShop/shaderholder b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-CamoShop/shaderholder new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-GunCaseFix/NGA.GunCaseFix.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-GunCaseFix/NGA.GunCaseFix.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-GunCaseFix/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-GunCaseFix/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-GunCaseFix/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-GunCaseFix/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-GunCaseFix/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-GunCaseFix/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-JsonFileIO/JsonSaveSystem.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-JsonFileIO/JsonSaveSystem.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-JsonFileIO/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-JsonFileIO/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-JsonFileIO/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-JsonFileIO/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-JsonFileIO/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-JsonFileIO/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-MasteryCamos/NGAMasteryCamos.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-MasteryCamos/NGAMasteryCamos.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-MasteryCamos/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-MasteryCamos/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-MasteryCamos/_DarkCamo_Albedo.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-MasteryCamos/_DarkCamo_Albedo.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-MasteryCamos/_DarkCamo_Packed.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-MasteryCamos/_DarkCamo_Packed.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-MasteryCamos/_GoldCamo_Packed.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-MasteryCamos/_GoldCamo_Packed.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-MasteryCamos/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-MasteryCamos/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-MasteryCamos/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-MasteryCamos/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-MasteryCamos/xx_mastery_s1_GoldTerra.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-MasteryCamos/xx_mastery_s1_GoldTerra.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-MasteryCamos/xx_mastery_s1_GoldTerra.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-MasteryCamos/xx_mastery_s1_GoldTerra.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-MasteryCamos/xx_mastery_s1_alien-carniverous.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-MasteryCamos/xx_mastery_s1_alien-carniverous.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-MasteryCamos/xx_mastery_s1_alien-carniverous.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-MasteryCamos/xx_mastery_s1_alien-carniverous.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-MasteryCamos/xx_mastery_s1_gold-scuffed.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-MasteryCamos/xx_mastery_s1_gold-scuffed.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-MasteryCamos/xx_mastery_s1_gold-scuffed.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-MasteryCamos/xx_mastery_s1_gold-scuffed.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-ProfileSaveFolder/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-ProfileSaveFolder/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-ProfileSaveFolder/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-ProfileSaveFolder/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-ProfileSaveFolder/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-ProfileSaveFolder/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-VaultSaveCompatibility/NGA.VaultSaveCompatibility.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-VaultSaveCompatibility/NGA.VaultSaveCompatibility.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-VaultSaveCompatibility/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-VaultSaveCompatibility/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-VaultSaveCompatibility/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-VaultSaveCompatibility/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-VaultSaveCompatibility/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/NGA-VaultSaveCompatibility/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Nikpo-CP2077_Malorian3516/CP2077_Malorian3516.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Nikpo-CP2077_Malorian3516/CP2077_Malorian3516.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Nikpo-CP2077_Malorian3516/MalorianCode.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Nikpo-CP2077_Malorian3516/MalorianCode.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Nikpo-CP2077_Malorian3516/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Nikpo-CP2077_Malorian3516/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Nikpo-CP2077_Malorian3516/cp77_malorian3516 b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Nikpo-CP2077_Malorian3516/cp77_malorian3516 new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Nikpo-CP2077_Malorian3516/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Nikpo-CP2077_Malorian3516/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Nikpo-CP2077_Malorian3516/late_cp77_malorian3516 b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Nikpo-CP2077_Malorian3516/late_cp77_malorian3516 new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Nikpo-CP2077_Malorian3516/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Nikpo-CP2077_Malorian3516/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Nikpo-Nik_Stratagems/Nik_Stratagems.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Nikpo-Nik_Stratagems/Nik_Stratagems.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Nikpo-Nik_Stratagems/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Nikpo-Nik_Stratagems/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Nikpo-Nik_Stratagems/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Nikpo-Nik_Stratagems/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Nikpo-Nik_Stratagems/late_nik_hd2stratagems b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Nikpo-Nik_Stratagems/late_nik_hd2stratagems new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Nikpo-Nik_Stratagems/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Nikpo-Nik_Stratagems/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Nikpo-Nik_Stratagems/nik_hd2stratagems b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Nikpo-Nik_Stratagems/nik_hd2stratagems new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-9A91_VSK94/9A91_VSK94.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-9A91_VSK94/9A91_VSK94.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-9A91_VSK94/9a91vsk b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-9A91_VSK94/9a91vsk new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-9A91_VSK94/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-9A91_VSK94/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-9A91_VSK94/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-9A91_VSK94/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-9A91_VSK94/late_9a91vsk b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-9A91_VSK94/late_9a91vsk new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-9A91_VSK94/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-9A91_VSK94/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Bryson_Series/Bryson_Series.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Bryson_Series/Bryson_Series.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Bryson_Series/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Bryson_Series/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Bryson_Series/brysonseries b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Bryson_Series/brysonseries new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Bryson_Series/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Bryson_Series/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Bryson_Series/late_brysonseries b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Bryson_Series/late_brysonseries new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Bryson_Series/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Bryson_Series/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Bryson_Series/mw_bryson_series b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Bryson_Series/mw_bryson_series new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Expedite_12/Expedite_12.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Expedite_12/Expedite_12.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Expedite_12/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Expedite_12/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Expedite_12/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Expedite_12/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Expedite_12/late_modmas2024_item62 b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Expedite_12/late_modmas2024_item62 new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Expedite_12/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Expedite_12/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Expedite_12/modmas2024_item62 b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Expedite_12/modmas2024_item62 new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Expedite_12/mw_expedite_12 b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Expedite_12/mw_expedite_12 new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Modul_UZI/Modul_UZI.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Modul_UZI/Modul_UZI.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Modul_UZI/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Modul_UZI/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Modul_UZI/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Modul_UZI/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Modul_UZI/late_modmas2024_item19 b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Modul_UZI/late_modmas2024_item19 new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Modul_UZI/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Modul_UZI/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Modul_UZI/modmas2024_item19 b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Modul_UZI/modmas2024_item19 new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Modul_UZI/mw_modul_uzi b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Modul_UZI/mw_modul_uzi new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Modul_VAL_2/CHANGELOG.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Modul_VAL_2/CHANGELOG.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Modul_VAL_2/Modul_VAL_2.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Modul_VAL_2/Modul_VAL_2.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Modul_VAL_2/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Modul_VAL_2/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Modul_VAL_2/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Modul_VAL_2/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Modul_VAL_2/late_modul_val_2 b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Modul_VAL_2/late_modul_val_2 new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Modul_VAL_2/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Modul_VAL_2/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Modul_VAL_2/modul_val_2 b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Modul_VAL_2/modul_val_2 new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Modul_VAL_2/mw_modul_val_2 b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Modul_VAL_2/mw_modul_val_2 new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Modul_Workshop_Platform/Modul_Workshop_Platform.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Modul_Workshop_Platform/Modul_Workshop_Platform.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Modul_Workshop_Platform/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Modul_Workshop_Platform/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Modul_Workshop_Platform/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Modul_Workshop_Platform/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Modul_Workshop_Platform/late_mwplatform b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Modul_Workshop_Platform/late_mwplatform new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Modul_Workshop_Platform/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Modul_Workshop_Platform/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Modul_Workshop_Platform/mwplatform b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Modul_Workshop_Platform/mwplatform new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Rail_Appear_Tool/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Rail_Appear_Tool/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Rail_Appear_Tool/Rail_Appear_Tool.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Rail_Appear_Tool/Rail_Appear_Tool.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Rail_Appear_Tool/appeartool b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Rail_Appear_Tool/appeartool new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Rail_Appear_Tool/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Rail_Appear_Tool/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Rail_Appear_Tool/late_appeartool b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Rail_Appear_Tool/late_appeartool new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Rail_Appear_Tool/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Rail_Appear_Tool/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Tarkov_9x39/9x39 b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Tarkov_9x39/9x39 new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Tarkov_9x39/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Tarkov_9x39/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Tarkov_9x39/Tarkov_9x39.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Tarkov_9x39/Tarkov_9x39.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Tarkov_9x39/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Tarkov_9x39/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Tarkov_9x39/late_9x39 b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Tarkov_9x39/late_9x39 new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Tarkov_9x39/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Tarkov_9x39/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Tarkov_AA12/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Tarkov_AA12/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Tarkov_AA12/Tarkov_AA12.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Tarkov_AA12/Tarkov_AA12.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Tarkov_AA12/aa12_wolfie b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Tarkov_AA12/aa12_wolfie new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Tarkov_AA12/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Tarkov_AA12/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Tarkov_AA12/late_aa12_wolfie b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Tarkov_AA12/late_aa12_wolfie new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Tarkov_AA12/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Tarkov_AA12/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Tarkov_AA12/mw_tarkov_aa12 b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Tarkov_AA12/mw_tarkov_aa12 new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Tiger_Stripe_Deagle/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Tiger_Stripe_Deagle/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Tiger_Stripe_Deagle/Tiger_Stripe_Deagle.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Tiger_Stripe_Deagle/Tiger_Stripe_Deagle.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Tiger_Stripe_Deagle/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Tiger_Stripe_Deagle/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Tiger_Stripe_Deagle/late_wolfiedeagles b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Tiger_Stripe_Deagle/late_wolfiedeagles new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Tiger_Stripe_Deagle/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Tiger_Stripe_Deagle/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Tiger_Stripe_Deagle/wolfiedeagles b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Not_Wolfie-Tiger_Stripe_Deagle/wolfiedeagles new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Okkim-Bag_Of_Scripts/BagOfScripts.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Okkim-Bag_Of_Scripts/BagOfScripts.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Okkim-Bag_Of_Scripts/CHANGELOG.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Okkim-Bag_Of_Scripts/CHANGELOG.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Okkim-Bag_Of_Scripts/Editor version in here.zip b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Okkim-Bag_Of_Scripts/Editor version in here.zip new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Okkim-Bag_Of_Scripts/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Okkim-Bag_Of_Scripts/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Okkim-Bag_Of_Scripts/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Okkim-Bag_Of_Scripts/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Okkim-Bag_Of_Scripts/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Okkim-Bag_Of_Scripts/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Okkim-Deep_Rock_Galactic_Bulldog_Heavy_Revolver/CHANGELOG.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Okkim-Deep_Rock_Galactic_Bulldog_Heavy_Revolver/CHANGELOG.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Okkim-Deep_Rock_Galactic_Bulldog_Heavy_Revolver/Deep_Rock_Galactic_Bulldog_Heavy_Revolver.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Okkim-Deep_Rock_Galactic_Bulldog_Heavy_Revolver/Deep_Rock_Galactic_Bulldog_Heavy_Revolver.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Okkim-Deep_Rock_Galactic_Bulldog_Heavy_Revolver/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Okkim-Deep_Rock_Galactic_Bulldog_Heavy_Revolver/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Okkim-Deep_Rock_Galactic_Bulldog_Heavy_Revolver/drg_bulldog_revolver b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Okkim-Deep_Rock_Galactic_Bulldog_Heavy_Revolver/drg_bulldog_revolver new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Okkim-Deep_Rock_Galactic_Bulldog_Heavy_Revolver/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Okkim-Deep_Rock_Galactic_Bulldog_Heavy_Revolver/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Okkim-Deep_Rock_Galactic_Bulldog_Heavy_Revolver/late_drg_bulldog_revolver b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Okkim-Deep_Rock_Galactic_Bulldog_Heavy_Revolver/late_drg_bulldog_revolver new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Okkim-Deep_Rock_Galactic_Bulldog_Heavy_Revolver/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Okkim-Deep_Rock_Galactic_Bulldog_Heavy_Revolver/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Okkim-Terminator_AMT_Hardballer/CHANGELOG.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Okkim-Terminator_AMT_Hardballer/CHANGELOG.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Okkim-Terminator_AMT_Hardballer/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Okkim-Terminator_AMT_Hardballer/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Okkim-Terminator_AMT_Hardballer/Terminator_AMT_Hardballer.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Okkim-Terminator_AMT_Hardballer/Terminator_AMT_Hardballer.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Okkim-Terminator_AMT_Hardballer/amt_hardballer b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Okkim-Terminator_AMT_Hardballer/amt_hardballer new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Okkim-Terminator_AMT_Hardballer/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Okkim-Terminator_AMT_Hardballer/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Okkim-Terminator_AMT_Hardballer/late_amt_hardballer b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Okkim-Terminator_AMT_Hardballer/late_amt_hardballer new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Okkim-Terminator_AMT_Hardballer/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Okkim-Terminator_AMT_Hardballer/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Packer-Custom_Sosig_Spawner/CHANGELOG.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Packer-Custom_Sosig_Spawner/CHANGELOG.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Packer-Custom_Sosig_Spawner/Custom_Sosig_Spawner.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Packer-Custom_Sosig_Spawner/Custom_Sosig_Spawner.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Packer-Custom_Sosig_Spawner/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Packer-Custom_Sosig_Spawner/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Packer-Custom_Sosig_Spawner/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Packer-Custom_Sosig_Spawner/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Packer-Custom_Sosig_Spawner/late_packer.customsosigspawner b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Packer-Custom_Sosig_Spawner/late_packer.customsosigspawner new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Packer-Custom_Sosig_Spawner/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Packer-Custom_Sosig_Spawner/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Packer-Custom_Sosig_Spawner/packer.customsosigspawner b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Packer-Custom_Sosig_Spawner/packer.customsosigspawner new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Shault-Captain_America_Shield/Captain_America_Shield.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Shault-Captain_America_Shield/Captain_America_Shield.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Shault-Captain_America_Shield/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Shault-Captain_America_Shield/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Shault-Captain_America_Shield/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Shault-Captain_America_Shield/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Shault-Captain_America_Shield/late_modmas2024_item54 b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Shault-Captain_America_Shield/late_modmas2024_item54 new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Shault-Captain_America_Shield/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Shault-Captain_America_Shield/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Shault-Captain_America_Shield/modmas2024_item54 b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Shault-Captain_America_Shield/modmas2024_item54 new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Sosig_Squad-Custom_Sosig_Loader/CHANGELOG.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Sosig_Squad-Custom_Sosig_Loader/CHANGELOG.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Sosig_Squad-Custom_Sosig_Loader/CustomSosig_Base.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Sosig_Squad-Custom_Sosig_Loader/CustomSosig_Base.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Sosig_Squad-Custom_Sosig_Loader/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Sosig_Squad-Custom_Sosig_Loader/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Sosig_Squad-Custom_Sosig_Loader/SosigClothing.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Sosig_Squad-Custom_Sosig_Loader/SosigClothing.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Sosig_Squad-Custom_Sosig_Loader/Sosig_Squad.CustomSosigLoader.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Sosig_Squad-Custom_Sosig_Loader/Sosig_Squad.CustomSosigLoader.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Sosig_Squad-Custom_Sosig_Loader/Sosig_Squad.CustomSosigLoader.dll.mdb b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Sosig_Squad-Custom_Sosig_Loader/Sosig_Squad.CustomSosigLoader.dll.mdb new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Sosig_Squad-Custom_Sosig_Loader/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Sosig_Squad-Custom_Sosig_Loader/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Sosig_Squad-Custom_Sosig_Loader/late_sosigclothing b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Sosig_Squad-Custom_Sosig_Loader/late_sosigclothing new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Sosig_Squad-Custom_Sosig_Loader/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Sosig_Squad-Custom_Sosig_Loader/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Sosig_Squad-Custom_Sosig_Loader/sosigclothing b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Sosig_Squad-Custom_Sosig_Loader/sosigclothing new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-10x22_Glubbersnackle/10x22_Glubbersnackle.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-10x22_Glubbersnackle/10x22_Glubbersnackle.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-10x22_Glubbersnackle/10x22_glubbersnackle b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-10x22_Glubbersnackle/10x22_glubbersnackle new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-10x22_Glubbersnackle/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-10x22_Glubbersnackle/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-10x22_Glubbersnackle/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-10x22_Glubbersnackle/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-10x22_Glubbersnackle/late_10x22_glubbersnackle b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-10x22_Glubbersnackle/late_10x22_glubbersnackle new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-10x22_Glubbersnackle/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-10x22_Glubbersnackle/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-7x30_Whippersnapper/7x30_Whippersnapper.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-7x30_Whippersnapper/7x30_Whippersnapper.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-7x30_Whippersnapper/7x30_whippersnapper b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-7x30_Whippersnapper/7x30_whippersnapper new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-7x30_Whippersnapper/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-7x30_Whippersnapper/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-7x30_Whippersnapper/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-7x30_Whippersnapper/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-7x30_Whippersnapper/late_7x30_whippersnapper b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-7x30_Whippersnapper/late_7x30_whippersnapper new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-7x30_Whippersnapper/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-7x30_Whippersnapper/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-AngryAngus/AngryAngus.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-AngryAngus/AngryAngus.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-AngryAngus/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-AngryAngus/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-AngryAngus/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-AngryAngus/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-AngryAngus/late_storymods_angryangus b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-AngryAngus/late_storymods_angryangus new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-AngryAngus/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-AngryAngus/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-AngryAngus/storymods_angryangus b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-AngryAngus/storymods_angryangus new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-Domebreaker/Domebreaker.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-Domebreaker/Domebreaker.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-Domebreaker/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-Domebreaker/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-Domebreaker/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-Domebreaker/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-Domebreaker/late_storymods_domebreaker b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-Domebreaker/late_storymods_domebreaker new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-Domebreaker/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-Domebreaker/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-Domebreaker/storymods_domebreaker b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-Domebreaker/storymods_domebreaker new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-LeDernierMot/LeDernierMot.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-LeDernierMot/LeDernierMot.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-LeDernierMot/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-LeDernierMot/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-LeDernierMot/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-LeDernierMot/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-LeDernierMot/late_storymods_lederniermot b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-LeDernierMot/late_storymods_lederniermot new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-LeDernierMot/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-LeDernierMot/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-LeDernierMot/storymods_lederniermot b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-LeDernierMot/storymods_lederniermot new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-Longshot/Longshot.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-Longshot/Longshot.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-Longshot/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-Longshot/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-Longshot/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-Longshot/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-Longshot/late_storymods_longshot b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-Longshot/late_storymods_longshot new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-Longshot/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-Longshot/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-Longshot/storymods_longshot b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-Longshot/storymods_longshot new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-Shortstop/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-Shortstop/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-Shortstop/Shortstop.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-Shortstop/Shortstop.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-Shortstop/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-Shortstop/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-Shortstop/late_storymods_shortstop b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-Shortstop/late_storymods_shortstop new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-Shortstop/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-Shortstop/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-Shortstop/storymods_shortstop b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-Shortstop/storymods_shortstop new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-TheEmesis/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-TheEmesis/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-TheEmesis/TheEmesis.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-TheEmesis/TheEmesis.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-TheEmesis/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-TheEmesis/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-TheEmesis/late_storymods_theemesis b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-TheEmesis/late_storymods_theemesis new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-TheEmesis/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-TheEmesis/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-TheEmesis/storymods_theemesis b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-TheEmesis/storymods_theemesis new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-Trenchbuster/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-Trenchbuster/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-Trenchbuster/Trenchbuster.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-Trenchbuster/Trenchbuster.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-Trenchbuster/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-Trenchbuster/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-Trenchbuster/late_storymods_trenchbuster b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-Trenchbuster/late_storymods_trenchbuster new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-Trenchbuster/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-Trenchbuster/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-Trenchbuster/storymods_trenchbuster b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/StoryMods-Trenchbuster/storymods_trenchbuster new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Stratum-Deliter/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Stratum-Deliter/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Stratum-Deliter/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Stratum-Deliter/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Stratum-Deliter/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Stratum-Deliter/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Stratum-Mason/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Stratum-Mason/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Stratum-Mason/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Stratum-Mason/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Stratum-Mason/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Stratum-Mason/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Stratum-Stratum/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Stratum-Stratum/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Stratum-Stratum/ReadOnlyCollectionsInterfaces.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Stratum-Stratum/ReadOnlyCollectionsInterfaces.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Stratum-Stratum/Stratum.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Stratum-Stratum/Stratum.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Stratum-Stratum/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Stratum-Stratum/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Stratum-Stratum/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Stratum-Stratum/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-AncientChineseMeleePack/AncientChineseMeleePack.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-AncientChineseMeleePack/AncientChineseMeleePack.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-AncientChineseMeleePack/CHANGELOG.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-AncientChineseMeleePack/CHANGELOG.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-AncientChineseMeleePack/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-AncientChineseMeleePack/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-AncientChineseMeleePack/ancientchinesemeleepack b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-AncientChineseMeleePack/ancientchinesemeleepack new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-AncientChineseMeleePack/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-AncientChineseMeleePack/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-AncientChineseMeleePack/late_ancientchinesemeleepack b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-AncientChineseMeleePack/late_ancientchinesemeleepack new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-AncientChineseMeleePack/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-AncientChineseMeleePack/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-AndrewsMachineCarbine/AndrewsMachineCarbine.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-AndrewsMachineCarbine/AndrewsMachineCarbine.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-AndrewsMachineCarbine/CHANGELOG.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-AndrewsMachineCarbine/CHANGELOG.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-AndrewsMachineCarbine/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-AndrewsMachineCarbine/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-AndrewsMachineCarbine/andrewsmachinecarbine b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-AndrewsMachineCarbine/andrewsmachinecarbine new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-AndrewsMachineCarbine/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-AndrewsMachineCarbine/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-AndrewsMachineCarbine/late_andrewsmachinecarbine b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-AndrewsMachineCarbine/late_andrewsmachinecarbine new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-AndrewsMachineCarbine/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-AndrewsMachineCarbine/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-BSAWelgunSMG/BSAWelgunSMG.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-BSAWelgunSMG/BSAWelgunSMG.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-BSAWelgunSMG/CHANGELOG.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-BSAWelgunSMG/CHANGELOG.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-BSAWelgunSMG/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-BSAWelgunSMG/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-BSAWelgunSMG/bsawelgunsmg b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-BSAWelgunSMG/bsawelgunsmg new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-BSAWelgunSMG/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-BSAWelgunSMG/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-BSAWelgunSMG/late_bsawelgunsmg b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-BSAWelgunSMG/late_bsawelgunsmg new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-BSAWelgunSMG/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-BSAWelgunSMG/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-CandyDispenserGun/CHANGELOG.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-CandyDispenserGun/CHANGELOG.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-CandyDispenserGun/CandyDispenserGun.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-CandyDispenserGun/CandyDispenserGun.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-CandyDispenserGun/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-CandyDispenserGun/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-CandyDispenserGun/candydispensergun b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-CandyDispenserGun/candydispensergun new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-CandyDispenserGun/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-CandyDispenserGun/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-CandyDispenserGun/late_candydispensergun b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-CandyDispenserGun/late_candydispensergun new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-CandyDispenserGun/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-CandyDispenserGun/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-LegoWeaponSet/CHANGELOG.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-LegoWeaponSet/CHANGELOG.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-LegoWeaponSet/LegoWeaponSet.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-LegoWeaponSet/LegoWeaponSet.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-LegoWeaponSet/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-LegoWeaponSet/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-LegoWeaponSet/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-LegoWeaponSet/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-LegoWeaponSet/late_legoweaponset b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-LegoWeaponSet/late_legoweaponset new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-LegoWeaponSet/legoweaponset b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-LegoWeaponSet/legoweaponset new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-LegoWeaponSet/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-LegoWeaponSet/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-M99AMR/CHANGELOG.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-M99AMR/CHANGELOG.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-M99AMR/M99AMR.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-M99AMR/M99AMR.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-M99AMR/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-M99AMR/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-M99AMR/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-M99AMR/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-M99AMR/late_m99amr b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-M99AMR/late_m99amr new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-M99AMR/m99amr b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-M99AMR/m99amr new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-M99AMR/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-M99AMR/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-ModulDG58/CHANGELOG.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-ModulDG58/CHANGELOG.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-ModulDG58/ModulDG58.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-ModulDG58/ModulDG58.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-ModulDG58/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-ModulDG58/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-ModulDG58/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-ModulDG58/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-ModulDG58/late_moduldg58 b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-ModulDG58/late_moduldg58 new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-ModulDG58/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-ModulDG58/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-ModulDG58/moduldg58 b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-ModulDG58/moduldg58 new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-ModulDG58/mw_moduldg58 b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-ModulDG58/mw_moduldg58 new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-ModulKVDRifles/CHANGELOG.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-ModulKVDRifles/CHANGELOG.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-ModulKVDRifles/ModulKVDRifles.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-ModulKVDRifles/ModulKVDRifles.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-ModulKVDRifles/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-ModulKVDRifles/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-ModulKVDRifles/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-ModulKVDRifles/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-ModulKVDRifles/late_modulkvdrifles b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-ModulKVDRifles/late_modulkvdrifles new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-ModulKVDRifles/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-ModulKVDRifles/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-ModulKVDRifles/modulkvdrifles b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-ModulKVDRifles/modulkvdrifles new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-ModulKVDRifles/mw_modulkvdrifles b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-ModulKVDRifles/mw_modulkvdrifles new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-ModulRenettiPistol/CHANGELOG.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-ModulRenettiPistol/CHANGELOG.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-ModulRenettiPistol/ModulRenettiPistol.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-ModulRenettiPistol/ModulRenettiPistol.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-ModulRenettiPistol/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-ModulRenettiPistol/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-ModulRenettiPistol/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-ModulRenettiPistol/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-ModulRenettiPistol/late_modulrenettipistol b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-ModulRenettiPistol/late_modulrenettipistol new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-ModulRenettiPistol/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-ModulRenettiPistol/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-ModulRenettiPistol/modulrenettipistol b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-ModulRenettiPistol/modulrenettipistol new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-ModulRenettiPistol/mw_modulrenettipistol b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-ModulRenettiPistol/mw_modulrenettipistol new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-Pancerovka27ALauncher/CHANGELOG.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-Pancerovka27ALauncher/CHANGELOG.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-Pancerovka27ALauncher/Pancerovka27ALauncher.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-Pancerovka27ALauncher/Pancerovka27ALauncher.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-Pancerovka27ALauncher/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-Pancerovka27ALauncher/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-Pancerovka27ALauncher/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-Pancerovka27ALauncher/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-Pancerovka27ALauncher/late_pancerovka27alauncher b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-Pancerovka27ALauncher/late_pancerovka27alauncher new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-Pancerovka27ALauncher/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-Pancerovka27ALauncher/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-Pancerovka27ALauncher/pancerovka27alauncher b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-Pancerovka27ALauncher/pancerovka27alauncher new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-QBZ03Rifles/CHANGELOG.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-QBZ03Rifles/CHANGELOG.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-QBZ03Rifles/QBZ03Rifles.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-QBZ03Rifles/QBZ03Rifles.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-QBZ03Rifles/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-QBZ03Rifles/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-QBZ03Rifles/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-QBZ03Rifles/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-QBZ03Rifles/late_qbz03rifles b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-QBZ03Rifles/late_qbz03rifles new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-QBZ03Rifles/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-QBZ03Rifles/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-QBZ03Rifles/qbz03rifles b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-QBZ03Rifles/qbz03rifles new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-VZ25SMG/CHANGELOG.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-VZ25SMG/CHANGELOG.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-VZ25SMG/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-VZ25SMG/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-VZ25SMG/VZ25SMG.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-VZ25SMG/VZ25SMG.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-VZ25SMG/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-VZ25SMG/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-VZ25SMG/late_vz25smg b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-VZ25SMG/late_vz25smg new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-VZ25SMG/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-VZ25SMG/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-VZ25SMG/vz25smg b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-VZ25SMG/vz25smg new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-XmasFoodBundle/CHANGELOG.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-XmasFoodBundle/CHANGELOG.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-XmasFoodBundle/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-XmasFoodBundle/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-XmasFoodBundle/XmasFoodBundle.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-XmasFoodBundle/XmasFoodBundle.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-XmasFoodBundle/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-XmasFoodBundle/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-XmasFoodBundle/late_xmasfoodbundle b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-XmasFoodBundle/late_xmasfoodbundle new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-XmasFoodBundle/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-XmasFoodBundle/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-XmasFoodBundle/xmasfoodbundle b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/Volks-XmasFoodBundle/xmasfoodbundle new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/WFIOST-H3VRUtilities/8-11-0.unitypackage b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/WFIOST-H3VRUtilities/8-11-0.unitypackage new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/WFIOST-H3VRUtilities/H3VRUtilities.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/WFIOST-H3VRUtilities/H3VRUtilities.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/WFIOST-H3VRUtilities/H3VRUtilitiesVehicles.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/WFIOST-H3VRUtilities/H3VRUtilitiesVehicles.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/WFIOST-H3VRUtilities/H3VRUtilsConfig.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/WFIOST-H3VRUtilities/H3VRUtilsConfig.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/WFIOST-H3VRUtilities/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/WFIOST-H3VRUtilities/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/WFIOST-H3VRUtilities/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/WFIOST-H3VRUtilities/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/WFIOST-H3VRUtilities/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/WFIOST-H3VRUtilities/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-Fallout4FatMan/Fallout4FatMan.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-Fallout4FatMan/Fallout4FatMan.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-Fallout4FatMan/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-Fallout4FatMan/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-Fallout4FatMan/cityrobo.fatman b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-Fallout4FatMan/cityrobo.fatman new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-Fallout4FatMan/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-Fallout4FatMan/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-Fallout4FatMan/late_cityrobo.fatman b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-Fallout4FatMan/late_cityrobo.fatman new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-Fallout4FatMan/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-Fallout4FatMan/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-Gewehr43/Gewehr43.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-Gewehr43/Gewehr43.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-Gewehr43/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-Gewehr43/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-Gewehr43/cityrobo_g43 b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-Gewehr43/cityrobo_g43 new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-Gewehr43/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-Gewehr43/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-Gewehr43/late_cityrobo_g43 b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-Gewehr43/late_cityrobo_g43 new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-Gewehr43/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-Gewehr43/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-ModularWorkshop/CHANGELOG.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-ModularWorkshop/CHANGELOG.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-ModularWorkshop/ModularWorkshop.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-ModularWorkshop/ModularWorkshop.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-ModularWorkshop/ModularWorkshop.dll.mdb b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-ModularWorkshop/ModularWorkshop.dll.mdb new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-ModularWorkshop/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-ModularWorkshop/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-ModularWorkshop/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-ModularWorkshop/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-ModularWorkshop/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-ModularWorkshop/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/AdditionalBarrel.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/AdditionalBarrel.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/Adjustable_ReflexSight.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/Adjustable_ReflexSight.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/Attachable_Magazine.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/Attachable_Magazine.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/AttachmentMountParentToThis.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/AttachmentMountParentToThis.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/AttachmentStock.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/AttachmentStock.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/BreakActionWeapon_BarrelSwitch.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/BreakActionWeapon_BarrelSwitch.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/CapAndBallRevolver.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/CapAndBallRevolver.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/CustomQuickBeltSlots.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/CustomQuickBeltSlots.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/DP12_Scripts.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/DP12_Scripts.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/LongRecoilSystem.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/LongRecoilSystem.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/MagPoseCycler.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/MagPoseCycler.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/MagazineScripts.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/MagazineScripts.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/Magazine_Tape.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/Magazine_Tape.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/ManipulateObjectAttachmentProxy.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/ManipulateObjectAttachmentProxy.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/Manipulate_Animator.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/Manipulate_Animator.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/MeatBeatScanner.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/MeatBeatScanner.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/MeatyPages.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/MeatyPages.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/ModifyWeaponCartrideAndMagazineAttachment.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/ModifyWeaponCartrideAndMagazineAttachment.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/MountedGunControls.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/MountedGunControls.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/MovableWeaponPart.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/MovableWeaponPart.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/MultipleHideOnAttach.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/MultipleHideOnAttach.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/OpenBoltBurst.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/OpenBoltBurst.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/OpenScripts.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/OpenScripts.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/OpenScriptsBepInEx.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/OpenScriptsBepInEx.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/PreattachedAttachment.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/PreattachedAttachment.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/QBArmorPiece.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/QBArmorPiece.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/RSC_MagazineFollower.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/RSC_MagazineFollower.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/RangeFinder.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/RangeFinder.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/RifleGrenadeAdapter.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/RifleGrenadeAdapter.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/Rigidbody_JiggleBones.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/Rigidbody_JiggleBones.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/ScopeShaderZoom.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/ScopeShaderZoom.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/ShotClock.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/ShotClock.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/SmartPistol.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/SmartPistol.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/SwitchBlade.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/SwitchBlade.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/TemplateProject.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/TemplateProject.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/ThermalVision_Enabler.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/ThermalVision_Enabler.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/TriggerModification.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/TriggerModification.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/Typhoon.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/Typhoon.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/WeaponEnhancementAttachment.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/WeaponEnhancementAttachment.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts2/CHANGELOG.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts2/CHANGELOG.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts2/MeatKitDLL.zip b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts2/MeatKitDLL.zip new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts2/OpenScripts2.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts2/OpenScripts2.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts2/OpenScripts2.dll.mdb b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts2/OpenScripts2.dll.mdb new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts2/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts2/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts2/advancedmovingattachmentinterfacemenu b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts2/advancedmovingattachmentinterfacemenu new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts2/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts2/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts2/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-OpenScripts2/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-PrefabReplacer/PrefabReplacer.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-PrefabReplacer/PrefabReplacer.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-PrefabReplacer/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-PrefabReplacer/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-PrefabReplacer/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-PrefabReplacer/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-PrefabReplacer/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/cityrobo-PrefabReplacer/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/devyndamonster-OtherLoader/OtherLoader.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/devyndamonster-OtherLoader/OtherLoader.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/devyndamonster-OtherLoader/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/devyndamonster-OtherLoader/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/devyndamonster-OtherLoader/bootstrap.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/devyndamonster-OtherLoader/bootstrap.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/devyndamonster-OtherLoader/config.yaml b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/devyndamonster-OtherLoader/config.yaml new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/devyndamonster-OtherLoader/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/devyndamonster-OtherLoader/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/devyndamonster-OtherLoader/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/devyndamonster-OtherLoader/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/devyndamonster-OtherLoader/project.yaml b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/devyndamonster-OtherLoader/project.yaml new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/devyndamonster-OtherLoader/resources/OtherloaderLock.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/devyndamonster-OtherLoader/resources/OtherloaderLock.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/devyndamonster-OtherLoader/resources/otherloader_assets b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/devyndamonster-OtherLoader/resources/otherloader_assets new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-FNV_Power_Fist/FNV_Power_Fist.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-FNV_Power_Fist/FNV_Power_Fist.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-FNV_Power_Fist/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-FNV_Power_Fist/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-FNV_Power_Fist/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-FNV_Power_Fist/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-FNV_Power_Fist/late_modmas2024_item07 b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-FNV_Power_Fist/late_modmas2024_item07 new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-FNV_Power_Fist/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-FNV_Power_Fist/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-FNV_Power_Fist/modmas2024_item07 b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-FNV_Power_Fist/modmas2024_item07 new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-FNV_Ripper/FNV_Ripper.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-FNV_Ripper/FNV_Ripper.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-FNV_Ripper/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-FNV_Ripper/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-FNV_Ripper/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-FNV_Ripper/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-FNV_Ripper/late_modmas2024_item06 b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-FNV_Ripper/late_modmas2024_item06 new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-FNV_Ripper/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-FNV_Ripper/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-FNV_Ripper/modmas2024_item06 b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-FNV_Ripper/modmas2024_item06 new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-MG15/MG15.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-MG15/MG15.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-MG15/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-MG15/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-MG15/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-MG15/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-MG15/late_modmas2024_item45 b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-MG15/late_modmas2024_item45 new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-MG15/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-MG15/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-MG15/modmas2024_item45 b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-MG15/modmas2024_item45 new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-MW2_Pit/CHANGELOG.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-MW2_Pit/CHANGELOG.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-MW2_Pit/MW2_Pit.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-MW2_Pit/MW2_Pit.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-MW2_Pit/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-MW2_Pit/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-MW2_Pit/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-MW2_Pit/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-MW2_Pit/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-MW2_Pit/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-MW2_Pit/pit b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-MW2_Pit/pit new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-MW2_Pit/pit.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-MW2_Pit/pit.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-MW2_Pit/pit.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-MW2_Pit/pit.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-PitScripts/LICENSE b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-PitScripts/LICENSE new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-PitScripts/PitScripts.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-PitScripts/PitScripts.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-PitScripts/PitScripts.dll.mdb b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-PitScripts/PitScripts.dll.mdb new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-PitScripts/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-PitScripts/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-PitScripts/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-PitScripts/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-PitScripts/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-PitScripts/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-Zbroyar_Z_008/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-Zbroyar_Z_008/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-Zbroyar_Z_008/Zbroyar_Z_008.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-Zbroyar_Z_008/Zbroyar_Z_008.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-Zbroyar_Z_008/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-Zbroyar_Z_008/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-Zbroyar_Z_008/late_modmas2024_item64 b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-Zbroyar_Z_008/late_modmas2024_item64 new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-Zbroyar_Z_008/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-Zbroyar_Z_008/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-Zbroyar_Z_008/modmas2024_item64 b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/localpcnerd-Zbroyar_Z_008/modmas2024_item64 new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/nrgill28-Atlas/Atlas.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/nrgill28-Atlas/Atlas.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/nrgill28-Atlas/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/nrgill28-Atlas/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/nrgill28-Atlas/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/nrgill28-Atlas/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/nrgill28-Atlas/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/nrgill28-Atlas/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/nrgill28-HookGenPatcher_H3VR/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/nrgill28-HookGenPatcher_H3VR/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/nrgill28-HookGenPatcher_H3VR/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/nrgill28-HookGenPatcher_H3VR/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/nrgill28-HookGenPatcher_H3VR/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/nrgill28-HookGenPatcher_H3VR/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/nrgill28-Munchies/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/nrgill28-Munchies/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/nrgill28-Munchies/happyding b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/nrgill28-Munchies/happyding new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/nrgill28-Munchies/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/nrgill28-Munchies/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/nrgill28-Munchies/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/nrgill28-Munchies/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/nrgill28-Munchies/nrgill28.Munchies.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/nrgill28-Munchies/nrgill28.Munchies.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/nrgill28-Sodalite/LICENSE b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/nrgill28-Sodalite/LICENSE new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/nrgill28-Sodalite/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/nrgill28-Sodalite/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/nrgill28-Sodalite/Sodalite.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/nrgill28-Sodalite/Sodalite.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/nrgill28-Sodalite/YamlDotNet.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/nrgill28-Sodalite/YamlDotNet.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/nrgill28-Sodalite/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/nrgill28-Sodalite/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/nrgill28-Sodalite/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/nrgill28-Sodalite/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/nrgill28-Sodalite/universalpanel b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/nrgill28-Sodalite/universalpanel new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/nrgill28-WurstMod/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/nrgill28-WurstMod/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/nrgill28-WurstMod/WurstMod.deli b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/nrgill28-WurstMod/WurstMod.deli new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/nrgill28-WurstMod/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/nrgill28-WurstMod/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/nrgill28-WurstMod/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/nrgill28-WurstMod/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/sirpotatos-Hotel_Hotlink_Lights_Out/HotelHotlinkLightsOut.deli b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/sirpotatos-Hotel_Hotlink_Lights_Out/HotelHotlinkLightsOut.deli new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/sirpotatos-Hotel_Hotlink_Lights_Out/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/sirpotatos-Hotel_Hotlink_Lights_Out/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/sirpotatos-Hotel_Hotlink_Lights_Out/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/sirpotatos-Hotel_Hotlink_Lights_Out/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/sirpotatos-Hotel_Hotlink_Lights_Out/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/sirpotatos-Hotel_Hotlink_Lights_Out/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/sirpotatos-QSZ_92/QSZ_92.dll b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/sirpotatos-QSZ_92/QSZ_92.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/sirpotatos-QSZ_92/README.md b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/sirpotatos-QSZ_92/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/sirpotatos-QSZ_92/icon.png b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/sirpotatos-QSZ_92/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/sirpotatos-QSZ_92/late_qsz92 b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/sirpotatos-QSZ_92/late_qsz92 new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/sirpotatos-QSZ_92/manifest.json b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/sirpotatos-QSZ_92/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/sirpotatos-QSZ_92/qsz92 b/resources/test/installers/bepinex/Modmas_2021/BepInEx/plugins/sirpotatos-QSZ_92/qsz92 new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/doorstop_config.ini b/resources/test/installers/bepinex/Modmas_2021/doorstop_config.ini new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/Modmas_2021/winhttp.dll b/resources/test/installers/bepinex/Modmas_2021/winhttp.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/PlantEverything/.doorstop_version b/resources/test/installers/bepinex/PlantEverything/.doorstop_version new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/PlantEverything/BepInEx/config/BepInEx.cfg b/resources/test/installers/bepinex/PlantEverything/BepInEx/config/BepInEx.cfg new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/PlantEverything/BepInEx/core/0Harmony.dll b/resources/test/installers/bepinex/PlantEverything/BepInEx/core/0Harmony.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/PlantEverything/BepInEx/core/0Harmony.xml b/resources/test/installers/bepinex/PlantEverything/BepInEx/core/0Harmony.xml new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/PlantEverything/BepInEx/core/0Harmony20.dll b/resources/test/installers/bepinex/PlantEverything/BepInEx/core/0Harmony20.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/PlantEverything/BepInEx/core/BepInEx.Harmony.dll b/resources/test/installers/bepinex/PlantEverything/BepInEx/core/BepInEx.Harmony.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/PlantEverything/BepInEx/core/BepInEx.Harmony.xml b/resources/test/installers/bepinex/PlantEverything/BepInEx/core/BepInEx.Harmony.xml new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/PlantEverything/BepInEx/core/BepInEx.Preloader.dll b/resources/test/installers/bepinex/PlantEverything/BepInEx/core/BepInEx.Preloader.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/PlantEverything/BepInEx/core/BepInEx.Preloader.xml b/resources/test/installers/bepinex/PlantEverything/BepInEx/core/BepInEx.Preloader.xml new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/PlantEverything/BepInEx/core/BepInEx.dll b/resources/test/installers/bepinex/PlantEverything/BepInEx/core/BepInEx.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/PlantEverything/BepInEx/core/BepInEx.xml b/resources/test/installers/bepinex/PlantEverything/BepInEx/core/BepInEx.xml new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/PlantEverything/BepInEx/core/HarmonyXInterop.dll b/resources/test/installers/bepinex/PlantEverything/BepInEx/core/HarmonyXInterop.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/PlantEverything/BepInEx/core/Mono.Cecil.Mdb.dll b/resources/test/installers/bepinex/PlantEverything/BepInEx/core/Mono.Cecil.Mdb.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/PlantEverything/BepInEx/core/Mono.Cecil.Pdb.dll b/resources/test/installers/bepinex/PlantEverything/BepInEx/core/Mono.Cecil.Pdb.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/PlantEverything/BepInEx/core/Mono.Cecil.Rocks.dll b/resources/test/installers/bepinex/PlantEverything/BepInEx/core/Mono.Cecil.Rocks.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/PlantEverything/BepInEx/core/Mono.Cecil.dll b/resources/test/installers/bepinex/PlantEverything/BepInEx/core/Mono.Cecil.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/PlantEverything/BepInEx/core/MonoMod.RuntimeDetour.dll b/resources/test/installers/bepinex/PlantEverything/BepInEx/core/MonoMod.RuntimeDetour.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/PlantEverything/BepInEx/core/MonoMod.RuntimeDetour.xml b/resources/test/installers/bepinex/PlantEverything/BepInEx/core/MonoMod.RuntimeDetour.xml new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/PlantEverything/BepInEx/core/MonoMod.Utils.dll b/resources/test/installers/bepinex/PlantEverything/BepInEx/core/MonoMod.Utils.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/PlantEverything/BepInEx/core/MonoMod.Utils.xml b/resources/test/installers/bepinex/PlantEverything/BepInEx/core/MonoMod.Utils.xml new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/PlantEverything/BepInEx/plugins/Advize-PlantEverything/Advize_PlantEverything.dll b/resources/test/installers/bepinex/PlantEverything/BepInEx/plugins/Advize-PlantEverything/Advize_PlantEverything.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/PlantEverything/BepInEx/plugins/Advize-PlantEverything/CHANGELOG.md b/resources/test/installers/bepinex/PlantEverything/BepInEx/plugins/Advize-PlantEverything/CHANGELOG.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/PlantEverything/BepInEx/plugins/Advize-PlantEverything/README.md b/resources/test/installers/bepinex/PlantEverything/BepInEx/plugins/Advize-PlantEverything/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/PlantEverything/BepInEx/plugins/Advize-PlantEverything/icon.png b/resources/test/installers/bepinex/PlantEverything/BepInEx/plugins/Advize-PlantEverything/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/PlantEverything/BepInEx/plugins/Advize-PlantEverything/manifest.json b/resources/test/installers/bepinex/PlantEverything/BepInEx/plugins/Advize-PlantEverything/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/PlantEverything/BepInEx/plugins/Valheim.DisplayBepInExInfo.dll b/resources/test/installers/bepinex/PlantEverything/BepInEx/plugins/Valheim.DisplayBepInExInfo.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/PlantEverything/changelog.txt b/resources/test/installers/bepinex/PlantEverything/changelog.txt new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/PlantEverything/doorstop_config.ini b/resources/test/installers/bepinex/PlantEverything/doorstop_config.ini new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/PlantEverything/doorstop_libs/libdoorstop_x64.dylib b/resources/test/installers/bepinex/PlantEverything/doorstop_libs/libdoorstop_x64.dylib new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/PlantEverything/doorstop_libs/libdoorstop_x64.so b/resources/test/installers/bepinex/PlantEverything/doorstop_libs/libdoorstop_x64.so new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/PlantEverything/doorstop_libs/libdoorstop_x86.dylib b/resources/test/installers/bepinex/PlantEverything/doorstop_libs/libdoorstop_x86.dylib new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/PlantEverything/doorstop_libs/libdoorstop_x86.so b/resources/test/installers/bepinex/PlantEverything/doorstop_libs/libdoorstop_x86.so new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/PlantEverything/start_game_bepinex.sh b/resources/test/installers/bepinex/PlantEverything/start_game_bepinex.sh new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/PlantEverything/start_server_bepinex.sh b/resources/test/installers/bepinex/PlantEverything/start_server_bepinex.sh new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/PlantEverything/winhttp.dll b/resources/test/installers/bepinex/PlantEverything/winhttp.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/config/BepInEx.cfg b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/config/BepInEx.cfg new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/config/HookGenPatcher.cfg b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/config/HookGenPatcher.cfg new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/core/0Harmony.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/core/0Harmony.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/core/0Harmony.xml b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/core/0Harmony.xml new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/core/0Harmony20.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/core/0Harmony20.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/core/BepInEx-MonoMod_Loader/MonoMod.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/core/BepInEx-MonoMod_Loader/MonoMod.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/core/BepInEx.Harmony.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/core/BepInEx.Harmony.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/core/BepInEx.Harmony.xml b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/core/BepInEx.Harmony.xml new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/core/BepInEx.Preloader.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/core/BepInEx.Preloader.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/core/BepInEx.Preloader.xml b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/core/BepInEx.Preloader.xml new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/core/BepInEx.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/core/BepInEx.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/core/BepInEx.xml b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/core/BepInEx.xml new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/core/HarmonyXInterop.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/core/HarmonyXInterop.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/core/Mono.Cecil.Mdb.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/core/Mono.Cecil.Mdb.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/core/Mono.Cecil.Pdb.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/core/Mono.Cecil.Pdb.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/core/Mono.Cecil.Rocks.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/core/Mono.Cecil.Rocks.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/core/Mono.Cecil.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/core/Mono.Cecil.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/core/MonoMod.RuntimeDetour.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/core/MonoMod.RuntimeDetour.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/core/MonoMod.RuntimeDetour.xml b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/core/MonoMod.RuntimeDetour.xml new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/core/MonoMod.Utils.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/core/MonoMod.Utils.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/core/MonoMod.Utils.xml b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/core/MonoMod.Utils.xml new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/monomod/WFIOST-H3VRUtilities/H3VRUtilities/Assembly-CSharp.H3VRUtilities.mm.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/monomod/WFIOST-H3VRUtilities/H3VRUtilities/Assembly-CSharp.H3VRUtilities.mm.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/monomod/WFIOST-H3VRUtilities/H3VRUtilities/Assembly-CSharp.H3VRUtilitiesVehicles.mm.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/monomod/WFIOST-H3VRUtilities/H3VRUtilities/Assembly-CSharp.H3VRUtilitiesVehicles.mm.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/monomod/cityrobo-OpenScripts/Assembly-CSharp.AttachmentStock.mm.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/monomod/cityrobo-OpenScripts/Assembly-CSharp.AttachmentStock.mm.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/monomod/cityrobo-OpenScripts/Assembly-CSharp.CapAndBallRevolver.mm.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/monomod/cityrobo-OpenScripts/Assembly-CSharp.CapAndBallRevolver.mm.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/monomod/cityrobo-OpenScripts/Assembly-CSharp.CustomQuickBeltSlots.mm.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/monomod/cityrobo-OpenScripts/Assembly-CSharp.CustomQuickBeltSlots.mm.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/monomod/cityrobo-OpenScripts/Assembly-CSharp.MagazineScripts.mm.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/monomod/cityrobo-OpenScripts/Assembly-CSharp.MagazineScripts.mm.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/monomod/cityrobo-OpenScripts/Assembly-CSharp.MeatyPages.mm.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/monomod/cityrobo-OpenScripts/Assembly-CSharp.MeatyPages.mm.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/monomod/cityrobo-OpenScripts/Assembly-CSharp.MeshCombiner_MonoMod.mm.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/monomod/cityrobo-OpenScripts/Assembly-CSharp.MeshCombiner_MonoMod.mm.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/monomod/cityrobo-OpenScripts/Assembly-CSharp.MovableWeaponPart.mm.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/monomod/cityrobo-OpenScripts/Assembly-CSharp.MovableWeaponPart.mm.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/monomod/cityrobo-OpenScripts/Assembly-CSharp.QBArmorPiece.mm.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/monomod/cityrobo-OpenScripts/Assembly-CSharp.QBArmorPiece.mm.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/monomod/cityrobo-OpenScripts/Assembly-CSharp.RSC_MagazineFollower.mm.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/monomod/cityrobo-OpenScripts/Assembly-CSharp.RSC_MagazineFollower.mm.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/monomod/cityrobo-OpenScripts/Assembly-CSharp.WeaponEnhancementAttachment.mm.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/monomod/cityrobo-OpenScripts/Assembly-CSharp.WeaponEnhancementAttachment.mm.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/patchers/BepInEx-MonoMod_Loader/BepInEx.MonoMod.Loader.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/patchers/BepInEx-MonoMod_Loader/BepInEx.MonoMod.Loader.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/patchers/Stratum-Deliter/Deliter.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/patchers/Stratum-Deliter/Deliter.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/patchers/Stratum-Deliter/DotNetZip.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/patchers/Stratum-Deliter/DotNetZip.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/patchers/Stratum-Deliter/I18N.West.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/patchers/Stratum-Deliter/I18N.West.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/patchers/Stratum-Deliter/I18N.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/patchers/Stratum-Deliter/I18N.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/patchers/Stratum-Deliter/Newtonsoft.Json.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/patchers/Stratum-Deliter/Newtonsoft.Json.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/patchers/Stratum-Deliter/YamlDotNet.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/patchers/Stratum-Deliter/YamlDotNet.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/patchers/Stratum-Deliter/config.yaml b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/patchers/Stratum-Deliter/config.yaml new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/patchers/Stratum-Mason/Mason.Core.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/patchers/Stratum-Mason/Mason.Core.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/patchers/Stratum-Mason/Mason.Patcher.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/patchers/Stratum-Mason/Mason.Patcher.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/patchers/Stratum-Mason/Newtonsoft.Json.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/patchers/Stratum-Mason/Newtonsoft.Json.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/patchers/Stratum-Mason/YamlDotNet.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/patchers/Stratum-Mason/YamlDotNet.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/patchers/nrgill28-HookGenPatcher_H3VR/BepInEx.MonoMod.HookGenPatcher.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/patchers/nrgill28-HookGenPatcher_H3VR/BepInEx.MonoMod.HookGenPatcher.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/patchers/nrgill28-HookGenPatcher_H3VR/MonoMod.RuntimeDetour.HookGen.exe b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/patchers/nrgill28-HookGenPatcher_H3VR/MonoMod.RuntimeDetour.HookGen.exe new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/patchers/nrgill28-Sodalite/Sodalite.Patcher.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/patchers/nrgill28-Sodalite/Sodalite.Patcher.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/Arpy-410_Shotshells/410.deli b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/Arpy-410_Shotshells/410.deli new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/Arpy-410_Shotshells/README.md b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/Arpy-410_Shotshells/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/Arpy-410_Shotshells/icon.png b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/Arpy-410_Shotshells/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/Arpy-410_Shotshells/manifest.json b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/Arpy-410_Shotshells/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/BepInEx-MonoMod_Loader/README.md b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/BepInEx-MonoMod_Loader/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/BepInEx-MonoMod_Loader/icon.png b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/BepInEx-MonoMod_Loader/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/BepInEx-MonoMod_Loader/manifest.json b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/BepInEx-MonoMod_Loader/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/Muzzle-50_GI/50_GI.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/Muzzle-50_GI/50_GI.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/Muzzle-50_GI/50gi b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/Muzzle-50_GI/50gi new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/Muzzle-50_GI/README.md b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/Muzzle-50_GI/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/Muzzle-50_GI/icon.png b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/Muzzle-50_GI/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/Muzzle-50_GI/late_50gi b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/Muzzle-50_GI/late_50gi new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/Muzzle-50_GI/manifest.json b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/Muzzle-50_GI/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/Stratum-Deliter/README.md b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/Stratum-Deliter/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/Stratum-Deliter/icon.png b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/Stratum-Deliter/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/Stratum-Deliter/manifest.json b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/Stratum-Deliter/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/Stratum-Mason/README.md b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/Stratum-Mason/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/Stratum-Mason/icon.png b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/Stratum-Mason/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/Stratum-Mason/manifest.json b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/Stratum-Mason/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/Stratum-Stratum/README.md b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/Stratum-Stratum/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/Stratum-Stratum/ReadOnlyCollectionsInterfaces.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/Stratum-Stratum/ReadOnlyCollectionsInterfaces.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/Stratum-Stratum/Stratum.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/Stratum-Stratum/Stratum.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/Stratum-Stratum/icon.png b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/Stratum-Stratum/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/Stratum-Stratum/manifest.json b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/Stratum-Stratum/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/WFIOST-H3VRUtilities/880.unitypackage b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/WFIOST-H3VRUtilities/880.unitypackage new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/WFIOST-H3VRUtilities/Assembly-CSharp.H3VRUtilities.mm.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/WFIOST-H3VRUtilities/Assembly-CSharp.H3VRUtilities.mm.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/WFIOST-H3VRUtilities/H3VRUtilsConfig.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/WFIOST-H3VRUtilities/H3VRUtilsConfig.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/WFIOST-H3VRUtilities/README.md b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/WFIOST-H3VRUtilities/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/WFIOST-H3VRUtilities/icon.png b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/WFIOST-H3VRUtilities/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/WFIOST-H3VRUtilities/manifest.json b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/WFIOST-H3VRUtilities/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/cityrobo-OpenScripts/AdditionalBarrel.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/cityrobo-OpenScripts/AdditionalBarrel.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/cityrobo-OpenScripts/Adjustable_ReflexSight.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/cityrobo-OpenScripts/Adjustable_ReflexSight.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/cityrobo-OpenScripts/Attachable_Magazine.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/cityrobo-OpenScripts/Attachable_Magazine.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/cityrobo-OpenScripts/AttachmentMountParentToThis.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/cityrobo-OpenScripts/AttachmentMountParentToThis.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/cityrobo-OpenScripts/AttachmentStock.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/cityrobo-OpenScripts/AttachmentStock.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/cityrobo-OpenScripts/BreakActionWeapon_BarrelSwitch.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/cityrobo-OpenScripts/BreakActionWeapon_BarrelSwitch.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/cityrobo-OpenScripts/LongRecoilSystem.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/cityrobo-OpenScripts/LongRecoilSystem.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/cityrobo-OpenScripts/MagPoseCycler.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/cityrobo-OpenScripts/MagPoseCycler.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/cityrobo-OpenScripts/Magazine_Tape.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/cityrobo-OpenScripts/Magazine_Tape.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/cityrobo-OpenScripts/ManipulateObjectAttachmentProxy.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/cityrobo-OpenScripts/ManipulateObjectAttachmentProxy.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/cityrobo-OpenScripts/Manipulate_Animator.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/cityrobo-OpenScripts/Manipulate_Animator.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/cityrobo-OpenScripts/ModifyWeaponCartrideAndMagazineAttachment.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/cityrobo-OpenScripts/ModifyWeaponCartrideAndMagazineAttachment.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/cityrobo-OpenScripts/MountedGunControls.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/cityrobo-OpenScripts/MountedGunControls.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/cityrobo-OpenScripts/MultipleHideOnAttach.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/cityrobo-OpenScripts/MultipleHideOnAttach.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/cityrobo-OpenScripts/OpenBoltBurst.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/cityrobo-OpenScripts/OpenBoltBurst.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/cityrobo-OpenScripts/PreattachedAttachment.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/cityrobo-OpenScripts/PreattachedAttachment.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/cityrobo-OpenScripts/README.md b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/cityrobo-OpenScripts/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/cityrobo-OpenScripts/RangeFinder.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/cityrobo-OpenScripts/RangeFinder.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/cityrobo-OpenScripts/Rigidbody_JiggleBones.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/cityrobo-OpenScripts/Rigidbody_JiggleBones.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/cityrobo-OpenScripts/ScopeShaderZoom.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/cityrobo-OpenScripts/ScopeShaderZoom.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/cityrobo-OpenScripts/ShotClock.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/cityrobo-OpenScripts/ShotClock.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/cityrobo-OpenScripts/SmartPistol.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/cityrobo-OpenScripts/SmartPistol.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/cityrobo-OpenScripts/SwitchBlade.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/cityrobo-OpenScripts/SwitchBlade.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/cityrobo-OpenScripts/Typhoon.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/cityrobo-OpenScripts/Typhoon.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/cityrobo-OpenScripts/icon.png b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/cityrobo-OpenScripts/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/cityrobo-OpenScripts/manifest.json b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/cityrobo-OpenScripts/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/cityrobo-OpenScripts2/MeatKitDLL.zip b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/cityrobo-OpenScripts2/MeatKitDLL.zip new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/cityrobo-OpenScripts2/OpenScripts2.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/cityrobo-OpenScripts2/OpenScripts2.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/cityrobo-OpenScripts2/OpenScripts2.dll.mdb b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/cityrobo-OpenScripts2/OpenScripts2.dll.mdb new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/cityrobo-OpenScripts2/README.md b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/cityrobo-OpenScripts2/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/cityrobo-OpenScripts2/icon.png b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/cityrobo-OpenScripts2/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/cityrobo-OpenScripts2/manifest.json b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/cityrobo-OpenScripts2/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/devyndamonster-OtherLoader/OtherLoader.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/devyndamonster-OtherLoader/OtherLoader.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/devyndamonster-OtherLoader/README.md b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/devyndamonster-OtherLoader/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/devyndamonster-OtherLoader/bootstrap.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/devyndamonster-OtherLoader/bootstrap.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/devyndamonster-OtherLoader/config.yaml b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/devyndamonster-OtherLoader/config.yaml new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/devyndamonster-OtherLoader/icon.png b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/devyndamonster-OtherLoader/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/devyndamonster-OtherLoader/manifest.json b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/devyndamonster-OtherLoader/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/devyndamonster-OtherLoader/project.yaml b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/devyndamonster-OtherLoader/project.yaml new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/devyndamonster-OtherLoader/resources/otherloader_assets b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/devyndamonster-OtherLoader/resources/otherloader_assets new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/nrgill28-HookGenPatcher_H3VR/README.md b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/nrgill28-HookGenPatcher_H3VR/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/nrgill28-HookGenPatcher_H3VR/icon.png b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/nrgill28-HookGenPatcher_H3VR/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/nrgill28-HookGenPatcher_H3VR/manifest.json b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/nrgill28-HookGenPatcher_H3VR/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/nrgill28-Sodalite/README.md b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/nrgill28-Sodalite/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/nrgill28-Sodalite/Sodalite.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/nrgill28-Sodalite/Sodalite.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/nrgill28-Sodalite/icon.png b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/nrgill28-Sodalite/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/nrgill28-Sodalite/manifest.json b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/nrgill28-Sodalite/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-BOSG_12/README.md b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-BOSG_12/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-BOSG_12/icon.png b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-BOSG_12/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-BOSG_12/manifest.json b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-BOSG_12/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-BOSG_12/project.yaml b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-BOSG_12/project.yaml new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-BOSG_12/resources/any_bosg12 b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-BOSG_12/resources/any_bosg12 new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-BOSG_12/resources/late_any_bosg12 b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-BOSG_12/resources/late_any_bosg12 new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-Bailiff_410/README.md b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-Bailiff_410/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-Bailiff_410/icon.png b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-Bailiff_410/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-Bailiff_410/manifest.json b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-Bailiff_410/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-Bailiff_410/project.yaml b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-Bailiff_410/project.yaml new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-Bailiff_410/resources/any_bailiff410 b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-Bailiff_410/resources/any_bailiff410 new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-Bailiff_410/resources/late_any_bailiff410 b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-Bailiff_410/resources/late_any_bailiff410 new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-CSRX300/README.md b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-CSRX300/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-CSRX300/icon.png b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-CSRX300/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-CSRX300/manifest.json b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-CSRX300/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-CSRX300/project.yaml b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-CSRX300/project.yaml new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-CSRX300/resources/any_csrx300 b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-CSRX300/resources/any_csrx300 new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-CSRX300/resources/late_any_csrx300 b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-CSRX300/resources/late_any_csrx300 new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-CZ75_Auto/CZ75_Auto.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-CZ75_Auto/CZ75_Auto.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-CZ75_Auto/README.md b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-CZ75_Auto/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-CZ75_Auto/cz75_auto b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-CZ75_Auto/cz75_auto new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-CZ75_Auto/icon.png b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-CZ75_Auto/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-CZ75_Auto/late_cz75_auto b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-CZ75_Auto/late_cz75_auto new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-CZ75_Auto/manifest.json b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-CZ75_Auto/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-Deployable_Shield/README.md b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-Deployable_Shield/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-Deployable_Shield/icon.png b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-Deployable_Shield/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-Deployable_Shield/manifest.json b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-Deployable_Shield/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-Deployable_Shield/project.yaml b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-Deployable_Shield/project.yaml new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-Deployable_Shield/resources/any_deployableshield b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-Deployable_Shield/resources/any_deployableshield new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-Deployable_Shield/resources/late_any_deployableshield b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-Deployable_Shield/resources/late_any_deployableshield new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-Diamond_Iron_Sights/README.md b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-Diamond_Iron_Sights/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-Diamond_Iron_Sights/icon.png b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-Diamond_Iron_Sights/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-Diamond_Iron_Sights/manifest.json b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-Diamond_Iron_Sights/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-Diamond_Iron_Sights/project.yaml b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-Diamond_Iron_Sights/project.yaml new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-Diamond_Iron_Sights/resources/any_diamondironsights b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-Diamond_Iron_Sights/resources/any_diamondironsights new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-Diamond_Iron_Sights/resources/late_any_diamondironsights b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-Diamond_Iron_Sights/resources/late_any_diamondironsights new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-Le_Roc/README.md b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-Le_Roc/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-Le_Roc/icon.png b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-Le_Roc/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-Le_Roc/manifest.json b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-Le_Roc/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-Le_Roc/project.yaml b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-Le_Roc/project.yaml new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-Le_Roc/resources/any_leroc b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-Le_Roc/resources/any_leroc new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-Le_Roc/resources/late_any_leroc b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-Le_Roc/resources/late_any_leroc new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-P10_Roni/P10_Roni.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-P10_Roni/P10_Roni.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-P10_Roni/README.md b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-P10_Roni/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-P10_Roni/icon.png b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-P10_Roni/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-P10_Roni/late_p10_roni b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-P10_Roni/late_p10_roni new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-P10_Roni/manifest.json b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-P10_Roni/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-P10_Roni/p10_roni b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-P10_Roni/p10_roni new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-R6_Weapons_Pack/README.md b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-R6_Weapons_Pack/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-R6_Weapons_Pack/icon.png b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-R6_Weapons_Pack/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-R6_Weapons_Pack/manifest.json b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-R6_Weapons_Pack/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-T5_SMG/README.md b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-T5_SMG/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-T5_SMG/T5_SMG.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-T5_SMG/T5_SMG.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-T5_SMG/icon.png b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-T5_SMG/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-T5_SMG/late_t-5_smg b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-T5_SMG/late_t-5_smg new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-T5_SMG/manifest.json b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-T5_SMG/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-T5_SMG/t-5_smg b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-T5_SMG/t-5_smg new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-The_Caber/README.md b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-The_Caber/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-The_Caber/icon.png b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-The_Caber/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-The_Caber/manifest.json b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-The_Caber/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-The_Caber/project.yaml b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-The_Caber/project.yaml new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-The_Caber/resources/any_caber b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-The_Caber/resources/any_caber new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-The_Caber/resources/late_any_caber b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-The_Caber/resources/late_any_caber new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-UZK50GI/README.md b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-UZK50GI/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-UZK50GI/UZK50GI.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-UZK50GI/UZK50GI.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-UZK50GI/icon.png b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-UZK50GI/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-UZK50GI/late_uzk50gi b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-UZK50GI/late_uzk50gi new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-UZK50GI/manifest.json b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-UZK50GI/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-UZK50GI/uzk50gi b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-UZK50GI/uzk50gi new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-V308/README.md b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-V308/README.md new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-V308/icon.png b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-V308/icon.png new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-V308/manifest.json b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-V308/manifest.json new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-V308/project.yaml b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-V308/project.yaml new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-V308/resources/any_v308 b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-V308/resources/any_v308 new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-V308/resources/late_any_v308 b/resources/test/installers/bepinex/R6_Weapons_Pack/BepInEx/plugins/sirpotatos-V308/resources/late_any_v308 new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/doorstop_config.ini b/resources/test/installers/bepinex/R6_Weapons_Pack/doorstop_config.ini new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/R6_Weapons_Pack/winhttp.dll b/resources/test/installers/bepinex/R6_Weapons_Pack/winhttp.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/denikson-BepInExPack_Valheim-5.4.2202/BepInEx/config/BepInEx.cfg b/resources/test/installers/bepinex/denikson-BepInExPack_Valheim-5.4.2202/BepInEx/config/BepInEx.cfg new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/denikson-BepInExPack_Valheim-5.4.2202/BepInEx/core/0Harmony.dll b/resources/test/installers/bepinex/denikson-BepInExPack_Valheim-5.4.2202/BepInEx/core/0Harmony.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/denikson-BepInExPack_Valheim-5.4.2202/BepInEx/core/0Harmony.xml b/resources/test/installers/bepinex/denikson-BepInExPack_Valheim-5.4.2202/BepInEx/core/0Harmony.xml new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/denikson-BepInExPack_Valheim-5.4.2202/BepInEx/core/0Harmony20.dll b/resources/test/installers/bepinex/denikson-BepInExPack_Valheim-5.4.2202/BepInEx/core/0Harmony20.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/denikson-BepInExPack_Valheim-5.4.2202/BepInEx/core/BepInEx.Harmony.dll b/resources/test/installers/bepinex/denikson-BepInExPack_Valheim-5.4.2202/BepInEx/core/BepInEx.Harmony.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/denikson-BepInExPack_Valheim-5.4.2202/BepInEx/core/BepInEx.Harmony.xml b/resources/test/installers/bepinex/denikson-BepInExPack_Valheim-5.4.2202/BepInEx/core/BepInEx.Harmony.xml new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/denikson-BepInExPack_Valheim-5.4.2202/BepInEx/core/BepInEx.Preloader.dll b/resources/test/installers/bepinex/denikson-BepInExPack_Valheim-5.4.2202/BepInEx/core/BepInEx.Preloader.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/denikson-BepInExPack_Valheim-5.4.2202/BepInEx/core/BepInEx.Preloader.xml b/resources/test/installers/bepinex/denikson-BepInExPack_Valheim-5.4.2202/BepInEx/core/BepInEx.Preloader.xml new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/denikson-BepInExPack_Valheim-5.4.2202/BepInEx/core/BepInEx.dll b/resources/test/installers/bepinex/denikson-BepInExPack_Valheim-5.4.2202/BepInEx/core/BepInEx.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/denikson-BepInExPack_Valheim-5.4.2202/BepInEx/core/BepInEx.xml b/resources/test/installers/bepinex/denikson-BepInExPack_Valheim-5.4.2202/BepInEx/core/BepInEx.xml new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/denikson-BepInExPack_Valheim-5.4.2202/BepInEx/core/HarmonyXInterop.dll b/resources/test/installers/bepinex/denikson-BepInExPack_Valheim-5.4.2202/BepInEx/core/HarmonyXInterop.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/denikson-BepInExPack_Valheim-5.4.2202/BepInEx/core/Mono.Cecil.Mdb.dll b/resources/test/installers/bepinex/denikson-BepInExPack_Valheim-5.4.2202/BepInEx/core/Mono.Cecil.Mdb.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/denikson-BepInExPack_Valheim-5.4.2202/BepInEx/core/Mono.Cecil.Pdb.dll b/resources/test/installers/bepinex/denikson-BepInExPack_Valheim-5.4.2202/BepInEx/core/Mono.Cecil.Pdb.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/denikson-BepInExPack_Valheim-5.4.2202/BepInEx/core/Mono.Cecil.Rocks.dll b/resources/test/installers/bepinex/denikson-BepInExPack_Valheim-5.4.2202/BepInEx/core/Mono.Cecil.Rocks.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/denikson-BepInExPack_Valheim-5.4.2202/BepInEx/core/Mono.Cecil.dll b/resources/test/installers/bepinex/denikson-BepInExPack_Valheim-5.4.2202/BepInEx/core/Mono.Cecil.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/denikson-BepInExPack_Valheim-5.4.2202/BepInEx/core/MonoMod.RuntimeDetour.dll b/resources/test/installers/bepinex/denikson-BepInExPack_Valheim-5.4.2202/BepInEx/core/MonoMod.RuntimeDetour.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/denikson-BepInExPack_Valheim-5.4.2202/BepInEx/core/MonoMod.RuntimeDetour.xml b/resources/test/installers/bepinex/denikson-BepInExPack_Valheim-5.4.2202/BepInEx/core/MonoMod.RuntimeDetour.xml new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/denikson-BepInExPack_Valheim-5.4.2202/BepInEx/core/MonoMod.Utils.dll b/resources/test/installers/bepinex/denikson-BepInExPack_Valheim-5.4.2202/BepInEx/core/MonoMod.Utils.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/denikson-BepInExPack_Valheim-5.4.2202/BepInEx/core/MonoMod.Utils.xml b/resources/test/installers/bepinex/denikson-BepInExPack_Valheim-5.4.2202/BepInEx/core/MonoMod.Utils.xml new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/denikson-BepInExPack_Valheim-5.4.2202/BepInEx/plugins/Valheim.DisplayBepInExInfo.dll b/resources/test/installers/bepinex/denikson-BepInExPack_Valheim-5.4.2202/BepInEx/plugins/Valheim.DisplayBepInExInfo.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/denikson-BepInExPack_Valheim-5.4.2202/changelog.txt b/resources/test/installers/bepinex/denikson-BepInExPack_Valheim-5.4.2202/changelog.txt new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/denikson-BepInExPack_Valheim-5.4.2202/doorstop_config.ini b/resources/test/installers/bepinex/denikson-BepInExPack_Valheim-5.4.2202/doorstop_config.ini new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/denikson-BepInExPack_Valheim-5.4.2202/doorstop_libs/libdoorstop_x64.dylib b/resources/test/installers/bepinex/denikson-BepInExPack_Valheim-5.4.2202/doorstop_libs/libdoorstop_x64.dylib new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/denikson-BepInExPack_Valheim-5.4.2202/doorstop_libs/libdoorstop_x64.so b/resources/test/installers/bepinex/denikson-BepInExPack_Valheim-5.4.2202/doorstop_libs/libdoorstop_x64.so new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/denikson-BepInExPack_Valheim-5.4.2202/doorstop_libs/libdoorstop_x86.dylib b/resources/test/installers/bepinex/denikson-BepInExPack_Valheim-5.4.2202/doorstop_libs/libdoorstop_x86.dylib new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/denikson-BepInExPack_Valheim-5.4.2202/doorstop_libs/libdoorstop_x86.so b/resources/test/installers/bepinex/denikson-BepInExPack_Valheim-5.4.2202/doorstop_libs/libdoorstop_x86.so new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/denikson-BepInExPack_Valheim-5.4.2202/start_game_bepinex.sh b/resources/test/installers/bepinex/denikson-BepInExPack_Valheim-5.4.2202/start_game_bepinex.sh new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/denikson-BepInExPack_Valheim-5.4.2202/start_server_bepinex.sh b/resources/test/installers/bepinex/denikson-BepInExPack_Valheim-5.4.2202/start_server_bepinex.sh new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/bepinex/denikson-BepInExPack_Valheim-5.4.2202/winhttp.dll b/resources/test/installers/bepinex/denikson-BepInExPack_Valheim-5.4.2202/winhttp.dll new file mode 100644 index 0000000..e69de29 diff --git a/resources/test/installers/zero_files.py b/resources/test/installers/zero_files.py new file mode 100644 index 0000000..e69de29 diff --git a/src/cli.rs b/src/cli.rs index 84c7201..cbb41ea 100644 --- a/src/cli.rs +++ b/src/cli.rs @@ -91,6 +91,10 @@ pub enum Commands { #[clap(subcommand)] command: Option, + /// Community for the project. + #[clap(long)] + community: String, + /// If present, overwrite current configuration. #[clap(long, default_value = "false")] overwrite: bool, @@ -169,7 +173,7 @@ pub enum Commands { /// Removes a mod from the project. Remove { - /// One or mroe package identifiers in the format 'namespace-name(-version)'. + /// One or more package identifiers in the format 'namespace-name(-version)'. packages: Vec, // Path of the project configuration file. diff --git a/src/game/ecosystem.rs b/src/game/ecosystem.rs index 0a152f1..1d39f32 100644 --- a/src/game/ecosystem.rs +++ b/src/game/ecosystem.rs @@ -3,7 +3,8 @@ use std::fs::File; use std::io::{BufReader, BufWriter}; use crate::error::Error; -use crate::ts::v1::{ecosystem, models::ecosystem::EcosystemSchema}; +use crate::ts::package_reference::PackageReference; +use crate::ts::v1::{ecosystem, models::ecosystem::{EcosystemSchema, R2MMModLoaderPackage}}; use crate::TCLI_HOME; pub async fn get_schema() -> Result { @@ -39,3 +40,19 @@ pub fn remove_schema() -> Result<(), Error> { Ok(()) } + +/// Retrives modloader data for a package reference is the package is a modloader. +pub async fn get_modloader_data( + package: &PackageReference, + ecosystem_schema: &EcosystemSchema, +) -> Result, Error> { + let package_ident = package.to_loose_ident_string(); + + let modloader_package = ecosystem_schema + .modloader_packages + .iter() + .find(|modloader_pkg| modloader_pkg.package_id == package_ident) + .cloned(); + + Ok(modloader_package) +} diff --git a/src/main.rs b/src/main.rs index b063f35..4425fc4 100644 --- a/src/main.rs +++ b/src/main.rs @@ -66,6 +66,7 @@ async fn main() -> Result<(), Error> { let test: Result<(), Error> = match args.commands { Commands::Init { command, + community, overwrite, project_path, } => { @@ -80,11 +81,11 @@ async fn main() -> Result<(), Error> { .name_override(package_name) .version_override(package_version); - Project::create_new(&project_path, overwrite, ProjectKind::Dev(overrides))?; + Project::create_new(&project_path, overwrite, ProjectKind::Dev(overrides), community)?; } Some(InitSubcommand::Profile) | None => { - Project::create_new(&project_path, overwrite, ProjectKind::Profile)?; + Project::create_new(&project_path, overwrite, ProjectKind::Profile, community)?; } } @@ -159,7 +160,7 @@ async fn main() -> Result<(), Error> { let reporter = Box::new(IndicatifReporter); let project = Project::open(&project_path)?; - project.add_packages(&packages[..])?; + project.add_packages(&packages[..]).await?; project.commit(reporter, sync).await?; Ok(()) diff --git a/src/package/install/api.rs b/src/package/install/api.rs index 322e084..f073d4c 100644 --- a/src/package/install/api.rs +++ b/src/package/install/api.rs @@ -20,7 +20,7 @@ pub enum FileAction { } #[derive(Serialize, Deserialize, Clone, Debug)] -pub struct TrackedFile { +pub struct LinkedFile { pub action: FileAction, pub path: PathBuf, pub context: Option, @@ -48,7 +48,7 @@ pub enum Request { package_dir: PathBuf, state_dir: PathBuf, staging_dir: PathBuf, - tracked_files: Vec, + tracked_files: Vec, }, StartGame { mods_enabled: bool, @@ -68,7 +68,7 @@ pub enum Response { protocol: Version, }, PackageInstall { - tracked_files: Vec, + tracked_files: Vec, post_hook_context: Option, }, PackageUninstall { diff --git a/src/package/install/bepinex.rs b/src/package/install/bepinex.rs new file mode 100644 index 0000000..b8d409a --- /dev/null +++ b/src/package/install/bepinex.rs @@ -0,0 +1,214 @@ +use std::fs; +use std::path::Path; + +use walkdir::WalkDir; + +use crate::error::Error; +use crate::package::install::tracked::TrackedFs; +use crate::package::install::{rule, InstallMetadata, PackageInstaller}; +use crate::package::Package; +use crate::ts::v1::models::ecosystem::{ + GameDef, R2MMModLoaderPackage, TrackingMethod, +}; + +pub struct BpxInstaller { + fs: T, +} + +impl BpxInstaller { + pub fn new(fs: T) -> Self { + BpxInstaller { fs } + } +} + +impl PackageInstaller for BpxInstaller { + async fn install_modloader( + &mut self, + modloader_data: &R2MMModLoaderPackage, + package_dir: &Path, + state_dir: &Path, + ) -> Result<(), Error> { + let root_folder = package_dir.join(&modloader_data.root_folder); + for entry in WalkDir::new(&root_folder) + .into_iter() + .filter_map(Result::ok) + { + let rel_path = entry.path().strip_prefix(&root_folder).unwrap(); + let dest_path = state_dir.join(rel_path); + + if entry.file_type().is_dir() { + fs::create_dir_all(&dest_path)?; + } else if entry.file_type().is_file() { + if let Some(parent) = dest_path.parent() { + fs::create_dir_all(parent)?; + } + fs::copy(entry.path(), &dest_path)?; + } + } + + Ok(()) + } + + async fn install_package( + &mut self, + package: &Package, + package_dir: &Path, + state_dir: &Path, + _staging_dir: &Path, + modloader_data: Option<&R2MMModLoaderPackage>, + game_def: Option<&GameDef>, + ) -> Result<(), Error> { + let game_def = game_def.unwrap(); + + // If modloader_data is provided then we're installing a modloader. + if let Some(modloader_data) = modloader_data { + self.install_modloader(modloader_data, package_dir, state_dir) + .await?; + return Ok(()); + } + + let r2 = game_def.r2modman.as_ref().unwrap().first().unwrap(); + let rules = rule::resolve_install_rules( + package_dir, + &r2.install_rules, + r2.relative_file_exclusions.as_deref(), + )?; + + for (rule, sources) in rules { + match rule.tracking_method { + TrackingMethod::Subdir => { + rule::install_sub_dir(&sources[..], rule, package, package_dir, state_dir) + .await?; + } + TrackingMethod::SubdirNoFlatten => { + rule::install_sub_dir_no_flatten( + &sources[..], + rule, + package, + package_dir, + state_dir, + ) + .await?; + } + TrackingMethod::None => { + rule::install_untracked(&sources[..], rule, package, package_dir, state_dir) + .await?; + } + TrackingMethod::State => { + rule::install_untracked(&sources[..], rule, package, package_dir, state_dir) + .await?; + } + _ => todo!(), + } + } + + Ok(()) + } + + async fn enable_package( + &mut self, + _package: &Package, + _package_dir: &Path, + _state_dir: &Path, + _staging_dir: &Path, + _is_modloader: bool, + ) -> Result<(), Error> { + todo!() + } + + async fn disable_package( + &mut self, + _package: &Package, + _package_dir: &Path, + _state_dir: &Path, + _staging_dir: &Path, + _is_modloader: bool, + ) -> Result<(), Error> { + todo!() + } + + async fn get_metadata( + &self, + _package: &Package, + _package_dir: &Path, + _state_dir: &Path, + _staging_dir: &Path, + _is_modloader: bool, + ) -> Result { + todo!() + } + + async fn uninstall_package( + &mut self, + _package: &Package, + _package_dir: &Path, + _state_dir: &Path, + _staging_dir: &Path, + _is_modloader: bool, + ) -> Result<(), Error> { + todo!() + } + + async fn start_game( + _mods_enabled: bool, + _state_dir: &Path, + _game_dir: &Path, + _game_exe: &Path, + _args: Vec, + ) -> Result { + todo!() + } +} + +#[cfg(test)] +mod tests { + crate::installer_tests! { + test_bepinex_install_lethal_company_bepinex => { + packages: ["BepInEx-BepInExPack-5.4.2100"], + community: "lethal-company", + asset_name: "BepInEx-BepInExPack", + installer_variant: "bepinex", + init_index: false, + }, + + test_bepinex_install_valheim_bepinex => { + packages: ["denikson-BepInExPack_Valheim-5.4.2202"], + community: "valheim", + asset_name: "denikson-BepInExPack_Valheim-5.4.2202", + installer_variant: "bepinex", + init_index: false, + }, + + test_bepinex_install_valheim_plant_everything => { + packages: ["Advize-PlantEverything-1.19.1"], + community: "valheim", + asset_name: "PlantEverything", + installer_variant: "bepinex", + init_index: false, + }, + + test_bepinex_install_h3vr_utilities => { + packages: ["WFIOST-H3VRUtilities-8.11.1"], + community: "h3vr", + asset_name: "H3VRUtilities", + installer_variant: "bepinex", + init_index: false, + }, + + test_bepinex_install_h3vr_r6_weapons_pack => { + packages: ["sirpotatos-R6_Weapons_Pack-2.2.0"], + community: "h3vr", + asset_name: "R6_Weapons_Pack", + installer_variant: "bepinex", + init_index: false, + }, + + test_bepinex_install_h3vr_modmas_2021 => { + packages: ["Modmas2021-Modmas_2021-25.0.18"], + community: "h3vr", + asset_name: "Modmas_2021", + installer_variant: "bepinex", + init_index: false, + }, + } +} diff --git a/src/package/install/mod.rs b/src/package/install/mod.rs index ba45745..3b1a991 100644 --- a/src/package/install/mod.rs +++ b/src/package/install/mod.rs @@ -1,265 +1,143 @@ -use std::env; -use std::fs; +use std::collections::HashMap; use std::path::{Path, PathBuf}; -use std::process::Stdio; +use std::iter; -use colored::Colorize; -use tokio::io::AsyncReadExt; -use tokio::process::Command; - -use self::api::Response; -use self::api::PROTOCOL_VERSION; -use self::api::{Request, TrackedFile}; -use self::manifest::InstallerManifest; -use super::error::PackageError; -use super::Package; use crate::error::Error; -use crate::error::IoError; -use crate::ui::reporter::{Progress, ProgressBarTrait, VoidProgress}; +use crate::game::ecosystem; +use crate::package::install::bepinex::BpxInstaller; +use crate::package::install::tracked::TrackedFs; +use crate::package::Package; +use crate::ts::package_reference::PackageReference; +use crate::ts::v1::models::ecosystem::{GameDef, R2MLLoader, R2MMModLoaderPackage}; pub mod api; +pub mod bepinex; mod legacy_compat; pub mod manifest; +pub mod rule; +pub mod tracked; -pub struct Installer { - pub exec_path: PathBuf, -} - -impl Installer { - /// Loads the given package as an Installer and prepares it for execution. - /// Note that cached installers can skip the prepare step. - pub async fn load_and_prepare(package: &Package) -> Result { - // Temp, we'll figure out a good solution from the progress reporter later. - let test = VoidProgress {}; - let cache_dir = match package.get_path().await { - Some(x) => x, - None => package.download(test.add_bar().as_ref()).await?, - }; - - let manifest = { - let path = cache_dir.join("installer.json"); - if !path.is_file() { - Err(PackageError::InstallerNoManifest)? - } else { - let contents = fs::read_to_string(path)?; - serde_json::from_str::(&contents)? - } - }; - - // Determine the absolute path of the installer's executable based on the current architecture. - let current_arch = env::consts::ARCH; - let current_os = env::consts::OS; - - let matrix = manifest - .matrix - .iter() - .find(|x| { - x.architecture.to_string() == current_arch && x.target_os.to_string() == current_os - }) - .ok_or(PackageError::InstallerNotExecutable)?; - - let exec_path = { - let abs = cache_dir.join(&matrix.executable); +#[cfg(test)] +pub mod testificate; - if abs.is_file() { - Ok(abs) - } else { - Err(IoError::FileNotFound(abs)) - } - }?; - - let installer = Installer { exec_path }; - - // Validate that the installer is (a) executable and (b) is using a valid protocol version. - let response = installer.run(&Request::Version).await?; - let Response::Version { - author: _, - identifier: _, - protocol, - } = response - else { - Err(PackageError::InstallerBadResponse { - package_id: package.identifier.to_string(), - message: "The installer did not respond with a valid or otherwise serializable Version response variant.".to_string(), - })? - }; +#[derive(Debug, Clone)] +pub struct InstallMetadata { + pub config_files: Vec, + pub additional_metadata: HashMap, +} - if protocol.major != PROTOCOL_VERSION.major { - Err(PackageError::InstallerBadVersion { - package_id: package.identifier.to_string(), - given_version: protocol, - our_version: PROTOCOL_VERSION, - })? +impl InstallMetadata { + pub fn new() -> Self { + Self { + config_files: Vec::new(), + additional_metadata: HashMap::new(), } - - Ok(installer) } - pub fn override_new() -> Self { - let override_installer = PathBuf::from(std::env::var("TCLI_INSTALLER_OVERRIDE").unwrap()); - - if !override_installer.is_file() { - panic!( - "TCLI_INSTALLER_OVERRIDE is set to {}, which does not point to a file that actually exists.", override_installer.to_str().unwrap() - ) - } + pub fn add_config_file(&mut self, path: PathBuf) { + self.config_files.push(path); + } - Installer { - exec_path: override_installer, - } + pub fn add_metadata(&mut self, key: String, value: String) { + self.additional_metadata.insert(key, value); } +} - pub async fn install_package( - &self, +pub trait PackageInstaller { + /// Install a modloader into this profile. + async fn install_modloader( + &mut self, + modloader_data: &R2MMModLoaderPackage, + package_dir: &Path, + state_dir: &Path, + ) -> Result<(), Error>; + + /// Install a package into this profile. + /// + /// `state_dir` is the directory that is "linked" to at runtime by the modloader. + /// `staging_dir` is the directory that contains files that are directly installed into the game directory. + async fn install_package( + &mut self, package: &Package, package_dir: &Path, state_dir: &Path, staging_dir: &Path, - reporter: &dyn ProgressBarTrait, - ) -> Result, Error> { - // Determine if the package is a modloader or not. - let is_modloader = package.identifier.name.to_lowercase().contains("bepinex"); - - let request = Request::PackageInstall { - is_modloader, - package: package.identifier.clone(), - package_deps: package.dependencies.clone(), - package_dir: package_dir.to_path_buf(), - state_dir: state_dir.to_path_buf(), - staging_dir: staging_dir.to_path_buf(), - }; - - let progress_message = format!( - "{}-{} {}", - package.identifier.namespace.bold(), - package.identifier.name.bold(), - package.identifier.version.to_string().truecolor(90, 90, 90) - ); - reporter.set_message(format!("Installing {progress_message}")); + modloader_data: Option<&R2MMModLoaderPackage>, + game_def: Option<&GameDef>, + ) -> Result<(), Error>; - let response = self.run(&request).await?; - match response { - Response::PackageInstall { - tracked_files, - post_hook_context: _, - } => Ok(tracked_files), - - Response::Error { message } => Err(PackageError::InstallerError { message })?, + /// Uninstall a package from this profile. + async fn uninstall_package( + &mut self, + package: &Package, + package_dir: &Path, + state_dir: &Path, + staging_dir: &Path, + is_modloader: bool, + ) -> Result<(), Error>; - x => { - let message = - format!("Didn't recieve one of the expected variants: Response::PackageInstall or Response::Error. Got: {x:#?}"); + /// Enable a previously installed package in this profile. + async fn enable_package( + &mut self, + package: &Package, + package_dir: &Path, + state_dir: &Path, + staging_dir: &Path, + is_modloader: bool, + ) -> Result<(), Error>; - Err(PackageError::InstallerBadResponse { - package_id: package.identifier.to_string(), - message, - })? - } - } - } + /// Disable a previously installed package in this profile. + async fn disable_package( + &mut self, + package: &Package, + package_dir: &Path, + state_dir: &Path, + staging_dir: &Path, + is_modloader: bool, + ) -> Result<(), Error>; - pub async fn uninstall_package( + /// Get metadata about an installed package in this profile. + async fn get_metadata( &self, package: &Package, package_dir: &Path, state_dir: &Path, staging_dir: &Path, - tracked_files: Vec, - reporter: &dyn ProgressBarTrait, - ) -> Result<(), Error> { - let is_modloader = package.identifier.name.to_lowercase().contains("bepinex"); - let request = Request::PackageUninstall { - is_modloader, - package: package.identifier.clone(), - package_deps: package.dependencies.clone(), - package_dir: package_dir.to_path_buf(), - state_dir: state_dir.to_path_buf(), - staging_dir: staging_dir.to_path_buf(), - tracked_files, - }; - - let progress_message = format!( - "{}-{} {}", - package.identifier.namespace.bold(), - package.identifier.name.bold(), - package.identifier.version.to_string().truecolor(90, 90, 90) - ); - reporter.set_message(format!("Uninstalling {progress_message}")); - - let response = self.run(&request).await?; - match response { - Response::PackageUninstall { - post_hook_context: _, - } => Ok(()), - Response::Error { message } => Err(PackageError::InstallerError { message })?, - x => { - let message = - format!("Didn't recieve one of the expected variants: Response::PackageInstall or Response::Error. Got: {x:#?}"); - - Err(PackageError::InstallerBadResponse { - package_id: package.identifier.to_string(), - message, - })? - } - } - } + is_modloader: bool, + ) -> Result; - /// Start the game and drop a PID file in the state directory of the current project. - pub async fn start_game( - &self, + /// Start the game. + async fn start_game( mods_enabled: bool, state_dir: &Path, game_dir: &Path, game_exe: &Path, args: Vec, - ) -> Result { - let request = Request::StartGame { - mods_enabled, - project_state: state_dir.to_path_buf(), - game_dir: game_dir.to_path_buf(), - game_exe: game_exe.to_path_buf(), - args, - }; - - let response = self.run(&request).await?; - - let Response::StartGame { pid } = response else { - panic!("Invalid response."); - }; + ) -> Result; +} - Ok(pid) +/// Get the proper installer for the provided modloader variant. +pub fn get_installer(ml_variant: &R2MLLoader, fs: T) -> impl PackageInstaller { + match ml_variant { + R2MLLoader::BepInEx => BpxInstaller::new(fs), + _ => panic!("Support for modloader {ml_variant:?} has not been implemented."), } +} - pub async fn run(&self, arg: &Request) -> Result { - let args_json = serde_json::to_string(arg)?; - - let child = Command::new(&self.exec_path) - .stdout(Stdio::piped()) - .stderr(Stdio::piped()) - .arg(&args_json) - .spawn()?; - - // Execute the installer, capturing and deserializing any output. - // TODO: Safety check here to warn / stop an installer from blowing up the heap. - let mut output_str = String::new(); - child - .stdout - .unwrap() - .read_to_string(&mut output_str) - .await?; - - let mut err_str = String::new(); - child.stderr.unwrap().read_to_string(&mut err_str).await?; - - if !err_str.is_empty() { - println!("installer stderr:"); - println!("{err_str}"); - } - - // println!("installer stdout:"); - // println!("{output_str}"); - - let response = serde_json::from_str(&output_str)?; - Ok(response) - } +pub async fn guess_modloader( + package: &PackageReference, + package_deps: &[PackageReference], +) -> Option { + // TODO: Do a better job at caching the ecosystem schema. + let schema = ecosystem::get_schema().await.ok()?; + let ml = schema + .modloader_packages + .iter() + .map(|x| (&x.package_id, &x.loader)) + .collect::>(); + + iter::once(package) + .chain(package_deps.iter()) + .find_map(|x| ml.get(&x.to_loose_ident_string()).cloned()) + .cloned() } diff --git a/src/package/install/rule/mod.rs b/src/package/install/rule/mod.rs new file mode 100644 index 0000000..ae8a36d --- /dev/null +++ b/src/package/install/rule/mod.rs @@ -0,0 +1,5 @@ +pub mod rule_resolver; +pub mod rule_install; + +pub use rule_resolver::resolve_install_rules; +pub use rule_install::{install_sub_dir, install_sub_dir_no_flatten, install_untracked}; \ No newline at end of file diff --git a/src/package/install/rule/rule_install.rs b/src/package/install/rule/rule_install.rs new file mode 100644 index 0000000..0d30556 --- /dev/null +++ b/src/package/install/rule/rule_install.rs @@ -0,0 +1,110 @@ +use std::path::{Path, PathBuf}; + +use tokio::fs; + +use crate::error::Error; +use crate::package::Package; +use crate::ts::v1::models::ecosystem::R2MMInstallRule; +use crate::util::file; + +/// Install into a namespaced subdirectory without flattening out the package structure. +pub async fn install_sub_dir_no_flatten( + sources: &[PathBuf], + rule: &R2MMInstallRule, + package: &Package, + package_dir: &Path, + state_dir: &Path, +) -> Result<(), Error> { + let sub_dir = state_dir + .join(&rule.route) + .join(package.identifier.to_loose_ident_string()); + fs::create_dir_all(&sub_dir).await?; + + for source_path in sources { + if source_path.is_file() { + let relative_path = source_path + .strip_prefix(package_dir) + .unwrap_or(source_path.file_name().unwrap().as_ref()); + let dest = sub_dir.join(relative_path); + + if let Some(parent) = dest.parent() { + fs::create_dir_all(parent).await?; + } + + fs::copy(source_path, dest).await?; + continue; + } + + let relative_path = source_path + .strip_prefix(package_dir) + .unwrap_or(source_path.file_name().unwrap().as_ref()); + let dest_path = sub_dir.join(relative_path); + + file::copy_dir(source_path, &dest_path).await?; + } + + Ok(()) +} + +/// Install untracked into an anonymous subdirectory. +pub async fn install_untracked( + sources: &[PathBuf], + rule: &R2MMInstallRule, + _package: &Package, + _package_dir: &Path, + state_dir: &Path, +) -> Result<(), Error> { + let rule_dir = state_dir.join(&rule.route); + fs::create_dir_all(&rule_dir).await?; + + for source_path in sources { + if source_path.is_file() { + let dest_file = rule_dir.join(source_path.file_name().unwrap()); + fs::copy(source_path, dest_file).await?; + continue; + } + + file::copy_dir(source_path, &rule_dir).await?; + } + + Ok(()) +} + +/// Install into a namespaced subdirectory, flattening the package structure. +pub async fn install_sub_dir( + sources: &[PathBuf], + rule: &R2MMInstallRule, + package: &Package, + _package_dir: &Path, + state_dir: &Path, +) -> Result<(), Error> { + let sub_dir = state_dir + .join(&rule.route) + .join(package.identifier.to_loose_ident_string()); + fs::create_dir_all(&sub_dir).await?; + + for source_path in sources { + if source_path.is_file() { + let dest = sub_dir.join(source_path.file_name().unwrap()); + fs::copy(source_path, dest).await?; + continue; + } + + let mut entries = fs::read_dir(source_path).await?; + + while let Some(entry) = entries.next_entry().await? { + let entry_path = entry.path(); + let entry_name = entry.file_name(); + let content_dest = sub_dir.join(&entry_name); + + if entry_path.is_file() { + fs::copy(&entry_path, &content_dest).await?; + continue; + } + + file::copy_dir(&entry_path, &content_dest).await?; + } + } + + Ok(()) +} diff --git a/src/package/install/rule/rule_resolver.rs b/src/package/install/rule/rule_resolver.rs new file mode 100644 index 0000000..08e8748 --- /dev/null +++ b/src/package/install/rule/rule_resolver.rs @@ -0,0 +1,261 @@ +use std::collections::HashMap; +use std::io::{Error as IoError, ErrorKind}; +use std::path::{Path, PathBuf}; + +use walkdir::WalkDir; + +use crate::error::Error; +use crate::ts::v1::models::ecosystem::R2MMInstallRule; + +/// Find the appropriate install rule for a given path. +pub fn resolve_install_rule<'a>( + path: &Path, + install_rules: &'a [R2MMInstallRule], + root_dir: Option<&Path>, +) -> Option<&'a R2MMInstallRule> { + if path.is_dir() { + let relative_path = if let Some(root) = root_dir { + path.strip_prefix(root).ok()?.to_string_lossy().to_string() + } else { + path.file_name()?.to_string_lossy().to_string() + }; + + return install_rules.iter().find(|rule| { + PathBuf::from(&rule.route).file_name() == PathBuf::from(&relative_path).file_name() + }); + } + + let file_name = path.file_name()?.to_string_lossy().to_lowercase(); + let matching_rules: Vec<_> = install_rules + .iter() + .filter(|rule| { + rule.default_file_extensions + .iter() + .any(|ext| file_name.ends_with(&ext.to_lowercase())) + }) + .collect(); + + if matching_rules.is_empty() { + return install_rules.iter().find(|rule| rule.is_default_location); + } + + // Longest extension match wins (.mm.dll vs .dll, we choose the longer one). + matching_rules.into_iter().max_by_key(|rule| { + rule.default_file_extensions + .iter() + .map(|ext| ext.len()) + .max() + .unwrap_or(0) + }) +} + +/// Resolves install rules for all files and directories in a given directory. +/// +/// Returns a HashMap which binds install rules to vectors of their corresponding paths. +pub fn resolve_install_rules<'a>( + root_path: &Path, + install_rules: &'a [R2MMInstallRule], + relative_file_exclusions: Option<&[String]>, +) -> Result>, Error> { + if !root_path.exists() { + Err(IoError::new( + ErrorKind::NotFound, + root_path.display().to_string(), + ))?; + } + + let exclusions = relative_file_exclusions.unwrap_or_default(); + let entries: Vec<_> = WalkDir::new(root_path) + .min_depth(1) // Skip the root. + .max_depth(2) // Grab the files and dirs in the first level of the root dir. + .into_iter() + .filter_map(|x| x.ok()) + .filter(|x| !exclusions.contains(&x.file_name().to_string_lossy().to_string())) + .collect(); + let mut rules: HashMap<&'a R2MMInstallRule, Vec> = HashMap::new(); + + let (files, dirs): (Vec<_>, Vec<_>) = entries.into_iter().partition(|x| x.path().is_file()); + + for file_entry in files { + let file_path = file_entry.path(); + if let Some(rule) = resolve_install_rule(file_path, install_rules, None) { + rules.entry(rule).or_default().push(file_path.to_path_buf()); + } + } + + for dir_entry in dirs { + let dir_path = dir_entry.path(); + + if let Some(rule) = resolve_install_rule(dir_path, install_rules, Some(root_path)) { + rules.entry(rule).or_default().push(dir_path.to_path_buf()); + continue; + } + + let sub_rules = resolve_install_rules(dir_path, install_rules, relative_file_exclusions)?; + for (rule, paths) in sub_rules { + rules.entry(rule).or_default().extend(paths); + } + } + + Ok(rules) +} + +#[cfg(test)] +mod tests { + use std::fs; + use std::path::Path; + use tempfile::tempdir; + + use super::*; + use crate::ts::v1::models::ecosystem::TrackingMethod; + + /// Create a test environment for testing install rules. + /// We return TempDir to keep the temporary directory alive. + fn create_env(tree: &[&str]) -> (tempfile::TempDir, std::path::PathBuf) { + let temp_dir = tempdir().unwrap(); + let test_root = temp_dir.path().to_path_buf(); + + for path in tree { + let full_path = test_root.join(path); + let is_file = Path::new(path).extension().is_some(); + + if is_file { + if let Some(parent) = full_path.parent() { + fs::create_dir_all(parent).unwrap(); + } + fs::write(&full_path, "").unwrap(); + } else { + fs::create_dir_all(&full_path).unwrap(); + } + } + + (temp_dir, test_root) + } + + #[test] + fn test_file_extension_rules() { + let (_temp_dir, test_root) = create_env(&[ + "BepInEx/plugins/mod1.dll", + "BepInEx/plugins/mod2.plugin.dll", + "BepInEx/plugins/subdir/mod2.plugin.dll", + "BepInEx/plugins/mod2.mm.dll", + "BepInEx/plugins/mod3.txt", + "BepInEx/plugins/subdir/mod4.txt", + ]); + + let install_rules = vec![ + R2MMInstallRule { + route: "one".to_string(), + tracking_method: TrackingMethod::default(), + sub_routes: None, + default_file_extensions: vec![".dll".to_string()], + is_default_location: false, + }, + R2MMInstallRule { + route: "two".to_string(), + tracking_method: TrackingMethod::default(), + sub_routes: None, + default_file_extensions: vec![".mm.dll".to_string()], + is_default_location: false, + }, + R2MMInstallRule { + route: "three".to_string(), + tracking_method: TrackingMethod::default(), + sub_routes: None, + default_file_extensions: vec![], + is_default_location: true, + }, + ]; + + let result = resolve_install_rules(&test_root, &install_rules, None).unwrap(); + + // Find the rule with route "one" and check its paths + let rule_one = install_rules.iter().find(|r| r.route == "one").unwrap(); + let paths_for_rule_one = result.get(rule_one).unwrap(); + assert!(paths_for_rule_one.contains(&test_root.join("BepInEx/plugins/mod1.dll"))); + assert!(paths_for_rule_one.contains(&test_root.join("BepInEx/plugins/mod2.plugin.dll"))); + assert!( + paths_for_rule_one.contains(&test_root.join("BepInEx/plugins/subdir/mod2.plugin.dll")) + ); + + // Find the rule with route "two" and check its paths + let rule_two = install_rules.iter().find(|r| r.route == "two").unwrap(); + let paths_for_rule_two = result.get(rule_two).unwrap(); + assert!(paths_for_rule_two.contains(&test_root.join("BepInEx/plugins/mod2.mm.dll"))); + + // Find the rule with route "three" (default location) and check its paths + let rule_three = install_rules.iter().find(|r| r.route == "three").unwrap(); + let paths_for_rule_three = result.get(rule_three).unwrap(); + assert!(paths_for_rule_three.contains(&test_root.join("BepInEx/plugins/mod3.txt"))); + assert!(paths_for_rule_three.contains(&test_root.join("BepInEx/plugins/subdir/mod4.txt"))); + } + + #[test] + fn test_directory_rules() { + let (_temp_dir, test_root) = create_env(&[ + "BepInEx/plugins", + "BepInEx/plugins/subdir", + "BepInEx/plugins/subdir/subsubdir", + "BepInEx/config", + "DirectoryWithoutMatchingRule/", + ]); + + let install_rules = vec![ + R2MMInstallRule { + route: "plugins".to_string(), + tracking_method: TrackingMethod::default(), + sub_routes: None, + default_file_extensions: vec![], + is_default_location: false, + }, + R2MMInstallRule { + route: "plugins/subdir".to_string(), + tracking_method: TrackingMethod::default(), + sub_routes: None, + default_file_extensions: vec![], + is_default_location: false, + }, + R2MMInstallRule { + route: "config".to_string(), + tracking_method: TrackingMethod::default(), + sub_routes: None, + default_file_extensions: vec![], + is_default_location: false, + }, + R2MMInstallRule { + route: "patchers".to_string(), + tracking_method: TrackingMethod::default(), + sub_routes: None, + default_file_extensions: vec![], + is_default_location: true, + }, + ]; + + let result = resolve_install_rules(&test_root, &install_rules, None).unwrap(); + + // Find the rule with route "plugins" and check its paths + let rule_plugins = install_rules.iter().find(|r| r.route == "plugins").unwrap(); + let paths_for_plugins = result.get(rule_plugins).unwrap(); + assert!(paths_for_plugins.contains(&test_root.join("BepInEx/plugins"))); + + // Find the rule with route "plugins/subdir" and check its paths + let rule_plugins_subdir = install_rules + .iter() + .find(|r| r.route == "plugins/subdir") + .unwrap(); + let paths_for_plugins_subdir = result.get(rule_plugins_subdir).unwrap(); + assert!(paths_for_plugins_subdir.contains(&test_root.join("BepInEx/plugins/subdir"))); + + // Find the rule with route "config" and check its paths + let rule_config = install_rules.iter().find(|r| r.route == "config").unwrap(); + let paths_for_config = result.get(rule_config).unwrap(); + assert!(paths_for_config.contains(&test_root.join("BepInEx/config"))); + + // Verify that "plugins/subdir/subsubdir" is not in any rule (should be excluded by max_depth=2) + let all_paths: Vec<_> = result.values().flatten().collect(); + assert!(!all_paths.contains(&&test_root.join("BepInEx/plugins/subdir/subsubdir"))); + + // Verify that "DirectoryWithoutMatchingRule/" is not in any rule + assert!(!all_paths.contains(&&test_root.join("DirectoryWithoutMatchingRule/"))); + } +} diff --git a/src/package/install/testificate.rs b/src/package/install/testificate.rs new file mode 100644 index 0000000..9b70d41 --- /dev/null +++ b/src/package/install/testificate.rs @@ -0,0 +1,232 @@ +use std::collections::{HashMap, HashSet}; +use std::fmt; +use std::path::PathBuf; +use std::env; + +use tokio::sync::OnceCell; + +use crate::error::Error; +use crate::package::index::PackageIndex; +use crate::project::{Project, ProjectKind}; +use crate::ts::package_reference::PackageReference; +use crate::ui::reporter::VoidReporter; +use crate::util::file; +use crate::TCLI_HOME; + +/// Dirty macro to define an installer test. +/// See package/install/bepinex.rs for usage example. +#[macro_export] +macro_rules! installer_tests { + ( + $( + $test_name:ident => { + packages: [$($package:expr),* $(,)?], + community: $community:expr, + asset_name: $asset_name:expr, + installer_variant: $installer_variant:expr, + init_index: $init_index:expr, + } + ),* $(,)? + ) => { + $( + #[tokio::test] + pub async fn $test_name() { + let test = crate::package::install::testificate::Testficate::new( + vec![$(crate::pkg_ref!($package)),*], + $community, + $asset_name, + $installer_variant, + $init_index, + ); + let results = test.run_test().await.expect("Installer test failed"); + + if results.has_failures { + panic!("{results}"); + } + } + )* + }; +} + + +#[derive(Debug)] +pub struct TestResult { + pub only_proj: HashSet, + pub only_asset: HashSet, + pub in_both: HashSet, + pub packages: Vec, + pub project_dir: PathBuf, + pub asset_dir: PathBuf, + pub has_failures: bool, +} + +impl fmt::Display for TestResult { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + let matches = self.in_both.len(); + let mismatches = self.only_proj.len() + self.only_asset.len(); + let total = matches + mismatches; + let accuracy = if total == 0 { 100.0 } else { (matches as f64 / total as f64) * 100.0 }; + + write!( + f, + "\n[Accuracy: {:.2}%] Installer comparison for packages {}:\n Project dir: {}\n Asset dir: {}\n Summary: matches={}, mismatches={}, total={}\n", + accuracy, + self.packages + .iter() + .map(|p| p.to_string()) + .collect::>() + .join(", "), + self.project_dir.display(), + self.asset_dir.display(), + matches, + mismatches, + total, + )?; + + self.fmt_only_proj(f)?; + self.fmt_only_asset(f)?; + Ok(()) + } +} + +impl TestResult { + fn fmt_only_proj(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + self.fmt_only_section(f, " Only in project:", &self.only_proj, &self.only_asset) + } + + fn fmt_only_asset(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + self.fmt_only_section(f, " Only in asset:", &self.only_asset, &self.only_proj) + } + + fn fmt_only_section( + &self, + f: &mut fmt::Formatter<'_>, + header: &str, + primary: &HashSet, + secondary: &HashSet, + ) -> fmt::Result { + if primary.is_empty() { + return Ok(()); + } + + writeln!(f, "{}", header)?; + + let secondary_by_name: HashMap> = secondary + .iter() + .filter_map(|path| path.file_name().map(|name| (name.to_string_lossy().to_string(), path.clone()))) + .fold(HashMap::new(), |mut acc, (name, path)| { + acc.entry(name).or_insert_with(Vec::new).push(path); + acc + }); + + let mut primary_paths: Vec<_> = primary + .iter() + .filter_map(|p| { + p.file_name().map(|name| (name.to_string_lossy(), p)) + }) + .filter(|(name, _)| { + !matches!(name.as_ref(), "README.md" | "icon.png" | "manifest.json") + }) + .collect(); + primary_paths.sort_by(|a, b| a.1.cmp(b.1)); + + for (name, primary_path) in primary_paths { + writeln!(f, " • {}", primary_path.display())?; + let name_str = name.to_string(); + if let Some(matching) = secondary_by_name.get(&name_str) { + writeln!(f, " ↳ Matching files:")?; + let mut matches: Vec<_> = matching.iter().collect(); + matches.sort(); + for m in matches { + writeln!(f, " • {}", m.display())?; + } + } + } + Ok(()) + } +} + +/// Testificate is a test harness providing an easy way to run regression tests on installers. +/// +/// It sets up a temporary project, installs the specified packages, and compares the resulting +/// file structure against a known-good asset directory. +pub struct Testficate { + packages: Vec, + community: String, + asset_dir: PathBuf, + init_index: bool, + init: OnceCell<()>, +} + +impl Testficate { + pub fn new( + packages: Vec, + community: &str, + assets_name: &str, + installer_variant: &str, + init_index: bool, + ) -> Self { + let asset_dir = match env::var("CARGO_WORKSPACE_DIR") { + Ok(val) => PathBuf::from(val), + Err(_) => PathBuf::from("."), // fallback to current dir + } + .join("resources/test/installers") + .join(installer_variant) + .join(assets_name); + + Self { + packages, + community: community.to_string(), + asset_dir, + init_index, + init: OnceCell::const_new(), + } + } + + async fn init_index(&self) { + if !self.init_index { + return; + } + + // For tests we don't need full error handling. Run the check once and + // sync if needed. Use unwrap_or(true) so that an error will trigger a + // sync attempt rather than bubbling complex errors in the test harness. + self.init + .get_or_init(|| async { + if PackageIndex::requires_update(&TCLI_HOME).await.unwrap_or(true) { + // Best-effort sync for tests; ignore errors rather than panicking. + let _ = PackageIndex::sync(&TCLI_HOME).await; + } + }) + .await; + } + + pub async fn run_test(self) -> Result { + self.init_index().await; + + let project_dir = tempfile::tempdir()?; + let project = Project::create_new( + project_dir.path(), + true, + ProjectKind::Profile, + self.community, + )?; + + project.add_packages(&self.packages).await?; + project.commit(Box::new(VoidReporter), false).await?; + + let (only_proj, only_asset, in_both) = file::dir_diff_with_common(&project.state_dir, &self.asset_dir); + let has_failures = only_proj.len() + only_asset.len() > 0; + + Ok(TestResult { + only_proj, + only_asset, + in_both, + packages: self.packages, + project_dir: project.state_dir, + asset_dir: self.asset_dir, + has_failures, + }) + } +} + diff --git a/src/package/install/tracked.rs b/src/package/install/tracked.rs new file mode 100644 index 0000000..2da81a3 --- /dev/null +++ b/src/package/install/tracked.rs @@ -0,0 +1,165 @@ +use std::path::Path; +use tokio::fs; +use walkdir::WalkDir; + +use crate::package::install::api::{FileAction, LinkedFile}; +use crate::project::state::{StagedFile, StateEntry}; + +use crate::error::Error; + +pub trait TrackedFs { + /// Create a new instance dedicated to tracking filesystem edits during the + /// installation of the provided package. + /// + /// This essentially creates or opens the cooresponding entry within the + /// tracked_files.json file and writes any tracked fs modifications to it. + fn new(state: StateEntry) -> Self; + + /// Extract the new StateEntry from this instance. + fn extract_state(self) -> StateEntry; + + /// Copy a file from a source to a destination, overwriting it if the file + /// already exists. + /// + /// This will append (or overwrite) a FileAction::Create entry. + async fn file_copy(&mut self, src: &Path, dst: &Path, stage_dst: Option<&Path>) -> Result<(), Error>; + + /// Delete some target file. + /// + /// If `tracked` is set this this will append a FileAction::Remove entry, + /// overwriting one if it already exists for this file. + async fn file_delete(&mut self, target: &Path, tracked: bool) -> Result<(), Error>; + + /// Recursively copy a source directory to a destination, overwriting it if + /// it already exists. + /// + /// This will append (or overwrite) a FileAction::Create entry for each file + /// copied while recursing. + async fn dir_copy(&mut self, src: &Path, dst: &Path) -> Result<(), Error>; + + /// Recursively delete some target directory. + /// + /// If `tracked` if set then this will append a FileAction::Remove entry + /// for each file deleted while recursing, otherwise matching entries are + /// deleted. + async fn dir_delete(&mut self, target: &Path, tracked: bool) -> Result<(), Error>; +} + +#[derive(Debug)] +pub struct ConcreteFs { + state: StateEntry, +} + + +impl TrackedFs for ConcreteFs { + fn new(state: StateEntry) -> Self { + ConcreteFs { + state + } + } + + fn extract_state(self) -> StateEntry { + self.state + } + + async fn file_copy(&mut self, src: &Path, dst: &Path, stage_dst: Option<&Path>) -> Result<(), Error> { + fs::copy(src, dst).await?; + let tracked = LinkedFile { action: FileAction::Create, path: dst.to_path_buf(), context: None }; + + if let Some(stage_dst) = stage_dst { + let mut staged = StagedFile::new(tracked)?; + staged.dest.push(stage_dst.to_path_buf()); + self.state.add_staged(staged, false); + } else { + self.state.add_linked(tracked, false); + } + + Ok(()) + } + + async fn file_delete(&mut self, target: &Path, tracked: bool) -> Result<(), Error> { + fs::remove_file(target).await?; + + if tracked { + let tracked_file = LinkedFile { + action: FileAction::Remove, + path: target.to_path_buf(), + context: None + }; + self.state.add_linked(tracked_file, false); + } + + Ok(()) + } + + async fn dir_copy(&mut self, src: &Path, dst: &Path) -> Result<(), Error> { + let files = WalkDir::new(src) + .into_iter() + .filter_map(|e| e.ok()) + .filter(|x| x.path().is_file()); + + for file in files { + let dest = dst.join(file.path().strip_prefix(src).unwrap()); + let dest_parent = dest.parent().unwrap(); + + if !dest_parent.is_dir() { + fs::create_dir_all(dest_parent).await?; + } + + self.file_copy(file.path(), &dest, None).await?; + } + + Ok(()) + } + + async fn dir_delete(&mut self, target: &Path, tracked: bool) -> Result<(), Error> { + let files = WalkDir::new(target) + .into_iter() + .filter_map(|e| e.ok()) + .filter(|x| x.path().is_file()); + + for file in files { + self.file_delete(file.path(), tracked).await?; + } + + fs::remove_dir_all(target).await?; + + Ok(()) + } +} + +/// Mock implementation of TrackedFs for testing purposes. +#[derive(Debug)] +pub struct MockFs; + +impl MockFs { + pub fn new() -> Self { + MockFs + } +} + +impl TrackedFs for MockFs { + fn new(_state: StateEntry) -> Self { + MockFs + } + + fn extract_state(self) -> StateEntry { + StateEntry::default() + } + + async fn file_copy(&mut self, _src: &Path, _dst: &Path, _stage_dst: Option<&Path>) -> Result<(), Error> { + Ok(()) + } + + async fn file_delete(&mut self, _target: &Path, _tracked: bool) -> Result<(), Error> { + Ok(()) + } + + async fn dir_copy(&mut self, _src: &Path, _dst: &Path) -> Result<(), Error> { + Ok(()) + } + + async fn dir_delete(&mut self, _target: &Path, _tracked: bool) -> Result<(), Error> { + Ok(()) + } +} diff --git a/src/project/error.rs b/src/project/error.rs index 2f61da1..188ca7e 100644 --- a/src/project/error.rs +++ b/src/project/error.rs @@ -1,4 +1,5 @@ use std::path::PathBuf; +use crate::ts::package_reference::PackageReference; #[derive(Debug, thiserror::Error)] #[repr(u32)] @@ -17,4 +18,10 @@ pub enum ProjectError { #[error("The game identifier '{0}' does not exist within the ecosystem schema.")] InvalidGameId(String), + + #[error("Package {package} is not a member of community '{community}'.")] + PackageNotInCommunity { + package: PackageReference, + community: String, + }, } diff --git a/src/project/manifest.rs b/src/project/manifest.rs index 451a3ab..3ae66e3 100644 --- a/src/project/manifest.rs +++ b/src/project/manifest.rs @@ -25,12 +25,9 @@ pub struct ProjectManifest { } impl ProjectManifest { - pub fn default_dev_project() -> Self { + pub fn default_dev_project(game: String) -> Self { ProjectManifest { - config: ConfigData { - game: Some("risk-of-rain-2".to_string()), - ..ConfigData::default() - }, + config: ConfigData::new(game), package: Some(Default::default()), build: Some(Default::default()), publish: Some(vec![Default::default()]), @@ -39,9 +36,9 @@ impl ProjectManifest { } } - pub fn default_profile_project() -> Self { + pub fn default_profile_project(game: String) -> Self { ProjectManifest { - config: Default::default(), + config: ConfigData::new(game), package: None, build: None, publish: None, @@ -109,15 +106,15 @@ impl ProjectManifest { pub struct ConfigData { pub schema_version: Version, pub repository: Option, - pub game: Option, + pub game: String, } -impl Default for ConfigData { - fn default() -> Self { - ConfigData { +impl ConfigData { + pub fn new(game: String) -> Self { + Self { schema_version: Version::new(0, 0, 1), repository: Some("https://thunderstore.io".to_string()), - game: None, + game, } } } diff --git a/src/project/mod.rs b/src/project/mod.rs index 834b716..ebd1632 100644 --- a/src/project/mod.rs +++ b/src/project/mod.rs @@ -16,26 +16,27 @@ use zip::write::SimpleFileOptions; use self::lock::LockFile; use crate::error::{Error, IoError, IoResultToTcli}; use crate::game::registry::GameData; -use crate::game::{proc, registry}; +use crate::game::{ecosystem, proc, registry}; use crate::package::index::PackageIndex; -use crate::package::install::api::TrackedFile; -use crate::package::install::Installer; +use crate::package::install::api::LinkedFile; +use crate::package::install::tracked::{ConcreteFs, TrackedFs}; +use crate::package::install::{self, PackageInstaller}; use crate::package::resolver::DependencyGraph; use crate::package::{resolver, Package}; use crate::project::manifest::ProjectManifest; use crate::project::overrides::ProjectOverrides; -use crate::project::state::{StagedFile, StateFile}; +use crate::project::state::{StagedFile, StateEntry, StateFile}; use crate::ts::package_manifest::PackageManifestV1; use crate::ts::package_reference::PackageReference; use crate::ui::reporter::{Progress, Reporter}; -use crate::{util, TCLI_HOME}; +use crate::{ts, util, TCLI_HOME}; pub mod error; pub mod lock; pub mod manifest; pub mod overrides; -mod publish; -mod state; +pub mod publish; +pub mod state; pub enum ProjectKind { Dev(ProjectOverrides), @@ -120,6 +121,7 @@ impl Project { project_dir: &Path, overwrite: bool, project_kind: ProjectKind, + game: String, ) -> Result { if project_dir.is_file() { Err(IoError::DirectoryIsFile(project_dir.into()))?; @@ -131,11 +133,11 @@ impl Project { let manifest = match &project_kind { ProjectKind::Dev(overrides) => { - let mut manifest = ProjectManifest::default_dev_project(); + let mut manifest = ProjectManifest::default_dev_project(game); manifest.apply_overrides(overrides.clone())?; manifest } - ProjectKind::Profile => ProjectManifest::default_profile_project(), + ProjectKind::Profile => ProjectManifest::default_profile_project(game), }; let mut options = File::options(); @@ -233,7 +235,7 @@ impl Project { /// Add one or more packages to this project. /// /// Note: This function does not COMMIT the packages, it only adds them to the project manifest. - pub fn add_packages(&self, packages: &[PackageReference]) -> Result<(), Error> { + pub async fn add_packages(&self, packages: &[PackageReference]) -> Result<(), Error> { let mut manifest = ProjectManifest::read_from_file(&self.manifest_path)?; let mut manifest_deps = manifest.dependencies.dependencies.clone(); @@ -289,22 +291,19 @@ impl Project { async fn install_packages( &self, - installer: &Installer, statefile: &mut StateFile, packages: Vec<&PackageReference>, multi: &dyn Progress, ) -> Result<(), Error> { - let packages = try_join_all( - packages - .into_iter() - .map(|x| async move { Package::from_any(x).await }), - ) - .await?; + let packages = packages + .into_iter() + .map(|x| async move { Package::from_any(x).await }); let sem = Arc::new(Semaphore::new(5)); let jobs = packages.into_iter().map(|package| async { let _permit = sem.acquire().await.unwrap(); + let package = package.await?; let bar = multi.add_bar(); let bar = bar.as_ref(); @@ -314,13 +313,34 @@ impl Project { Some(x) => x, None => package.download(bar).await?, }; + + // Right now we need to do a couple of things to create an installer: + // - An installer to use for this package. We can make a best case guess via install::guess_installer. + // - A TrackedFs implementation. In this instance we're going to opt for ConcreteFs, but if this was + // virtualized we would opt for something else. + + let project_manifest = self.get_manifest()?; + let ecosystem_schema = crate::game::ecosystem::get_schema().await?; + let game_def = ecosystem_schema + .games + .get(&project_manifest.config.game) + .ok_or_else(|| ProjectError::InvalidGameId(project_manifest.config.game.clone()))?; + + // HACK: We make the assumption that the first r2modman is the one that we want. + // In reality we need to make this configurable (or maybe overridable?) once these fields have unique identifiers. + let loader = game_def.r2modman.as_ref().unwrap().first().unwrap().package_loader.as_ref().unwrap(); + + let mut installer = install::get_installer(loader, ConcreteFs::new(StateEntry::default())); + let modloader_data = ecosystem::get_modloader_data(&package.identifier, &ecosystem_schema).await?; + let tracked_files = installer .install_package( &package, &package_dir, &self.state_dir, &self.staging_dir, - bar, + modloader_data.as_ref(), + Some(game_def), ) .await; @@ -344,38 +364,36 @@ impl Project { bar.println(&finished_msg); - tracked_files.map(|x| (package.identifier, x)) + // tracked_files.map(|x| (package.identifier, x)) + + Ok::<(), Error>(()) }); - let tracked_files = try_join_all(jobs) - .await? - .into_iter() - .collect::)>>(); + let tracked_files = try_join_all(jobs).await?; // Iterate through each installed mod, separate tracked files into "link" and "stage" variants. // TODO: Make this less hacky, we shouldn't be relying on path ops to determine this. - for (package, tracked_files) in tracked_files { - let staged_files = tracked_files - .iter() - .filter(|x| x.path.starts_with(&self.staging_dir)) - .map(|x| StagedFile::new(x.clone())) - .collect::, _>>()?; - - let linked_files = tracked_files - .into_iter() - .filter(|x| x.path.starts_with(&self.state_dir)); - - let group = statefile.state.entry(package).or_default(); - group.staged.extend(staged_files); - group.linked.extend(linked_files); - } + // for (package, tracked_files) in tracked_files { + // let staged_files = tracked_files + // .iter() + // .filter(|x| x.path.starts_with(&self.staging_dir)) + // .map(|x| StagedFile::new(x.clone())) + // .collect::, _>>()?; + + // let linked_files = tracked_files + // .into_iter() + // .filter(|x| x.path.starts_with(&self.state_dir)); + + // let group = statefile.state.entry(package).or_default(); + // group.staged.extend(staged_files); + // group.linked.extend(linked_files); + // } Ok(()) } async fn uninstall_packages( &self, - installer: &Installer, statefile: &mut StateFile, packages: Vec<&PackageReference>, multi: &dyn Progress, @@ -388,35 +406,35 @@ impl Project { .await?; // Uninstall each package in parallel. - try_join_all(packages.iter().map(|package| async { - let bar = multi.add_bar(); - let bar = bar.as_ref(); - - let package_dir = match package.get_path().await { - Some(x) => x, - None => package.download(bar).await?, - }; - let state_entry = statefile.state.get(&package.identifier); - - let tracked_files = state_entry - .map_or(vec![], |x| x.staged.clone()) - .into_iter() - .map(|x| x.action) - .chain(state_entry.map_or(vec![], |x| x.linked.clone())) - .collect::>(); - - installer - .uninstall_package( - package, - &package_dir, - &self.state_dir, - &self.staging_dir, - tracked_files, - bar, - ) - .await - })) - .await?; + // try_join_all(packages.iter().map(|package| async { + // let bar = multi.add_bar(); + // let bar = bar.as_ref(); + + // let package_dir = match package.get_path().await { + // Some(x) => x, + // None => package.download(bar).await?, + // }; + // let state_entry = statefile.state.get(&package.identifier); + + // let tracked_files = state_entry + // .map_or(vec![], |x| x.staged.clone()) + // .into_iter() + // .map(|x| x.action) + // .chain(state_entry.map_or(vec![], |x| x.linked.clone())) + // .collect::>(); + + // // installer + // // .uninstall_package( + // // package, + // // &package_dir, + // // &self.state_dir, + // // &self.staging_dir, + // // tracked_files, + // // bar, + // // ) + // // .await + // })) + // .await?; // Run post-uninstall cleanup / validation ops. // 1. Invalidate staged files, removing them from the statefile if they no longer exist. @@ -427,7 +445,7 @@ impl Project { let staged = &entry.staged; // Determine the list of entries that will be invalidated. - let invalid_staged_entries = staged.iter().filter(|x| !x.action.path.is_file()); + let invalid_staged_entries = staged.iter().filter(|x| !x.file.path.is_file()); for staged_entry in invalid_staged_entries { // Each dest is checked if it (a) exists and (b) is the same as orig. @@ -475,23 +493,16 @@ impl Project { delta.del.len() ); - let installer = Installer::override_new(); let mut statefile = StateFile::open_or_new(&self.statefile_path)?; - let multi = reporter.create_progress(); let packages_to_remove = delta.del.iter().rev().collect::>(); let packages_to_add = delta.add.iter().rev().collect::>(); - self.uninstall_packages( - &installer, - &mut statefile, - packages_to_remove, - multi.borrow(), - ) - .await?; + self.uninstall_packages(&mut statefile, packages_to_remove, multi.borrow()) + .await?; - self.install_packages(&installer, &mut statefile, packages_to_add, multi.borrow()) + self.install_packages(&mut statefile, packages_to_add, multi.borrow()) .await?; // Write the statefile with changes made during unins @@ -520,7 +531,7 @@ impl Project { let staged_files = statefile.state.values_mut().flat_map(|x| &mut x.staged); for file in staged_files { - let rel = file.action.path.strip_prefix(&self.staging_dir).unwrap(); + let rel = file.file.path.strip_prefix(&self.staging_dir).unwrap(); let dest = game_dir.join(rel); if file.is_same_as(&dest)? { @@ -528,41 +539,40 @@ impl Project { } let dest_parent = dest.parent().unwrap(); - if !dest_parent.is_dir() { - fs::create_dir_all(dest_parent)?; - } + if !dest_parent.is_dir() {} + fs::create_dir_all(dest_parent)?; - fs::copy(&file.action.path, &dest)?; + fs::copy(&file.file.path, &dest)?; file.dest.push(dest); } statefile.write(&self.statefile_path)?; - let installer = Installer::override_new(); - let pid = installer - .start_game( - mods_enabled, - &self.state_dir, - &game_dist.game_dir, - &game_dist.exe_path, - args, - ) - .await?; + // let installer = Installer::override_new(); + // let pid = installer + // .start_game( + // mods_enabled, + // &self.state_dir, + // &game_dist.game_dir, + // &game_dist.exe_path, + // args, + // ) + // .await?; // The PID file is contained within the state dir and is of name `game.exe.pid`. - let pid_path = self - .base_dir - .join(".tcli") - .join(format!("{}.pid", game_data.identifier)); - - let mut pid_file = File::create(pid_path)?; - pid_file.write_all(format!("{}", pid).as_bytes())?; - - println!( - "{} has been started with PID {}.", - game_data.display_name.green(), - pid - ); + // let pid_path = self + // .base_dir + // .join(".tcli") + + // .join(format!("{}.pid", game_data.identifier)); + // let mut pid_file = File::create(pid_path)?; + // pid_file.write_all(format!("{}", pid).as_bytes())?; + + // println!( + // "{} has been started with PID {}.", + // game_data.display_name.green(), + // pid + // ); Ok(()) } diff --git a/src/project/state.rs b/src/project/state.rs index deeb47a..b19fa43 100644 --- a/src/project/state.rs +++ b/src/project/state.rs @@ -6,22 +6,22 @@ use std::path::{Path, PathBuf}; use serde::{Deserialize, Serialize}; use crate::error::Error; -use crate::package::install::api::TrackedFile; +use crate::package::install::api::LinkedFile; use crate::ts::package_reference::PackageReference; use crate::util; #[derive(Serialize, Deserialize, Debug, Clone)] pub struct StagedFile { - pub action: TrackedFile, + pub file: LinkedFile, pub dest: Vec, pub md5: String, } impl StagedFile { - pub fn new(action: TrackedFile) -> Result { - let md5 = util::file::md5(&action.path)?; + pub fn new(file: LinkedFile) -> Result { + let md5 = util::file::md5(&file.path)?; Ok(StagedFile { - action, + file, dest: vec![], md5, }) @@ -37,10 +37,20 @@ impl StagedFile { } } -#[derive(Serialize, Deserialize, Default)] +#[derive(Serialize, Deserialize, Default, Debug)] pub struct StateEntry { pub staged: Vec, - pub linked: Vec, + pub linked: Vec, +} + +impl StateEntry { + /// Add a new staged file. If overwrite is set then already existing + /// entries with the same path will be replaced. + pub fn add_staged(&mut self, file: StagedFile, overwrite: bool) {} + + /// Add a new linked file. If overwrite is set then already existing + /// entries with the same path will be replaced. + pub fn add_linked(&mut self, file: LinkedFile, overwrite: bool) {} } #[derive(Serialize, Deserialize, Default)] diff --git a/src/server/method/project.rs b/src/server/method/project.rs index 63314fc..2ad243f 100644 --- a/src/server/method/project.rs +++ b/src/server/method/project.rs @@ -52,6 +52,7 @@ impl ProjectMethod { path, true, ProjectKind::Profile, + "risk-of-rain2".to_string(), )?)) } ProjectMethod::GetMetadata => { @@ -61,7 +62,7 @@ impl ProjectMethod { }); } ProjectMethod::AddPackages(packages) => { - rt.proj.add_packages(&packages.packages[..])?; + rt.proj.add_packages(&packages.packages[..]).await?; rt.proj.commit(Box::new(VoidReporter), false).await?; } ProjectMethod::RemovePackages(packages) => { diff --git a/src/ts/experimental/package.rs b/src/ts/experimental/package.rs index 26b63e3..fcbd4e0 100644 --- a/src/ts/experimental/package.rs +++ b/src/ts/experimental/package.rs @@ -1,5 +1,6 @@ use crate::error::Error; use crate::ts::experimental::models::package::{PackageListing, PackageVersion}; +use crate::ts::package_reference::PackageReference; use crate::ts::version::Version; use crate::ts::{CLIENT, EX}; @@ -26,3 +27,18 @@ pub async fn get_version_metadata( .json() .await?) } + +/// Determines if a package is a member of the provided community. +pub async fn get_package_membership(community: &str, package: &PackageReference) -> Result { + let url = format!( + "https://thunderstore.io/api/cyberstorm/listing/{}/{}/{}/", + community, package.namespace, package.name + ); + + Ok(CLIENT + .head(&url) + .send() + .await? + .status() + .is_success()) +} diff --git a/src/ts/package_reference/mod.rs b/src/ts/package_reference/mod.rs index 41d3a4d..eb9c636 100644 --- a/src/ts/package_reference/mod.rs +++ b/src/ts/package_reference/mod.rs @@ -8,6 +8,15 @@ use crate::ts::version::{Version, VersionParseError}; pub mod ser; +#[macro_export] +macro_rules! pkg_ref { + ($s:expr) => {{ + use std::str::FromStr; + $crate::ts::package_reference::PackageReference::from_str($s).unwrap() + }}; +} + + #[derive(SerializeDisplay, DeserializeFromStr, Clone, Debug, PartialEq, Eq, Hash)] pub struct PackageReference { pub namespace: String, @@ -39,6 +48,7 @@ impl PackageReference { .ok_or(PackageReferenceParseError::NumSections { expected: 2, got: 1, + provided: fullname.as_ref().to_string(), })?; Ok(PackageReference { namespace: namespace.to_string(), @@ -63,6 +73,7 @@ impl FromStr for PackageReference { .map_err(|v: Vec<&str>| PackageReferenceParseError::NumSections { expected: 3, got: v.len() - 1, + provided: s.to_string(), })?; Ok(PackageReference { @@ -81,8 +92,8 @@ impl Display for PackageReference { #[derive(thiserror::Error, Debug)] pub enum PackageReferenceParseError { - #[error("Expected {expected} sections, got {got}.")] - NumSections { expected: usize, got: usize }, + #[error("Expected {expected} sections, got {got} for string '{provided}'")] + NumSections { expected: usize, got: usize, provided: String }, #[error("Failed to parse version: {0}.")] VersionParseFail(#[from] VersionParseError), } diff --git a/src/ts/v1/models/ecosystem.rs b/src/ts/v1/models/ecosystem.rs index cb12f10..4568553 100644 --- a/src/ts/v1/models/ecosystem.rs +++ b/src/ts/v1/models/ecosystem.rs @@ -113,7 +113,7 @@ pub struct GameDefR2MM { pub game_instance_type: String, pub game_selection_display_mode: String, pub additional_search_strings: Vec, - pub package_loader: Option, + pub package_loader: Option, pub install_rules: Vec, pub relative_file_exclusions: Option>, } @@ -123,25 +123,62 @@ pub struct GameDefR2MM { pub struct R2MMModLoaderPackage { pub package_id: String, pub root_folder: String, - pub loader: String, + pub loader: R2MLLoader, } -#[derive(Serialize, Deserialize, Debug, Clone)] +#[derive(Serialize, Deserialize, Debug, Clone, PartialEq)] +#[serde(rename_all = "lowercase")] +pub enum R2MLLoader { + BepInEx, + GDWeave, + GodotML, + Lovely, + MelonLoader, + Northstar, + #[serde(rename = "recursive-melonloader")] + RecursiveMelonLoader, + #[serde(rename = "return-of-modding")] + ReturnOfModding, + Shimloader, + None, +} + +#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, Hash)] +#[serde(rename_all = "kebab-case")] +pub enum TrackingMethod { + None, + PackageZip, + State, + Subdir, + SubdirNoFlatten, +} + +impl Default for TrackingMethod { + fn default() -> Self { + TrackingMethod::None + } +} + +#[derive(Serialize, Deserialize, Debug, Clone, PartialEq)] pub struct PackageInstaller { pub name: String, pub description: String, } -#[derive(Serialize, Deserialize, Debug, Clone)] +#[derive(Serialize, Deserialize, Debug, Clone, Hash, PartialEq, Eq)] #[serde(rename_all = "camelCase")] pub struct R2MMInstallRule { pub route: String, - pub tracking_method: Option, + #[serde(default)] + pub tracking_method: TrackingMethod, pub sub_routes: Option>, - pub default_file_extensions: Option>, + #[serde(default)] + pub default_file_extensions: Vec, pub is_default_location: bool, } + + #[derive(Serialize, Deserialize, Debug, Clone)] #[serde(rename_all = "camelCase")] pub struct GameDefThunderstore { diff --git a/src/util/file.rs b/src/util/file.rs index e5f12d9..b5c13df 100644 --- a/src/util/file.rs +++ b/src/util/file.rs @@ -1,9 +1,11 @@ +use std::collections::HashSet; use std::fs::{self, File}; use std::io; -use std::path::Path; +use std::path::{Path, PathBuf}; use md5::digest::FixedOutput; use md5::{Digest, Md5}; +use tokio::fs as async_fs; use walkdir::WalkDir; use crate::error::{Error, IoError}; @@ -75,3 +77,65 @@ pub fn read_offset(file: &File, buf: &mut [u8], offset: u64) -> Result (HashSet, HashSet) { + fn collect_paths(dir: &Path) -> HashSet { + WalkDir::new(dir) + .into_iter() + .filter_map(|x| x.ok()) + .filter(|x| x.path() != dir) + .filter(|x| !x.path().is_dir()) + .map(|x| x.path().strip_prefix(dir).unwrap().to_path_buf()) + .collect() + } + + let first = collect_paths(dir1); + let second = collect_paths(dir2); + + (&first - &second, &second - &first) +} + +/// Compares the structure of two directories and returns (only_in_dir1, only_in_dir2, common). +pub fn dir_diff_with_common(dir1: &Path, dir2: &Path) -> (HashSet, HashSet, HashSet) { + fn collect_paths(dir: &Path) -> HashSet { + WalkDir::new(dir) + .into_iter() + .filter_map(|x| x.ok()) + .filter(|x| x.path() != dir) + .filter(|x| !x.path().is_dir()) + .map(|x| x.path().strip_prefix(dir).unwrap().to_path_buf()) + .collect() + } + + let first = collect_paths(dir1); + let second = collect_paths(dir2); + let common = &first & &second; + + (&first - &second, &second - &first, common) +} + +pub async fn copy_dir(src: &Path, dst: &Path) -> Result<(), Error> { + async_fs::create_dir_all(dst).await?; + + let entries: Vec<_> = WalkDir::new(src) + .into_iter() + .filter_map(|e| e.ok()) + .filter(|e| e.path().is_file()) + .collect(); + + for entry in entries { + let src_path = entry.path(); + let relative_path = src_path.strip_prefix(src) + .map_err(|e| IoError::Native(std::io::Error::new(std::io::ErrorKind::InvalidInput, format!("Failed to strip prefix: {}", e)), Some(src_path.to_path_buf())))?; + let dst_path = dst.join(relative_path); + + if let Some(parent) = dst_path.parent() { + async_fs::create_dir_all(parent).await?; + } + + async_fs::copy(src_path, &dst_path).await?; + } + + Ok(()) +} diff --git a/src/util/reg.rs b/src/util/reg.rs index 6b7201e..9e9b0a1 100644 --- a/src/util/reg.rs +++ b/src/util/reg.rs @@ -63,21 +63,22 @@ mod inner { #[cfg(target_os = "linux")] mod inner { - use super::{Error, HKey, RegKeyVal}; + use super::{HKey, RegKeyVal}; + use crate::error::IoError; fn get_prefix() -> Option { todo!() } - pub fn get_value_at(hkey: HKey, subkey: &str, name: &str) -> Result { + pub fn get_value_at(_hkey: HKey, _subkey: &str, _name: &str) -> Result { todo!() } - pub fn get_keys_at(hkey: HKey, subkey: &str) -> Result, Error> { + pub fn get_keys_at(_hkey: HKey, _subkey: &str) -> Result, IoError> { todo!() } - pub fn get_values_at(hkey: HKey, subkey: &str) -> Result, Error> { + pub fn get_values_at(_hkey: HKey, _subkey: &str) -> Result, IoError> { todo!() } }