{"id":21361607,"url":"https://github.com/acovaci/biter-modding-library","last_synced_at":"2025-03-16T06:44:18.986Z","repository":{"id":242372778,"uuid":"809381142","full_name":"acovaci/biter-modding-library","owner":"acovaci","description":"A runtime library that hooks into Factorio's runtime to provide deep modding capabilities","archived":false,"fork":false,"pushed_at":"2024-08-26T21:22:06.000Z","size":115,"stargazers_count":0,"open_issues_count":5,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-22T19:16:22.910Z","etag":null,"topics":["factorio","factorio-mod","modding","modding-framework","modding-tools","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/acovaci.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":"2024-06-02T14:32:23.000Z","updated_at":"2024-06-02T15:25:38.000Z","dependencies_parsed_at":"2024-06-02T16:36:17.809Z","dependency_job_id":null,"html_url":"https://github.com/acovaci/biter-modding-library","commit_stats":null,"previous_names":["acovaci/biter-modding-library"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/acovaci%2Fbiter-modding-library","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/acovaci%2Fbiter-modding-library/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/acovaci%2Fbiter-modding-library/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/acovaci%2Fbiter-modding-library/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/acovaci","download_url":"https://codeload.github.com/acovaci/biter-modding-library/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243835937,"owners_count":20355611,"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":["factorio","factorio-mod","modding","modding-framework","modding-tools","rust"],"created_at":"2024-11-22T06:10:37.296Z","updated_at":"2025-03-16T06:44:18.966Z","avatar_url":"https://github.com/acovaci.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# The Biter Modding Library\n\nThe Biter Modding Library is a runtime library that hooks into Factorio's runtime to provide deep\nmodding capabilities. It is designed to be used by modders to create mods that are more powerful and\nflexible than what is possible with Factorio's built-in modding API.\n\n## Installation\n\nThis project is not yet ready for production. It is still in the early stages of development and is\nnot yet feature complete. If you would like to try it out, you can clone the repository and build it\nyourself. But consider yourself warned: this is not yet a stable project.\n\n## Development\n\nThis project is developed using the Rust programming language. You will need to have Rust installed\non your system in order to build and run this project. You can install Rust by following the\ninstructions on the [official Rust website](https://www.rust-lang.org/).\n\nThe project is configured for easy setup as long as you're using Visual Studio Code. The setup\nscripts are currently only written with MacOS in mind, but they should be easily adaptable to other\noperating systems, and I welcome pull requests for this.\n\nYou can run the following commands to set up the project for development:\n\n```bash\n$ pre-commit install\n$ cargo build\n$ cargo task setup\n```\n\nThis will compile the project, then create a backup of the Factorio binary inside the game folder,\nunder `factorio.bak`. It will then modify the factorio binary headers to load the library at launch.\nFinally, on MacOS, it will sign the binary **with your own certificate**. This is necessary to\nprevent MacOS from blocking the binary from running.\n\n## Contributing\n\nContributions are welcome! If you would like to contribute to this project, please open an issue to\ndiscuss your idea in the Discussions section. I am open to ideas and suggestions, as I am not yet\neven aware of all the possibilities that this library could provide.\n\nIf you're running on Windows or Linux, we need to figure out how to load the library dynamically on\nthose platforms as well. Should be easy, but I don't have the means to test it myself. I am more\nthan happy to pair with someone to get this working. Should be a 2h job at most on each platform.\n\n## Acknowledgements\n\nWell, first of all, I would like to thank the Factorio developers for creating such an amazing game\nand for providing such a rich modding API to begin with. Yes, this project is not using that API,\nbut I want to acknowledge the lightyears ahead that this game is in terms of modding capabilities\ncompared to other games.\n\nThis library wouldn't be possible without the amazing [Frida](https://frida.re/) library, which\nprovides the means to hook into the Factorio runtime.\n\nFinally, this project is heavily inspired by the\n[Factorio Script Extender](https://github.com/0x25CBFC4F/factorio_script_extender) experiment. I\nreferenced that project heavily to understand how to hook into Factorio's runtime, and I would like\nto thank the author for their work.\n\n## License\n\nThis project is licensed under the GNU Affero General Public License v3.0. You can read the full\nlicense in the [LICENSE](LICENSE) file.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Facovaci%2Fbiter-modding-library","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Facovaci%2Fbiter-modding-library","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Facovaci%2Fbiter-modding-library/lists"}