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/addons.md.
  • English
  • Add-ons

    Manage third-party behavior packs / resource packs (.zip, .mcpack, .mcaddon, etc.) installed into the current world. Aliases: addon ≡ packs.

    sfmc> packs scan
    sfmc> packs list

    Inbox

    Path: <SFMC_ROOT>/packs/

    ContentDescription
    Pending files / dirsArchives or folders with manifest.json
    _done/Source archives after successful install
    _failed/Unrecognized or failed installs
    _trash/Uninstall recycle bin (default)
    _build/Module behavior pack build output (do not install as add-ons)
    pack-sources.jsonCurseForge and other update source bindings

    The inbox is scanned before start bds; for day-to-day work prefer manual packs scan so you can handle conflicts and update sources.

    Common commands

    CommandPurpose
    packs list [--kind bp|rp|all]List installed packs
    packs install [path|--inbox] [--force]Install path or scan inbox
    packs scan [--force] [--dry-run]Scan inbox
    packs enable | disable <id>id is uuid or folder name
    packs uninstall [id...] [--purge]Remove from world; default to recycle bin
    packs doctor [--fix] [--all-experiments] [--experiments]Diagnose pack wiring & level.dat experiments
    packs pathPrint related paths
    packs bump <id>RP only: patch version +1

    Full subcommands: Command reference.

    World experiments diagnosis & toggles

    Many modern Bedrock add-ons (custom block geometry, entity cameras, native scripts, or newer gameplay features) depend on experimental features enabled in level.dat. packs doctor provides native, safe inspection and configuration for known experiments:

    # Diagnose pack wiring and inspect current world experiments status
    sfmc> packs doctor
    
    # Inspect level.dat experiments only
    sfmc> packs doctor --experiments
    
    # Fix pack wiring and automatically enable required Beta APIs
    sfmc> packs doctor --fix
    
    # Fix pack wiring and enable all known experimental toggles
    sfmc> packs doctor --fix --all-experiments
    
    # Enable specific experiments (comma-separated, aliases supported)
    sfmc> packs doctor --fix --experiments=upcoming,cameras,voxel,villager,drop3,edu
    ExperimentNBT Path / FeatureAliasesDescription
    Beta APIsexperiments.gametestbeta, gametestEnables scripting beta APIs (@minecraft/server, etc.)
    Upcoming Creator Featuresexperiments.upcoming_creator_featuresupcomingCustom block traits and extended model rotation
    Experimental Creator Camerasexperiments.experimental_creator_camerascamerasCustom camera perspectives and /camera commands
    Experimental Voxel Shapesexperiments.voxel_shapesvoxelNon-cube block collision and face culling
    Villager Trade Rebalanceexperiments.villager_trades_rebalancevillager, tradesBiome-dependent librarian book trades and minecart updates
    2026 Drop 3 Updateexperiments.drop_3_2026drop3, wilderness_boundDappled forest, cushions, grass beds, etc.
    Minecraft Education FeatureseducationFeaturesEnabled (root tag)edu, educationChemistry lab table, periodic table elements, and education blocks

    Every modification automatically creates a backup (level.dat.bak), recalculates the 8-byte little-endian header length, and commits via atomic file replacement to ensure world safety.

    Install and conflicts

    After a successful install, entries are written to world_behavior_packs.json / world_resource_packs.json (enabled by default). Restart BDS for changes to take effect.

    When the target already has the same uuid or formatted folder name:

    EnvironmentBehavior
    Interactive (TTY)Prompt to compare and confirm overwrite
    Non-interactive (e.g. beforeStart)No silent overwrite; skip with warning; use --force

    Same uuid with a higher semver can be silently overwritten to the original folder name.

    CurseForge updates

    Bind installed BPs to CurseForge projects; check or apply updates at start or on demand.

    sfmc> packs search "Slash Blade"
    sfmc> packs bind <uuid|folder> slash-blade-addon
    sfmc> packs check
    sfmc> packs update --all
    sfmc> packs sources
    ConfigPurpose
    configs/pack-update.jsonMaster switch, API key, check on startup
    packs/pack-sources.jsonPer-pack binding; set enabled: false or packs unbind

    Environment variable CURSEFORGE_API_KEY overrides the API key.

    Note

    Implementation details (probe scoring, RP bump strategy, providers): CurseForge add-on updates (technical).

    Uninstall

    packs uninstall: disable, remove from world directory (or --purge to delete), clear bindings and inbox fingerprints; by default also removes paired RP when uninstalling a BP (--no-paired to skip).

    Source archives under packs/_done are kept after uninstall.