{"id":25282613,"url":"https://github.com/emeraldblock/shapez.io-mods","last_synced_at":"2025-04-06T13:32:54.572Z","repository":{"id":155696982,"uuid":"495227739","full_name":"EmeraldBlock/shapez.io-mods","owner":"EmeraldBlock","description":"mods for shapez","archived":false,"fork":false,"pushed_at":"2023-12-25T05:51:23.000Z","size":142,"stargazers_count":0,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-12T19:48:09.054Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","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/EmeraldBlock.png","metadata":{"files":{"readme":"README.md","changelog":null,"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":"2022-05-23T02:02:36.000Z","updated_at":"2022-08-18T03:39:48.000Z","dependencies_parsed_at":null,"dependency_job_id":"870c99bb-1799-4dfc-bb51-feaba1764d87","html_url":"https://github.com/EmeraldBlock/shapez.io-mods","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EmeraldBlock%2Fshapez.io-mods","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EmeraldBlock%2Fshapez.io-mods/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EmeraldBlock%2Fshapez.io-mods/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EmeraldBlock%2Fshapez.io-mods/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/EmeraldBlock","download_url":"https://codeload.github.com/EmeraldBlock/shapez.io-mods/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247488436,"owners_count":20946945,"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":[],"created_at":"2025-02-12T19:44:37.296Z","updated_at":"2025-04-06T13:32:54.546Z","avatar_url":"https://github.com/EmeraldBlock.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Emerald Block's shapez mods\n\n_they exist now!_\n\nThis mod development environment aims to be similar to coding in shapez itself, while still following the structure of a mod. It features import syntax for shapez globals and support for Sass files, as well as TypeScript and shapez typings. However, there is no automatic class extension, CSS registering, etc.; you are still in full control of what your mod does.\n\nThis is based on [dengr1065's mod development environment](https://github.com/dengr1065/shapez-mods). It uses webpack to bundle, and thanks to hacky aliases and a hacky regex, shapez imports are super convenient!\n\n## Setup\n\nReplace `[shapez.io]` in the `*.template.*` files (for [`config.js`](./config.js) and [`tsconfig.json`](./tsconfig.json)) with your shapez source directory and rename.\n\n## Usage\n\nMods are contained in subfolders of [`src/`](./src/). The entry point is `index.ts` or `index.js`, and metadata should be in `meta.js` (for the banner comment in the built mod).\nBuild with `npm run build`, which will build to [`build/`](./build/).\n\nImporting from shapez can be done like `\"shapez.io/translations.js\"`. Note it resolves `shapez.io` straight to `[shapez.io]/src/js/`. These are converted to destructuring from the global `window.shapez`.\nLikewise, Sass imports can be done like `\"shapez.io/mixins.scss\"`, resolving straight to `[shapez.io]/src/css/`. These actually import shapez files, since Sass features are transpiled at build time.\n\nTypeScript imports should be extensionless, so that both TypeScript and webpack can process them.\nIf shapez typings are incomplete for something, it's recommended to augment them in [`src/typings.d.ts`](./src/typings.d.ts).\n\nSee my mods for example usage.\n\n## Issues\n\n* Mod class extension type augmentations bleed across mods.\n* You can't build just a specific mod.\n* Since some shapez mixin files also include CSS declarations, importing those will lead to registering duplicate CSS declarations.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femeraldblock%2Fshapez.io-mods","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Femeraldblock%2Fshapez.io-mods","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femeraldblock%2Fshapez.io-mods/lists"}