# Tooling

The Fedora toolbox container is expected to be named `2077`.

Installed inside that toolbox:

- .NET SDK 8, 9, and 10
- GCC/G++, CMake, make
- `jq`, `ripgrep`
- WolvenKit CLI NuGet tool `wolvenkit.cli` 8.18.1
- `rizin` 0.7.4
- `python3-capstone` 5.0.5
- `python3-pefile` 2024.8.26

The WolvenKit command is:

```bash
toolbox run --container 2077 bash -lc '$HOME/.dotnet/tools/cp77tools --help'
```

## Discover Traffic Resources

```bash
tools/discover_traffic_resources.sh \
  "/path/to/Cyberpunk 2077/archive/pc/content" \
  traffic-resources.txt
```

This lists archive paths matching traffic/persistent/lane naming. The regex is
intentionally broad because CDPR naming can vary between base game and DLC
archives.

## Build Patch Archive

```bash
tools/build_lane_weight_archive.sh \
  "/path/to/Cyberpunk 2077" \
  "/path/to/Cyberpunk 2077/archive/pc/content" \
  work/lane-weight-build
```

The script performs:

1. `cp77tools extract` for traffic lane resources
2. `cp77tools convert serialize` to JSON
3. `tools/patch_traffic_lanes.py`
4. `cp77tools convert deserialize` back to CR2W
5. `cp77tools pack` into an archive

Copy the resulting archive from `work/lane-weight-build/05_packed` into
`Cyberpunk 2077/archive/pc/mod` for manual testing.
