{"id":26594220,"url":"https://github.com/izica/civ7-modding-tools","last_synced_at":"2025-03-23T15:40:51.156Z","repository":{"id":279272815,"uuid":"937932298","full_name":"izica/civ7-modding-tools","owner":"izica","description":"civ7-modding-tools","archived":false,"fork":false,"pushed_at":"2025-03-22T05:49:57.000Z","size":877,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-22T06:26:48.412Z","etag":null,"topics":["civilization","civilization-7","civilization-vii","modding","modding-tool","modding-tools"],"latest_commit_sha":null,"homepage":"https://forums.civfanatics.com/threads/modding-tools-framework-written-on-typescript.696255/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/izica.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"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}},"created_at":"2025-02-24T06:32:37.000Z","updated_at":"2025-03-22T05:50:01.000Z","dependencies_parsed_at":"2025-03-14T13:29:39.973Z","dependency_job_id":"0857cf60-d8d4-4e98-8cb0-046ab2bed0d5","html_url":"https://github.com/izica/civ7-modding-tools","commit_stats":null,"previous_names":["izica/civ7-modding-tools"],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/izica%2Fciv7-modding-tools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/izica%2Fciv7-modding-tools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/izica%2Fciv7-modding-tools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/izica%2Fciv7-modding-tools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/izica","download_url":"https://codeload.github.com/izica/civ7-modding-tools/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245127312,"owners_count":20565193,"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","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":["civilization","civilization-7","civilization-vii","modding","modding-tool","modding-tools"],"created_at":"2025-03-23T15:40:50.582Z","updated_at":"2025-03-23T15:40:51.150Z","avatar_url":"https://github.com/izica.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# izica`s civ7 modding tools\nMod generation tool for Civilization 7.\n\n- [Usage](#usage)\n- [Currently state](#currently-state)\n    - [Done](#done)\n    - [Working on](#working-on)\n    - [TODO](#todo)\n- [Getting started](#getting-started)\n    - [Install from repository](#install-from-repository)\n    - [Install from NPM](#install-from-npm)\n- [Previews](#previews)\n    - [Use builders for easier and faster mod creation](#use-builders-for-easy-and-faster-mod-creating)\n    - [Full strongly typed](#full-strongly-typed)\n    - [Full control of generation](#full-control-of-generation)\n    - [Possibility of fully manual creation](#possibility-of-full-manually-creation)\n- [Examples](https://github.com/izica/civ7-modding-tools/tree/main/examples)\n    - [Init and create civilization](https://github.com/izica/civ7-modding-tools/blob/main/examples/civilization.ts)\n    - [Create unit](https://github.com/izica/civ7-modding-tools/blob/main/examples/unit.ts)\n    - [Import sql file](https://github.com/izica/civ7-modding-tools/blob/main/examples/import-sql-file.ts)\n    - [Import custom icon](https://github.com/izica/civ7-modding-tools/blob/main/examples/import-custom-icon.ts)\n    - [Create civics progression tree](https://github.com/izica/civ7-modding-tools/blob/main/examples/progression-tree.ts)\n    - [Unique-quarter](https://github.com/izica/civ7-modding-tools/blob/main/examples/unique-quarter.ts)\n\n## Currently state\n### Done\n- [x] Mod info\n- [x] Import custom files\n- [x] Localization\n    - [x] English\n    - [x] Internalization\n- [x] Units\n- [x] Civilizations\n  - [x] Civilization unlocks\n  - [x] Leader unlocks\n- [x] Constructibles\n    - [x] Base building\n    - [x] Improvement\n    - [x] Unique quarter\n- [x] City names\n- [x] Civics\n- [x] Traditions\n- [x] Game Effects\n\n### Working on\n- [ ] Great People nodes(+builder?)\n\n### Todo\n- [ ] AI nodes(+builder?)\n- [ ] Unit abilities nodes(+builder?)\n- [ ] Wonder nodes(+builder?)\n- [ ] ???\n\n\n## Getting started\n### Install from repository\nDownload repo ZIP file or clone:\n\n```bash\nclone https://github.com/izica/civ7-modding-tools\n```\n\n[build.ts](https://github.com/izica/civ7-modding-tools/blob/main/build.ts) contains all the necessary code to get started, so you can begin by modifying it to fit your needs.\nAlso you can copy an example from the [examples](https://github.com/izica/civ7-modding-tools/tree/main/examples) folder into [build.ts](https://github.com/izica/civ7-modding-tools/blob/main/build.ts).\n\nThen, run the following commands:\n\n```bash\nnpm install\nnpm run build\n```\n\n### Install from npm\n\n```bash\nnpm install civ7-modding-tools\n```\n\n```typescript\nimport { Mod } from 'civ7-modding-tools';\n// or you can import from 'civ7-modding-tools/src' for full typescript source\n\nlet mod = new Mod({\n    id: 'test-mod',\n    version: '1',\n});\n/* ... */\nmod.build('./dist');\n```\n\nTo build mod you need to run your script with `node.js` or `tsx`;\n```bash\ntsx build.ts\n```\n\n\n## Previews\n#### Use builders for easier and faster mod creation\n```typescript\nconst mod = new Mod({\n    id: 'mod-test',\n    version: '1',\n});\n\nconst unit = new UnitBuilder({\n    actionGroupBundle: ACTION_GROUP_BUNDLE.AGE_ANTIQUITY,\n    typeTags: [UNIT_CLASS.RECON, UNIT_CLASS.RECON_ABILITIES],\n    unit: {\n        unitType: 'UNIT_CUSTOM_SCOUT',\n        baseMoves: 2,\n        baseSightRange: 10,\n    },\n    unitCost: { cost: 20 },\n    unitStat: { combat: 0 },\n    unitReplace: { replacesUnitType: UNIT.SCOUT },\n    visualRemap: { to: UNIT.ARMY_COMMANDER },\n    localizations: [\n        { name: 'Custom scout', description: 'test description' }\n    ],\n});\n\n\nmod.add([unit]).build('./dist');\n```\n\n#### Full strongly typed\n![Typed](previews/typed.png)\n\n#### Full control of generation\n![Controllable](previews/controllable.png)\n\n#### Possibility of fully manual creation\n```typescript\nconst mod = new Mod({\n    id: 'mod-test',\n    version: '1',\n});\n\nconst unit = new UnitNode({\n    unitType: 'UNIT_CUSTOM_SCOUT',\n    baseMoves: 2,\n    baseSightRange: 10,\n})\n\nconst database = new DatabaseNode({\n    types: [\n        new TypeNode({ type: unit.unitType, kind: KIND.UNIT })\n    ],\n    units: [unit]\n});\n\nconst unitFile = new XmlFile({\n    path: `/units/${unit.unitType}.xml`,\n    name: 'unit.xml',\n    content: database.toXmlElement(),\n    actionGroups: [ACTION_GROUP.AGE_ANTIQUITY_CURRENT],\n    actionGroupActions: [ACTION_GROUP_ACTION.UPDATE_DATABASE]\n});\n\nmod.addFiles([unitFile]).build('./dist');\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fizica%2Fciv7-modding-tools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fizica%2Fciv7-modding-tools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fizica%2Fciv7-modding-tools/lists"}