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 venv
if the command doesn't work). - Activate the venv using
venv\scripts\activate.bat
(Linux/MacOS:source venv/bin/activate
). Usedeactivate
instead ofactivate
to exit the venv at any time. - Run
pip install -r requirements.txt
to install necessary Python packages. - With the venv activated and necessary packages installed, simply run
build.bat
. This will bundle Noir into one.lua
file and build all tools in/tools
into 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_build
while the API reference docs will simply be updated in thedocs
folder.
⚠️ | Ifpy
in the commands above doesn't work, trypython
orpython3
instead.⚠️ |build.bat
is 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.