bdo-toolkit
Passive, read-only Python tooling that turns live or recorded Black Desert traffic into structured, application-ready data.
Documentation · Quickstart · Examples · API index · Report an issue
Passive, read-only boundary. bdo-toolkit observes local traffic or saved captures. It does not send or modify packets, replay traffic to the game, automate gameplay, inspect process memory, or bypass anti-cheat software.
Live-capture limitations
Live capture depends heavily on your network setup and on whether the capture backend can see BDO traffic. VPNs and routing services such as ExitLag may require manual interface, local IP, and port settings; automatic detection may select the wrong connection. Traffic visible only as an encrypted tunnel cannot be decoded. Follow Diagnose capture when automatic selection fails to inspect connections on Windows, select grouped capture settings, and verify them with game activity. The guide covers VPNs, local proxies, and cases where no usable adapter is found. Discovery does not apply settings or verify decoding.
Capabilities
bdo-toolkit exposes three passive workflows. Each can observe live traffic or replay a saved PCAP or PCAPNG file.
| Capability | What it provides | Guide | Status |
|---|---|---|---|
| Item activity | A continuing stream of typed BDOEvent objects for supported loot, gathering, inventory, and storage changes |
Item events | Stable |
| Inventory and town storage | A finite ItemStateSnapshot assembled from character-load traffic, with inventory, known balances, and observed town storage |
Inventory & town storage | Beta |
| Arena of Solare leaderboards | A finite SolareCaptureResult containing overall rankings, class tables, and player statistics when the capture is complete |
Arena of Solare | Beta |
These workflows include synchronous and asyncio sessions, capture and decoder health diagnostics, console and JSONL event writers, and a command-line interface. Exact signatures, fields, lifecycle behavior, and failure contracts are in the API index.
Testing and validation cover NA/EU only. Compatibility with other regional services is unknown.
Installation
python -m pip install bdo-toolkit
Python 3.14 or newer is required. Before live capture, complete Installation & setup, including Npcap on Windows and permission to capture on the selected interface. Offline PCAP and PCAPNG replay does not require Npcap.
Get started
- Complete Installation & setup.
- For item events or item state, prepare a current local profile through Opcode profile setup.
- Run the Quickstart or choose a task from the Examples index.
Local calibration is the dependable patch-day path because maintained profiles require manual verification and may lag a weekly update. The Calibration guide walks through rebuilding one. Arena of Solare uses structural classification and does not require an item opcode profile.
Runnable examples
The source checkout includes maintained, run-ready lessons. They are not installed with the Python wheel.
| Workflow | Representative script |
|---|---|
| Observe live item activity | examples/live_transfer_log.py |
| Capture inventory and town storage on character load | examples/live_character_load_snapshot.py |
| Rebuild an item profile after a patch | examples/live_calibrate_profile.py |
| Observe calibration progress and stop on completion | examples/live_calibration_progress.py · async |
| Capture an Arena of Solare leaderboard load | examples/solare_live_snapshot.py |
See the Examples index for every script, its prerequisites, and the guide that explains it.
Support
For questions, contact me on Discord: ._.__.__._._.__._____.__._.___.
For bugs and feature requests, open a GitHub issue.
License
bdo-toolkit is available under the MIT License.
Metadata
Release files for bdo-toolkit 1.0.6
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| bdo_toolkit-1.0.6.tar.gz | 414.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| bdo_toolkit-1.0.6-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 688.3 kB
Release files / bdo_toolkit-1.0.6.tar.gz
| Download URL | bdo_toolkit-1.0.6.tar.gz |
|---|---|
| Size | 414.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f3ec63df6a5bcb4a4f34c95897fcc82d914f8448175d9ccb54d0896b03bfd0fe
|
|
BLAKE2b-256 checksum How to use checksums |
40c69677ab12afe5a8d72e8f4f353539bbc6c130d759544785e4374e73b2e5d1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 20, 2026.
Transparency logRelease files / bdo_toolkit-1.0.6-py3-none-any.whl
| Download URL | bdo_toolkit-1.0.6-py3-none-any.whl |
|---|---|
| Size | 273.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8d597b1a470c44f191f6f650e7721001ca18d297d25eac967355b7693d916255
|
|
BLAKE2b-256 checksum How to use checksums |
a4f8075ad5229412137dcff89f89b880c9b67d75ad151e99568f2b1e40157593
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 20, 2026.
Transparency log