Noir is a framework for Stormworks: Build and Rescue designed to (metaphorically!) hold your hand in some areas with addon development, while also giving you a neat way of organizing your addon.
Helpful examples can be found in /examples.
The below snippet showcases Noir's events system as well as the OOP nature of the framework. The code below simply sends a notification to any player who joins and gives them an item.
Documentation can be found here.
For learning how to install and use Noir in your addon, please check out the documentation.
If you would like to contribute to Noir, whether that is by creating an issue or by creating a PR, please review this page in the Noir documentation first.
To build Noir (tool executables and the bundled Noir .lua file), see below.
- Ensure Python 3.13+ is installed (may work on earlier 3.x versions, only tested with 3.13).
- Ensure your working directory is the folder containing this README (root).
- Create a virtual environment (venv) by running
py -m venv venv(you may need to usepip install venvif the command doesn't work). - Activate the venv using
venv\scripts\activate.bat(Linux/MacOS:source venv/bin/activate). Usedeactivateinstead ofactivateto exit the venv at any time. - Run
pip install -r requirements.txtto install necessary Python packages. - With the venv activated and necessary packages installed, simply run
build.bat. This will bundle Noir into one.luafile and build all tools in/toolsinto executables by runningpy main.py. The API reference will also get updated (py build-api-reference.py). All of the files are then placed into_buildwhile the API reference docs will simply be updated in thedocsfolder.
⚠️ | Ifpyin the commands above doesn't work, trypythonorpython3instead.⚠️ |build.batis Windows only. You may need to create your own file that does the same and is compatible with your OS if you're not on Windows.

