Skip to content

Resources

Changelog

Changes to the ball2d package, newest first.

A host must run the same engine as the players who join it. When ball2d.com updates its engine, update the SDK to the matching release before you deploy.

0.3.1

September 26, 2026

  • Matches the Ball2D service deployed on September 26, 2026. The engine identity changed, so 0.3.0 hosts and current web players no longer share an engine version. Physics and the public API are unchanged.
  • Validates more host-side network input and service responses with typed schemas.
  • Room callbacks are declared once as RoomHooks, which Room extends. The callbacks themselves are unchanged.

At the time of writing, npm install ball2d still resolves to 0.3.0 until 0.3.1 is published to npm. Install an exact version with npm install ball2d@0.3.1 once it is available.

0.3.0

September 25, 2026

  • Uses Ball2D stadium and recording formats throughout the SDK.
  • Includes the current shared room runtime and physics engine (room protocol 5).
  • Bundles fourteen stadiums: Classic, Easy, Small, Big, Rounded, Big Easy, Big Rounded, Huge, Asphalt, Asphalt Arena, Courtyard, Meadow, Street Five and Training Green. Hockey variants are retired.
  • Adds onPlayerInput(player, prevInput) and the player.input key bitmask.
  • Removes the surface (wet grass and ground wear) room API.
  • Validates service responses with typed schemas (Valibot, MIT; license included).
  • Engine fix: kicks no longer move spectators in custom stadiums that give players the kick collision group, which could break snapshot restore.