Skip to content
Paul Maskelyne edited this page Sep 9, 2024 · 1 revision

Setting up Your Development Environment

The following software/versions are required for building and testing the system at the current time.

  • NodeJS v20.17.0

If you use the Visual Studio Code editor, a number of helpful extensions are recommended (but not required):

  • EditorConfig for VS Code
  • ESLint
  • i18n Ally
  • Prettier - Code formatter
  • Todo Tree

Installation

Check Out the Code

Check out the repository with either HTTPS or SSH:

HTTPS Checkout

git clone https://github.com/Muttley/foundryvtt-dreams-and-machines.git

SSH Checkout

git clone [email protected]:Muttley/foundryvtt-dreams-and-machines.git

Build the System

Change directory into the newly checked out repository and run the following steps:

Install NodeJS Modules

npm install

Build the System

npm run build

You should see something like the following output:

❯ npm run build

> build
> gulp build

[11:25:41] Using gulpfile ~/projects/foundryvtt-dreams-and-machines/gulpfile.mjs
[11:25:41] Starting 'build'...
[11:25:41] Starting 'compileSass'...
[11:25:41] Starting 'compileLangs'...
[11:25:41] Starting 'lintJavascript'...
[11:25:41] Starting 'compileJavascript'...
[11:25:41] Finished 'compileSass' after 677 ms
[11:25:42] Finished 'compileLangs' after 722 ms
[11:25:42] Finished 'compileJavascript' after 1.66 s
[11:25:43] Finished 'lintJavascript' after 1.8 s
[11:25:43] Finished 'build' after 1.81 s

Link the System to Foundry

Change directory to the systems directory your Foundry VTT Data folder and create a symbolic link to the respitory system directory:

Linux or OS X
cd <foundry_data_folder>/systems
ln -s <repository_directory>/system dreams-and-machines
Windows
cd %localappdata%\FoundryVTT\Data\systems
mklink /d dreams-and-machines <reposity_directory>\system

Run Foundry VTT

Once the above steps are completed you should be able to run Foundry VTT and create a new World for the Shadowdark as you would for any other system.

Recommended modules for development:

  • Developer Mode

Development Workflow

Within the repository you can run the following to compile the system and then watch files for changes:

npm run build:watch

This will allow you to make changes to the code within the repository and then just use F5 to refresh Foundry and pick up the changes for testing.

Coding Style

Please use the existing code as a guide, as well as conforming to Editor Config and ESLint settings included within the repository.

There are a few golden rules which should be adhered to:

  • All files should be in UTF-8 format with LF end-of-lines
  • Tabs are used for indentation
  • Trailing whitespace should be trimmed before committing code

Other than that, use your best judgement and try to make your code as easy to read as possible, with sensible variable names, etc.

If you are a new developer, the Code Complete book by Steve Mcconnell is an excellent starting place.

Restrictions

The use of AI to generate code or assets for contribution is not permitted under any circumstances.