For AI agents: the complete documentation index is available at /en/llms.txt, the full documentation bundle is available at /en/llms-full.txt, and this page is available as Markdown at /en/guide/index.md.
  • English
  • 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

    ItemRequirement
    OSWindows 10 / 11 (primary support today)
    Node.js22.13 or newer
    DiskSpace for BDS, backups, and modules

    Quick start

    Global pnpm
    monorepo
    pnpm add -g @sfmc-bds/[email protected]
    mkdir my-server && cd my-server
    sfmc

    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.

    Note

    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:

    {workspace}/
    ├── {BDS}/
    ├── configs/
    ├── data/
    ├── packs/
    └── modules/
    sfmc> start -all
    sfmc> status

    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.

    CommandPurpose
    start db|qq|bds|-allStart
    stop / restartStop / restart
    mod listInstalled modules
    mod enable <id>Enable a module
    Important

    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.

    Install existing modules
    Develop your own module
    sfmc> mod search
    sfmc> mod install afk
    sfmc> mod enable afk
    sfmc> mod reload
    LayerRuleExample
    Install idShort kebab-case namemy-feature
    manifest / descriptorfeature-<id>feature-my-feature
    npm (community)@<user>/sfmc-module-<id>@alice/sfmc-module-my-feature

    Enable/disable, behavior pack assembly, and reload are covered in Modules. Full author workflow: Module authoring.

    Common issues

    SymptomCheck first
    /api/health unreachableIs db running? Node.js ≥ 22.13?
    Module commands do nothingEnabled? Restarted BDS after changes?
    Module code syntax / type errorRun pnpm run typecheck or pnpm run lint. See Testing & Debugging

    More in Troubleshooting.

    Next steps

    ChapterContents
    Service managementStart/stop, logs, load gate
    Configurationconfigs/ and reload behavior
    ModulesInstall, enable, behavior pack
    Add-onsThird-party behavior / resource packs
    QQ bridgeGroup ↔ server bridge
    Command referenceCommand cheat sheet
    Backup and upgradeBDS updates and backups
    TroubleshootingSymptoms and fixes