IsaacScript is a tool to help you create Binding of Isaac: Repentance mods using TypeScript.
Please visit the official website for more information. You can also join the Discord server.
This is the monorepo that houses the various packages in the ecosystem.
Each project in the monorepo is contained within the "packages" directory.
Name | Description | Version |
---|---|---|
docs | The Docusaurus website. | n/a |
eslint-config-isaacscript | A sharable ESLint config for TypeScript and IsaacScript projects. | |
eslint-plugin-isaacscript | An ESLint plugin that contains useful rules. | |
isaac-lua-polyfill | Polyfills for testing Isaac mods using TypeScript. | |
isaac-typescript-definitions | TypeScript definitions for the The Binding of Isaac: Repentance API. | |
isaacscript-cli | The command-line tool for managing Isaac mods written in TypeScript. | |
isaacscript-common | Helper functions and features for IsaacScript mods. | |
isaacscript-common-node | Helper functions for Node.js projects. | |
isaacscript-common-ts | Helper functions for TypeScript projects. | |
isaacscript-lint | A linting dependency meta-package for IsaacScript and TypeScript projects. | |
isaacscript-lua | A tool for managing IsaacScript libraries in Lua projects. | |
isaacscript-spell | Spelling dictionaries for The Binding of Isaac: Repentance. | |
isaacscript-tsconfig | A sharable TypeScript config for TypeScript and IsaacScript projects. |
For getting started in building your own mods, see the website. For contributing to the IsaacScript project itself, read on.
- Download and install Node.js, if you do not have it already.
- Download and install Git, if you do not have it already.
- Download and install VSCode, if you do not have it already.
- Open a new command prompt window or shell of your choice.
- Configure Git, if you have not done so already:
git config --global user.name "Your_Username"
git config --global user.email "your@email.com"
- Fork the IsaacScript repository by clicking on the "Fork" button in the top-right-hand corner of this page.
- Clone the forked repository:
cd [the path where you want the code to live]
- If you already have an SSH key pair and have the public key attached to your GitHub profile, then use the following command to clone the repository via SSH:
git clone git@github.com:[username]/isaacscript.git
(replace "[username]" with your GitHub username)
- If you do not already have an SSH key pair, then use the following command to clone the repository via HTTPS:
git clone https://github.com/[username]/isaacscript.git
(replace "[username]" with your GitHub username)
- Enter the cloned repository:
cd isaacscript
- Ensure that Yarn is installed:
corepack enable
- Install dependencies:
yarn install
- Open the monorepo in VSCode:
code .
If you want to fix a bug or add a new feature to isaacscript-common
, then you need to set up a testing mod that links to your compiled development version. (This is so that you can test out your changes inside of the game.)
The isaacscript
command line tool has a --dev
flag that will set up a new testing mod for you automatically:
npx isaacscript@latest init test --dev
This command will initialize a new mod named "test" and then automatically link it to your locally compiled isaacscript-common
. Additionally, when you initiate the IsaacScript file watcher in your mod, it will also spawn an additional watcher process for the files in isaacscript-common
.
Testing with a brand new mod is recommended, but it is also possible to use an existing mod. Just set "isaacScriptCommonDev": true
in your isaacscript.json
file and then start IsaacScript. (Doing this will automatically set up the local Yarn link.)
Make sure that your existing mod project uses Yarn as the package manager, or the link won't work properly.