From 7af710d449023473c1b3af97a8f70f9db4e7970c Mon Sep 17 00:00:00 2001 From: Gurge44 Date: Wed, 22 Jul 2026 19:00:36 +0200 Subject: [PATCH] x64 doorstop --- .github/workflows/release.yml | 4 +- .github/workflows/release_without_crowdin.yml | 252 ------------ .github/workflows/signing_test.yml | 130 ------ packaging-epic/.doorstop_version | 1 + .../BepInEx/config/BepInEx.cfg | 388 +++++++++--------- .../config/at.duikbo.regioninstall.cfg | 30 +- .../doorstop_config.ini | 25 +- packaging-epic/winhttp.dll | Bin 0 -> 27136 bytes packaging-steam/.doorstop_version | 1 + packaging-steam/BepInEx/config/BepInEx.cfg | 194 +++++++++ .../config/at.duikbo.regioninstall.cfg | 15 + packaging-steam/doorstop_config.ini | 53 +++ packaging-steam/winhttp.dll | Bin 0 -> 22528 bytes packaging/winhttp.dll | Bin 30720 -> 0 bytes 14 files changed, 489 insertions(+), 604 deletions(-) delete mode 100644 .github/workflows/release_without_crowdin.yml delete mode 100644 .github/workflows/signing_test.yml create mode 100644 packaging-epic/.doorstop_version rename {packaging => packaging-epic}/BepInEx/config/BepInEx.cfg (97%) rename {packaging => packaging-epic}/BepInEx/config/at.duikbo.regioninstall.cfg (99%) rename {packaging => packaging-epic}/doorstop_config.ini (77%) create mode 100644 packaging-epic/winhttp.dll create mode 100644 packaging-steam/.doorstop_version create mode 100644 packaging-steam/BepInEx/config/BepInEx.cfg create mode 100644 packaging-steam/BepInEx/config/at.duikbo.regioninstall.cfg create mode 100644 packaging-steam/doorstop_config.ini create mode 100644 packaging-steam/winhttp.dll delete mode 100644 packaging/winhttp.dll diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 68a6797ec..ec4bf66ac 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -198,8 +198,8 @@ jobs: - name: Copy packaging files to BepInEx config run: | - cp -rf packaging/* epic/ - cp -rf packaging/* steam/ + cp -rf packaging-epic/* epic/ + cp -rf packaging-steam/* steam/ - name: Steam App ID run : echo "945360" > steam/steam_appid.txt diff --git a/.github/workflows/release_without_crowdin.yml b/.github/workflows/release_without_crowdin.yml deleted file mode 100644 index 4bb36b783..000000000 --- a/.github/workflows/release_without_crowdin.yml +++ /dev/null @@ -1,252 +0,0 @@ -name: Build & Release EHR Without Crowdin Updates - -on: - workflow_dispatch: - inputs: - version: - description: "Version (e.g. 7.0.2)" - required: true - -jobs: - - # --------------------------------------------------------- - # 1) Build EHR on Linux - # --------------------------------------------------------- - build-ehr: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - - name: Setup .NET - uses: actions/setup-dotnet@v4 - with: - dotnet-version: 6.0.x - - - name: Build EHR - run: dotnet build EHR.csproj -c Release -o build/ - - - name: Upload EHR artifact - uses: actions/upload-artifact@v4 - with: - name: ehr - path: build/EHR.dll - - # --------------------------------------------------------- - # 2) Build Control Panel on Windows using MSBuild - # --------------------------------------------------------- - build-control-panel: - runs-on: windows-latest - steps: - - uses: actions/checkout@v4 - - - name: Setup .NET - uses: actions/setup-dotnet@v4 - with: - dotnet-version: 6.0.x - - - name: Setup MSBuild - uses: microsoft/setup-msbuild@v2 - - - name: Restore .NET packages - run: dotnet restore -p:SelfContained=true CTA/CustomTeamAssigner/CustomTeamAssigner.csproj - - - name: Build Control Panel (MSBuild) - run: | - msbuild CTA/CustomTeamAssigner/CustomTeamAssigner.csproj ` - /p:Configuration=Release ` - /p:Platform="x64" ` - /p:PublishSingleFile=true ` - /p:SelfContained=true ` - /p:RuntimeIdentifier=win-x64 ` - /p:IncludeAllContentForSelfExtract=true ` - /p:DebugType=None ` - /p:PublishDir=build\ ` - /t:publish - - - name: Rename exe file - run: | - mkdir build/ - mv CTA/CustomTeamAssigner/build/CustomTeamAssigner.exe build/EHR_Control-Panel_BETA.exe - - - name: Upload Control Panel artifact - uses: actions/upload-artifact@v4 - with: - name: control-panel - path: build\EHR_Control-Panel_BETA.exe - - # --------------------------------------------------------- - # 3) Sign binaries using SignPath - # --------------------------------------------------------- - sign: - runs-on: ubuntu-latest - needs: [build-ehr, build-control-panel] - - steps: - - name: Download EHR - uses: actions/download-artifact@v4 - with: - name: ehr - path: signing - - - name: Download Control Panel - uses: actions/download-artifact@v4 - with: - name: control-panel - path: signing - - - name: Create SignPath ZIP - run: | - cd signing - zip ../signpath-input.zip EHR.dll EHR_Control-Panel_BETA.exe - - - name: Upload unsigned artifact - id: upload-unsigned-artifact - uses: actions/upload-artifact@v4 - with: - name: signpath-input - path: signpath-input.zip - - - name: Submit signing request - uses: signpath/github-action-submit-signing-request@v2 - with: - api-token: ${{ secrets.SIGNPATH_API_TOKEN }} - organization-id: 298f5e96-d02b-40b5-88f6-32bddafcd47d - project-slug: EndlessHostRoles - signing-policy-slug: test-signing - artifact-configuration-slug: initial - github-artifact-id: ${{ steps.upload-unsigned-artifact.outputs.artifact-id }} - wait-for-completion: true - output-artifact-directory: signed - - - name: Extract signed ZIP - run: | - mkdir extracted - unzip signed/*.zip -d extracted - - - name: Upload signed binaries - uses: actions/upload-artifact@v4 - with: - name: signed-binaries - path: extracted/* - - # --------------------------------------------------------- - # 4) Package everything on Linux - # --------------------------------------------------------- - package: - runs-on: ubuntu-latest - needs: [sign] - - steps: - - uses: actions/checkout@v4 - - - name: Download signed binaries - uses: actions/download-artifact@v4 - with: - name: signed-binaries - path: artifacts/signed - - - name: Prepare release folders - run: | - mkdir -p epic - mkdir -p steam - - - name: Download BepInEx 6 pre-release 735 - run: | - curl -L https://builds.bepinex.dev/projects/bepinex_be/735/BepInEx-Unity.IL2CPP-win-x64-6.0.0-be.735%2B5fef357.zip -o bepinex-x64.zip - unzip bepinex-x64.zip -d epic - chmod -R u+rwX,go+rX epic - curl -L https://builds.bepinex.dev/projects/bepinex_be/735/BepInEx-Unity.IL2CPP-win-x86-6.0.0-be.735%2B5fef357.zip -o bepinex-x86.zip - unzip bepinex-x86.zip -d steam - chmod -R u+rwX,go+rX steam - - - name: Copy EHR dll to plugins - run: | - cp artifacts/signed/EHR.dll epic/BepInEx/plugins/ - cp artifacts/signed/EHR.dll steam/BepInEx/plugins/ - - - name: Download modded regions DLL - run: | - curl -L https://github.com/miniduikboot/Mini.RegionInstall/releases/download/v1.2.0/Mini.RegionInstall.dll -o epic/BepInEx/plugins/Mini.RegionInstall.dll - cp epic/BepInEx/plugins/Mini.RegionInstall.dll steam/BepInEx/plugins/Mini.RegionInstall.dll - - - name: Copy packaging files to BepInEx config - run: | - cp -r packaging/* epic/ - cp -r packaging/* steam/ - - - name: Steam App ID - run : echo "945360" > steam/steam_appid.txt - - - name: Create Epic/MS Store ZIP - run: | - cd epic - zip -r "../EHR.v${{ github.event.inputs.version }}_Epic-Games_Microsoft-Store.zip" . - - - name: Create Steam ZIP - run: | - cd steam - zip -r "../EHR.v${{ github.event.inputs.version }}_Steam.zip" . - - - name: Upload release artifacts - uses: actions/upload-artifact@v4 - with: - name: final-zips - path: ./EHR*.zip - - # --------------------------------------------------------- - # 5) Create GitHub Release - # --------------------------------------------------------- - release: - runs-on: ubuntu-latest - needs: [package] - - steps: - - uses: actions/checkout@v4 - - # ----------------------------- - # Download all artifacts - # ----------------------------- - - name: Download packaged ZIPs - uses: actions/download-artifact@v4 - with: - name: final-zips - path: release-artifacts/zips - - - name: Download signed binaries - uses: actions/download-artifact@v4 - with: - name: signed-binaries - path: release-artifacts/signed - - # ----------------------------- - # Create GitHub Release - # ----------------------------- - - name: Create Release - uses: softprops/action-gh-release@v2 - with: - tag_name: "v${{ github.event.inputs.version }}" - name: "EHR v${{ github.event.inputs.version }}" - generate_release_notes: true - body_path: CHANGELOG.md - files: | - release-artifacts/zips/* - release-artifacts/signed/EHR.dll - release-artifacts/signed/*.exe - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - # ----------------------------- - # Send Mod News - # ----------------------------- - - name: Set up Python - uses: actions/setup-python@v4 - with: - python-version: 3.x - - - name: Install dependencies - run: pip install requests markdown - - - name: Run script and send ModNews - env: - MODNEWS_API_URL: ${{ secrets.MODNEWS_API_URL }} - MODNEWS_API_TOKEN: ${{ secrets.MODNEWS_API_TOKEN }} - run: python release_to_modnews.py diff --git a/.github/workflows/signing_test.yml b/.github/workflows/signing_test.yml deleted file mode 100644 index 97505a596..000000000 --- a/.github/workflows/signing_test.yml +++ /dev/null @@ -1,130 +0,0 @@ -name: Test Artifact Signing - -on: - workflow_dispatch: - inputs: - version: - description: "Version (e.g. 7.0.2)" - required: true - -jobs: - - # --------------------------------------------------------- - # 1) Build EHR on Linux - # --------------------------------------------------------- - build-ehr: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - - name: Setup .NET - uses: actions/setup-dotnet@v4 - with: - dotnet-version: 6.0.x - - - name: Build EHR - run: dotnet build EHR.csproj -c Release -o build/ - - - name: Upload EHR artifact - uses: actions/upload-artifact@v4 - with: - name: ehr - path: build/EHR.dll - - # --------------------------------------------------------- - # 2) Build Control Panel on Windows using MSBuild - # --------------------------------------------------------- - build-control-panel: - runs-on: windows-latest - steps: - - uses: actions/checkout@v4 - - - name: Setup .NET - uses: actions/setup-dotnet@v4 - with: - dotnet-version: 6.0.x - - - name: Setup MSBuild - uses: microsoft/setup-msbuild@v2 - - - name: Restore .NET packages - run: dotnet restore -p:SelfContained=true CTA/CustomTeamAssigner/CustomTeamAssigner.csproj - - - name: Build Control Panel (MSBuild) - run: | - msbuild CTA/CustomTeamAssigner/CustomTeamAssigner.csproj ` - /p:Configuration=Release ` - /p:Platform="x64" ` - /p:PublishSingleFile=true ` - /p:SelfContained=true ` - /p:RuntimeIdentifier=win-x64 ` - /p:IncludeAllContentForSelfExtract=true ` - /p:DebugType=None ` - /p:PublishDir=build\ ` - /t:publish - - - name: Rename exe file - run: | - mkdir build/ - mv CTA/CustomTeamAssigner/build/CustomTeamAssigner.exe build/EHR_Control-Panel_BETA.exe - - - name: Upload Control Panel artifact - uses: actions/upload-artifact@v4 - with: - name: control-panel - path: build\EHR_Control-Panel_BETA.exe - - # --------------------------------------------------------- - # 3) Sign binaries using SignPath - # --------------------------------------------------------- - sign: - runs-on: ubuntu-latest - needs: [build-ehr, build-control-panel] - - steps: - - name: Download EHR - uses: actions/download-artifact@v4 - with: - name: ehr - path: signing - - - name: Download Control Panel - uses: actions/download-artifact@v4 - with: - name: control-panel - path: signing - - - name: Create SignPath ZIP - run: | - cd signing - zip ../signpath-input.zip EHR.dll EHR_Control-Panel_BETA.exe - - - name: Upload unsigned artifact - id: upload-unsigned-artifact - uses: actions/upload-artifact@v4 - with: - name: signpath-input - path: signpath-input.zip - - - name: Submit signing request - uses: signpath/github-action-submit-signing-request@v2 - with: - api-token: ${{ secrets.SIGNPATH_API_TOKEN }} - organization-id: 298f5e96-d02b-40b5-88f6-32bddafcd47d - project-slug: EndlessHostRoles - signing-policy-slug: test-signing - artifact-configuration-slug: initial - github-artifact-id: ${{ steps.upload-unsigned-artifact.outputs.artifact-id }} - wait-for-completion: true - output-artifact-directory: signed - - - name: Extract signed ZIP - run: | - mkdir extracted - unzip signed/*.zip -d extracted - - - name: Upload signed binaries - uses: actions/upload-artifact@v4 - with: - name: signed-binaries - path: extracted/* diff --git a/packaging-epic/.doorstop_version b/packaging-epic/.doorstop_version new file mode 100644 index 000000000..99523d476 --- /dev/null +++ b/packaging-epic/.doorstop_version @@ -0,0 +1 @@ +4.5.1 \ No newline at end of file diff --git a/packaging/BepInEx/config/BepInEx.cfg b/packaging-epic/BepInEx/config/BepInEx.cfg similarity index 97% rename from packaging/BepInEx/config/BepInEx.cfg rename to packaging-epic/BepInEx/config/BepInEx.cfg index dbe9e403f..b318f6125 100644 --- a/packaging/BepInEx/config/BepInEx.cfg +++ b/packaging-epic/BepInEx/config/BepInEx.cfg @@ -1,194 +1,194 @@ -[Caching] - -## Enable/disable assembly metadata cache -## Enabling this will speed up discovery of plugins and patchers by caching the metadata of all types BepInEx discovers. -# Setting type: Boolean -# Default value: true -EnableAssemblyCache = true - -[Detours] - -## The native provider to use for managed detours -# Setting type: DetourProvider -# Default value: Default -# Acceptable values: Default, Dobby, Funchook -DetourProviderType = Default - -[Harmony.Logger] - -## Specifies which Harmony log channels to listen to. -## NOTE: IL channel dumps the whole patch methods, use only when needed! -# Setting type: LogChannel -# Default value: Warn, Error -# Acceptable values: None, Info, IL, Warn, Error, Debug, All -# Multiple values can be set at the same time by separating them with , (e.g. Debug, Warning) -LogChannels = Warn, Error - -[IL2CPP] - -## Whether to run Il2CppInterop automatically to generate Il2Cpp support assemblies when they are outdated. -## If disabled assemblies in `BepInEx/interop` won't be updated between game or BepInEx updates! -## -# Setting type: Boolean -# Default value: true -UpdateInteropAssemblies = true - -## URL to the ZIP of managed Unity base libraries. -## The base libraries are used by Il2CppInterop to generate interop assemblies. -## The URL can include {VERSION} template which will be replaced with the game's Unity engine version. -## -# Setting type: String -# Default value: https://unity.bepinex.dev/libraries/{VERSION}.zip -UnityBaseLibrariesSource = https://unity.bepinex.dev/libraries/{VERSION}.zip - -## The RegEx string to pass to Il2CppAssemblyUnhollower for renaming obfuscated names. -## All types and members matching this RegEx will get a name based on their signature, -## resulting in names that persist after game updates. -## -# Setting type: String -# Default value: -UnhollowerDeobfuscationRegex = - -## If enabled, Il2CppInterop will use xref to find dead methods and generate CallerCount attributes. -# Setting type: Boolean -# Default value: true -ScanMethodRefs = true - -## If enabled, BepInEx will save dummy assemblies generated by an Cpp2IL dumper into BepInEx/dummy. -# Setting type: Boolean -# Default value: false -DumpDummyAssemblies = false - -## The path to the folder where IL2CPPInterop assemblies are stored. -## Supports the following placeholders: -## {BepInEx} - Path to the BepInEx folder. -## {ProcessName} - Name of the current process -## -# Setting type: String -# Default value: {BepInEx} -IL2CPPInteropAssembliesPath = {BepInEx} - -## Automatically load all interop assemblies right before loading plugins. -## Some plugins may not work properly without this, but it may cause issues in some games. -## -# Setting type: Boolean -# Default value: true -PreloadIL2CPPInteropAssemblies = true - -## The path to the IL2CPP metadata file. -## Supports the following placeholders: -## {BepInEx} - Path to the BepInEx folder. -## {ProcessName} - Name of the current process -## {GameDataPath} - Path to the game's Data folder. -## -# Setting type: String -# Default value: {GameDataPath}/il2cpp_data/Metadata/global-metadata.dat -GlobalMetadataPath = {GameDataPath}/il2cpp_data/Metadata/global-metadata.dat - -[Logging] - -## Enables showing unity log messages in the BepInEx logging system. -# Setting type: Boolean -# Default value: true -UnityLogListening = true - -[Logging.Console] - -## Enables showing a console for log output. -# Setting type: Boolean -# Default value: true -Enabled = true - -## If enabled, will prevent closing the console (either by deleting the close button or in other platform-specific way). -# Setting type: Boolean -# Default value: false -PreventClose = false - -## If true, console is set to the Shift-JIS encoding, otherwise UTF-8 encoding. -# Setting type: Boolean -# Default value: false -ShiftJisEncoding = false - -## Hints console manager on what handle to assign as StandardOut. Possible values: -## Auto - lets BepInEx decide how to redirect console output -## ConsoleOut - prefer redirecting to console output; if possible, closes original standard output -## StandardOut - prefer redirecting to standard output; if possible, closes console out -## -# Setting type: ConsoleOutRedirectType -# Default value: Auto -# Acceptable values: Auto, ConsoleOut, StandardOut -StandardOutType = Auto - -## Which log levels to show in the console output. -# Setting type: LogLevel -# Default value: Fatal, Error, Warning, Message, Info -# Acceptable values: None, Fatal, Error, Warning, Message, Info, Debug, All -# Multiple values can be set at the same time by separating them with , (e.g. Debug, Warning) -LogLevels = Fatal, Error, Warning, Message, Info - -[Logging.Disk] - -## Appends to the log file instead of overwriting, on game startup. -# Setting type: Boolean -# Default value: false -AppendLog = false - -## Enables writing log messages to disk. -# Setting type: Boolean -# Default value: true -Enabled = true - -## Only displays the specified log levels in the disk log output. -# Setting type: LogLevel -# Default value: Fatal, Error, Warning, Message, Info -# Acceptable values: None, Fatal, Error, Warning, Message, Info, Debug, All -# Multiple values can be set at the same time by separating them with , (e.g. Debug, Warning) -LogLevels = Fatal, Error, Warning, Message, Info - -## If true, instantly writes any received log entries to disk. -## This incurs a major performance hit if a lot of log messages are being written, however it is really useful for debugging crashes. -## -# Setting type: Boolean -# Default value: false -InstantFlushing = false - -## The maximum amount of concurrent log files that will be written to disk. -## As one log file is used per open game instance, you may find it necessary to increase this limit when debugging multiple instances at the same time. -## -# Setting type: Int32 -# Default value: 5 -ConcurrentFileLimit = 5 - -## Include unity log messages in log file output. -# Setting type: Boolean -# Default value: false -WriteUnityLog = false - -[Preloader] - -## Specifies which MonoMod backend to use for Harmony patches. Auto uses the best available backend. -## This setting should only be used for development purposes (e.g. debugging in dnSpy). Other code might override this setting. -# Setting type: MonoModBackend -# Default value: auto -# Acceptable values: auto, dynamicmethod, methodbuilder, cecil -HarmonyBackend = auto - -## If enabled, BepInEx will save patched assemblies into BepInEx/DumpedAssemblies. -## This can be used by developers to inspect and debug preloader patchers. -# Setting type: Boolean -# Default value: false -DumpAssemblies = false - -## If enabled, BepInEx will load patched assemblies from BepInEx/DumpedAssemblies instead of memory. -## This can be used to be able to load patched assemblies into debuggers like dnSpy. -## If set to true, will override DumpAssemblies. -# Setting type: Boolean -# Default value: false -LoadDumpedAssemblies = false - -## If enabled, BepInEx will call Debugger.Break() once before loading patched assemblies. -## This can be used with debuggers like dnSpy to install breakpoints into patched assemblies before they are loaded. -# Setting type: Boolean -# Default value: false -BreakBeforeLoadAssemblies = false - +[Caching] + +## Enable/disable assembly metadata cache +## Enabling this will speed up discovery of plugins and patchers by caching the metadata of all types BepInEx discovers. +# Setting type: Boolean +# Default value: true +EnableAssemblyCache = true + +[Detours] + +## The native provider to use for managed detours +# Setting type: DetourProvider +# Default value: Default +# Acceptable values: Default, Dobby, Funchook +DetourProviderType = Default + +[Harmony.Logger] + +## Specifies which Harmony log channels to listen to. +## NOTE: IL channel dumps the whole patch methods, use only when needed! +# Setting type: LogChannel +# Default value: Warn, Error +# Acceptable values: None, Info, IL, Warn, Error, Debug, All +# Multiple values can be set at the same time by separating them with , (e.g. Debug, Warning) +LogChannels = Warn, Error + +[IL2CPP] + +## Whether to run Il2CppInterop automatically to generate Il2Cpp support assemblies when they are outdated. +## If disabled assemblies in `BepInEx/interop` won't be updated between game or BepInEx updates! +## +# Setting type: Boolean +# Default value: true +UpdateInteropAssemblies = true + +## URL to the ZIP of managed Unity base libraries. +## The base libraries are used by Il2CppInterop to generate interop assemblies. +## The URL can include {VERSION} template which will be replaced with the game's Unity engine version. +## +# Setting type: String +# Default value: https://unity.bepinex.dev/libraries/{VERSION}.zip +UnityBaseLibrariesSource = https://unity.bepinex.dev/libraries/{VERSION}.zip + +## The RegEx string to pass to Il2CppAssemblyUnhollower for renaming obfuscated names. +## All types and members matching this RegEx will get a name based on their signature, +## resulting in names that persist after game updates. +## +# Setting type: String +# Default value: +UnhollowerDeobfuscationRegex = + +## If enabled, Il2CppInterop will use xref to find dead methods and generate CallerCount attributes. +# Setting type: Boolean +# Default value: true +ScanMethodRefs = true + +## If enabled, BepInEx will save dummy assemblies generated by an Cpp2IL dumper into BepInEx/dummy. +# Setting type: Boolean +# Default value: false +DumpDummyAssemblies = false + +## The path to the folder where IL2CPPInterop assemblies are stored. +## Supports the following placeholders: +## {BepInEx} - Path to the BepInEx folder. +## {ProcessName} - Name of the current process +## +# Setting type: String +# Default value: {BepInEx} +IL2CPPInteropAssembliesPath = {BepInEx} + +## Automatically load all interop assemblies right before loading plugins. +## Some plugins may not work properly without this, but it may cause issues in some games. +## +# Setting type: Boolean +# Default value: true +PreloadIL2CPPInteropAssemblies = true + +## The path to the IL2CPP metadata file. +## Supports the following placeholders: +## {BepInEx} - Path to the BepInEx folder. +## {ProcessName} - Name of the current process +## {GameDataPath} - Path to the game's Data folder. +## +# Setting type: String +# Default value: {GameDataPath}/il2cpp_data/Metadata/global-metadata.dat +GlobalMetadataPath = {GameDataPath}/il2cpp_data/Metadata/global-metadata.dat + +[Logging] + +## Enables showing unity log messages in the BepInEx logging system. +# Setting type: Boolean +# Default value: true +UnityLogListening = true + +[Logging.Console] + +## Enables showing a console for log output. +# Setting type: Boolean +# Default value: true +Enabled = true + +## If enabled, will prevent closing the console (either by deleting the close button or in other platform-specific way). +# Setting type: Boolean +# Default value: false +PreventClose = false + +## If true, console is set to the Shift-JIS encoding, otherwise UTF-8 encoding. +# Setting type: Boolean +# Default value: false +ShiftJisEncoding = false + +## Hints console manager on what handle to assign as StandardOut. Possible values: +## Auto - lets BepInEx decide how to redirect console output +## ConsoleOut - prefer redirecting to console output; if possible, closes original standard output +## StandardOut - prefer redirecting to standard output; if possible, closes console out +## +# Setting type: ConsoleOutRedirectType +# Default value: Auto +# Acceptable values: Auto, ConsoleOut, StandardOut +StandardOutType = Auto + +## Which log levels to show in the console output. +# Setting type: LogLevel +# Default value: Fatal, Error, Warning, Message, Info +# Acceptable values: None, Fatal, Error, Warning, Message, Info, Debug, All +# Multiple values can be set at the same time by separating them with , (e.g. Debug, Warning) +LogLevels = Fatal, Error, Warning, Message, Info + +[Logging.Disk] + +## Appends to the log file instead of overwriting, on game startup. +# Setting type: Boolean +# Default value: false +AppendLog = false + +## Enables writing log messages to disk. +# Setting type: Boolean +# Default value: true +Enabled = true + +## Only displays the specified log levels in the disk log output. +# Setting type: LogLevel +# Default value: Fatal, Error, Warning, Message, Info +# Acceptable values: None, Fatal, Error, Warning, Message, Info, Debug, All +# Multiple values can be set at the same time by separating them with , (e.g. Debug, Warning) +LogLevels = Fatal, Error, Warning, Message, Info + +## If true, instantly writes any received log entries to disk. +## This incurs a major performance hit if a lot of log messages are being written, however it is really useful for debugging crashes. +## +# Setting type: Boolean +# Default value: false +InstantFlushing = false + +## The maximum amount of concurrent log files that will be written to disk. +## As one log file is used per open game instance, you may find it necessary to increase this limit when debugging multiple instances at the same time. +## +# Setting type: Int32 +# Default value: 5 +ConcurrentFileLimit = 5 + +## Include unity log messages in log file output. +# Setting type: Boolean +# Default value: false +WriteUnityLog = false + +[Preloader] + +## Specifies which MonoMod backend to use for Harmony patches. Auto uses the best available backend. +## This setting should only be used for development purposes (e.g. debugging in dnSpy). Other code might override this setting. +# Setting type: MonoModBackend +# Default value: auto +# Acceptable values: auto, dynamicmethod, methodbuilder, cecil +HarmonyBackend = auto + +## If enabled, BepInEx will save patched assemblies into BepInEx/DumpedAssemblies. +## This can be used by developers to inspect and debug preloader patchers. +# Setting type: Boolean +# Default value: false +DumpAssemblies = false + +## If enabled, BepInEx will load patched assemblies from BepInEx/DumpedAssemblies instead of memory. +## This can be used to be able to load patched assemblies into debuggers like dnSpy. +## If set to true, will override DumpAssemblies. +# Setting type: Boolean +# Default value: false +LoadDumpedAssemblies = false + +## If enabled, BepInEx will call Debugger.Break() once before loading patched assemblies. +## This can be used with debuggers like dnSpy to install breakpoints into patched assemblies before they are loaded. +# Setting type: Boolean +# Default value: false +BreakBeforeLoadAssemblies = false + diff --git a/packaging/BepInEx/config/at.duikbo.regioninstall.cfg b/packaging-epic/BepInEx/config/at.duikbo.regioninstall.cfg similarity index 99% rename from packaging/BepInEx/config/at.duikbo.regioninstall.cfg rename to packaging-epic/BepInEx/config/at.duikbo.regioninstall.cfg index d76f2b2a4..dd2b3cb97 100644 --- a/packaging/BepInEx/config/at.duikbo.regioninstall.cfg +++ b/packaging-epic/BepInEx/config/at.duikbo.regioninstall.cfg @@ -1,15 +1,15 @@ -## Settings file was created by EHR -## Plugin GUID: at.duikbo.regioninstall - -[General] - -## Create an array of regions you want to add/update. To create this array, go to https://impostor.github.io/Impostor/ and put the Regions array from the server file in here -# Setting type: String -# Default value: {\"CurrentRegionIdx\":0,\"Regions\":[]} -Regions = { \"CurrentRegionIdx\": 2, \"Regions\": [ { \"$type\": \"StaticHttpRegionInfo, Assembly-CSharp\", \"Name\": \"Niko-NA\", \"PingServer\": \"https://au-us.niko233.top\", \"Servers\": [ { \"Name\": \"http-1\", \"Ip\": \"https://au-us.niko233.top\", \"Port\": 443, \"UseDtls\": false, \"Players\": 0, \"ConnectionFailures\": 0 } ], \"TargetServer\": null, \"TranslateName\": 1003 }, { \"$type\": \"StaticHttpRegionInfo, Assembly-CSharp\", \"Name\": \"Niko-AS\", \"PingServer\": \"https://au-as.niko233.top\", \"Servers\": [ { \"Name\": \"http-1\", \"Ip\": \"https://au-as.niko233.top\", \"Port\": 443, \"UseDtls\": false, \"Players\": 0, \"ConnectionFailures\": 0 } ], \"TargetServer\": null, \"TranslateName\": 1003 }, { \"$type\": \"StaticHttpRegionInfo, Assembly-CSharp\", \"Name\": \"Niko-EU\", \"PingServer\": \"https://au-eu.niko233.top\", \"Servers\": [ { \"Name\": \"http-1\", \"Ip\": \"https://au-eu.niko233.top\", \"Port\": 443, \"UseDtls\": false, \"Players\": 0, \"ConnectionFailures\": 0 } ], \"TargetServer\": null, \"TranslateName\": 1003 }, { \"$type\": \"StaticHttpRegionInfo, Assembly-CSharp\", \"Name\": \"Modded EU (MEU)\", \"PingServer\": \"https://au-eu.duikbo.at\", \"Servers\": [ { \"Name\": \"Http-1\", \"Ip\": \"https://au-eu.duikbo.at\", \"Port\": 443, \"UseDtls\": false, \"Players\": 0, \"ConnectionFailures\": 0 } ], \"TargetServer\": null, \"TranslateName\": 1003 }, { \"$type\": \"StaticHttpRegionInfo, Assembly-CSharp\", \"Name\": \"Modded NA (MNA)\", \"PingServer\": \"https://aumods.org\", \"Servers\": [ { \"Name\": \"Http-1\", \"Ip\": \"https://aumods.org\", \"Port\": 443, \"UseDtls\": false, \"Players\": 0, \"ConnectionFailures\": 0 } ], \"TargetServer\": null, \"TranslateName\": 1003 }, { \"$type\": \"StaticHttpRegionInfo, Assembly-CSharp\", \"Name\": \"Modded Asia (MAS)\", \"PingServer\": \"https://au-as.duikbo.at\", \"Servers\": [ { \"Name\": \"Http-1\", \"Ip\": \"https://au-as.duikbo.at\", \"Port\": 443, \"UseDtls\": false, \"Players\": 0, \"ConnectionFailures\": 0 } ], \"TargetServer\": null, \"TranslateName\": 1003 } ] } - -## Comma-seperated list of region names that should be removed. -# Setting type: String -# Default value: -RemoveRegions = Niko233(NA_US),Niko233(NA_US2),Niko233(AS_CN),Niko233(AS_CN2),NikoCat233(US),NikoCat233(CN),Niko233(AS3),Niko233(NA2),Niko233(EU2),Niko233(AS2),Custom,Niko233(NA),Niko233(EU),Niko233(AS),Niko233(CN),Modded SA (MSA),Niko-CN - +## Settings file was created by EHR +## Plugin GUID: at.duikbo.regioninstall + +[General] + +## Create an array of regions you want to add/update. To create this array, go to https://impostor.github.io/Impostor/ and put the Regions array from the server file in here +# Setting type: String +# Default value: {\"CurrentRegionIdx\":0,\"Regions\":[]} +Regions = { \"CurrentRegionIdx\": 2, \"Regions\": [ { \"$type\": \"StaticHttpRegionInfo, Assembly-CSharp\", \"Name\": \"Niko-NA\", \"PingServer\": \"https://au-us.niko233.top\", \"Servers\": [ { \"Name\": \"http-1\", \"Ip\": \"https://au-us.niko233.top\", \"Port\": 443, \"UseDtls\": false, \"Players\": 0, \"ConnectionFailures\": 0 } ], \"TargetServer\": null, \"TranslateName\": 1003 }, { \"$type\": \"StaticHttpRegionInfo, Assembly-CSharp\", \"Name\": \"Niko-AS\", \"PingServer\": \"https://au-as.niko233.top\", \"Servers\": [ { \"Name\": \"http-1\", \"Ip\": \"https://au-as.niko233.top\", \"Port\": 443, \"UseDtls\": false, \"Players\": 0, \"ConnectionFailures\": 0 } ], \"TargetServer\": null, \"TranslateName\": 1003 }, { \"$type\": \"StaticHttpRegionInfo, Assembly-CSharp\", \"Name\": \"Niko-EU\", \"PingServer\": \"https://au-eu.niko233.top\", \"Servers\": [ { \"Name\": \"http-1\", \"Ip\": \"https://au-eu.niko233.top\", \"Port\": 443, \"UseDtls\": false, \"Players\": 0, \"ConnectionFailures\": 0 } ], \"TargetServer\": null, \"TranslateName\": 1003 }, { \"$type\": \"StaticHttpRegionInfo, Assembly-CSharp\", \"Name\": \"Modded EU (MEU)\", \"PingServer\": \"https://au-eu.duikbo.at\", \"Servers\": [ { \"Name\": \"Http-1\", \"Ip\": \"https://au-eu.duikbo.at\", \"Port\": 443, \"UseDtls\": false, \"Players\": 0, \"ConnectionFailures\": 0 } ], \"TargetServer\": null, \"TranslateName\": 1003 }, { \"$type\": \"StaticHttpRegionInfo, Assembly-CSharp\", \"Name\": \"Modded NA (MNA)\", \"PingServer\": \"https://aumods.org\", \"Servers\": [ { \"Name\": \"Http-1\", \"Ip\": \"https://aumods.org\", \"Port\": 443, \"UseDtls\": false, \"Players\": 0, \"ConnectionFailures\": 0 } ], \"TargetServer\": null, \"TranslateName\": 1003 }, { \"$type\": \"StaticHttpRegionInfo, Assembly-CSharp\", \"Name\": \"Modded Asia (MAS)\", \"PingServer\": \"https://au-as.duikbo.at\", \"Servers\": [ { \"Name\": \"Http-1\", \"Ip\": \"https://au-as.duikbo.at\", \"Port\": 443, \"UseDtls\": false, \"Players\": 0, \"ConnectionFailures\": 0 } ], \"TargetServer\": null, \"TranslateName\": 1003 } ] } + +## Comma-seperated list of region names that should be removed. +# Setting type: String +# Default value: +RemoveRegions = Niko233(NA_US),Niko233(NA_US2),Niko233(AS_CN),Niko233(AS_CN2),NikoCat233(US),NikoCat233(CN),Niko233(AS3),Niko233(NA2),Niko233(EU2),Niko233(AS2),Custom,Niko233(NA),Niko233(EU),Niko233(AS),Niko233(CN),Modded SA (MSA),Niko-CN + diff --git a/packaging/doorstop_config.ini b/packaging-epic/doorstop_config.ini similarity index 77% rename from packaging/doorstop_config.ini rename to packaging-epic/doorstop_config.ini index 144d5e4af..dcdf605ab 100644 --- a/packaging/doorstop_config.ini +++ b/packaging-epic/doorstop_config.ini @@ -2,21 +2,22 @@ [General] # Enable Doorstop? -enabled = true +enabled=true # Path to the assembly to load and execute # NOTE: The entrypoint must be of format `static void Doorstop.Entrypoint.Start()` -target_assembly = BepInEx\core\BepInEx.Unity.IL2CPP.dll +target_assembly=Doorstop.dll # If true, Unity's output log is redirected to \output_log.txt -redirect_output_log = false +redirect_output_log=false # Overrides the default boot.config file path -boot_config_override = +boot_config_override= # If enabled, DOORSTOP_DISABLE env var value is ignored # USE THIS ONLY WHEN ASKED TO OR YOU KNOW WHAT THIS MEANS -ignore_disable_switch = false +ignore_disable_switch=false + # Options specific to running under Unity Mono runtime [UnityMono] @@ -26,25 +27,27 @@ ignore_disable_switch = false # (e.g. mscorlib is stripped in original game) # This option causes Mono to seek mscorlib and core libraries from a different folder before Managed # Original Managed folder is added as a secondary folder in the search path -dll_search_path_override = +# To specify multiple paths, separate them with semicolons (;) +dll_search_path_override= # If true, Mono debugger server will be enabled -debug_enabled = false +debug_enabled=false # When debug_enabled is true, specifies the address to use for the debugger server -debug_address = 127.0.0.1:10000 +debug_address=127.0.0.1:10000 # If true and debug_enabled is true, Mono debugger server will suspend the game execution until a debugger is attached -debug_suspend = false +debug_suspend=false # Options sepcific to running under Il2Cpp runtime [Il2Cpp] # Path to coreclr.dll that contains the CoreCLR runtime -coreclr_path = dotnet\coreclr.dll +coreclr_path= # Path to the directory containing the managed core libraries for CoreCLR (mscorlib, System, etc.) -corlib_dir = dotnet +corlib_dir= +# Environment variables to set for the current game process before the Unity runtime starts. [Environment] GC_DISABLE_INCREMENTAL=1 diff --git a/packaging-epic/winhttp.dll b/packaging-epic/winhttp.dll new file mode 100644 index 0000000000000000000000000000000000000000..f56f138c495b2020523418317b22e145ed3a84f4 GIT binary patch literal 27136 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 U=q)wTCL;AA>e#P7|78~VAD2#V=>Px# literal 0 HcmV?d00001 diff --git a/packaging-steam/.doorstop_version b/packaging-steam/.doorstop_version new file mode 100644 index 000000000..99523d476 --- /dev/null +++ b/packaging-steam/.doorstop_version @@ -0,0 +1 @@ +4.5.1 \ No newline at end of file diff --git a/packaging-steam/BepInEx/config/BepInEx.cfg b/packaging-steam/BepInEx/config/BepInEx.cfg new file mode 100644 index 000000000..b318f6125 --- /dev/null +++ b/packaging-steam/BepInEx/config/BepInEx.cfg @@ -0,0 +1,194 @@ +[Caching] + +## Enable/disable assembly metadata cache +## Enabling this will speed up discovery of plugins and patchers by caching the metadata of all types BepInEx discovers. +# Setting type: Boolean +# Default value: true +EnableAssemblyCache = true + +[Detours] + +## The native provider to use for managed detours +# Setting type: DetourProvider +# Default value: Default +# Acceptable values: Default, Dobby, Funchook +DetourProviderType = Default + +[Harmony.Logger] + +## Specifies which Harmony log channels to listen to. +## NOTE: IL channel dumps the whole patch methods, use only when needed! +# Setting type: LogChannel +# Default value: Warn, Error +# Acceptable values: None, Info, IL, Warn, Error, Debug, All +# Multiple values can be set at the same time by separating them with , (e.g. Debug, Warning) +LogChannels = Warn, Error + +[IL2CPP] + +## Whether to run Il2CppInterop automatically to generate Il2Cpp support assemblies when they are outdated. +## If disabled assemblies in `BepInEx/interop` won't be updated between game or BepInEx updates! +## +# Setting type: Boolean +# Default value: true +UpdateInteropAssemblies = true + +## URL to the ZIP of managed Unity base libraries. +## The base libraries are used by Il2CppInterop to generate interop assemblies. +## The URL can include {VERSION} template which will be replaced with the game's Unity engine version. +## +# Setting type: String +# Default value: https://unity.bepinex.dev/libraries/{VERSION}.zip +UnityBaseLibrariesSource = https://unity.bepinex.dev/libraries/{VERSION}.zip + +## The RegEx string to pass to Il2CppAssemblyUnhollower for renaming obfuscated names. +## All types and members matching this RegEx will get a name based on their signature, +## resulting in names that persist after game updates. +## +# Setting type: String +# Default value: +UnhollowerDeobfuscationRegex = + +## If enabled, Il2CppInterop will use xref to find dead methods and generate CallerCount attributes. +# Setting type: Boolean +# Default value: true +ScanMethodRefs = true + +## If enabled, BepInEx will save dummy assemblies generated by an Cpp2IL dumper into BepInEx/dummy. +# Setting type: Boolean +# Default value: false +DumpDummyAssemblies = false + +## The path to the folder where IL2CPPInterop assemblies are stored. +## Supports the following placeholders: +## {BepInEx} - Path to the BepInEx folder. +## {ProcessName} - Name of the current process +## +# Setting type: String +# Default value: {BepInEx} +IL2CPPInteropAssembliesPath = {BepInEx} + +## Automatically load all interop assemblies right before loading plugins. +## Some plugins may not work properly without this, but it may cause issues in some games. +## +# Setting type: Boolean +# Default value: true +PreloadIL2CPPInteropAssemblies = true + +## The path to the IL2CPP metadata file. +## Supports the following placeholders: +## {BepInEx} - Path to the BepInEx folder. +## {ProcessName} - Name of the current process +## {GameDataPath} - Path to the game's Data folder. +## +# Setting type: String +# Default value: {GameDataPath}/il2cpp_data/Metadata/global-metadata.dat +GlobalMetadataPath = {GameDataPath}/il2cpp_data/Metadata/global-metadata.dat + +[Logging] + +## Enables showing unity log messages in the BepInEx logging system. +# Setting type: Boolean +# Default value: true +UnityLogListening = true + +[Logging.Console] + +## Enables showing a console for log output. +# Setting type: Boolean +# Default value: true +Enabled = true + +## If enabled, will prevent closing the console (either by deleting the close button or in other platform-specific way). +# Setting type: Boolean +# Default value: false +PreventClose = false + +## If true, console is set to the Shift-JIS encoding, otherwise UTF-8 encoding. +# Setting type: Boolean +# Default value: false +ShiftJisEncoding = false + +## Hints console manager on what handle to assign as StandardOut. Possible values: +## Auto - lets BepInEx decide how to redirect console output +## ConsoleOut - prefer redirecting to console output; if possible, closes original standard output +## StandardOut - prefer redirecting to standard output; if possible, closes console out +## +# Setting type: ConsoleOutRedirectType +# Default value: Auto +# Acceptable values: Auto, ConsoleOut, StandardOut +StandardOutType = Auto + +## Which log levels to show in the console output. +# Setting type: LogLevel +# Default value: Fatal, Error, Warning, Message, Info +# Acceptable values: None, Fatal, Error, Warning, Message, Info, Debug, All +# Multiple values can be set at the same time by separating them with , (e.g. Debug, Warning) +LogLevels = Fatal, Error, Warning, Message, Info + +[Logging.Disk] + +## Appends to the log file instead of overwriting, on game startup. +# Setting type: Boolean +# Default value: false +AppendLog = false + +## Enables writing log messages to disk. +# Setting type: Boolean +# Default value: true +Enabled = true + +## Only displays the specified log levels in the disk log output. +# Setting type: LogLevel +# Default value: Fatal, Error, Warning, Message, Info +# Acceptable values: None, Fatal, Error, Warning, Message, Info, Debug, All +# Multiple values can be set at the same time by separating them with , (e.g. Debug, Warning) +LogLevels = Fatal, Error, Warning, Message, Info + +## If true, instantly writes any received log entries to disk. +## This incurs a major performance hit if a lot of log messages are being written, however it is really useful for debugging crashes. +## +# Setting type: Boolean +# Default value: false +InstantFlushing = false + +## The maximum amount of concurrent log files that will be written to disk. +## As one log file is used per open game instance, you may find it necessary to increase this limit when debugging multiple instances at the same time. +## +# Setting type: Int32 +# Default value: 5 +ConcurrentFileLimit = 5 + +## Include unity log messages in log file output. +# Setting type: Boolean +# Default value: false +WriteUnityLog = false + +[Preloader] + +## Specifies which MonoMod backend to use for Harmony patches. Auto uses the best available backend. +## This setting should only be used for development purposes (e.g. debugging in dnSpy). Other code might override this setting. +# Setting type: MonoModBackend +# Default value: auto +# Acceptable values: auto, dynamicmethod, methodbuilder, cecil +HarmonyBackend = auto + +## If enabled, BepInEx will save patched assemblies into BepInEx/DumpedAssemblies. +## This can be used by developers to inspect and debug preloader patchers. +# Setting type: Boolean +# Default value: false +DumpAssemblies = false + +## If enabled, BepInEx will load patched assemblies from BepInEx/DumpedAssemblies instead of memory. +## This can be used to be able to load patched assemblies into debuggers like dnSpy. +## If set to true, will override DumpAssemblies. +# Setting type: Boolean +# Default value: false +LoadDumpedAssemblies = false + +## If enabled, BepInEx will call Debugger.Break() once before loading patched assemblies. +## This can be used with debuggers like dnSpy to install breakpoints into patched assemblies before they are loaded. +# Setting type: Boolean +# Default value: false +BreakBeforeLoadAssemblies = false + diff --git a/packaging-steam/BepInEx/config/at.duikbo.regioninstall.cfg b/packaging-steam/BepInEx/config/at.duikbo.regioninstall.cfg new file mode 100644 index 000000000..dd2b3cb97 --- /dev/null +++ b/packaging-steam/BepInEx/config/at.duikbo.regioninstall.cfg @@ -0,0 +1,15 @@ +## Settings file was created by EHR +## Plugin GUID: at.duikbo.regioninstall + +[General] + +## Create an array of regions you want to add/update. To create this array, go to https://impostor.github.io/Impostor/ and put the Regions array from the server file in here +# Setting type: String +# Default value: {\"CurrentRegionIdx\":0,\"Regions\":[]} +Regions = { \"CurrentRegionIdx\": 2, \"Regions\": [ { \"$type\": \"StaticHttpRegionInfo, Assembly-CSharp\", \"Name\": \"Niko-NA\", \"PingServer\": \"https://au-us.niko233.top\", \"Servers\": [ { \"Name\": \"http-1\", \"Ip\": \"https://au-us.niko233.top\", \"Port\": 443, \"UseDtls\": false, \"Players\": 0, \"ConnectionFailures\": 0 } ], \"TargetServer\": null, \"TranslateName\": 1003 }, { \"$type\": \"StaticHttpRegionInfo, Assembly-CSharp\", \"Name\": \"Niko-AS\", \"PingServer\": \"https://au-as.niko233.top\", \"Servers\": [ { \"Name\": \"http-1\", \"Ip\": \"https://au-as.niko233.top\", \"Port\": 443, \"UseDtls\": false, \"Players\": 0, \"ConnectionFailures\": 0 } ], \"TargetServer\": null, \"TranslateName\": 1003 }, { \"$type\": \"StaticHttpRegionInfo, Assembly-CSharp\", \"Name\": \"Niko-EU\", \"PingServer\": \"https://au-eu.niko233.top\", \"Servers\": [ { \"Name\": \"http-1\", \"Ip\": \"https://au-eu.niko233.top\", \"Port\": 443, \"UseDtls\": false, \"Players\": 0, \"ConnectionFailures\": 0 } ], \"TargetServer\": null, \"TranslateName\": 1003 }, { \"$type\": \"StaticHttpRegionInfo, Assembly-CSharp\", \"Name\": \"Modded EU (MEU)\", \"PingServer\": \"https://au-eu.duikbo.at\", \"Servers\": [ { \"Name\": \"Http-1\", \"Ip\": \"https://au-eu.duikbo.at\", \"Port\": 443, \"UseDtls\": false, \"Players\": 0, \"ConnectionFailures\": 0 } ], \"TargetServer\": null, \"TranslateName\": 1003 }, { \"$type\": \"StaticHttpRegionInfo, Assembly-CSharp\", \"Name\": \"Modded NA (MNA)\", \"PingServer\": \"https://aumods.org\", \"Servers\": [ { \"Name\": \"Http-1\", \"Ip\": \"https://aumods.org\", \"Port\": 443, \"UseDtls\": false, \"Players\": 0, \"ConnectionFailures\": 0 } ], \"TargetServer\": null, \"TranslateName\": 1003 }, { \"$type\": \"StaticHttpRegionInfo, Assembly-CSharp\", \"Name\": \"Modded Asia (MAS)\", \"PingServer\": \"https://au-as.duikbo.at\", \"Servers\": [ { \"Name\": \"Http-1\", \"Ip\": \"https://au-as.duikbo.at\", \"Port\": 443, \"UseDtls\": false, \"Players\": 0, \"ConnectionFailures\": 0 } ], \"TargetServer\": null, \"TranslateName\": 1003 } ] } + +## Comma-seperated list of region names that should be removed. +# Setting type: String +# Default value: +RemoveRegions = Niko233(NA_US),Niko233(NA_US2),Niko233(AS_CN),Niko233(AS_CN2),NikoCat233(US),NikoCat233(CN),Niko233(AS3),Niko233(NA2),Niko233(EU2),Niko233(AS2),Custom,Niko233(NA),Niko233(EU),Niko233(AS),Niko233(CN),Modded SA (MSA),Niko-CN + diff --git a/packaging-steam/doorstop_config.ini b/packaging-steam/doorstop_config.ini new file mode 100644 index 000000000..dcdf605ab --- /dev/null +++ b/packaging-steam/doorstop_config.ini @@ -0,0 +1,53 @@ +# General options for Unity Doorstop +[General] + +# Enable Doorstop? +enabled=true + +# Path to the assembly to load and execute +# NOTE: The entrypoint must be of format `static void Doorstop.Entrypoint.Start()` +target_assembly=Doorstop.dll + +# If true, Unity's output log is redirected to \output_log.txt +redirect_output_log=false + +# Overrides the default boot.config file path +boot_config_override= + +# If enabled, DOORSTOP_DISABLE env var value is ignored +# USE THIS ONLY WHEN ASKED TO OR YOU KNOW WHAT THIS MEANS +ignore_disable_switch=false + + +# Options specific to running under Unity Mono runtime +[UnityMono] + +# Overrides default Mono DLL search path +# Sometimes it is needed to instruct Mono to seek its assemblies from a different path +# (e.g. mscorlib is stripped in original game) +# This option causes Mono to seek mscorlib and core libraries from a different folder before Managed +# Original Managed folder is added as a secondary folder in the search path +# To specify multiple paths, separate them with semicolons (;) +dll_search_path_override= + +# If true, Mono debugger server will be enabled +debug_enabled=false + +# When debug_enabled is true, specifies the address to use for the debugger server +debug_address=127.0.0.1:10000 + +# If true and debug_enabled is true, Mono debugger server will suspend the game execution until a debugger is attached +debug_suspend=false + +# Options sepcific to running under Il2Cpp runtime +[Il2Cpp] + +# Path to coreclr.dll that contains the CoreCLR runtime +coreclr_path= + +# Path to the directory containing the managed core libraries for CoreCLR (mscorlib, System, etc.) +corlib_dir= + +# Environment variables to set for the current game process before the Unity runtime starts. +[Environment] +GC_DISABLE_INCREMENTAL=1 diff --git a/packaging-steam/winhttp.dll b/packaging-steam/winhttp.dll new file mode 100644 index 0000000000000000000000000000000000000000..1ac79cbd09f058b711133a687ee04373e2fa1f43 GIT binary patch literal 22528 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 ZB@Z(>Ur`hX=JJhvdqgAu_)O`6{{uiXR{sD1 literal 0 HcmV?d00001 diff --git a/packaging/winhttp.dll b/packaging/winhttp.dll deleted file mode 100644 index d3030030b09c954021634a28d7bdbdca336ab83c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30720 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