Install File Manifest
Built from a live directory listing, not from documentation alone — sizes and paths below were measured directly. See Getting Started for the full provenance note.
A categorized survey of every file group in the Steam install
(C:\Program Files (x86)\Steam\steamapps\common\Far Cry 2\). Status reflects tooling maturity, not
independent re-verification of every single file.
Status key: Tooled (round-trips cleanly with existing community tools) · Partial (some tooling exists, real gaps remain) · Locked (no known extraction/edit path beyond raw hex editing) · Out of scope (third-party/vendor content, not FC2-specific).
Total data footprint: ~3.3 GB, dominated by worlds.dat (2.5 GB) — that single archive holds the bulk of moddable content (meshes, textures, terrain, entity data), not the more obviously-named common archive.
1. Packed Data Archives (.fat/.dat) — Tooled
The engine's container format: a .fat index paired with a .dat blob. Everything else in this manifest (except loose executables/config) lives inside one of these seven pairs. Filenames inside are CRC32 hashes, not stored as strings — resolving them needs a community filelist (research/reference-files/hash-lists/). See also the archives format page for how the engine resolves these at runtime.
| Path | Size |
|---|---|
Data_Win32/common.dat + .fat | 100 MB |
Data_Win32/patch.dat + .fat | 9.8 MB |
Data_Win32/shadersobj.dat + .fat | 250 MB |
Data_Win32/sound.dat + .fat | 156 MB |
Data_Win32/sound_english.dat + .fat | 118 MB |
Data_Win32/worlds/worlds.dat + .fat | 2.5 GB |
Data_Win32/worlds/worlds_english.dat + .fat | 109 MB |
Data_Win32/downloadcontent/dlc1/{dlc1,dominos,entitylibrary,menus}.dat/.fat | — |
Data_Win32/downloadcontent/dlc_jungle/{dlc_jungle,menus}.dat/.fat | — |
Tools: Gibbed.Dunia.ArchiveViewer/Unpack/Pack, wobatt's improved decoder, FCBConverter. patch.fat is the one every mod actually targets — it carries entitylibrarypatchoverride.fcb, the official override hook (see Getting Started).
2. Entity / Object Binary Data (.fcb) — Tooled
Inside the archives above: compiled object-definition trees — weapons, vehicles, player/buddy stats, gamemode config, world sectors. Round-trips to human-editable XML. See the .fcb format page for the confirmed byte layout.
patch.fat/generated/entitylibrarypatchoverride.fcbworlds.fat/world{1,2}/generated/entitylibrary{,_full}.fcbworlds.fat/…/worldsectors/worldsectorNN.data.fcbworlds.fat/…/world1.mapdata.fcblibraries/world1/{41_WeaponProperties,42_weapons,30_player}.xml.fcb
Tools: Gibbed.Dunia.ConvertBinary (fcb ⇄ xml). Exception — Locked: downloadcontent/dlc1/entitylibrary.fcb (DLC weapon data) cannot be decompiled by ConvertBinary at all; the only known path in is a raw hex editor (see Getting Started and Data Recipes).
enemy_archetypes.xml is confirmed community-established as the AI-tuning file for things like enemy FOV/view distance/cover occlusion (Discord, 🔨-fc3-and-bd-modding, 2025-11-27) — referenced by a user asking for its FC3 equivalent, unanswered in-thread, but implying the filename is common knowledge for anyone tuning FC2 enemy perception.
A related but distinct binary format, depload.dat (a dependency/"parents" chunk, not an object tree — not decodable by ConvertBinary at all), is not FCBConverter-supported and has its own format page.
3. Meshes & Materials (.xbg / .xbm) — Partial
3D geometry (.xbg) and material/texture-reference definitions (.xbm) — structurally the same reversed-FourCC chunk format under two extensions. Lives in worlds.fat/graphics.
worlds.fat/graphics/**/*.xbg— meshes, incl. character/buddy modelsworlds.fat/graphics/**/*.xbm— materials
Byte-level format documented as of 2026 (section order, alignment rule, bone-palette mechanism) — see the .xbm/.xbg format page. Dunia-Engine-XBG-Blender-Importer gives a real import/export path, but is pre-alpha — weapon-xbg import is currently broken, HKX collision export doesn't work yet. Texture-only reskins (no mesh edits) have been standard practice since 2011.
4. Textures (.xbt) — Partial
Compressed texture assets referenced by .xbm materials, packed inside the same archives (worlds.fat/**/*.xbt).
.xbt → .dds extraction is solid and has been for years (010 Editor templates, xbt2dds). Repacking .dds → .xbt was historically the shakier direction but is implicitly solved in practice — the community has shipped full weapon reskins since 2011–2012.
5. Terrain / Heightmaps (.sdat) — Tooled
Per-sector heightmap + auxiliary terrain data (worlds.fat/…/worldsectors/*.sdat). Each multiplayer map is 512m×512m, divided into an 8×8 grid of sectors.
The community's own byte-layout guess for these files was wrong — see the .sdat format
page for the confirmed real layout (a generic chunked container, not a
bare heightmap array).
A Blender plugin can reportedly read and edit these directly. Whether the 8×8 sector grid itself can be enlarged is unresolved.
Two sibling per-sector files, .srl (sound regions) and .zsr (gameplay zones), were hash-list-only
until now — see .srl/.zsr for the confirmed container level (fixed
1024/4096-byte raw dumps, no header).
6. Navigation Mesh (.nvm) — Locked
AI pathfinding navmesh data, compiled from level geometry (worlds.fat/**/*.nvm).
Confirmed built on the open-source Recast library (via a leaked internal build-tool plugin list — RecastNavmeshCompiler/Exporter), but no FC2-specific decode/edit tool has surfaced in this research.
The container/file-structure level is now reverse-engineered — see the .nvm format
page: a two-tier scheme (one level file plus per-sector satellite files),
distinct from every other per-sector format in this manifest. Still no tool, and the actual per-sector
mesh/triangle payload isn't decoded yet, so this stays Locked in practice.
7. Audio — Partial
Voice, SFX, and ambient sound — both a top-level archive pair and packed sound objects inside worlds.fat.
Data_Win32/sound.dat+.fat(156 MB),Data_Win32/sound_english.dat+.fat(118 MB)Data_Win32/SoundBinary/DARE.INI— audio middleware configworlds.fat/**/*.spk— sound bank objects, hash-namedworlds.fat/**/*.sbao— soundbinary objectsscripts/game/barkdata/*.bank
Active community .spk editing exists ("enough to mod them, but not everything" — Gabor). DARE.INI pairs with bin/eax.dll (Creative EAX) but hasn't been deeply researched here.
.spk's container format is now reverse-engineered and tooled — see the .spk format
page: magic 0x53504B01, a record count, an id table, then
variable-length {preamble, size, payload} records, 4-byte aligned. Verified byte-for-byte against
every .spk in a real install (8,282 files, 42,215 records, zero failures) and implemented in
tools/JackAll/src/JackAll.Tools/Spk/SpkPackage.cs / JackAll.App's SpkFileHandler. This
matches Gabor's "enough to mod them, but not everything": each record's own payload is registered
by the engine as an opaque {id, pointer, size} triple at load time and only interpreted later, at
actual playback — see the .sbao format page for the standalone-file
sibling format.
8. Video (Bink) — Out of scope
Cutscenes and intro/outro movies, RAD Game Tools' Bink format.
Data_Win32/ui/video/ending.bikbin/binkw32.dll— Bink codec
Standard, well-documented third-party format with its own public tooling ecosystem — not FC2-specific, so not covered by the modding research.
9. Lua Scripts — Partial
Real embedded Lua, packed inside worlds.fat's "domino" AI subsystem — confirms Lua exists in FC2 for at least reinforcement/interaction logic.
worlds.fat/domino/system/reinforcementregion.luaworlds.fat/domino/system/spawnreinforcement.luaworlds.fat/…/master_world{1,2}.world{1,2}.luaworlds.fat/…/common_hq_doorman*.lua
Whether a patched Lua file is honored at runtime is contested — see Gotchas for the conflicting reports (one 2011 report says the game silently reads the original; a 2016 report and a 2022 outpost-respawn-timer mod both confirm patched Lua working). Treat as subsystem-dependent, not uniformly reliable.
10. Menu/UI Resources (.mgb / .mgb.desc) — Partial
Compiled menu/UI layout data ("Magma" — the engine's own internal name for this subsystem, confirmed
via CMagmaUIResource/CMagmaConfigUIResource class names and the magma:: C++ namespace). Lives in
ui\localized\{pc,pcwidescreen}\<lang>\ui\*.mgb[.desc], packed inside patch.fat (full localized set,
smallest archive to pull samples from) and also present in common.fat/worlds.fat.
.mgb.desc— plain, well-formed XML (nav-bar button-prompt text bindings + a<dependencies>tree naming other required.mgb.desc/.mgb/.xbtresources). Directly Notepad++-editable — no hex editor needed. This corrects the Almost Complete Guide's claim that both files "can only be edited with a hex editor"; that's only true of the binary half. JackAll shows it as plain, syntax-highlighted XML (routed through the same viewer as.xml)..mgb— binary,"MAGMA"-magic (5-byte ASCII, not a reversed-FourCC like.xbm/.xbg). Contains widget geometry/alpha floats, UTF-16LE UI strings, and an animation-keyframe layer, all reversed to full byte precision. Read-only, not round-trip yet: a real file's class-name coverage is incomplete (42/166 type-table entries resolved in one sample), so the decoder stops cleanly at the first unrecognized widget class rather than guessing — full files don't decode end-to-end yet.
Tools: JackAll has a real (partial) decoder and tree viewer for .mgb
(JackAll.Core.Format.Mgb*) — the first published tooling for this binary format's contents, not just
its container. Gibbed.Dunia.Unpack.exe still handles extraction (round-trips the container, not the
.mgb binary itself). Byte-level RE notes, confirmed class hierarchy, and load-flow tracing (via the
FarCry2_server binary) are on the .mgb format page.
11. DLC Manifests (.rml) — Tooled
Table-of-contents / resource-manifest XML variant listing a DLC package's contents.
Data_Win32/downloadcontent/dlc1/toc.rmlData_Win32/downloadcontent/dlc_jungle/toc.rml
Tool: Gibbed.Dunia.ConvertXml.exe handles .rml ⇄ XML directly.
12. Engine & Game Executables — Locked
Compiled binaries — the game itself, its engine core, and supporting native/managed libraries. All live in bin/.
FarCry2.exe— main game binaryDunia.dll— engine core, confirmed hex-patchableFC2.dllFC2Editor.exe— map editor; source recovered, seeresearch/reference-files/fc2editor-source/FC2Launcher.exe,FC2ServerLauncher.exeFC2BenchmarkTool.exe+.configMicrosoft.DirectX{,.Direct3D,.Direct3DX}.dll— legacy MDX wrapperSandBar.dll,SandDock.dll— WinForms docking UI (editor); safe to delete per community reportgpudatabase.dll+pcidevs.txt,extendedpcidevs.txtsystemdetection.dll— splash-hang fix: swap for FC3's copyFC2Init.ini,lang.ini
Not just opaque binaries — Dunia.dll has two confirmed community hex-patches (a weapon-icon fallback fix, and the "Multi editor mod"'s modified DLL for extra editor functionality) — see Data Recipes and Engine Theory. FC2Editor.exe's likely source is preserved at research/reference-files/fc2editor-source/ (splash-hang fix in Gotchas).
13. Anti-Cheat (PunkBuster) — Out of scope
Third-party anti-cheat, bundled and self-updating — unrelated to game content.
bin/pb/dll/*.dll,bin/pb/htm/*.htmbin/pb/{pbag,pbags,pbcl,pbcls,pbsv}.dll,pbns.datinstallers/PunkBuster/pbsvc.exerevoke.bat(root) — PB revocation script
Irrelevant to modding; only matters if multiplayer/PB-enforced servers are in play.
14. Redistributable Installers — Out of scope
Vendor prerequisite installers, bundled for a fresh machine.
installers/DirectX/*.cab,DXSETUP.exe,DSETUP.dllinstallers/DotNetRedist/{dotnetfx,NetFx64}.exeinstallers/VCRedist/vcredist_x86.exe
Off-the-shelf Microsoft/legacy redistributables — no FC2-specific content.
15. Localization Resources — Out of scope
Per-language UI resource folders for the launcher/benchmark tooling (distinct from in-game text, which lives inside sound_english.*/worlds data as subtitle strings).
bin/Resources/{cs,de,es,fr,it,nl,pl,ru,uk,us}/
Not investigated in the modding research — likely satellite .resources.dll-style assemblies for the .NET launcher/benchmark tools, not gameplay-relevant.
16. Top-Level Docs & Install Metadata — Out of scope
Root-level housekeeping files, not part of the runtime data pipeline.
ReadMe.txt,PatchNotes.txt,manual.pdf19900_install.vdf,21960_install.vdf— Steam depot manifests
Reference-only; safe to ignore for modding purposes.
17. Editor/Pipeline-Only Formats — Out of scope (not present in the shipped install)
Four extensions confirmed only via literal path strings in FarCry2_server's string table (see
Engine Architecture) — the engine code that reads them exists,
but none of the four appear anywhere in the real Steam install's archive filelists. These are
build-time/editor artifacts, not retail content; don't expect to find them by unpacking the shipped
.fat/.dat pairs.
.nomad—Levels\%s\%s.nomad, a per-level master descriptor. Named after theCNomadObject/CNomadPathclasses seen throughout the engine's reflection/persistence layer..raw—%sheightmap.raw, a raw heightmap distinct from the runtime.sdatchunked format — most likely a pipeline intermediate before terrain gets baked into.sdat..mask—%stexture.mask/%scollection.mask, editor-side painting masks (texture-slot and prefab-collection placement), referenced alongside an otherwise-undocumented in-engine terrain-generation scripting API (procedural noise/heightmap/erosion functions)..png—mapcompass.png,worlds\%s\smallscreenshot.png— lightweight UI/thumbnail images, separate from the.xbttexture pipeline used for actual in-game textures.