{"id":51314209,"url":"https://github.com/dataterminals/grb-modding-knowledgebase","last_synced_at":"2026-07-01T06:02:05.382Z","repository":{"id":368526833,"uuid":"1285543755","full_name":"dataterminals/grb-modding-knowledgebase","owner":"dataterminals","description":"Human- and AI-readable knowledgebase for modding Ghost Recon: Breakpoint (Ubisoft Anvil/Scimitar .forge format, Anvil Toolkit / ATK, asset-replacement pipeline).","archived":false,"fork":false,"pushed_at":"2026-07-01T00:41:20.000Z","size":97,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-07-01T02:16:11.838Z","etag":null,"topics":["anvil-toolkit","forge","game-modding","ghost-recon-breakpoint","knowledgebase","modding","reverse-engineering","ubisoft-anvil"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dataterminals.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-06-30T23:11:51.000Z","updated_at":"2026-07-01T00:33:30.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/dataterminals/grb-modding-knowledgebase","commit_stats":null,"previous_names":["dataterminals/grb-modding-knowledgebase"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/dataterminals/grb-modding-knowledgebase","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dataterminals%2Fgrb-modding-knowledgebase","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dataterminals%2Fgrb-modding-knowledgebase/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dataterminals%2Fgrb-modding-knowledgebase/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dataterminals%2Fgrb-modding-knowledgebase/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dataterminals","download_url":"https://codeload.github.com/dataterminals/grb-modding-knowledgebase/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dataterminals%2Fgrb-modding-knowledgebase/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34994877,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-01T02:00:05.325Z","response_time":130,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["anvil-toolkit","forge","game-modding","ghost-recon-breakpoint","knowledgebase","modding","reverse-engineering","ubisoft-anvil"],"created_at":"2026-07-01T06:01:09.982Z","updated_at":"2026-07-01T06:02:05.375Z","avatar_url":"https://github.com/dataterminals.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GRB Modding Knowledgebase\n\nA human- **and** AI-readable knowledgebase for modding **Tom Clancy's Ghost Recon: Breakpoint** (GRB) — the Ubisoft *Anvil* engine, its `.forge` archives, the **Anvil Toolkit (ATK)**, and the asset-replacement pipeline the modding community uses.\n\n\u003e **Status:** Living research project. First established 2026-06-30. Maintained primarily through the *Tier 1 Imports* modding community. Expect rapid expansion — see [`meta/research-log.md`](meta/research-log.md) for what is **verified** vs. **inferred**, and the current open questions.\n\n---\n\n## Why this repo exists\n\nGRB's official modding tools are effectively gone; the scene survives through a handful of skilled people who built **ATK** and a body of hard-won, mostly-undocumented tribal knowledge living in Discord threads. The goal here is to **capture that knowledge in a structured form** so that:\n\n1. **Humans** new to GRB modding have a real reference instead of scattered chat logs.\n2. **AI coding agents** (Claude Code and others) can load this repo as context and meaningfully *assist* with — or eventually *automate* — GRB modding tasks.\n\nWe do not have one single end goal. The near-term mission is breadth and accuracy: build a trustworthy map of *how GRB's data works and how we change it*, then expand into tooling, automation, and worked examples.\n\n## What modding GRB actually is (the 60-second version)\n\nGRB stores nearly all of its game data inside large **`.forge`** archive files. A `.forge` is a Ubisoft *Anvil* engine container (engine codename **\"Scimitar\"** — it's literally the magic string at the top of every forge). Inside a forge are many **`.data`** entries; each `.data` is itself a small container holding one or more **typed resources** — meshes, textures, materials, build tables, skeletons, and so on.\n\n**ATK** (the Anvil Toolkit) is a Windows `.NET`/WPF application that acts as a **specialized file explorer for forges**: it unpacks a `.forge` into a browsable folder of `.data` files, lets you view/replace textures and meshes, exports resources to standard formats (**DDS**, **glTF/GLB**, **XML**), re-imports edited versions, and **repacks** everything back into a forge the game will load.\n\nA finished asset-replacement mod is, in practice, a small set of **patch forges** (`*_patch_01.forge`) that the game loads *on top of* its base forges, overriding specific entries by ID. Most cosmetic mods touch three forges together:\n\n| Forge | Holds |\n| --- | --- |\n| `DataPC_patch_01.forge` | Item / inventory definitions (`WI_…`), BuildTables, entity data |\n| `DataPC_extra_patch_01.forge` | Gameplay definitions (`WG_…`) |\n| `DataPC_Resources_patch_01.forge` | The heavy resources: meshes (`…_LOD0–3`) and textures (`…_Mip0–N`) |\n\nThe authoring loop is: **model/texture in Blender → export to glTF/DDS → import into the forge with ATK → repack the forge in place in your install.** (You point ATK at your GRB install and repack its forges directly — there's no separate \"drop a file in\" step; a modded install just accumulates mods in its forges over time.) See [`docs/07-modding-workflow.md`](docs/07-modding-workflow.md).\n\n## How to use this repo\n\n### If you are a human\nStart with [`docs/01-overview.md`](docs/01-overview.md), then read the docs in order. Use [`reference/glossary.md`](reference/glossary.md) when a term is unfamiliar. The [`examples/`](examples/) folder walks through real mods end-to-end.\n\n### If you are an AI agent\nRead [`CLAUDE.md`](CLAUDE.md) first — it is the orientation file written for you. It tells you the safety rules (e.g. **never touch a forge without a backup**), the mental model, and where to find authoritative facts. `AGENTS.md` points here too.\n\n## Repo map\n\n```\ndocs/        Conceptual documentation, numbered in reading order\nreference/   Lookup tables: forge inventory, resource types, glossary, cloth section types\nexamples/    Worked case studies of real mods, plus the studied mod corpus\ntools/       Scripts (e.g. cloth_inspect.py — inspect/diff MotionCloth .cloth resources)\nmeta/        Research provenance, verification status, sources, open questions\nassets/      Diagrams and supporting images\n```\n\n| Doc | Topic |\n| --- | --- |\n| [`docs/01-overview.md`](docs/01-overview.md) | Anvil/Scimitar engine, GRB, the modding scene |\n| [`docs/02-forge-file-format.md`](docs/02-forge-file-format.md) | The `.forge` archive format (binary layout, what's verified) |\n| [`docs/03-data-and-resources.md`](docs/03-data-and-resources.md) | `.data` containers, typed resources, file IDs, nesting |\n| [`docs/04-anvil-toolkit.md`](docs/04-anvil-toolkit.md) | ATK deep dive: tech stack, features, the file-explorer model |\n| [`docs/05-three-forge-model.md`](docs/05-three-forge-model.md) | base vs. patch forges; the three-forge mod structure |\n| [`docs/06-game-load-and-reassembly.md`](docs/06-game-load-and-reassembly.md) | How GRB merges many forges into one index at load |\n| [`docs/07-modding-workflow.md`](docs/07-modding-workflow.md) | End-to-end: Blender → glTF/DDS → import → repack → install |\n| [`docs/08-naming-conventions.md`](docs/08-naming-conventions.md) | Prefixes, LOD/Mip suffixes, the `77777` convention, ID formats |\n| [`docs/09-textures.md`](docs/09-textures.md) | DDS, pixel formats, swizzling, mips, gamma |\n| [`docs/10-meshes-and-skeletons.md`](docs/10-meshes-and-skeletons.md) | Vertex formats, LODs, the glTF pipeline, skeletons |\n| [`docs/11-cloth-and-physics.md`](docs/11-cloth-and-physics.md) | The `.cloth` / MotionCloth format, reverse-engineered from ATK source — sections, tunable properties, how to mod cloth |\n\nLookup tables of note: [`reference/forge-inventory.md`](reference/forge-inventory.md) · [`reference/resource-types.md`](reference/resource-types.md) · [`reference/resource-type-ids.md`](reference/resource-type-ids.md) · [`reference/cloth-section-types.md`](reference/cloth-section-types.md) · [`reference/glossary.md`](reference/glossary.md)\n\n## Tools\n\n- **🧵 Cloth Inspector** ([`tools/`](tools/README.md)) — a click-to-run tool (window, drag-and-drop, or a standalone `.exe`) that reads a GRB cloth (`.Cloth` or `.data`) and tells you, in plain language, what it is: its cloth pieces (LODs), the **mesh + LOD** each drives, the sim-mesh size, and **how the garment is attached** (DIRECT vs BARYCENTRIC — i.e. how you can reskin it). Now backed by the exact MotionCloth reader (`motioncloth.py`). **No coding needed.** See [`tools/README.md`](tools/README.md).\n- **🔎 Data Inspector** ([`tools/`](tools/README.md)) — a click-to-run tool (window, drag-and-drop, or a standalone `.exe`) that lists the typed resources inside any GRB `.data` (name, **type**, ClassID, size), Oodle-decompressing via the game's DLL. **No coding needed.** See [`tools/README.md`](tools/README.md).\n- **🗂️ Forge Inspector** ([`tools/`](tools/README.md)) — a click-to-run tool (window, drag-and-drop, or a standalone `.exe`) that reads a whole `.forge` by its index (fast, no unpacking) to show its resource-type histogram, or **diff two forges by real file ID** to find mod conflicts/overrides. **No coding needed.** See [`tools/README.md`](tools/README.md).\n\n## Community\n\n- **Tier 1 Imports** — the primary active GRB modding community.\n- **Anvil Toolkit Discord** — `https://discord.gg/vsuGFEapdq` (from ATK's README; tool support \u0026 updates).\n\n## A note on accuracy\n\nThis knowledgebase is assembled by inspecting a real GRB install, the ATK distribution, and a large corpus of community mods on one researcher's machine. Wherever a claim is **observed and verified**, we say so. Wherever it is **inferred** from naming, structure, or general Anvil-engine knowledge, we flag it as such. If you can confirm or correct something, update [`meta/research-log.md`](meta/research-log.md) and the relevant doc. Treat unverified claims as hypotheses, not gospel.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdataterminals%2Fgrb-modding-knowledgebase","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdataterminals%2Fgrb-modding-knowledgebase","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdataterminals%2Fgrb-modding-knowledgebase/lists"}