• Game
  • Leaderboards
  • Resources
  • Docs

The Editor is Here!

July 19, 2026 - v0.11.0

The Editor is Here!

Programming Game v0.11.0 brings the editor to the /watch and /arena pages, allowing gameplay directly in the browser. Additionally, a connection manager enables handling multiple connections to the same account.

New Features

  • Credentials can now be passed through environment variables.
    • PROGRAMMING_GAME_USER_ID and PROGRAMMING_GAME_API_KEY are used if no credentials are passed.
  • You can now provide a connectionName to the connect function to help identify the connection in the UI.
  • You can now provide a takeControl boolean to the connect function.
    • If true, the client will attempt to take control of your characters when a connection is established.
    • Defaults to true.
  • Clients now have an inControl state.
    • Clients that are not in control, should avoid sending events, as another client is attempting to control your characters.
    • Clients receive a connections event when new connections are established or dropped. This event includes information about all connections, including the one the client is connected to.
    • Clients receive a connectionUpdate event when the connection state changes.
  • The in-game editor onTick function now runs in a disposable Web Worker sandbox.
    • Scripts that hang or loop forever are terminated after a short timeout and restarted, so the browser tab stays responsive.
    • Compiled editor code is loaded into the sandbox; intents are returned through the normal onTick path.
  • The in-game editor now offers controls for selecting the active connection, as well as an indicator of the script's build/runtime status.
    • Green when the build succeeded and the script is running.
    • Yellow while the build is in progress.
    • Red when the build failed, the script threw, or a recent timeout restarted the sandbox.
  • Client.cloneState() exposes a deep clone of the local game state (used to boot worker mirrors).
  • Client.on('eventsV2', …) is supported and fires after BaseClient has applied the event batch.
  • Passing a negative tickInterval disables the client heartbeat interval (event-driven ticks only).
  • connect now returns a Client instance instead of a disconnect function.

Breaking Changes

  • The fields for credentials passed to connect have changed.
    • id is now userId
    • key is now apiKey

Bug Fixes

  • Taking damage no longer clears move, attack, or idle intents; only interruptible actions such as cast, craft, harvest, and equip-spell are interrupted.
  • Editor rebuilds now run more consistently after edits.
  • Fixed an issue where the demo page would establish two connections to the server instead of one..
  • Improved animation handling when moving into position to attack.
  • Fixed an issue where units would appear to slide around dead after respawning.
  • Removed the visual fog of war from the arena.
  • Merchants now attack the nearest non-party member when in the arena.