Skip to content

Releases: EndstoneMC/endstone

v0.11.2

02 Mar 20:26
9f94991

Choose a tag to compare

Added

  • Added support for BDS version 1.26.3.1.
  • Added BlockExplodeEvent for non-actor explosions (e.g., bed in the Nether, respawn anchor in the Overworld).
  • Added Player.send_map() method for sending full map data to players, enabling custom map renderers to push updates
    on demand (e.g., animated maps via the scheduler).

Fixed

  • Fixed a crash caused by vulnerabilities introduced in Mojang's RakNet modifications (MCPE-228407).
  • Fixed missing exports for BlockFormEvent, BlockFromToEvent, and BlockGrowEvent events.

Full Changelog: v0.11.1...v0.11.2

v0.11.1

20 Feb 19:40
a8d0ac7

Choose a tag to compare

Added

  • Added support for BDS version 1.26.1.1.
  • Added ListTag.to_list() and CompoundTag.to_dict() methods (Python) that recursively convert NBT tag trees to
    native Python data structures (list and dict).
  • Exported attribute, effect, nbt, and potion submodules from the top-level endstone Python package.
  • Added explicit standard library #include directives across all public C++ API headers for self-contained
    compilation.

Fixed

  • Fixed PlayerMoveEvent and PlayerJumpEvent not firing.
  • Fixed WeatherChangeEvent and ThunderChangeEvent not firing.
  • Fixed ServerListPingEvent not firing.
  • Fixed Enchantment objects being unhashable, preventing their use as dictionary keys and in sets.
  • Fixed a duplicate keyword argument error when loading Python plugins that define a name class attribute.
  • Fixed several issues that caused the Map API to not work correctly in some occasions. Maps now behave consistently
    across different platforms.

Changed

  • BREAKING: ServerListPingEvent.remote_host and ServerListPingEvent.remote_port properties have been replaced by
    a single ServerListPingEvent.address property that returns a SocketAddress.

Full Changelog: v0.11.0...v0.11.1

v0.11.0

13 Feb 02:53
f534d43

Choose a tag to compare

Added

  • Added support for BDS 1.26.0.
  • NBT API: Plugins can now read, create, and manipulate NBT data directly. All 11 standard tag types are supported (
    ByteTag through CompoundTag), with full Python bindings. CompoundTag works like a dictionary and ListTag like
    a list. Tags can be printed in SNBT format for debugging.
  • ItemStack NBT access: Read and write NBT data on items using ItemStack.nbt (Python) / ItemStack::getNbt() and
    ItemStack::setNbt() (C++). Useful for inspecting or modifying item data directly.
  • Enchantment API: All 33 vanilla enchantments are available as named constants. Plugins can check max level,
    conflicts between enchantments, and whether an enchantment can be applied to a given item. Accessible via the new
    Registry system.
  • Map API: Plugins can now create and customise in-game maps. Draw pixels and images on the map canvas, add map
    cursors (24 types including Player, Mansion, Monument, and TrialChambers), control scale and center position, and
    listen for MapInitializeEvent when a new map is created.
  • New events:
    • BlockFromToEvent: fires on liquid flow teleportation. Cancellable.
    • PlayerPortalEvent: fires when a player enters a portal, with access to source and destination locations.
      Cancellable.
    • PlayerDimensionChangeEvent: fires when a player moves between dimensions (Overworld, Nether, The End).
  • New ItemMeta types:
    • BookMeta: read and write signed book title, author, generation, and pages.
    • WritableBookMeta: manage book-and-quill pages.
    • CrossbowMeta: inspect and modify loaded crossbow projectiles.
  • Command system: Commands can now accept entity type arguments with tab completion via the new entity_type
    parameter type.
  • Dimension API: Dimension.spawn_actor() creates an entity at a given location. Dimension.drop_item() drops an
    item on the ground as a collectible entity.
  • Mob API: Mob.max_health is now writable, allowing plugins to change a mob's maximum health.
  • Interactive console: New console experience with persistent command history across server restarts. Enabled by
    default on Windows, disabled on Linux. Use --interactive / --no-interactive CLI flags to override, or set the
    ENDSTONE_USE_INTERACTIVE_CONSOLE environment variable.
  • Crash reports: Server crashes now automatically save a report to crash_reports/ with cleaned-up stack traces for
    easier debugging.
  • endstone.asyncio module: Run async code from plugins using a background event loop. Call submit(coro) to
    schedule a coroutine and get a Future back, without blocking the server thread.
  • Registry system: A unified way to look up game objects (e.g., enchantments) by their identifier. Supports lookup,
    existence checks, and iteration.
  • BossBar: Added CREATE_FOG flag to control whether a boss bar creates fog effects for players.
  • Logging: Rotated log files are now gzip-compressed to save disk space.
  • endstone.metrics module: Built-in bStats integration for plugin analytics. Create a
    Metrics instance with your plugin and service ID to start reporting. Includes 8 chart types: SimplePie,
    AdvancedPie, DrilldownPie, SingleLineChart, MultiLineChart, SimpleBarChart, AdvancedBarChart, and
    CustomChart. Data is submitted asynchronously via endstone.asyncio.
  • ItemStack.translation_key property for getting an item's localisation key.
  • Added support for Python 3.14.

Changed

  • BREAKING: NamespacedKey has been replaced by Identifier<T>, a type-safe template that parses "namespace:key"
    strings and defaults to the "minecraft" namespace. C++ plugins must update all references. In Python, identifiers
    are simply strings.
  • BREAKING: Result<T> has been removed. API methods now return values directly and throw exceptions on invalid
    input via Preconditions checks. These exceptions signal programming errors (e.g., passing invalid arguments).
    Affected areas include health, distance calculations, boss bar progress, colour construction, and scoreboard
    operations. Python plugins are unaffected.
  • BREAKING: Dimension argument reordered and made optional in several APIs. Call sites may need updating.
  • Health methods (get_health, set_health, get_max_health, set_max_health) moved from Actor to Mob, since
    only mobs have health.
  • PlayerDeathEvent now extends ActorDeathEvent instead of PlayerEvent.
  • Default config file renamed from endstone.toml to endstone.default.toml.
  • Enchantment APIs now use typed EnchantmentId constants instead of raw strings.
  • Dropped Python 3.9 support (end-of-life). Minimum version is now Python 3.10.
  • Crash stack traces now filter out noise (CRT/runtime frames) and show demangled symbol names.
  • Suppressed verbose BDS content logs and database auto-compaction messages to reduce log clutter.

Fixed

  • Fixed log files not reopening properly after rotation, which could cause logs to be written to stale files.
  • Fixed Python interpreter not being found reliably in multi-Python environments.
  • Fixed a crash on server shutdown caused by C++ destructors running after the Python interpreter was already torn down.
  • Fixed plugin loading failing in environments where pip is not available (such as uv), since pip is used at
    runtime to install plugins from file.

Full Changelog: v0.10.18...v0.11.0

v0.10.18

14 Dec 19:48

Choose a tag to compare

Full Changelog: v0.10.17...v0.10.18

v0.10.17

11 Dec 20:22
70ec2e3

Choose a tag to compare

Minecraft - Version

Fixed

  • Resolved several crashes.

Changed

  • Verbose content logs are now suppressed.

Full Changelog: v0.10.16...v0.10.17

v0.10.16

11 Dec 00:30
fce3b8e

Choose a tag to compare

Minecraft - Version

Added

  • Added support for BDS version 1.21.130.4.

Full Changelog: v0.10.15...v0.10.16

v0.10.15

22 Nov 00:53

Choose a tag to compare

Minecraft - Version

Added

  • Added support for BDS version 1.21.124.2.

Full Changelog: v0.10.14...v0.10.15

v0.10.14

18 Nov 23:10
96ee3a8

Choose a tag to compare

Minecraft - Version

Added

  • Enable packet rate limiting by default to prevent packet flooding.
  • Enable RakNet's connection frequency limiting.

Fixed

  • Patched a vulnerability that allows malicious clients to continue sending packets after the connection is closed.

Full Changelog: v0.10.13...v0.10.14

v0.10.13

18 Nov 14:37
ef36db7

Choose a tag to compare

Minecraft - Version

Fixed

  • Resolved a crash that could occur with certain worlds.

Full Changelog: v0.10.12...v0.10.13

v0.10.12

18 Nov 02:10

Choose a tag to compare

Minecraft - Version

Added

  • Added support for BDS version 1.21.123.2.

Fixed

  • Resolved a memory leak caused by chunks not unloading properly.
  • Patched a vulnerability where a crafted LoginPacket with an excessively long certificate chain could crash the server.
  • Patched a vulnerability where a malformed InventoryTransactionPacket could freeze the server.
  • Fixed a crash related to custom dimensions (LeviStone).
  • IP bans are now checked before the server processes player login.

Full Changelog: v0.10.11...v0.10.12