Troubleshooting
Common setup and generation issues, with fixes. If you hit something not listed here, check the open issues or ask on Discord.
Generation
Expecting token of type 'config' but found — but my file looks fine
Cause: the file on disk is empty or out of date because your editor hasn't saved it. Generation reads the file from disk, not from your editor buffer, so unsaved changes are invisible to it. This bites people whose editor doesn't auto-save (VS Code's auto-save is off by default).
Fix: save the file before generating (Ctrl+S), or turn on auto-save in VS Code (File → Auto Save). Every system must start with a config { ... } block — if the parser reports an empty file, a missing save is almost always why.
Generating onto a network / SMB share fails to copy files
Seen when Foundry runs on a NAS or a Raspberry Pi and you generate straight onto the mounted share.
Fix: generate into a local folder first, then copy the result onto the share manually. If you copy other files to that share fine but generation can't, it's usually a permissions or locking quirk of the mount rather than ISDL.
Linux & cross-platform
ISDL runs anywhere Node.js does, but a couple of platform-specific snags show up on Linux.
Cannot find module @rollup/rollup-linux-x64-gnu
This is a known npm bug with optional platform dependencies — npm sometimes fails to install the native binary for your OS.
Fix: reinstall dependencies cleanly. For a global CLI install:
npm uninstall -g intelligent-system-design-language
npm install -g intelligent-system-design-languageIf you're running from a cloned repo, or the bundled VS Code extension, delete node_modules and package-lock.json in that folder and reinstall:
rm -rf node_modules package-lock.json
npm install(The error message itself spells this out — it's an npm issue, not an ISDL one.)
The VS Code extension won't generate on Linux
The extension bundles native binaries, and the pre-built bundle may not match your platform.
Fixes, in order of preference:
- Grab a platform-specific build. Platform-specific
.vsixbuilds are published on the Releases page — install the one matching your OS (see Installing from a VSIX below). - Use the CLI instead. The Command Line Interface installs the correct platform binaries for your machine and uses the exact same generator, so the output is identical:bash
npm install -g intelligent-system-design-language isdl generate my-system.isdl --destination "/path/to/Foundry/Data/systems" - Reinstall the extension's dependencies as described in the rollup section above.
Cross-platform packaging is actively being improved (platform-specific builds + auto-publishing). If you still hit a build error after the steps above, please file an issue with your OS and the full error.
Editor setup
Using VSCodium (or another Open VSX editor)
VSCodium doesn't use the Microsoft Marketplace, so ISDL won't appear in its built-in search by default. Two options:
- Open VSX — ISDL is published at open-vsx.org/extension/IronMooseDevelopment/isdl. Configure VSCodium to use Open VSX (its default) and search for it there.
- Install from a VSIX (see below).
Installing from a VSIX
You can install the extension manually from a .vsix package:
- Download the
.vsixfrom a GitHub Release, or pull the latest directly from the Marketplace:https://marketplace.visualstudio.com/_apis/public/gallery/publishers/IronMooseDevelopment/vsextensions/isdl/latest/vspackage - In VS Code / VSCodium: Extensions panel → ⋯ menu → Install from VSIX… → pick the downloaded file.
The Marketplace listing for reference: marketplace.visualstudio.com/items?itemName=IronMooseDevelopment.isdl
Editing in Neovim, Sublime, Emacs, Helix, …
You don't need VS Code at all — ISDL ships a Language Server (diagnostics, completion, hover, go-to-definition). See the Command Line Interface page for per-editor setup.
Still stuck?
- Double-check Node.js 18+ is installed (
node --version) — generation needs it. - Confirm your
.isdlfile is saved. - Search the issue tracker.
- Ask on Discord — include your OS, how you're generating (extension vs CLI), and the full error text.