{"id":21981261,"url":"https://github.com/xensik/gsc-tool","last_synced_at":"2026-03-05T18:39:29.336Z","repository":{"id":39856442,"uuid":"265831532","full_name":"xensik/gsc-tool","owner":"xensik","description":"A utility to compile \u0026 decompile IW engine game scripts.","archived":false,"fork":false,"pushed_at":"2026-03-03T11:38:35.000Z","size":35278,"stargazers_count":302,"open_issues_count":9,"forks_count":60,"subscribers_count":15,"default_branch":"dev","last_synced_at":"2026-03-03T14:38:29.978Z","etag":null,"topics":["advanced","black","callofduty","cod","compiler","decompiler","duty","engine","ghosts","gsc","mod","modding","modern","ops","remastered","scripts","tools","vanguard","warfare","warzone"],"latest_commit_sha":null,"homepage":"","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/xensik.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","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":null,"dco":null,"cla":null},"funding":{"github":"xensik","patreon":"xensik"}},"created_at":"2020-05-21T11:30:11.000Z","updated_at":"2026-03-03T11:38:41.000Z","dependencies_parsed_at":"2024-01-05T16:27:22.984Z","dependency_job_id":"2078c759-275f-4bde-9259-abd2604812a0","html_url":"https://github.com/xensik/gsc-tool","commit_stats":null,"previous_names":[],"tags_count":33,"template":false,"template_full_name":null,"purl":"pkg:github/xensik/gsc-tool","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xensik%2Fgsc-tool","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xensik%2Fgsc-tool/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xensik%2Fgsc-tool/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xensik%2Fgsc-tool/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xensik","download_url":"https://codeload.github.com/xensik/gsc-tool/tar.gz/refs/heads/dev","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xensik%2Fgsc-tool/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30143254,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-05T16:58:46.102Z","status":"ssl_error","status_checked_at":"2026-03-05T16:58:45.706Z","response_time":93,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["advanced","black","callofduty","cod","compiler","decompiler","duty","engine","ghosts","gsc","mod","modding","modern","ops","remastered","scripts","tools","vanguard","warfare","warzone"],"created_at":"2024-11-29T17:17:20.818Z","updated_at":"2026-03-05T18:39:29.297Z","avatar_url":"https://github.com/xensik.png","language":"C++","funding_links":["https://github.com/sponsors/xensik","https://patreon.com/xensik"],"categories":["Call of Duty Games"],"sub_categories":["Vortex Plugins \u0026 Tools"],"readme":"[![sonar](https://sonarcloud.io/api/project_badges/measure?project=xensik_gsc-tool\u0026metric=alert_status)](https://sonarcloud.io/summary/overall?id=xensik_gsc-tool)\n[![build](https://github.com/xensik/gsc-tool/workflows/Build/badge.svg)](https://github.com/xensik/gsc-tool/actions)\n[![issues](https://img.shields.io/github/issues/xensik/gsc-tool)](https://github.com/xensik/gsc-tool/issues)\n[![license](https://img.shields.io/github/license/xensik/gsc-tool.svg)](https://github.com/xensik/gsc-tool/blob/dev/LICENSE)\n[![github sponsors](https://img.shields.io/github/sponsors/xensik)](https://github.com/sponsors/xensik)\n[![patreon](https://img.shields.io/badge/Patreon-Become_a_Patron-ff424d?logo=patreon)](https://patreon.com/xensik)\n\n# GSC Tool\nA utility to compile \u0026 decompile IW engine game scripts.\n\n## Supported Games\n- **IW5** *(Call of Duty: Modern Warfare 3)* `PC` `PS3` `Xbox 360`\n- **IW6** *(Call of Duty: Ghosts)* `PC` `PS3` `PS4` `Xbox 360` `Xbox One`\n- **IW7** *(Call of Duty: Infinite Warfare)* `PC` `PS4` `Xbox One`\n- **IW8** *(Call of Duty: Modern Warfare (2019) / Warzone)* `PC` `PS4` `PS5` `Xbox One` `Xbox Series X|S`\n- **IW9** *(Call of Duty: Modern Warfare II (2022) / Warzone 2)* `PC` `PS4` `PS5` `Xbox One` `Xbox Series X|S`\n- **S1** *(Call of Duty: Advanced Warfare)* `PC` `PS3` `PS4` `Xbox 360` `Xbox One`\n- **S2** *(Call of Duty: WWII)* `PC` `PS4` `Xbox One`\n- **S4** *(Call of Duty: Vanguard)* `PC` `PS4` `PS5` `Xbox One` `Xbox Series X|S`\n- **H1** *(Call of Duty: Modern Warfare Remastered)* `PC` `PS4` `Xbox One`\n- **H2** *(Call of Duty: Modern Warfare 2 Campaign Remastered)* `PC` `PS4` `PS5` `Xbox One` `Xbox Series X|S`\n- **T6** *(Call of Duty: Black Ops II)* `PC` `PS3` `Xbox 360` `Wii U`\n- **T7** *(Call of Duty: Black Ops III)* `PC` *(Decompiler)*\n- **T8** *(Call of Duty: Black Ops 4)* ***\\*WIP\\****\n- **T9** *(Call of Duty: Black Ops Cold War)* ***\\*WIP\\****\n- **T10** *(Call of Duty: Black Ops 6)* ***\\*WIP\\****\n- **JUP** *(Call of Duty: Modern Warfare III (2023)* ***\\*WIP\\****\n\n## Usage\n``gsc-tool [OPTIONS..] \u003cpath\u003e``\n\n- **path**: file or directory to process\n\n- **options:**\n\n    ``-m, --mode \u003cmode\u003e``  [REQUIRED] one of: `asm`, `disasm`, `comp`, `decomp`, `parse`\n\n    ``-g, --game \u003cgame\u003e`` [REQUIRED] one of: `iw5`, `iw6`, `iw7`, `iw8`, `iw9`, `s1`, `s2`, `s4`, `h1`, `h2`, `t6` `t7` `t8` `t9` `jup`\n\n    ``-s, --system \u003csystem\u003e`` [REQUIRED] one of: `pc`, `ps3`, `ps4`, `ps5`, `xb2` (*360*), `xb3` (*One*), `xb4` (*Series X|S*), `wiiu`\n\n    ``-i, --instance \u003cinstance\u003e`` Instance to use on games with .gsc/.csc (server, client). (default: server)\n\n    ``-w, --workdir \u003cpath\u003e`` Working directory for includes or headers. (default: .)\n\n    ``-y, --dry`` Dry run (do not write files).\n\n    ``-d, --dev`` Enable developer mode (dev blocks \u0026 generate bytecode map).\n\n    ``-z, --zonetool`` Enable zonetool mode (use .cgsc files).\n\n    ``--t6fixup`` Decompile t6 files from broken compilers.\n\n    ``-h, --help`` Display help.\n\n    ``-v, --version`` Display version.\n\nExample: ``gsc-tool -m comp -g iw5 -s pc ./data/iw5/my_fancy_script.gsc``\n\n| Mode     |Description                | Output      |\n|:---------|:--------------------------|:------------|\n|`asm`     |assemble a `file.gscasm`   |`file.gscbin`|\n|`disasm`  |dissasemble a `file.gscbin`|`file.gscasm`|\n|`comp`    |compile a `file.gsc`       |`file.gscbin`|\n|`decomp`  |decompile a `file.gscbin`  |`file.gsc`   |\n|`parse`   |parse a `file.gsc`         |`file.gsc`   |\n\n## File Format\nIf you need to extract scripts from fastfiles or game memory, use [Zonetool](https://github.com/ZoneTool/zonetool) or [Jekyll](https://github.com/EthanC/Jekyll).\n\n- gsc-tool `.gscbin` binary format is a serialized ScriptFile struct: \u003cbr/\u003e\n\n  - ***magic***: `\"GSC\\0\"` 4 byte \u003cbr/\u003e\n  - ***compressedLen***: 4 byte usigned integer \u003cbr/\u003e\n  - ***len***: 4 byte usigned integer \u003cbr/\u003e\n  - ***bytecodeLen***: 4 byte usigned integer \u003cbr/\u003e\n  - ***buffer***: byte array[compressedLen] \u003cbr/\u003e\n  - ***bytecode***: byte array[bytecodeLen] \u003cbr/\u003e\n\nnote: for PS3 \u0026 Xbox 360 `.gscbin` files *(compressedLen, len, bytecodeLen)* are saved as little-endian!!\n\n- zonetool (IW5) format made of bytecode file `.cgsc` and decompressed stack buffer `.cgsc.stack`.\n\n- treyarch (T6) format is a single buffer with gscobj data `.gsc` or `.csc`.\n\n## Build\n- install [*premake5*](https://premake.github.io) on your system PATH\n- clone this repository\n- update the submodules ``git submodule update --init --recursive``\n- run prebuild script ``premake5 vs2022`` (windows) or ``premake5 gmake2`` (linux/macos)\n\n## Contribute\nIf you like my work, consider sponsoring/donating! Would allow me to spend more time adding new features \u0026 fixing bugs.\n\nBTC: ``bc1qky7x9kpjlt6nsvt7pckc3wwzk8rk9pgtnmw98u``\n\n[![github sponsors](https://img.shields.io/github/sponsors/xensik?style=for-the-badge\u0026label=Github%20sponsors)](https://github.com/sponsors/xensik)    [![patreon](https://img.shields.io/badge/Patreon%20-be%20a%20Patron-FF424D?style=for-the-badge\u0026logo=patreon\u0026logoColor=white)](https://patreon.com/xensik) \n\n## Credits\nThis project is based on [*RektInator's* gsc-asm](https://github.com/ZoneTool/gsc-asm). Special thanks to **RektInator**, **JTAG** \u0026 **Dasfonia**.\n\n## Disclaimer\nThis software has been created purely for the purposes of academic research. Project maintainers are not responsible or liable for misuse of the software. Use responsibly.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxensik%2Fgsc-tool","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxensik%2Fgsc-tool","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxensik%2Fgsc-tool/lists"}