{"id":25721509,"url":"https://github.com/laupetin/openassettools","last_synced_at":"2026-01-04T14:14:59.676Z","repository":{"id":176174351,"uuid":"655048135","full_name":"Laupetin/OpenAssetTools","owner":"Laupetin","description":"Open Source Modding Tools for old Call Of Duty games","archived":false,"fork":false,"pushed_at":"2025-10-05T18:12:59.000Z","size":12812,"stargazers_count":149,"open_issues_count":42,"forks_count":22,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-10-05T18:30:32.241Z","etag":null,"topics":["c-plus-plus","call-of-duty","callofduty","cod","cpp","fastfile","game","hacktoberfest","iw3","iw4","iw5","mod","modding","mw2","mw3","premake","t5","t6","visual-studio","windows"],"latest_commit_sha":null,"homepage":"https://openassettools.dev","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Laupetin.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":"docs/SupportedAssetTypes.md","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-06-17T18:06:37.000Z","updated_at":"2025-10-04T14:02:12.000Z","dependencies_parsed_at":null,"dependency_job_id":"a533c73e-c1ba-4107-b3ae-bc750a0135c7","html_url":"https://github.com/Laupetin/OpenAssetTools","commit_stats":null,"previous_names":["laupetin/openassettools"],"tags_count":60,"template":false,"template_full_name":null,"purl":"pkg:github/Laupetin/OpenAssetTools","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Laupetin%2FOpenAssetTools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Laupetin%2FOpenAssetTools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Laupetin%2FOpenAssetTools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Laupetin%2FOpenAssetTools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Laupetin","download_url":"https://codeload.github.com/Laupetin/OpenAssetTools/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Laupetin%2FOpenAssetTools/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279004178,"owners_count":26083689,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-10T02:00:06.843Z","response_time":62,"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":["c-plus-plus","call-of-duty","callofduty","cod","cpp","fastfile","game","hacktoberfest","iw3","iw4","iw5","mod","modding","mw2","mw3","premake","t5","t6","visual-studio","windows"],"created_at":"2025-02-25T18:49:21.764Z","updated_at":"2026-01-04T14:14:59.670Z","avatar_url":"https://github.com/Laupetin.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"![OpenAssetTools Logo](repo/logo_64_64.png) OpenAssetTools\n============\n\nOpenAssetTools (OAT) is a work in progress project aiming to create a modding tools suite for older Call Of Duty titles.\nIt is not a reimplementation of existing modding tools or related to them but aims to be as compatible as possible in terms of formats and add support for previously unsupported titles.\n\nIn its current form, it is still incomplete and only offers a small subset of modding features.\nIt currently offers support for the PC versions of:\n\n- [IW3 (COD4: Modern Warfare - 2007)](https://en.wikipedia.org/wiki/Call_of_Duty_4:_Modern_Warfare)\n- [IW4 (Modern Warfare 2 - 2009)](https://en.wikipedia.org/wiki/Call_of_Duty:_Modern_Warfare_2)\n- [IW5 (Modern Warfare 3 - 2011)](https://en.wikipedia.org/wiki/Call_of_Duty:_Modern_Warfare_3)\n- [T5 (Black Ops - 2010)](https://en.wikipedia.org/wiki/Call_of_Duty:_Black_Ops)\n- [T6 (Black Ops II - 2012)](https://en.wikipedia.org/wiki/Call_of_Duty:_Black_Ops_II) \n\nwith very varying progress on the different games. \n\n## Features\n\nWhile still incomplete these are the features that are currently available:\n\n### Tools\n\nThe **Unlinker** tool allows loading any fastfile (.ff) of supported games and works standalone.\nWhile being able to load any asset it can currently only dump [a subset of these assets](docs/SupportedAssetTypes.md) to disk, depending on the game.\nThe formats of the dumped assets are either as close as possible to the originally used formats for these games or a commonly used format.\n\nThe **Linker** tool allows building custom fastfiles (.ff) for the supported games.\nIt can also load existing zones and reuse their assets from in-memory.\nOnly [a subset of asset types](docs/SupportedAssetTypes.md) can be read from disk depending on the game.\n\nAdditionally, there are a couple of libraries and tools.\nA full list of the subcomponents can be found [here](https://openassettools.dev/guide/components.html). \n\n## Using the tools\n\nEither download [the latest release from Github](https://github.com/Laupetin/OpenAssetTools/releases/latest) or [build OAT yourself](#building-oat).\nBuilding the tools yourself is only recommended if you want to do some changes to the code.\nOtherwise, you are probably better off just using the latest release.\n\nYou can put OAT anywhere, it does **not** need to be placed in your game folder.\nIn fact, I recommend against it to be able to better distinguish OAT files from game files.\n\nFor more information, check out the [\"Getting started\" guide in the OAT documentation](https://openassettools.dev/guide/getting-started.html).\nYou can find other useful guides and reference documentation there as well.\n\n![German Shepherd Model in Blender](./repo/german_shepherd.png)\n\n## Building OAT\n\nYou need to clone this repository using Git.\nDo not download as a zip from Github because it will not be a git repository which is required for installing the submodules.\n\nBuilding OAT requires Git to be installed on your machine and to be in your PATH.\nThis project uses Premake to generate project files depending on your platform.\n\nNote: The first time setting up will clone any submodules with git so the first initialization might take a bit.\n\n## Documentation \u0026 Examples\n\nThe documentation can be found on the [OpenAssetTools.dev page](https://openassettools.dev).\nIt is hosted on Github Pages and its source can be found in the [OAT Docs Repository](https://github.com/OpenAssetTools/Docs).\n\nFor examples of mods that can be built with OAT, you can either look into the [docs folder](docs/example) for some (currently very barebones) examples\nor check out one of the following projects that are using OAT:\n\n* [OpenAssetTools/Examples](https://github.com/OpenAssetTools/Examples)\n* [JezuzLizard/t6-fastfile-mods](https://github.com/JezuzLizard/t6-fastfile-mods)\n* [Jbleezy/BO2-Reimagined](https://github.com/Jbleezy/BO2-Reimagined)\n* [diamante0018/PlutoIW5Arena](https://github.com/diamante0018/PlutoIW5Arena) (Includes a GitHub action pipeline for building the mod)\n* [SadSlothXL/t6-ports](https://github.com/SadSlothXL/t6-ports)\n\nIf you have a mod that you believe would be a perfect fit here, don't hesitate to open a pull request to include it.\n\n### Windows\n\nWhen building on Windows you will need to have Visual Studio 2022 installed.\nIt is also possible to use other compilers, however, due to the memory layout of structs being important you might\nrun into crashes or invalid data so no guarantees can be given.\n\nUse `generate.bat` to generate Visual Studio solution files.\nThis will also clone any submodules with git so the first time running it might take a bit.\nWhen this is done you will have a `build` folder with a `OpenAssetTools.sln` solution file within that you can open with Visual Studio.\n\nPlease note that due to having source files and project files in separate folders you need to pay attention that when adding new files in Visual Studio they are being placed in the correct folder.\n\nNow you can just build the solution.\nThe resulting binaries can be found in `build/bin/\u003cDebug_x86|Release_x86\u003e`.\n\n### Linux\n\nWhen building on Linux you need to have g++ 13 or later installed.\nSince you are most likely on a 64-bit machine you will also need multilib for compiling for 32-bit.\n\nUse `generate.sh` to generate make files.\nWhen this is done you will have a `build` folder with a `Makefile`.\nYou now run `make` manually or use `./scripts/make-release.sh` or `./scripts/make-debug.sh` to build.\n\nThe resulting binaries can be found in `build/bin/\u003cDebug_x86|Release_x86\u003e`.\n\n## Legal\n\nOAT source code is licensed under [GPLv3](./LICENSE).\n\nExtracting the contents of game files does not grant you any rights to them.\nAll rights remain to their respective owners.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flaupetin%2Fopenassettools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flaupetin%2Fopenassettools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flaupetin%2Fopenassettools/lists"}