Files
bd2/plugins/CaptureEnvironment/README.md
T
2026-09-21 09:53:46 +08:00

41 lines
2.0 KiB
Markdown

# BD2 official capture environment plugin
This BepInEx plugin is only for the separately extracted official 2.34.13 client.
- redirects `Application.persistentDataPath` to `<game>/IsolatedUserData`;
- prefixes game `PlayerPrefs` keys with `BD2OfficialCapture23413:`;
- keeps account/profile/Neo/Intro data isolated while patching
`NetworkManager.GetPachedGameDataPath()` to the existing `Data/t` and while
the launcher validates junctions for shared `SoundData`, Addressables,
VideoData and the localized `StreamingAssets/aa` bundle store;
- captures BD2 API request/response bodies without a proxy or TLS certificate;
- captures protobuf requests before encryption and responses after AES decryption;
- omits Cookie/Authorization headers and URL query strings;
- skips GET/static resources and bodies larger than 16 MiB.
HTTP events and protobuf events have independent IDs. A Batch response can
decrypt many protobuf messages under one HTTP request ID; repeated bodies get a
numeric filename suffix and are never overwritten.
The raw body files may still contain private account data. Do not publish the
generated `Capture` directory. This plugin does not redirect the game API and
must not be installed together with `BD2LocalIdentity.dll` in the official
comparison client.
Unity starts writing its default Player log before BepInEx can patch the data
path. Always launch through `tools/python/start-official-capture.ps1`; it supplies an
explicit isolated `-logFile` path, passes the shared GameData location to the
plugin and validates all static-data junctions. The launcher requires explicit
official-client and local-client directory arguments.
Pass them explicitly, for example:
```powershell
.\tools\python\start-official-capture.ps1 `
-GameDir "<official-client-directory>" `
-LocalClientDir "<local-client-directory>"
```
The launcher derives the shared user-data directory for the current Windows
account; `-SharedDataDir` overrides it when the game uses another location.