Adding packs

Install behavior and resource packs and enable them per world.

Endstone runs on Bedrock Dedicated Server, so it uses the same add-on system as vanilla. There are two kinds of pack:

  • Behavior packs change how the game works - mobs, loot tables, crafting, functions, and rules.
  • Resource packs change how the game looks and sounds - textures, models, sounds, and UI.

An add-on (.mcaddon) is usually just a behavior pack and a resource pack bundled together.

Where to find packs

Behavior and resource packs are vanilla Bedrock content, so they come from the usual Bedrock add-on sites rather than the Endstone plugin ecosystem:

  • MCPEDL - the largest community catalog of free add-ons.
  • CurseForge - Bedrock add-ons and texture packs.
  • Planet Minecraft - community packs and add-ons.
  • Bedrock Tweaks - small vanilla-friendly tweaks (the Bedrock port of Vanilla Tweaks).

Packs bought from the in-game Marketplace are encrypted and can't be installed on a dedicated server. Stick to free .mcpack / .mcaddon downloads.

Packs are distributed as .mcpack / .mcaddon files, but those are just renamed .zip archives. The desktop client can import them with a double-click; a dedicated server cannot, so you unzip them into a folder yourself (see below).

Where to put them

BDS ships with behavior_packs/ and resource_packs/ folders, but those are reserved for the vanilla packs that come with the server. Putting your own packs there mixes them in with Mojang's content.

Use the development folders instead - create them in your server root if they don't exist:

  • development_behavior_packs/
  • development_resource_packs/

Besides keeping your content separate, development folders reload pack changes when the world is re-entered, so you don't have to bump the pack version on every edit during testing.

Unzip each pack into its own subfolder, so the manifest.json sits one level down:

manifest.json
pack_icon.png
manifest.json
pack_icon.png

Enable them per world

Dropping a pack in a folder makes it available, not active. You activate it for a specific world by listing it in that world's pack files:

Each entry needs the pack's UUID and version, both taken from the header block of its manifest.json:

manifest.json (excerpt)
{
  "header": {
    "uuid": "0aba1b58-2cdc-4d31-9cee-4dc5e2c39bf6",
    "version": [1, 0, 0]
  }
}
world_behavior_packs.json
[
  {
    "pack_id": "0aba1b58-2cdc-4d31-9cee-4dc5e2c39bf6",
    "version": [1, 0, 0]
  }
]

A single typo - a wrong UUID, a mismatched version, or invalid JSON - silently stops the pack from loading, so copy the values straight from the manifest. When several packs are listed, the first entry wins any conflict, so order from highest to lowest priority.

Apply the change

Restart the server. On boot, Endstone loads every pack listed in each world's pack files; watch the console for load errors.

On this page