├── Data └── latest-version.txt ├── NStrip.exe ├── Assets ├── Icon.ico ├── Icon.png ├── Logo.png ├── LogoFull.png ├── InstallerImage.bmp └── InstallerSmallImage.bmp ├── Dependencies ├── cldb.dat ├── Carbon.vsf ├── Oculus.Newtonsoft.Json.dll ├── BZ.EXP │ ├── BepInEx.cfg │ └── README.md ├── SN.EXP │ ├── BepInEx.cfg │ └── README.md ├── BZ.STABLE │ ├── BepInEx.cfg │ └── README.md └── SN.STABLE │ ├── BepInEx.cfg │ └── README.md ├── MacOSX ├── dist │ ├── Resources │ │ ├── banner.png │ │ ├── welcome.html │ │ └── conclusion.html │ ├── QModManager.sh │ └── Distribution ├── README.md └── build.sh ├── BepinexPackages ├── Both_Packages │ ├── UnityAudioEnabler │ │ ├── README.md │ │ ├── icon.png │ │ ├── UnityAudioEnabler │ │ │ └── BepInEx │ │ │ │ └── patchers │ │ │ │ └── UnityAudioEnabler │ │ │ │ ├── cldb.dat │ │ │ │ ├── AssetsTools.NET.dll │ │ │ │ ├── QModManager.UnityAudioFixer.dll │ │ │ │ └── QModManager.UnityAudioFixer.xml │ │ └── manifest.json │ └── MirrorInternalLogs │ │ ├── icon.png │ │ ├── MirrorInternalLogs │ │ └── BepInEx │ │ │ ├── patchers │ │ │ └── MirrorInternalLogs.dll │ │ │ └── config │ │ │ └── MirrorInternalLogs.cfg │ │ ├── manifest.json │ │ └── README.md ├── BelowZero_Packages │ ├── QModManager │ │ ├── icon.png │ │ ├── README.md │ │ └── manifest.json │ ├── QModManager_Exp │ │ ├── icon.png │ │ ├── README.md │ │ └── manifest.json │ └── BepInExPack_BelowZero │ │ ├── icon.png │ │ ├── BepInExPack_BelowZero │ │ ├── winhttp.dll │ │ ├── BepInEx │ │ │ ├── core │ │ │ │ ├── 0Harmony.dll │ │ │ │ ├── BepInEx.dll │ │ │ │ ├── 0Harmony12.dll │ │ │ │ ├── 0Harmony20.dll │ │ │ │ ├── Mono.Cecil.dll │ │ │ │ ├── 0Harmony109.dll │ │ │ │ ├── MonoMod.Utils.dll │ │ │ │ ├── BepInEx.Harmony.dll │ │ │ │ ├── HarmonyXInterop.dll │ │ │ │ ├── Mono.Cecil.Mdb.dll │ │ │ │ ├── Mono.Cecil.Pdb.dll │ │ │ │ ├── BepInEx.Preloader.dll │ │ │ │ ├── Mono.Cecil.Rocks.dll │ │ │ │ ├── MonoMod.RuntimeDetour.dll │ │ │ │ └── BepInEx.Harmony.xml │ │ │ └── config │ │ │ │ └── BepInEx.cfg │ │ └── doorstop_config.ini │ │ └── manifest.json └── Subnautica_Packages │ ├── QModManager │ ├── icon.png │ ├── README.md │ └── manifest.json │ ├── QModManager_Exp │ ├── icon.png │ ├── README.md │ └── manifest.json │ ├── BepInExPack_Subnautica │ ├── icon.png │ ├── BepInExPack_Subnautica │ │ ├── winhttp.dll │ │ ├── BepInEx │ │ │ ├── core │ │ │ │ ├── BepInEx.dll │ │ │ │ ├── 0Harmony.dll │ │ │ │ ├── 0Harmony12.dll │ │ │ │ ├── 0Harmony20.dll │ │ │ │ ├── Mono.Cecil.dll │ │ │ │ ├── 0Harmony109.dll │ │ │ │ ├── BepInEx.Harmony.dll │ │ │ │ ├── HarmonyXInterop.dll │ │ │ │ ├── Mono.Cecil.Mdb.dll │ │ │ │ ├── Mono.Cecil.Pdb.dll │ │ │ │ ├── MonoMod.Utils.dll │ │ │ │ ├── BepInEx.Preloader.dll │ │ │ │ ├── Mono.Cecil.Rocks.dll │ │ │ │ ├── MonoMod.RuntimeDetour.dll │ │ │ │ └── BepInEx.Harmony.xml │ │ │ └── config │ │ │ │ └── BepInEx.cfg │ │ └── doorstop_config.ini │ └── manifest.json │ └── BepInExPack_Subnautica_Experimental │ ├── icon.png │ ├── BepInExPack_Subnautica_Experimental │ ├── winhttp.dll │ ├── BepInEx │ │ ├── core │ │ │ ├── 0Harmony.dll │ │ │ ├── BepInEx.dll │ │ │ ├── 0Harmony109.dll │ │ │ ├── 0Harmony12.dll │ │ │ ├── 0Harmony20.dll │ │ │ ├── Mono.Cecil.dll │ │ │ ├── Mono.Cecil.Mdb.dll │ │ │ ├── Mono.Cecil.Pdb.dll │ │ │ ├── MonoMod.Utils.dll │ │ │ ├── BepInEx.Harmony.dll │ │ │ ├── HarmonyXInterop.dll │ │ │ ├── Mono.Cecil.Rocks.dll │ │ │ ├── BepInEx.Preloader.dll │ │ │ ├── MonoMod.RuntimeDetour.dll │ │ │ └── BepInEx.Harmony.xml │ │ └── config │ │ │ └── BepInEx.cfg │ └── doorstop_config.ini │ └── manifest.json ├── .github ├── ISSUE_TEMPLATE │ ├── wiki-issue.md │ ├── bug-report.md │ ├── installation-issue.md │ ├── general-issue.md │ └── feature-request.md └── workflows │ └── version-checker.yml ├── Examples ├── mod.json ├── ExampleMod.cs └── Examples.csproj ├── QModManager ├── Checks │ ├── NitroxCheck.cs │ ├── PirateCheck.cs │ └── VersionCheck.cs ├── Patching │ ├── IManifestValidator.cs │ ├── IPluginCollection.cs │ ├── FatalPatchingException.cs │ ├── PatchingOrder.cs │ ├── IQModFactory.cs │ ├── IQModSerialiable.cs │ ├── ModStatus.cs │ ├── PluginCollection.cs │ ├── QModPlaceholder.cs │ ├── QModPatchMethod.cs │ ├── Initializer.cs │ ├── StoreDetector.cs │ ├── GameDetector.cs │ └── QMod.cs ├── app.config ├── packages.config ├── HarmonyPatches │ ├── EnableAchievements.cs │ ├── UpdateDeveloperMode.cs │ ├── DisableDevErrorReporting.cs │ ├── DisableFeedbackButton.cs │ ├── EnableConsoleSetting.cs │ └── MaskTelemetryLogging.cs ├── DataStructures │ ├── ISortable.cs │ ├── SortedTreeNodeCollection.cs │ ├── SortedTreeNode.cs │ └── WeightedList.cs ├── API │ ├── QModGame.cs │ ├── ModLoading │ │ ├── QModCoreAttribute.cs │ │ ├── QModPatch.cs │ │ ├── QModPrePatch.cs │ │ └── QModPostPatch.cs │ ├── IQModAPI.cs │ ├── RequiredQMod.cs │ ├── IQMod.cs │ ├── IQModServices.cs │ └── QModAPI.cs ├── Properties │ └── AssemblyInfo.cs ├── Utility │ ├── ReflectionHelper.cs │ ├── ExtensionMethods.cs │ ├── NetworkUtilities.cs │ ├── VersionParser.cs │ ├── Config.cs │ └── IOUtilities.cs ├── BepInex │ └── Plugins │ │ ├── LogFilter.cs │ │ └── QMMLoader.cs └── OptionsManager.cs ├── NuGet.Config ├── Unit Tests ├── packages.config ├── Properties │ └── AssemblyInfo.cs ├── RequiredQModTests.cs ├── TestPatchClass.cs ├── ModLoadingSimulationTests.cs └── QModFactoryTests.cs ├── UnityAudioFixer ├── app.config ├── packages.config └── Properties │ └── AssemblyInfo.cs ├── QModPluginEmulator ├── app.config ├── packages.config ├── QModPlugin.cs └── Properties │ └── AssemblyInfo.cs ├── OculusNewtonsoftRedirect ├── app.config ├── packages.config ├── Properties │ └── AssemblyInfo.cs └── OculusNewtonsoftRedirect.cs ├── common.props ├── README.md └── Scripts └── QModPluginGenerator-post-build.cmd /Data/latest-version.txt: -------------------------------------------------------------------------------- 1 | 4.4.4.0 -------------------------------------------------------------------------------- /NStrip.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SubnauticaModding/QModManager/HEAD/NStrip.exe -------------------------------------------------------------------------------- /Assets/Icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SubnauticaModding/QModManager/HEAD/Assets/Icon.ico -------------------------------------------------------------------------------- /Assets/Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SubnauticaModding/QModManager/HEAD/Assets/Icon.png -------------------------------------------------------------------------------- /Assets/Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SubnauticaModding/QModManager/HEAD/Assets/Logo.png -------------------------------------------------------------------------------- /Assets/LogoFull.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SubnauticaModding/QModManager/HEAD/Assets/LogoFull.png -------------------------------------------------------------------------------- /Dependencies/cldb.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SubnauticaModding/QModManager/HEAD/Dependencies/cldb.dat -------------------------------------------------------------------------------- /Dependencies/Carbon.vsf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SubnauticaModding/QModManager/HEAD/Dependencies/Carbon.vsf -------------------------------------------------------------------------------- /Assets/InstallerImage.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SubnauticaModding/QModManager/HEAD/Assets/InstallerImage.bmp -------------------------------------------------------------------------------- /Assets/InstallerSmallImage.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SubnauticaModding/QModManager/HEAD/Assets/InstallerSmallImage.bmp -------------------------------------------------------------------------------- /MacOSX/dist/Resources/banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SubnauticaModding/QModManager/HEAD/MacOSX/dist/Resources/banner.png -------------------------------------------------------------------------------- /Dependencies/Oculus.Newtonsoft.Json.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SubnauticaModding/QModManager/HEAD/Dependencies/Oculus.Newtonsoft.Json.dll -------------------------------------------------------------------------------- /BepinexPackages/Both_Packages/UnityAudioEnabler/README.md: -------------------------------------------------------------------------------- 1 | Basic Audio enabler Patch for both Subnautica and BelowZero to allow mods to use Unity Audio instead of FMOD -------------------------------------------------------------------------------- /BepinexPackages/BelowZero_Packages/QModManager/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SubnauticaModding/QModManager/HEAD/BepinexPackages/BelowZero_Packages/QModManager/icon.png -------------------------------------------------------------------------------- /BepinexPackages/Both_Packages/UnityAudioEnabler/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SubnauticaModding/QModManager/HEAD/BepinexPackages/Both_Packages/UnityAudioEnabler/icon.png -------------------------------------------------------------------------------- /BepinexPackages/Subnautica_Packages/QModManager/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SubnauticaModding/QModManager/HEAD/BepinexPackages/Subnautica_Packages/QModManager/icon.png -------------------------------------------------------------------------------- /BepinexPackages/BelowZero_Packages/QModManager_Exp/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SubnauticaModding/QModManager/HEAD/BepinexPackages/BelowZero_Packages/QModManager_Exp/icon.png -------------------------------------------------------------------------------- /BepinexPackages/Both_Packages/MirrorInternalLogs/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SubnauticaModding/QModManager/HEAD/BepinexPackages/Both_Packages/MirrorInternalLogs/icon.png -------------------------------------------------------------------------------- /BepinexPackages/Subnautica_Packages/QModManager_Exp/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SubnauticaModding/QModManager/HEAD/BepinexPackages/Subnautica_Packages/QModManager_Exp/icon.png -------------------------------------------------------------------------------- /BepinexPackages/BelowZero_Packages/BepInExPack_BelowZero/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SubnauticaModding/QModManager/HEAD/BepinexPackages/BelowZero_Packages/BepInExPack_BelowZero/icon.png -------------------------------------------------------------------------------- /BepinexPackages/Subnautica_Packages/BepInExPack_Subnautica/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SubnauticaModding/QModManager/HEAD/BepinexPackages/Subnautica_Packages/BepInExPack_Subnautica/icon.png -------------------------------------------------------------------------------- /BepinexPackages/Subnautica_Packages/BepInExPack_Subnautica_Experimental/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SubnauticaModding/QModManager/HEAD/BepinexPackages/Subnautica_Packages/BepInExPack_Subnautica_Experimental/icon.png -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/wiki-issue.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Wiki issue 3 | about: Report a problem with the wiki 4 | title: '' 5 | labels: 'Type: Wiki' 6 | assignees: MrPurple6411 7 | 8 | --- 9 | 10 | **Describe the problem** 11 | -------------------------------------------------------------------------------- /BepinexPackages/BelowZero_Packages/BepInExPack_BelowZero/BepInExPack_BelowZero/winhttp.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SubnauticaModding/QModManager/HEAD/BepinexPackages/BelowZero_Packages/BepInExPack_BelowZero/BepInExPack_BelowZero/winhttp.dll -------------------------------------------------------------------------------- /Examples/mod.json: -------------------------------------------------------------------------------- 1 | { 2 | "Id": "ExampleMod", 3 | "DisplayName": "Example Mod", 4 | "Author": "Example Author", 5 | "Version": "1.0", 6 | "Enable": true, 7 | "Game": "Subnautica", 8 | "AssemblyName": "Examples.dll" 9 | } 10 | -------------------------------------------------------------------------------- /BepinexPackages/Subnautica_Packages/BepInExPack_Subnautica/BepInExPack_Subnautica/winhttp.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SubnauticaModding/QModManager/HEAD/BepinexPackages/Subnautica_Packages/BepInExPack_Subnautica/BepInExPack_Subnautica/winhttp.dll -------------------------------------------------------------------------------- /BepinexPackages/Subnautica_Packages/QModManager/README.md: -------------------------------------------------------------------------------- 1 | ## QModManager 2 | 3 | ### Config based patch management for Subnautica 4 | ___ 5 | 6 | **For instructions on how to create a mod, see the [wiki](https://github.com/SubnauticaModding/QModManager/wiki)**. -------------------------------------------------------------------------------- /BepinexPackages/BelowZero_Packages/BepInExPack_BelowZero/BepInExPack_BelowZero/BepInEx/core/0Harmony.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SubnauticaModding/QModManager/HEAD/BepinexPackages/BelowZero_Packages/BepInExPack_BelowZero/BepInExPack_BelowZero/BepInEx/core/0Harmony.dll -------------------------------------------------------------------------------- /BepinexPackages/BelowZero_Packages/BepInExPack_BelowZero/BepInExPack_BelowZero/BepInEx/core/BepInEx.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SubnauticaModding/QModManager/HEAD/BepinexPackages/BelowZero_Packages/BepInExPack_BelowZero/BepInExPack_BelowZero/BepInEx/core/BepInEx.dll -------------------------------------------------------------------------------- /BepinexPackages/BelowZero_Packages/QModManager/README.md: -------------------------------------------------------------------------------- 1 | ## QModManager 2 | 3 | ### Config based patch management for Subnautica: Below Zero 4 | ___ 5 | 6 | **For instructions on how to create a mod, see the [wiki](https://github.com/SubnauticaModding/QModManager/wiki)**. -------------------------------------------------------------------------------- /BepinexPackages/BelowZero_Packages/BepInExPack_BelowZero/BepInExPack_BelowZero/BepInEx/core/0Harmony12.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SubnauticaModding/QModManager/HEAD/BepinexPackages/BelowZero_Packages/BepInExPack_BelowZero/BepInExPack_BelowZero/BepInEx/core/0Harmony12.dll -------------------------------------------------------------------------------- /BepinexPackages/BelowZero_Packages/BepInExPack_BelowZero/BepInExPack_BelowZero/BepInEx/core/0Harmony20.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SubnauticaModding/QModManager/HEAD/BepinexPackages/BelowZero_Packages/BepInExPack_BelowZero/BepInExPack_BelowZero/BepInEx/core/0Harmony20.dll -------------------------------------------------------------------------------- /BepinexPackages/BelowZero_Packages/BepInExPack_BelowZero/BepInExPack_BelowZero/BepInEx/core/Mono.Cecil.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SubnauticaModding/QModManager/HEAD/BepinexPackages/BelowZero_Packages/BepInExPack_BelowZero/BepInExPack_BelowZero/BepInEx/core/Mono.Cecil.dll -------------------------------------------------------------------------------- /BepinexPackages/Subnautica_Packages/BepInExPack_Subnautica/BepInExPack_Subnautica/BepInEx/core/BepInEx.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SubnauticaModding/QModManager/HEAD/BepinexPackages/Subnautica_Packages/BepInExPack_Subnautica/BepInExPack_Subnautica/BepInEx/core/BepInEx.dll -------------------------------------------------------------------------------- /BepinexPackages/BelowZero_Packages/BepInExPack_BelowZero/BepInExPack_BelowZero/BepInEx/core/0Harmony109.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SubnauticaModding/QModManager/HEAD/BepinexPackages/BelowZero_Packages/BepInExPack_BelowZero/BepInExPack_BelowZero/BepInEx/core/0Harmony109.dll -------------------------------------------------------------------------------- /BepinexPackages/BelowZero_Packages/BepInExPack_BelowZero/BepInExPack_BelowZero/BepInEx/core/MonoMod.Utils.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SubnauticaModding/QModManager/HEAD/BepinexPackages/BelowZero_Packages/BepInExPack_BelowZero/BepInExPack_BelowZero/BepInEx/core/MonoMod.Utils.dll -------------------------------------------------------------------------------- /BepinexPackages/Both_Packages/MirrorInternalLogs/MirrorInternalLogs/BepInEx/patchers/MirrorInternalLogs.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SubnauticaModding/QModManager/HEAD/BepinexPackages/Both_Packages/MirrorInternalLogs/MirrorInternalLogs/BepInEx/patchers/MirrorInternalLogs.dll -------------------------------------------------------------------------------- /BepinexPackages/Both_Packages/UnityAudioEnabler/UnityAudioEnabler/BepInEx/patchers/UnityAudioEnabler/cldb.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SubnauticaModding/QModManager/HEAD/BepinexPackages/Both_Packages/UnityAudioEnabler/UnityAudioEnabler/BepInEx/patchers/UnityAudioEnabler/cldb.dat -------------------------------------------------------------------------------- /BepinexPackages/Subnautica_Packages/BepInExPack_Subnautica/BepInExPack_Subnautica/BepInEx/core/0Harmony.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SubnauticaModding/QModManager/HEAD/BepinexPackages/Subnautica_Packages/BepInExPack_Subnautica/BepInExPack_Subnautica/BepInEx/core/0Harmony.dll -------------------------------------------------------------------------------- /BepinexPackages/Subnautica_Packages/BepInExPack_Subnautica/BepInExPack_Subnautica/BepInEx/core/0Harmony12.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SubnauticaModding/QModManager/HEAD/BepinexPackages/Subnautica_Packages/BepInExPack_Subnautica/BepInExPack_Subnautica/BepInEx/core/0Harmony12.dll -------------------------------------------------------------------------------- /BepinexPackages/Subnautica_Packages/BepInExPack_Subnautica/BepInExPack_Subnautica/BepInEx/core/0Harmony20.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SubnauticaModding/QModManager/HEAD/BepinexPackages/Subnautica_Packages/BepInExPack_Subnautica/BepInExPack_Subnautica/BepInEx/core/0Harmony20.dll -------------------------------------------------------------------------------- /BepinexPackages/Subnautica_Packages/BepInExPack_Subnautica/BepInExPack_Subnautica/BepInEx/core/Mono.Cecil.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SubnauticaModding/QModManager/HEAD/BepinexPackages/Subnautica_Packages/BepInExPack_Subnautica/BepInExPack_Subnautica/BepInEx/core/Mono.Cecil.dll -------------------------------------------------------------------------------- /BepinexPackages/BelowZero_Packages/BepInExPack_BelowZero/BepInExPack_BelowZero/BepInEx/core/BepInEx.Harmony.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SubnauticaModding/QModManager/HEAD/BepinexPackages/BelowZero_Packages/BepInExPack_BelowZero/BepInExPack_BelowZero/BepInEx/core/BepInEx.Harmony.dll -------------------------------------------------------------------------------- /BepinexPackages/BelowZero_Packages/BepInExPack_BelowZero/BepInExPack_BelowZero/BepInEx/core/HarmonyXInterop.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SubnauticaModding/QModManager/HEAD/BepinexPackages/BelowZero_Packages/BepInExPack_BelowZero/BepInExPack_BelowZero/BepInEx/core/HarmonyXInterop.dll -------------------------------------------------------------------------------- /BepinexPackages/BelowZero_Packages/BepInExPack_BelowZero/BepInExPack_BelowZero/BepInEx/core/Mono.Cecil.Mdb.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SubnauticaModding/QModManager/HEAD/BepinexPackages/BelowZero_Packages/BepInExPack_BelowZero/BepInExPack_BelowZero/BepInEx/core/Mono.Cecil.Mdb.dll -------------------------------------------------------------------------------- /BepinexPackages/BelowZero_Packages/BepInExPack_BelowZero/BepInExPack_BelowZero/BepInEx/core/Mono.Cecil.Pdb.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SubnauticaModding/QModManager/HEAD/BepinexPackages/BelowZero_Packages/BepInExPack_BelowZero/BepInExPack_BelowZero/BepInEx/core/Mono.Cecil.Pdb.dll -------------------------------------------------------------------------------- /BepinexPackages/Subnautica_Packages/BepInExPack_Subnautica/BepInExPack_Subnautica/BepInEx/core/0Harmony109.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SubnauticaModding/QModManager/HEAD/BepinexPackages/Subnautica_Packages/BepInExPack_Subnautica/BepInExPack_Subnautica/BepInEx/core/0Harmony109.dll -------------------------------------------------------------------------------- /BepinexPackages/BelowZero_Packages/BepInExPack_BelowZero/BepInExPack_BelowZero/BepInEx/core/BepInEx.Preloader.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SubnauticaModding/QModManager/HEAD/BepinexPackages/BelowZero_Packages/BepInExPack_BelowZero/BepInExPack_BelowZero/BepInEx/core/BepInEx.Preloader.dll -------------------------------------------------------------------------------- /BepinexPackages/BelowZero_Packages/BepInExPack_BelowZero/BepInExPack_BelowZero/BepInEx/core/Mono.Cecil.Rocks.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SubnauticaModding/QModManager/HEAD/BepinexPackages/BelowZero_Packages/BepInExPack_BelowZero/BepInExPack_BelowZero/BepInEx/core/Mono.Cecil.Rocks.dll -------------------------------------------------------------------------------- /BepinexPackages/Subnautica_Packages/BepInExPack_Subnautica/BepInExPack_Subnautica/BepInEx/core/BepInEx.Harmony.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SubnauticaModding/QModManager/HEAD/BepinexPackages/Subnautica_Packages/BepInExPack_Subnautica/BepInExPack_Subnautica/BepInEx/core/BepInEx.Harmony.dll -------------------------------------------------------------------------------- /BepinexPackages/Subnautica_Packages/BepInExPack_Subnautica/BepInExPack_Subnautica/BepInEx/core/HarmonyXInterop.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SubnauticaModding/QModManager/HEAD/BepinexPackages/Subnautica_Packages/BepInExPack_Subnautica/BepInExPack_Subnautica/BepInEx/core/HarmonyXInterop.dll -------------------------------------------------------------------------------- /BepinexPackages/Subnautica_Packages/BepInExPack_Subnautica/BepInExPack_Subnautica/BepInEx/core/Mono.Cecil.Mdb.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SubnauticaModding/QModManager/HEAD/BepinexPackages/Subnautica_Packages/BepInExPack_Subnautica/BepInExPack_Subnautica/BepInEx/core/Mono.Cecil.Mdb.dll -------------------------------------------------------------------------------- /BepinexPackages/Subnautica_Packages/BepInExPack_Subnautica/BepInExPack_Subnautica/BepInEx/core/Mono.Cecil.Pdb.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SubnauticaModding/QModManager/HEAD/BepinexPackages/Subnautica_Packages/BepInExPack_Subnautica/BepInExPack_Subnautica/BepInEx/core/Mono.Cecil.Pdb.dll -------------------------------------------------------------------------------- /BepinexPackages/Subnautica_Packages/BepInExPack_Subnautica/BepInExPack_Subnautica/BepInEx/core/MonoMod.Utils.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SubnauticaModding/QModManager/HEAD/BepinexPackages/Subnautica_Packages/BepInExPack_Subnautica/BepInExPack_Subnautica/BepInEx/core/MonoMod.Utils.dll -------------------------------------------------------------------------------- /QModManager/Checks/NitroxCheck.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace QModManager.Checks 4 | { 5 | internal static class NitroxCheck 6 | { 7 | internal static bool IsRunning => Environment.GetEnvironmentVariable("NITROX_LAUNCHER_PATH") is not null; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /BepinexPackages/Subnautica_Packages/BepInExPack_Subnautica/BepInExPack_Subnautica/BepInEx/core/BepInEx.Preloader.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SubnauticaModding/QModManager/HEAD/BepinexPackages/Subnautica_Packages/BepInExPack_Subnautica/BepInExPack_Subnautica/BepInEx/core/BepInEx.Preloader.dll -------------------------------------------------------------------------------- /BepinexPackages/Subnautica_Packages/BepInExPack_Subnautica/BepInExPack_Subnautica/BepInEx/core/Mono.Cecil.Rocks.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SubnauticaModding/QModManager/HEAD/BepinexPackages/Subnautica_Packages/BepInExPack_Subnautica/BepInExPack_Subnautica/BepInEx/core/Mono.Cecil.Rocks.dll -------------------------------------------------------------------------------- /BepinexPackages/BelowZero_Packages/BepInExPack_BelowZero/BepInExPack_BelowZero/BepInEx/core/MonoMod.RuntimeDetour.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SubnauticaModding/QModManager/HEAD/BepinexPackages/BelowZero_Packages/BepInExPack_BelowZero/BepInExPack_BelowZero/BepInEx/core/MonoMod.RuntimeDetour.dll -------------------------------------------------------------------------------- /BepinexPackages/Subnautica_Packages/BepInExPack_Subnautica_Experimental/BepInExPack_Subnautica_Experimental/winhttp.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SubnauticaModding/QModManager/HEAD/BepinexPackages/Subnautica_Packages/BepInExPack_Subnautica_Experimental/BepInExPack_Subnautica_Experimental/winhttp.dll -------------------------------------------------------------------------------- /BepinexPackages/Subnautica_Packages/QModManager_Exp/README.md: -------------------------------------------------------------------------------- 1 | ## QModManager 2 | 3 | ### Config based patch management for Subnautica - Experimental Branch (Expect Bugs!) 4 | ___ 5 | 6 | **For instructions on how to create a mod, see the [wiki](https://github.com/SubnauticaModding/QModManager/wiki)**. -------------------------------------------------------------------------------- /BepinexPackages/Both_Packages/UnityAudioEnabler/UnityAudioEnabler/BepInEx/patchers/UnityAudioEnabler/AssetsTools.NET.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SubnauticaModding/QModManager/HEAD/BepinexPackages/Both_Packages/UnityAudioEnabler/UnityAudioEnabler/BepInEx/patchers/UnityAudioEnabler/AssetsTools.NET.dll -------------------------------------------------------------------------------- /BepinexPackages/Subnautica_Packages/BepInExPack_Subnautica/BepInExPack_Subnautica/BepInEx/core/MonoMod.RuntimeDetour.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SubnauticaModding/QModManager/HEAD/BepinexPackages/Subnautica_Packages/BepInExPack_Subnautica/BepInExPack_Subnautica/BepInEx/core/MonoMod.RuntimeDetour.dll -------------------------------------------------------------------------------- /BepinexPackages/BelowZero_Packages/QModManager_Exp/README.md: -------------------------------------------------------------------------------- 1 | ## QModManager 2 | 3 | ### Config based patch management for Subnautica: Below Zero - Experimental Branch (Expect Bugs!) 4 | ___ 5 | 6 | **For instructions on how to create a mod, see the [wiki](https://github.com/SubnauticaModding/QModManager/wiki)**. -------------------------------------------------------------------------------- /BepinexPackages/Subnautica_Packages/BepInExPack_Subnautica/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "BepInExPack_Subnautica", 3 | "version_number": "5.4.1901", 4 | "website_url": "https://github.com/BepInEx/BepInEx", 5 | "description": "BepInEx pack for Subnautica. Preconfigured", 6 | "dependencies": [] 7 | } -------------------------------------------------------------------------------- /BepinexPackages/BelowZero_Packages/BepInExPack_BelowZero/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "BepInExPack_BelowZero", 3 | "version_number": "5.4.1901", 4 | "website_url": "https://github.com/BepInEx/BepInEx", 5 | "description": "BepInEx pack for Subnautica BelowZero. Preconfigured", 6 | "dependencies": [] 7 | } -------------------------------------------------------------------------------- /BepinexPackages/Both_Packages/MirrorInternalLogs/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "MirrorInternalLogs", 3 | "version_number": "9.0.1001", 4 | "website_url": "https://github.com/BepInEx/BepInEx.Debug", 5 | "description": "MirrorInternalLogs pack for Subnautica. Preconfigured", 6 | "dependencies": [ ] 7 | } -------------------------------------------------------------------------------- /BepinexPackages/Both_Packages/UnityAudioEnabler/UnityAudioEnabler/BepInEx/patchers/UnityAudioEnabler/QModManager.UnityAudioFixer.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SubnauticaModding/QModManager/HEAD/BepinexPackages/Both_Packages/UnityAudioEnabler/UnityAudioEnabler/BepInEx/patchers/UnityAudioEnabler/QModManager.UnityAudioFixer.dll -------------------------------------------------------------------------------- /BepinexPackages/Subnautica_Packages/BepInExPack_Subnautica_Experimental/BepInExPack_Subnautica_Experimental/BepInEx/core/0Harmony.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SubnauticaModding/QModManager/HEAD/BepinexPackages/Subnautica_Packages/BepInExPack_Subnautica_Experimental/BepInExPack_Subnautica_Experimental/BepInEx/core/0Harmony.dll -------------------------------------------------------------------------------- /BepinexPackages/Subnautica_Packages/BepInExPack_Subnautica_Experimental/BepInExPack_Subnautica_Experimental/BepInEx/core/BepInEx.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SubnauticaModding/QModManager/HEAD/BepinexPackages/Subnautica_Packages/BepInExPack_Subnautica_Experimental/BepInExPack_Subnautica_Experimental/BepInEx/core/BepInEx.dll -------------------------------------------------------------------------------- /BepinexPackages/Subnautica_Packages/BepInExPack_Subnautica_Experimental/BepInExPack_Subnautica_Experimental/BepInEx/core/0Harmony109.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SubnauticaModding/QModManager/HEAD/BepinexPackages/Subnautica_Packages/BepInExPack_Subnautica_Experimental/BepInExPack_Subnautica_Experimental/BepInEx/core/0Harmony109.dll -------------------------------------------------------------------------------- /BepinexPackages/Subnautica_Packages/BepInExPack_Subnautica_Experimental/BepInExPack_Subnautica_Experimental/BepInEx/core/0Harmony12.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SubnauticaModding/QModManager/HEAD/BepinexPackages/Subnautica_Packages/BepInExPack_Subnautica_Experimental/BepInExPack_Subnautica_Experimental/BepInEx/core/0Harmony12.dll -------------------------------------------------------------------------------- /BepinexPackages/Subnautica_Packages/BepInExPack_Subnautica_Experimental/BepInExPack_Subnautica_Experimental/BepInEx/core/0Harmony20.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SubnauticaModding/QModManager/HEAD/BepinexPackages/Subnautica_Packages/BepInExPack_Subnautica_Experimental/BepInExPack_Subnautica_Experimental/BepInEx/core/0Harmony20.dll -------------------------------------------------------------------------------- /BepinexPackages/Subnautica_Packages/BepInExPack_Subnautica_Experimental/BepInExPack_Subnautica_Experimental/BepInEx/core/Mono.Cecil.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SubnauticaModding/QModManager/HEAD/BepinexPackages/Subnautica_Packages/BepInExPack_Subnautica_Experimental/BepInExPack_Subnautica_Experimental/BepInEx/core/Mono.Cecil.dll -------------------------------------------------------------------------------- /BepinexPackages/Subnautica_Packages/BepInExPack_Subnautica_Experimental/BepInExPack_Subnautica_Experimental/BepInEx/core/Mono.Cecil.Mdb.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SubnauticaModding/QModManager/HEAD/BepinexPackages/Subnautica_Packages/BepInExPack_Subnautica_Experimental/BepInExPack_Subnautica_Experimental/BepInEx/core/Mono.Cecil.Mdb.dll -------------------------------------------------------------------------------- /BepinexPackages/Subnautica_Packages/BepInExPack_Subnautica_Experimental/BepInExPack_Subnautica_Experimental/BepInEx/core/Mono.Cecil.Pdb.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SubnauticaModding/QModManager/HEAD/BepinexPackages/Subnautica_Packages/BepInExPack_Subnautica_Experimental/BepInExPack_Subnautica_Experimental/BepInEx/core/Mono.Cecil.Pdb.dll -------------------------------------------------------------------------------- /BepinexPackages/Subnautica_Packages/BepInExPack_Subnautica_Experimental/BepInExPack_Subnautica_Experimental/BepInEx/core/MonoMod.Utils.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SubnauticaModding/QModManager/HEAD/BepinexPackages/Subnautica_Packages/BepInExPack_Subnautica_Experimental/BepInExPack_Subnautica_Experimental/BepInEx/core/MonoMod.Utils.dll -------------------------------------------------------------------------------- /BepinexPackages/Subnautica_Packages/BepInExPack_Subnautica_Experimental/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "BepInExPack_Subnautica_Experimental", 3 | "version_number": "5.4.1901", 4 | "website_url": "https://github.com/BepInEx/BepInEx", 5 | "description": "BepInEx pack for Subnautica. Preconfigured", 6 | "dependencies": [] 7 | } -------------------------------------------------------------------------------- /BepinexPackages/Subnautica_Packages/BepInExPack_Subnautica_Experimental/BepInExPack_Subnautica_Experimental/BepInEx/core/BepInEx.Harmony.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SubnauticaModding/QModManager/HEAD/BepinexPackages/Subnautica_Packages/BepInExPack_Subnautica_Experimental/BepInExPack_Subnautica_Experimental/BepInEx/core/BepInEx.Harmony.dll -------------------------------------------------------------------------------- /BepinexPackages/Subnautica_Packages/BepInExPack_Subnautica_Experimental/BepInExPack_Subnautica_Experimental/BepInEx/core/HarmonyXInterop.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SubnauticaModding/QModManager/HEAD/BepinexPackages/Subnautica_Packages/BepInExPack_Subnautica_Experimental/BepInExPack_Subnautica_Experimental/BepInEx/core/HarmonyXInterop.dll -------------------------------------------------------------------------------- /BepinexPackages/Subnautica_Packages/BepInExPack_Subnautica_Experimental/BepInExPack_Subnautica_Experimental/BepInEx/core/Mono.Cecil.Rocks.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SubnauticaModding/QModManager/HEAD/BepinexPackages/Subnautica_Packages/BepInExPack_Subnautica_Experimental/BepInExPack_Subnautica_Experimental/BepInEx/core/Mono.Cecil.Rocks.dll -------------------------------------------------------------------------------- /BepinexPackages/Subnautica_Packages/BepInExPack_Subnautica_Experimental/BepInExPack_Subnautica_Experimental/BepInEx/core/BepInEx.Preloader.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SubnauticaModding/QModManager/HEAD/BepinexPackages/Subnautica_Packages/BepInExPack_Subnautica_Experimental/BepInExPack_Subnautica_Experimental/BepInEx/core/BepInEx.Preloader.dll -------------------------------------------------------------------------------- /QModManager/Patching/IManifestValidator.cs: -------------------------------------------------------------------------------- 1 | namespace QModManager.Patching 2 | { 3 | internal interface IManifestValidator 4 | { 5 | void ValidateBasicManifest(QMod mod); 6 | 7 | void CheckRequiredMods(QMod mod); 8 | void FindPatchMethods(QMod qMod); 9 | void LoadAssembly(QMod mod); 10 | } 11 | } -------------------------------------------------------------------------------- /BepinexPackages/Subnautica_Packages/BepInExPack_Subnautica_Experimental/BepInExPack_Subnautica_Experimental/BepInEx/core/MonoMod.RuntimeDetour.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SubnauticaModding/QModManager/HEAD/BepinexPackages/Subnautica_Packages/BepInExPack_Subnautica_Experimental/BepInExPack_Subnautica_Experimental/BepInEx/core/MonoMod.RuntimeDetour.dll -------------------------------------------------------------------------------- /Examples/ExampleMod.cs: -------------------------------------------------------------------------------- 1 | namespace QModManager.Examples 2 | { 3 | // Include this using 4 | using QModManager.API.ModLoading; 5 | 6 | [QModCore] 7 | public static class ExampleMod 8 | { 9 | [QModPatch] 10 | public static void Patch() 11 | { 12 | // Perform standard patching here 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /QModManager/Patching/IPluginCollection.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using BepInEx; 3 | 4 | namespace QModManager.Patching 5 | { 6 | internal interface IPluginCollection 7 | { 8 | bool IsKnownPlugin(string id); 9 | 10 | void MarkAsRequired(string id); 11 | 12 | IEnumerable AllPlugins { get; } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /BepinexPackages/Both_Packages/UnityAudioEnabler/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "UnityAudioEnabler", 3 | "version_number": "4.3.1001", 4 | "website_url": "https://github.com/SubnauticaModding/QModManager/tree/master/UnityAudioFixer", 5 | "description": "Audio enabler for both Subnautica and BelowZero to allow mods to use Unity Audio instead of FMOD", 6 | "dependencies": [ ] 7 | } -------------------------------------------------------------------------------- /NuGet.Config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Unit Tests/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /QModManager/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug-report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve QModManager 4 | title: '' 5 | labels: 'Type: Bug' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | 12 | 13 | **Screenshots** 14 | 15 | 16 | **Additional info** 17 | 18 | -------------------------------------------------------------------------------- /UnityAudioFixer/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /QModPluginEmulator/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /OculusNewtonsoftRedirect/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/installation-issue.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Installation issue 3 | about: Report a problem while trying to install QModManager 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the problem** 11 | 12 | 13 | **Screenshots** 14 | 15 | 16 | **Additional info** 17 | 18 | -------------------------------------------------------------------------------- /BepinexPackages/BelowZero_Packages/QModManager/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "QModManager_BZ", 3 | "version_number": "4.4.4", 4 | "website_url": "https://github.com/SubnauticaModding/QModManager", 5 | "description": "QModManager is an intermidiate loader for mods made for the QMM system.", 6 | "dependencies": [ 7 | "Subnautica_Modding-BepInExPack_BelowZero-5.4.19", 8 | "Subnautica_Modding-UnityAudioEnabler-4.3.1", 9 | "Subnautica_Modding-MirrorInternalLogs-9.0.0" 10 | ] 11 | } -------------------------------------------------------------------------------- /BepinexPackages/Subnautica_Packages/QModManager/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "QModManager", 3 | "version_number": "4.4.4", 4 | "website_url": "https://github.com/SubnauticaModding/QModManager", 5 | "description": "QModManager is an intermidiate loader for mods made for the QMM system.", 6 | "dependencies": [ 7 | "Subnautica_Modding-BepInExPack_Subnautica-5.4.19", 8 | "Subnautica_Modding-UnityAudioEnabler-4.3.1", 9 | "Subnautica_Modding-MirrorInternalLogs-9.0.0" 10 | ] 11 | } -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/general-issue.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: General issue 3 | about: Report an issue with QModManager that is not necessarily a bug 4 | title: '' 5 | labels: 'Type: Issue' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the issue** 11 | 12 | 13 | **Screenshots** 14 | 15 | 16 | **Additional info** 17 | 18 | -------------------------------------------------------------------------------- /BepinexPackages/Subnautica_Packages/QModManager_Exp/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "QModManager_Experimental", 3 | "version_number": "4.4.4", 4 | "website_url": "https://github.com/SubnauticaModding/QModManager", 5 | "description": "QModManager is an intermidiate loader for mods made for the QMM system.", 6 | "dependencies": [ 7 | "Subnautica_Modding-BepInExPack_Subnautica-5.4.19", 8 | "Subnautica_Modding-UnityAudioEnabler-4.3.1", 9 | "Subnautica_Modding-MirrorInternalLogs-9.0.0" 10 | ] 11 | } -------------------------------------------------------------------------------- /BepinexPackages/BelowZero_Packages/QModManager_Exp/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "QModManager_BZ_Experimental", 3 | "version_number": "4.4.4", 4 | "website_url": "https://github.com/SubnauticaModding/QModManager", 5 | "description": "QModManager is an intermidiate loader for mods made for the QMM system.", 6 | "dependencies": [ 7 | "Subnautica_Modding-BepInExPack_BelowZero-5.4.19", 8 | "Subnautica_Modding-UnityAudioEnabler-4.3.1", 9 | "Subnautica_Modding-MirrorInternalLogs-9.0.0" 10 | ] 11 | } -------------------------------------------------------------------------------- /QModManager/Patching/FatalPatchingException.cs: -------------------------------------------------------------------------------- 1 | namespace QModManager.Patching 2 | { 3 | using System; 4 | 5 | internal class FatalPatchingException : Exception 6 | { 7 | public FatalPatchingException() 8 | { 9 | } 10 | 11 | public FatalPatchingException(string message) : base(message) 12 | { 13 | } 14 | 15 | public FatalPatchingException(string message, Exception innerException) : base(message, innerException) 16 | { 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /QModManager/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /OculusNewtonsoftRedirect/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Dependencies/BZ.EXP/BepInEx.cfg: -------------------------------------------------------------------------------- 1 | [Preloader.Entrypoint] 2 | 3 | ## The local filename of the assembly to target. 4 | # Setting type: String 5 | # Default value: UnityEngine.CoreModule.dll 6 | Assembly = Assembly-CSharp.dll 7 | 8 | ## The name of the type in the entrypoint assembly to search for the entrypoint method. 9 | # Setting type: String 10 | # Default value: Application 11 | Type = PreStartScreen 12 | 13 | ## The name of the method in the specified entrypoint assembly and type to hook and load Chainloader from. 14 | # Setting type: String 15 | # Default value: .cctor 16 | Method = Start 17 | -------------------------------------------------------------------------------- /Dependencies/SN.EXP/BepInEx.cfg: -------------------------------------------------------------------------------- 1 | [Preloader.Entrypoint] 2 | 3 | ## The local filename of the assembly to target. 4 | # Setting type: String 5 | # Default value: UnityEngine.CoreModule.dll 6 | Assembly = Assembly-CSharp.dll 7 | 8 | ## The name of the type in the entrypoint assembly to search for the entrypoint method. 9 | # Setting type: String 10 | # Default value: Application 11 | Type = PreStartScreen 12 | 13 | ## The name of the method in the specified entrypoint assembly and type to hook and load Chainloader from. 14 | # Setting type: String 15 | # Default value: .cctor 16 | Method = Start 17 | -------------------------------------------------------------------------------- /Dependencies/BZ.STABLE/BepInEx.cfg: -------------------------------------------------------------------------------- 1 | [Preloader.Entrypoint] 2 | 3 | ## The local filename of the assembly to target. 4 | # Setting type: String 5 | # Default value: UnityEngine.CoreModule.dll 6 | Assembly = Assembly-CSharp.dll 7 | 8 | ## The name of the type in the entrypoint assembly to search for the entrypoint method. 9 | # Setting type: String 10 | # Default value: Application 11 | Type = PreStartScreen 12 | 13 | ## The name of the method in the specified entrypoint assembly and type to hook and load Chainloader from. 14 | # Setting type: String 15 | # Default value: .cctor 16 | Method = Start 17 | -------------------------------------------------------------------------------- /Dependencies/SN.STABLE/BepInEx.cfg: -------------------------------------------------------------------------------- 1 | [Preloader.Entrypoint] 2 | 3 | ## The local filename of the assembly to target. 4 | # Setting type: String 5 | # Default value: UnityEngine.CoreModule.dll 6 | Assembly = Assembly-CSharp.dll 7 | 8 | ## The name of the type in the entrypoint assembly to search for the entrypoint method. 9 | # Setting type: String 10 | # Default value: Application 11 | Type = SystemsSpawner 12 | 13 | ## The name of the method in the specified entrypoint assembly and type to hook and load Chainloader from. 14 | # Setting type: String 15 | # Default value: .cctor 16 | Method = Awake 17 | -------------------------------------------------------------------------------- /MacOSX/dist/Resources/welcome.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |
6 |
7 |

This will install QModManager 4.0.2.3 on your computer. You will be guided through the steps necessary to install this software.

8 |
9 |

Click “Continue" to continue the setup

10 |
11 | 12 | 13 | -------------------------------------------------------------------------------- /QModManager/Patching/PatchingOrder.cs: -------------------------------------------------------------------------------- 1 | namespace QModManager.Patching 2 | { 3 | internal enum PatchingOrder 4 | { 5 | MetaPreInitialize = -2, 6 | 7 | /// 8 | /// For pre-initialize patch methods 9 | /// 10 | PreInitialize = -1, 11 | 12 | /// 13 | /// For normal patch methods 14 | /// 15 | NormalInitialize = 0, 16 | 17 | /// 18 | /// For post-initialize patch methods 19 | /// 20 | PostInitialize = 1, 21 | 22 | MetaPostInitialize = 2 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Unit Tests/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.InteropServices; 3 | 4 | [assembly: AssemblyTitle("QMMTests")] 5 | [assembly: AssemblyDescription("")] 6 | [assembly: AssemblyConfiguration("")] 7 | [assembly: AssemblyCompany("")] 8 | [assembly: AssemblyProduct("QMMTests")] 9 | [assembly: AssemblyCopyright("Copyright © 2018")] 10 | [assembly: AssemblyTrademark("")] 11 | [assembly: AssemblyCulture("")] 12 | 13 | [assembly: ComVisible(false)] 14 | 15 | [assembly: Guid("d433a819-73db-4e6c-ae73-d3ded793bd4e")] 16 | 17 | [assembly: AssemblyVersion("1.0.0.0")] 18 | [assembly: AssemblyFileVersion("1.0.0.0")] 19 | -------------------------------------------------------------------------------- /UnityAudioFixer/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /QModPluginEmulator/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /BepinexPackages/BelowZero_Packages/BepInExPack_BelowZero/BepInExPack_BelowZero/BepInEx/config/BepInEx.cfg: -------------------------------------------------------------------------------- 1 | [Preloader.Entrypoint] 2 | 3 | ## The local filename of the assembly to target. 4 | # Setting type: String 5 | # Default value: UnityEngine.CoreModule.dll 6 | Assembly = Assembly-CSharp.dll 7 | 8 | ## The name of the type in the entrypoint assembly to search for the entrypoint method. 9 | # Setting type: String 10 | # Default value: Application 11 | Type = PreStartScreen 12 | 13 | ## The name of the method in the specified entrypoint assembly and type to hook and load Chainloader from. 14 | # Setting type: String 15 | # Default value: .cctor 16 | Method = Start 17 | -------------------------------------------------------------------------------- /BepinexPackages/Subnautica_Packages/BepInExPack_Subnautica/BepInExPack_Subnautica/BepInEx/config/BepInEx.cfg: -------------------------------------------------------------------------------- 1 | [Preloader.Entrypoint] 2 | 3 | ## The local filename of the assembly to target. 4 | # Setting type: String 5 | # Default value: UnityEngine.CoreModule.dll 6 | Assembly = Assembly-CSharp.dll 7 | 8 | ## The name of the type in the entrypoint assembly to search for the entrypoint method. 9 | # Setting type: String 10 | # Default value: Application 11 | Type = SystemsSpawner 12 | 13 | ## The name of the method in the specified entrypoint assembly and type to hook and load Chainloader from. 14 | # Setting type: String 15 | # Default value: .cctor 16 | Method = Awake 17 | -------------------------------------------------------------------------------- /QModManager/HarmonyPatches/EnableAchievements.cs: -------------------------------------------------------------------------------- 1 | // Original mod by AlexejheroYTB 2 | namespace QModManager.HarmonyPatches.EnableAchievements 3 | { 4 | using HarmonyLib; 5 | 6 | [HarmonyPatch(typeof(GameAchievements), nameof(GameAchievements.Unlock))] 7 | internal static class GameAchievements_Unlock_Patch 8 | { 9 | // This patch allows achievements to be earned even if console commands were used 10 | 11 | [HarmonyPrefix] 12 | internal static bool Prefix(GameAchievements.Id id) 13 | { 14 | PlatformUtils.main.GetServices().UnlockAchievement(id); 15 | return false; 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /BepinexPackages/Subnautica_Packages/BepInExPack_Subnautica_Experimental/BepInExPack_Subnautica_Experimental/BepInEx/config/BepInEx.cfg: -------------------------------------------------------------------------------- 1 | [Preloader.Entrypoint] 2 | 3 | ## The local filename of the assembly to target. 4 | # Setting type: String 5 | # Default value: UnityEngine.CoreModule.dll 6 | Assembly = Assembly-CSharp.dll 7 | 8 | ## The name of the type in the entrypoint assembly to search for the entrypoint method. 9 | # Setting type: String 10 | # Default value: Application 11 | Type = PreStartScreen 12 | 13 | ## The name of the method in the specified entrypoint assembly and type to hook and load Chainloader from. 14 | # Setting type: String 15 | # Default value: .cctor 16 | Method = Start 17 | -------------------------------------------------------------------------------- /QModManager/DataStructures/ISortable.cs: -------------------------------------------------------------------------------- 1 | namespace QModManager.DataStructures 2 | { 3 | using System; 4 | using System.Collections.Generic; 5 | 6 | /// 7 | /// Requirements to function within the 8 | /// 9 | /// The ID type. 10 | internal interface ISortable 11 | where IdType : IEquatable, IComparable 12 | { 13 | IdType Id { get; } 14 | 15 | IList RequiredDependencies { get; } 16 | IList LoadBeforePreferences { get; } 17 | IList LoadAfterPreferences { get; } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /QModManager/Patching/IQModFactory.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace QModManager.Patching 4 | { 5 | internal interface IQModFactory 6 | { 7 | /// 8 | /// Searches through all folders in the provided directory and returns an ordered list of mods to load. 9 | /// Mods that cannot be loaded will have an unsuccessful value. 10 | /// 11 | /// The QMods directory 12 | /// A new, sorted ready to be initialized or skipped. 13 | List BuildModLoadingList(string qmodsDirectory); 14 | } 15 | } -------------------------------------------------------------------------------- /QModManager/HarmonyPatches/UpdateDeveloperMode.cs: -------------------------------------------------------------------------------- 1 | namespace QModManager.HarmonyPatches.UpdateDeveloperMode 2 | { 3 | using HarmonyLib; 4 | using QModManager.Utility; 5 | 6 | [HarmonyPatch(typeof(IngameMenu), nameof(IngameMenu.Open))] 7 | internal static class IngameMenu_Open_Patch 8 | { 9 | // This patch updates developer mode based on the mod option 10 | 11 | [HarmonyPostfix] 12 | internal static void Postfix(IngameMenu __instance) 13 | { 14 | var devMode = Config.EnableDevMode; 15 | 16 | IngameMenu.main.developerMode = devMode; 17 | IngameMenu.main.developerButton.gameObject.SetActive(devMode); 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /QModPluginEmulator/QModPlugin.cs: -------------------------------------------------------------------------------- 1 | using BepInEx; 2 | using QModManager.API; 3 | 4 | namespace QModManager 5 | { 6 | [BepInPlugin("QModManager.QModPlugin", "QModPlugin", "1.0")] 7 | public class QModPlugin : BaseUnityPlugin 8 | { 9 | public IQMod QMod { get; private set; } 10 | 11 | void Awake() 12 | { 13 | if (QModPluginGenerator.QModsToLoadById.TryGetValue(Info.Metadata.GUID, out var mod)) 14 | { 15 | QMod = mod; 16 | } 17 | else 18 | { 19 | Logger.LogError($"Could not find QMod with ID: {Info.Metadata.GUID}"); 20 | DestroyImmediate(this); 21 | } 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /QModManager/API/QModGame.cs: -------------------------------------------------------------------------------- 1 | namespace QModManager.API 2 | { 3 | using System; 4 | 5 | /// 6 | /// Identifies the Subnautica games. 7 | /// 8 | [Flags] 9 | public enum QModGame 10 | { 11 | /// 12 | /// No game. 13 | /// 14 | None = 0b00, 15 | 16 | /// 17 | /// Subnautica. 18 | /// 19 | Subnautica = 0b01, 20 | 21 | /// 22 | /// Subnautica: Below Zero. 23 | /// 24 | BelowZero = 0b10, 25 | 26 | /// 27 | /// Both Subnautica and Below Zero. 28 | /// 29 | Both = Subnautica | BelowZero, 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature-request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for QModManager 4 | title: '' 5 | labels: 'Type: Enhancement' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | 12 | 13 | **Describe the solution you'd like** 14 | 15 | 16 | **Describe alternatives you've considered** 17 | 18 | 19 | **Additional info** 20 | 21 | -------------------------------------------------------------------------------- /QModManager/API/ModLoading/QModCoreAttribute.cs: -------------------------------------------------------------------------------- 1 | namespace QModManager.API.ModLoading 2 | { 3 | using System; 4 | 5 | /// 6 | /// Identifies the patching class for your QMod. 7 | /// 8 | /// 9 | /// 10 | /// 11 | /// 12 | [AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = false)] 13 | public class QModCoreAttribute : Attribute 14 | { 15 | /// 16 | /// Initializes a new instance of the class. 17 | /// 18 | public QModCoreAttribute() 19 | { 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /QModManager/Patching/IQModSerialiable.cs: -------------------------------------------------------------------------------- 1 | namespace QModManager.Patching 2 | { 3 | using System.Collections.Generic; 4 | 5 | /// 6 | /// Enforces the requirements of the mod.json file for legacy mod loading. 7 | /// 8 | internal interface IQModSerialiable 9 | { 10 | string Id { get; set; } 11 | string DisplayName { get; set; } 12 | string Author { get; set; } 13 | string Version { get; set; } 14 | string[] Dependencies { get; set; } 15 | Dictionary VersionDependencies { get; set; } 16 | string[] LoadBefore { get; set; } 17 | string[] LoadAfter { get; set; } 18 | bool Enable { get; set; } 19 | string Game { get; set; } 20 | string AssemblyName { get; set; } 21 | string EntryMethod { get; set; } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /QModManager/API/ModLoading/QModPatch.cs: -------------------------------------------------------------------------------- 1 | namespace QModManager.API.ModLoading 2 | { 3 | using System; 4 | using QModManager.Patching; 5 | 6 | /// 7 | /// Identifies a normal patch method for a QMod. 8 | /// This method must be public, must take no parameters, and must return . 9 | /// ALERT: The class that defines this method must have a attribute. 10 | /// 11 | /// 12 | public sealed class QModPatch : QModPatchAttributeBase 13 | { 14 | /// 15 | /// Initializes a new instance of the class for normal patching. 16 | /// 17 | public QModPatch() : base(PatchingOrder.NormalInitialize) 18 | { 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /BepinexPackages/Both_Packages/MirrorInternalLogs/README.md: -------------------------------------------------------------------------------- 1 | ### MirrorInternalLogs 2 | 3 | This preloader patcher allows to capture and mirror Unity internal debug logs (i.e. the contents of `output_log.txt`). 4 | Preloader patch provides a public event one can listen to which will receive all Unity logs, including internal debug logs that are only output to `output_log.txt`. 5 | 6 | Unlike output log, which can be disabled in the game, this mirror will always capture said debug logs. If Unity already outputs `output_log.txt`, 7 | this plugin will simply create a copy of it in a more accessible place that `%APPDATA%`. 8 | 9 | **How to use:** This is a preloader patcher. Put the compiled DLL into `BepInEx/patchers`. 10 | 11 | 12 | ### Pre - Configured 13 | By default, logs are output to `unity_log.txt` but we have included a configuration file to name it `{process}-Modding-Log.txt`. 14 | 15 | 16 | -------------------------------------------------------------------------------- /QModManager/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | [assembly: AssemblyTitle("QModManager")] 6 | [assembly: AssemblyDescription("Config based patch management for Subnautica and Subnautica: Below Zero")] 7 | [assembly: AssemblyConfiguration("")] 8 | [assembly: AssemblyCompany("Subnautica Modding")] 9 | [assembly: AssemblyProduct("QModManager")] 10 | [assembly: AssemblyCopyright("")] 11 | [assembly: AssemblyTrademark("")] 12 | [assembly: AssemblyCulture("")] 13 | 14 | [assembly: ComVisible(false)] 15 | 16 | [assembly: AssemblyVersion("4.4.4")] 17 | [assembly: AssemblyFileVersion("4.4.4")] 18 | 19 | [assembly: InternalsVisibleTo("QMMTests")] 20 | [assembly: InternalsVisibleTo("QModManager")] 21 | [assembly: InternalsVisibleTo("QModManager.QMMLoader")] 22 | [assembly: InternalsVisibleTo("QModManager.QModPluginGenerator")] 23 | -------------------------------------------------------------------------------- /BepinexPackages/Both_Packages/MirrorInternalLogs/MirrorInternalLogs/BepInEx/config/MirrorInternalLogs.cfg: -------------------------------------------------------------------------------- 1 | [Logging.File] 2 | 3 | ## Enables logging to file 4 | # Setting type: Boolean 5 | # Default value: true 6 | Enabled = true 7 | 8 | ## Path to the generated log file. If path contains directories, the directories are created automatically. 9 | ## The string supports templated inside curly brackets like "log_{timestamp}.log" 10 | ## 11 | ## Supported template variables: 12 | ## timestamp - unix timestamp 13 | ## process - process name 14 | ## 15 | # Setting type: String 16 | # Default value: unity_log.txt 17 | Path = qmodmanager_log-{process}.txt 18 | 19 | ## Format for log messages. Accepts same input as String.Format. 20 | ## Available parameters: 21 | ## 0 - Log level as reported by unity 22 | ## 1 - The actual log message 23 | ## 2 - Current timestamp as DateTime object 24 | ## 25 | # Setting type: String 26 | # Default value: [{0}] {1} 27 | LogFormat = {1} 28 | 29 | -------------------------------------------------------------------------------- /QModManager/Patching/ModStatus.cs: -------------------------------------------------------------------------------- 1 | namespace QModManager.Patching 2 | { 3 | internal enum ModStatus 4 | { 5 | NitroxIncompatible = -5, 6 | Obsolete = -4, 7 | Merged = -3, 8 | //CanceledByAuthor = -2, 9 | CanceledByUser = -1, 10 | Success = 0, 11 | PatchMethodFailed = 1, 12 | TooManyPatchMethods = 2, 13 | MissingPatchMethod = 3, 14 | //CircularLoadOrder = 4, 15 | //CircularDependency = 5, 16 | MissingDependency = 6, 17 | OutOfDateDependency = 7, 18 | CurrentGameNotSupported = 8, 19 | FailedIdentifyingGame = 9, 20 | DuplicateIdDetected = 10, 21 | DuplicatePatchAttemptDetected = 11, 22 | MissingManifest = 12, 23 | ManifestParsingError = 13, 24 | InvalidCoreInfo = 14, 25 | MissingAssemblyFile = 15, 26 | FailedLoadingAssemblyFile = 16, 27 | UnidentifiedMod = 17, 28 | BannedID = 18, 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /BepinexPackages/BelowZero_Packages/BepInExPack_BelowZero/BepInExPack_BelowZero/doorstop_config.ini: -------------------------------------------------------------------------------- 1 | [UnityDoorstop] 2 | # Specifies whether assembly executing is enabled 3 | enabled=true 4 | # Specifies the path (absolute, or relative to the game's exe) to the DLL/EXE that should be executed by Doorstop 5 | targetAssembly=BepInEx\core\BepInEx.Preloader.dll 6 | # Specifies whether Unity's output log should be redirected to \output_log.txt 7 | redirectOutputLog=false 8 | # If enabled, DOORSTOP_DISABLE env var value is ignored 9 | # USE THIS ONLY WHEN ASKED TO OR YOU KNOW WHAT THIS MEANS 10 | ignoreDisableSwitch=false 11 | # Overrides default Mono DLL search path 12 | # Sometimes it is needed to instruct Mono to seek its assemblies from a different path 13 | # (e.g. mscorlib is stripped in original game) 14 | # This option causes Mono to seek mscorlib and core libraries from a different folder before Managed 15 | # Original Managed folder is added as a secondary folder in the search path 16 | dllSearchPathOverride= -------------------------------------------------------------------------------- /BepinexPackages/Subnautica_Packages/BepInExPack_Subnautica/BepInExPack_Subnautica/doorstop_config.ini: -------------------------------------------------------------------------------- 1 | [UnityDoorstop] 2 | # Specifies whether assembly executing is enabled 3 | enabled=true 4 | # Specifies the path (absolute, or relative to the game's exe) to the DLL/EXE that should be executed by Doorstop 5 | targetAssembly=BepInEx\core\BepInEx.Preloader.dll 6 | # Specifies whether Unity's output log should be redirected to \output_log.txt 7 | redirectOutputLog=false 8 | # If enabled, DOORSTOP_DISABLE env var value is ignored 9 | # USE THIS ONLY WHEN ASKED TO OR YOU KNOW WHAT THIS MEANS 10 | ignoreDisableSwitch=false 11 | # Overrides default Mono DLL search path 12 | # Sometimes it is needed to instruct Mono to seek its assemblies from a different path 13 | # (e.g. mscorlib is stripped in original game) 14 | # This option causes Mono to seek mscorlib and core libraries from a different folder before Managed 15 | # Original Managed folder is added as a secondary folder in the search path 16 | dllSearchPathOverride= -------------------------------------------------------------------------------- /Unit Tests/RequiredQModTests.cs: -------------------------------------------------------------------------------- 1 | namespace QMMTests 2 | { 3 | using System; 4 | using NUnit.Framework; 5 | using QModManager.API; 6 | 7 | [TestFixture] 8 | internal class RequiredQModTests 9 | { 10 | [TestCase("2.8")] 11 | [TestCase("2.8.0")] 12 | public void WhenVersionStringIsTrimmed_EqualsExplicitVersion(string trimmedVersionString) 13 | { 14 | var explicitVersion = new RequiredQMod("SMLHelper", "2.8.0.0"); 15 | 16 | var trimmedVersion = new RequiredQMod("SMLHelper", trimmedVersionString); 17 | 18 | Assert.AreEqual(explicitVersion.MinimumVersion, trimmedVersion.MinimumVersion); 19 | } 20 | 21 | [Test] 22 | public void WhenVersionStringIsMissing_EqualsVersionZero() 23 | { 24 | var required = new RequiredQMod("SomeMod"); 25 | 26 | var expectedVersion = new Version(0, 0, 0, 0); 27 | 28 | Assert.AreEqual(expectedVersion, required.MinimumVersion); 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /BepinexPackages/Subnautica_Packages/BepInExPack_Subnautica_Experimental/BepInExPack_Subnautica_Experimental/doorstop_config.ini: -------------------------------------------------------------------------------- 1 | [UnityDoorstop] 2 | # Specifies whether assembly executing is enabled 3 | enabled=true 4 | # Specifies the path (absolute, or relative to the game's exe) to the DLL/EXE that should be executed by Doorstop 5 | targetAssembly=BepInEx\core\BepInEx.Preloader.dll 6 | # Specifies whether Unity's output log should be redirected to \output_log.txt 7 | redirectOutputLog=false 8 | # If enabled, DOORSTOP_DISABLE env var value is ignored 9 | # USE THIS ONLY WHEN ASKED TO OR YOU KNOW WHAT THIS MEANS 10 | ignoreDisableSwitch=false 11 | # Overrides default Mono DLL search path 12 | # Sometimes it is needed to instruct Mono to seek its assemblies from a different path 13 | # (e.g. mscorlib is stripped in original game) 14 | # This option causes Mono to seek mscorlib and core libraries from a different folder before Managed 15 | # Original Managed folder is added as a secondary folder in the search path 16 | dllSearchPathOverride= -------------------------------------------------------------------------------- /QModManager/Utility/ReflectionHelper.cs: -------------------------------------------------------------------------------- 1 | // Taken from https://github.com/SMLHelper/SMLHelper/blob/DevMar2019/SMLHelper/Utility/ReflectionHelper.cs#L177-L190 2 | 3 | using System.Diagnostics; 4 | using System.Reflection; 5 | 6 | namespace QModManager.Utility 7 | { 8 | internal static class ReflectionHelper 9 | { 10 | internal static Assembly CallingAssemblyByStackTrace(bool skipSystemAssembly = true) 11 | { 12 | var stackTrace = new StackTrace(); 13 | StackFrame[] frames = stackTrace.GetFrames(); 14 | 15 | foreach (StackFrame stackFrame in frames) 16 | { 17 | Assembly ownerAssembly = stackFrame.GetMethod().DeclaringType.Assembly; 18 | 19 | if (skipSystemAssembly && ownerAssembly.GetName().Name == "mscorlib") // in case reflection is used 20 | continue; 21 | 22 | if (ownerAssembly != Assembly.GetExecutingAssembly()) 23 | return ownerAssembly; 24 | } 25 | 26 | return Assembly.GetExecutingAssembly(); 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /QModManager/HarmonyPatches/DisableDevErrorReporting.cs: -------------------------------------------------------------------------------- 1 | namespace QModManager.HarmonyPatches.DisableDevErrorReporting 2 | { 3 | using HarmonyLib; 4 | using System.Collections; 5 | using UnityEngine; 6 | 7 | [HarmonyPatch] 8 | internal static class SentrySdk_Start_Patch 9 | { 10 | // This patch destroys any SentrySdk object 11 | // The SentrySdk class is the class that sends errors logged with Debug.LogError or Debug.LogException to the Subnautica developers 12 | 13 | [HarmonyPrefix] 14 | [HarmonyPatch(typeof(SentrySdk), nameof(SentrySdk.Start))] 15 | internal static bool Prefix(SentrySdk __instance) 16 | { 17 | GameObject.Destroy(__instance); 18 | return false; 19 | } 20 | 21 | #if !SUBNAUTICA_STABLE 22 | [HarmonyPostfix] 23 | [HarmonyPatch(typeof(SystemsSpawner), nameof(SystemsSpawner.SetupSingleton))] 24 | internal static IEnumerator Postfix(IEnumerator enumerator) 25 | { 26 | yield return null; 27 | yield break; 28 | } 29 | #endif 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /MacOSX/dist/QModManager.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | EXECUTABLE_NAME="SubnauticaZero.app" 3 | 4 | export DOORSTOP_ENABLE=TRUE 5 | export DOORSTOP_INVOKE_DLL_PATH="${PWD}/BepInEx/core/BepInEx.Preloader.dll" 6 | 7 | ARCH="" 8 | EXECUTABLE_NAME=`basename "${EXECUTABLE_NAME}" .app` 9 | REAL_EXECUTABLE_NAME=`defaults read "${PWD}/${EXECUTABLE_NAME}.app/Contents/Info" CFBundleExecutable` 10 | EXECUTABLE_PATH="${PWD}/${EXECUTABLE_NAME}.app/Contents/MacOS/${REAL_EXECUTABLE_NAME}" 11 | EXECUTABLE_TYPE=`LD_PRELOAD="" file -b "${EXECUTABLE_PATH}"`; 12 | 13 | case $EXECUTABLE_TYPE in 14 | *64-bit*) 15 | arch="x64" 16 | ;; 17 | *32-bit*|*i386*) 18 | arch="x86" 19 | ;; 20 | *) 21 | echo "Cannot identify executable type (got ${EXECUTABLE_TYPE})!" 22 | echo "Please create an issue at https://github.com/BepInEx/BepInEx/issues." 23 | exit 1 24 | ;; 25 | esac 26 | 27 | DOORSTOP_LIBS="${PWD}/doorstop_libs" 28 | DOORSTOP_LIBNAME=libdoorstop_${arch}.dylib 29 | 30 | export LD_LIBRARY_PATH="${DOORSTOP_LIBS}":${LD_LIBRARY_PATH} 31 | export LD_PRELOAD=$DOORSTOP_LIBNAME:$LD_PRELOAD 32 | export DYLD_LIBRARY_PATH="${DOORSTOP_LIBS}" 33 | export DYLD_INSERT_LIBRARIES="${DOORSTOP_LIBS}/$DOORSTOP_LIBNAME" 34 | 35 | "${EXECUTABLE_PATH}" 36 | -------------------------------------------------------------------------------- /QModManager/HarmonyPatches/DisableFeedbackButton.cs: -------------------------------------------------------------------------------- 1 | namespace QModManager.HarmonyPatches.DisableFeedbackButton 2 | { 3 | using Harmony; 4 | using UnityEngine; 5 | using UnityEngine.UI; 6 | 7 | [HarmonyPatch(typeof(IngameMenu), nameof(IngameMenu.Start))] 8 | internal static class IngameMenu_Start 9 | { 10 | [HarmonyPostfix] 11 | internal static void Postfix(IngameMenu __instance) 12 | { 13 | __instance.feedbackButton.interactable = false; 14 | Transform transform = __instance.transform.Find("Main/ButtonLayout/ButtonFeedback"); 15 | if (transform != null) transform.GetComponent