IsaacScript is a tool to help you create Binding of Isaac: Repentance mods using TypeScript.
Please visit the official website for more information.
This is the monorepo that houses the various packages in the ecosystem. It is powered by Nx.
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-ts | Helper functions for TypeScript projects. | |
isaacscript-common | Helper functions and features for IsaacScript mods. | |
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 don't have it already.
- Download and install Git, if you don't have it already.
- Download and install VSCode, if you don't 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 "[email protected]"
- 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 [email protected]:[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 (v1) 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 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.