Project Overview & Toolset
Project Overview & Toolset
What game this targets
Call of the Wild: The Angler, Steam executable `CotWTheAngler_Steam.exe`.
Built on an Avalanche Engine variant sharing tooling lineage with Just Cause
3/4 and generic "Deca" format tooling. There is no official mod support and
no Nexus-integrated mod manager from the developer — everything here is
third-party tooling and reverse engineering.
Folder layout of the toolkit
- `Files/` — the game's own files, unpacked here for editing reference. This
is a full extraction of every game archive, browsable exactly like the
developer's own source tree would be.
- `Tools/` — the AVTeX texture viewer, which lets texture files be opened and
previewed like ordinary images once associated with the file types.
- `Toolset/` — the actual command-line converters (see below), plus a save
file editor.
- `Work/` — scratch space: where files get copied to before editing, and
where in-progress and finished mods live before packaging.
- `Angler_Batch.exe` — a drag-and-drop dispatcher. Drop any supported game
file onto it and it auto-selects the right converter tool. Double-clicking
it directly opens the archive viewer (used for bulk-extracting the game's
files in the first place).
Important: keep this whole toolkit at a short file path (e.g. `D:\Angler
tools`). Long paths (e.g. deeply nested under `Documents`) cause real
failures in the underlying tools.
Toolset executables (in `Toolset/`)
All are .NET console tools; run with no arguments to see usage.
- `Gibbed.TheAngler.ArchiveViewer.exe` — GUI browser for the game's packed
archives (`archives_win64`). Used to do the initial full extraction into
`Files/`. Also has a "Detect Types" feature for reclassifying files the
extractor couldn't identify (they land in an `__UNKNOWN` folder otherwise).
- `Gibbed.TheAngler.SmallUnpack.exe` / (implicitly, its packing counterpart)
— unpacks a SARC-format `.ee` (Avalanche archive) into a directory tree
plus a `@files.xml` manifest. This is the tool for AAF-family files
specifically (see File Formats doc). Supports an embedded TANM chunk for
section naming (present automatically after one round-trip) or an
external `core.db`/`.namemap` file.
- `Gibbed.TheAngler.Unpack.exe` / `Gibbed.TheAngler.Pack.exe` — operate on
`.tab`/`.arc` archive pairs (the top-level game archive format, distinct
from the per-entity `.ee` AAF format).
- `Gibbed.TheAngler.ConvertProperty.exe` — converts RTPC property files
(`.epe`, and other RTPC-family extensions) between binary and XML. This is
the single most-used tool in this project — essentially every entity
data edit documented here (rod holders, vehicles, interactions) goes
through this converter. See `03_EntityDataFormat` for what the XML
actually contains.
- `Gibbed.TheAngler.ConvertAdf.exe` — converts ADF ("Avalanche Data Format")
files between binary and XML: game data tables (`settings/game_data_tables/*.csvc`),
`graphs/**/*.graphc` (visual-scripting compiled output — **note**: this
tool fails on at least some `.graphc` files in this game version with
"One of the identified items was in an invalid format," even with `-t`
type-library hints tried against several candidate files; graph scripts
were not successfully inspected via this route in this project), and
various `*_adf`-suffixed sidecar files (`.epe_adf`). Supports `-t/--types-from`
to load an external type-library ADF first, for chunk ADFs that reference
types defined elsewhere.
- `Gibbed.TheAngler.ConvertTexture.exe` — the DDS/ATX texture pipeline
converter (see File Formats doc for the multi-stage texture system).
- `Gibbed.TheAngler.ConvertResourceBundle.exe` — resource bundles are
ADF-file containers embedded inside some `.ee` files; this extracts them
to a folder of ADFs (edit those with `ConvertAdf`) and repacks.
- `Gibbed.TheAngler.ConvertStringLookup.exe` — the localized text system
(ADF-family, one file per language, in `text/`). You can edit existing
string entries freely. **You cannot safely add new entries**: the format
appears to allow it (repacks without error, and can even be wired into a
menu), but the game crashes the moment a character voiceline tries to
play using a new entry — there is apparently a hardcoded capacity/index
assumption somewhere downstream. Treat this as append-forbidden.
- `Gibbed.TheAngler.SaveEditor.exe` — a save-file browser/editor. Auto-backs
up the save the first time it's opened (into `Toolset/data`). Save file
location: `Library\Saved Games\Avalanche Studios\CotWTheAngler\Saves\[Unique ID]`.
Direct save-file editing was tried early in this project for persistent
unlocks (e.g. fast travel) and found unreliable enough that live-memory
patching became the preferred approach for anything save-related — see
`09_ReverseEngineeringWorkflow`.
- `HashName.exe` — computes the game's internal string hash for a given
input (see `09_ReverseEngineeringWorkflow` for the hash algorithm itself,
which was independently reverse-engineered from the disassembly as Bob
Jenkins' `lookup3.c` "hashlittle").
Mod installation (VFS file mods)
Every VFS mod in this project follows the same install contract:
- In Steam, right-click the game → Properties → General → "Launch Options",
set it to exactly:
--vfs-fs mods --vfs-archive archives_win64- Create a `mods` folder directly inside the game's install directory
(find it via Properties → Installed Files → Browse...).
- Drop a mod's payload into that `mods` folder, mirroring the exact
relative path the file has under `Files/`. Whatever's in `mods` silently
overrides the matching stock file at load time; nothing else needs
registering.
ACM (see `08_ACMLauncher`) automates step 3 for the end user — it copies a
mod's payload folder into the game's `mods` directory when the mod is
enabled, and removes it when disabled.