2.0 KiB
BD2 official capture environment plugin
This BepInEx plugin is only for the separately extracted official 2.34.13 client.
- redirects
Application.persistentDataPathto<game>/IsolatedUserData; - prefixes game
PlayerPrefskeys withBD2OfficialCapture23413:; - keeps account/profile/Neo/Intro data isolated while patching
NetworkManager.GetPachedGameDataPath()to the existingData/tand while the launcher validates junctions for sharedSoundData, Addressables, VideoData and the localizedStreamingAssets/aabundle 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:
.\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.