Getting started
Install SFMC locally and bring your server online.
This page is for operators and module authors. After reading it, you should be able to:
- Complete installation and first-time setup
- Manage services and modules with common commands
- Tell modules apart from add-ons, and know where development workflow begins
Details live in later chapters; see Command reference for a quick lookup.
System requirements
Quick start
pnpm v11+ waits 24 hours by default before selecting a newly published version from an unversioned package name. On release day, use pnpm view @sfmc-bds/sfmc version and install that exact version as shown above. Use @beta only to opt into prereleases.
This installs the stable latest release. Add @beta only when you want a prerelease.
Data defaults to the current directory; set SFMC_ROOT to use another root.
Build the monorepo once before first use.
Type help in the console for available commands.
For module development, install the SFMC Module extension (test / Watch); see Module authoring.
First run and daily use
The first run opens the setup wizard: pick BDS, data directory, and optional LLBot. After that, the workspace looks roughly like:
Services start in order db → qq → llbot → bds. Before BDS starts, the module behavior pack is checked; if it is out of date, it is rebuilt first. A failed build blocks the game process.
After editing configs/*.json or a module's sapi/manifest.json, restart BDS.
Configs and manifests are not hot-reloaded; during development use the SFMC Module extension Watch, or on the server run mod reload.
See Service management for services, logs, and load gates. See Configuration for config files.
Modules
A module is an SFMC business feature package (installed with mod).
An add-on is a third-party behavior or resource pack installed into the world (managed with packs / addon). Do not mix the two command families.
Enable/disable, behavior pack assembly, and reload are covered in Modules. Full author workflow: Module authoring.
Common issues
More in Troubleshooting.