isaacscript-common

Helper functions and features for IsaacScript mods.


Keywords
isaac, rebirth, afterbirth, repentance, typescript-to-lua, lua, tstl
License
GPL-3.0
Install
npm install isaacscript-common@87.3.0

Documentation

IsaacScript

Logo


Discord

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.


Packages

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. npm version
eslint-plugin-isaacscript An ESLint plugin that contains useful rules. npm version
isaac-lua-polyfill Polyfills for testing Isaac mods using TypeScript. npm version
isaac-typescript-definitions TypeScript definitions for the The Binding of Isaac: Repentance API. npm version
isaacscript-cli The command-line tool for managing Isaac mods written in TypeScript. npm version
isaacscript-common Helper functions and features for IsaacScript mods. npm version
isaacscript-common-node Helper functions for Node.js projects. npm version
isaacscript-common-ts Helper functions for TypeScript projects. npm version
isaacscript-lint A linting dependency meta-package for IsaacScript and TypeScript projects. npm version
isaacscript-lua A tool for managing IsaacScript libraries in Lua projects. pypi version
isaacscript-spell Spelling dictionaries for The Binding of Isaac: Repentance. npm version
isaacscript-tsconfig A sharable TypeScript config for TypeScript and IsaacScript projects. npm version

Getting Started with Development

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 .

Working with isaacscript-common

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.)

Making a New Mod

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.

Using an Existing Mod

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.