This page as Markdown: https://bloxd.io/docs/changelog.md. Every page of these docs, for AI agents: https://bloxd.io/docs/llms.txt
Changelog
Here you can discover the latest changes to the API.
23rd October 2026
- Added the
@plugins/dialogueplugin, whosesayDialogueshows a player a line for a while, 6 seconds by default, andclearDialoguehides it early. See the dialogue how-to for examples. - The new Dialogue Voices page lists every voice preset and explains how to build a custom
SpeechSynth. Its dialogue editor lets you start from a preset, tune the voice, type a line to hear it read out, and copy the code. - Each docs page can now be copied as Markdown, or opened in ChatGPT or Claude to ask about it, from the buttons in its header. AI tools can also read every page as Markdown at
/docs/<page>.md, with an index of them all at bloxd.io/llms.txt.
22nd October 2026
- The docs have a new home at bloxd.io/docs, with a page for every reference, setting list, How-To and asset list, in light and dark themes and laid out for phones too.
- New pages: Getting started explains code blocks, boards and World Code, Snippets collects short examples to copy, and Types, on the site, explains every type the reference mentions.
- Press Ctrl K, or ⌘ K on a Mac, to search every method, callback, setting, guide and asset name, landing right on it.
- Methods, callbacks and settings are cards you can filter and copy from. Hover a type in a signature to see what it is, and each card links to the guides that use it and the changelog entries that mention it. Deprecated methods are marked.
- Asset pages show what each name looks like or sounds like: particle effects play live, sounds and songs play in a player with a scrubber and volume, NPC skins and poses are shown as the game draws them, and blocks and items show their textures.
- The Icons page has a
CustomTextStylingeditor: add parts from a list, edit their styles and icons, and copy the code. - Every QTE can be played on the QTEs page, with its sensible defaults.
- Added the
dialogueclient option! Set it to show a player a line of dialogue below the crosshair, revealed word by word in a voice, with the speaker's name above it, e.g.api.setClientOption(playerId, "dialogue", { line: "Welcome!", speakerName: "Guide", voice: "regular" }). Set it tonullto hide the line.voicetakes a preset,"soft","regular","dark","high-pitched","gruff","lively","posh"or"mechanical", or aSpeechSynththat sets every parameter. Leave it out for a silent line.[[Item Name]]in a line shows that item's icon inline.
16th October 2026
- The damage callbacks (
onPlayerDamagingOtherPlayer,onPlayerDamagingMob,onMobDamagingPlayer,onMobDamagingOtherMob) now receive a lastdamageInfoargument whosecausesays what dealt the hit:"Melee","Projectile","Gun","Explosion","Spikes","Fall","Stomp","Thorns"or"Effect", ornullwhen unknown. Use it to tell a swing of a held item from that item going off, e.g. a punch with a Mining Grenade in hand from a Mining Grenade's blast. api.attemptApplyDamagetakes an optionaldamageCause, passed on to those callbacks.
30th September 2026
interactablenow gives mobs the same interaction priority as mesh entities:onPlayerAltActionruns before held-item actions. Native harvesting, mounting and pet actions are disabled while the setting is true; leave it false for ordinary mob behaviour.
29th September 2026
- Added project schematics to World Code! Use the
+beside "Schematics" in the Code Editor to upload a.bloxdschemfile or choose a snapshot from your profile. Projects support up to five schematics. - Added
api.setChunkAsSchematicto replace one complete chunk, including air and block data. Positions are block coordinates selecting their containing chunks, likecopyChunk. - Added
api.getSchematicDimensions()to read a schematic's stored[x, y, z]dimensions, including selection padding. @plugins/sessionBasedGamemaps and lobbies now acceptsource: { schematic: "maps/arena.bloxdschem" }as an alternative to a world rectangle. Maps are pasted directly and must fit the available placement and block-data budgets.- Schematic saved from profiles are snapshots - you must update the schematic in the world/custom game if you edit the linked schematic otherwise.
- See the project schematics how-to for examples and details.
10th September 2026
- Added the
interactableentity setting. Set it on a mesh entity or a mob (e.g.api.setTargetedPlayerSettingForEveryone(eId, "interactable", true)) to make alt actioning it count as an interaction: the alt action is consumed, so a held block isn't placed through the entity and a held throwable isn't used, andonPlayerAltActionfires with the entity as the target. Leave it off for decorative entities, or they will swallow player input. It also makes the entity pickable, so an entity can beinteractablewithcanAttackoff: the player's aim lands on it and interacting works, but swinging or shooting at it does nothing. On a mob it applies alongside the usual mounting and taming behaviour rather than replacing it, though there a held throwable or consumable is still used in preference to interacting. - Entities marked
interactablenow show an interaction prompt by the crosshair while a player is looking at them, showing the key bound to the interact action (Eby default) so players can tell which input to use. Set the newinteractionPromptentity setting to replace the label beside that key, e.g.api.setTargetedPlayerSettingForEveryone(eId, "interactionPrompt", "Open Shop"), and leave it off for the default "Interact". It takes plain text orCustomTextStyling, and describes what interacting does rather than which button to press, since the engine draws the key itself. Not shown on touchscreens, where a tap needs no prompt.
8th September 2026
- Added first-party plugins!
- You can import helper scripts to help you from
@plugins- E.g.
import { setTimeout } from "@plugins/helpers"
- E.g.
- See the plugins how-to for more information.
- You can import helper scripts to help you from
- The biggest example of this is Session-Based Game, a helper to help you create a game with mini-matches, like Bedwars/Skywars etc.
import { createGame } from "@plugins/sessionBasedGame"to check it out- See the SessionBasedGame how-to for more information.
28th August 2026
- Added vehicle spawn callbacks:
- Added
onEntityDeleted, called whenever any non-player entity is deleted.
27th August 2026
- Added
api.attemptSpawnVehicleto spawn rideable vehicles (boats, karts, cars) which players can mount with an alt action.
18th August 2026
- Added TypeScript support to World Code!
- Rename your file from
index.jstoindex.tsto use TypeScript files! - Import some of our types from
@bloxd- E.g.
import type { PlayerId } from "@bloxd"
- E.g.
- Use your own types!
- Type Checking is supported and errors will show if you use incorrect types.
- Rename your file from
- Multiple files are supported! Split your code across multiple files for better readability!
- Create
.jsand.tsfiles - Use
import/exportsyntax to be able to import files across between versions index.jsorindex.tsMUST be where your callbacks are stored and cannot be imported anywhere else.require()syntax technically works although isn't type-safe.
- Create
- Increased total code size from 64k characters to 512k characters.
- Added variations to custom games!
- Each custom game can now have multiple variations, with
defaultbeing the default variation. api.getVariationapi.matchmakeToVariation- See the variations doc for more information.
- Each custom game can now have multiple variations, with
11th August 2026
- Added currency API:
api.setCurrencyapi.getCurrencyapi.deleteCurrencyapi.getCurrencyAmountapi.setCurrencyAmountapi.giveCurrencyAmount- These currencies can be used in the
currencyfield in the Shop to automatically deduct currency on purchase. - These can also be persisted across sessions.
10th August 2026
- Added to the UI Request System:
7th August 2026
- Added UI Request System:
20th July 2026
- New mob settings:
13th July 2026
- Added new
bridgeInfomob setting to make mobs build bridges or leave trails, e.g.:
bridgeInfo: {
blockToPlace: "Bricks",
mustBeGrounded: false,
yOffset: -1,
},
26th June 2026
- Added new client options for custom game UI:
- Added ProgressBar support to options that accept a CustomTextStyling
- e.g.
["Loading", { type: "ProgressBar", progress: 0.5 }]
- e.g.
15th June 2026
- Added new client options for adjusting the third person camera:
11th June 2026
- Added the ability to get and set scale for lifeforms (players, mobs)
- Added new block standing callbacks:
- This is to prevent having to use
onBlockStand, which eats into your runtime limit significantly due to its high frequency of being called onBlockStandStartonBlockStandStop
- This is to prevent having to use
- Added
isReceiveDamageCooldownGlobalclient option and mob setting
10th June 2026
- Added
showChatBubblesclient option - Added
useRespawnButtonclient option - Added
multilineTextBoxentity setting - Added
lobbyLeaderboardTagsentity setting
18th May 2026
- Added the ability to change the gamemode of a player
- Added the ability to queue text to be displayed in different places on the screen
15th May 2026
- Significantly increased runtime limit - interrupts should be less frequent
- Added
api.isNearInterrupt
12th May 2026
- Added new client option
groundArrowPath
11th May 2026
- Added Changelog
- Added a bunch of new API Methods:
api.addCustomKillfeedMessageapi.deleteAllItemsapi.findItemapi.findStandardChestItemapi.getEffectLevelapi.getItemDropNameapi.getItemIDsOverlappingWithPlayerapi.getMobDbIdapi.hasEffectapi.preventFallDamageNextGroundingapi.removeItemNameFromStandardChestapi.resetCanChangeBlockapi.resetCanPickUpItemapi.setOtherEntitySettingToDefaultapi.updateMeshParticleSystems
7th May 2026
- Added
api.copyChunk - Added
onPlayerToggledShopMenu
28th April 2026
- Doubled code block size (16000 -> 32000)
- 'Hide World Code' option renamed to 'Hide Code' and also hides code of Code Blocks
- New docs page!
23rd April 2026
- Added
api.matchmakePlayer - Added per-item gun stats in
customAttributes.gunStats
21st April 2026
- Added database methods to write persisted data to be saved between sessions.
- There are two sections of database values:
- Lobby
api.getLobbyDBValueapi.setLobbyDBValueapi.deleteLobbyDBValueapi.deleteAllLobbyDBValues- Writes data that is persisted to the *lobby*, whether it's a worlds lobby or a lobby within a custom game
- Player
api.getDBValueapi.setDBValueapi.deletePlayerDBValueapi.deleteAllPlayerDBValues- Writes data that is persisted to the player. For custom games, this data persists *between* lobbies
- Lobby
16th April 2026
- Added
api.setItemStat
11th April 2026
- The Code Editor now supports collaborative editing
- You can now simultaneously code with your other fellow coders at the same time! Hop into a code block or World Code together to simultaneously create the best World or the best Custom Game ever!!
7th April 2026
- New Code Editor UI! Syntax Highlighting, Autocomplete, Error Checking, and more!
25th March 2026
- Increased world code size from 16000 to 64000 characters
24th March 2026
- Added mesh entities!
- Added throwables!
23rd March 2026
- Added the ability to open and close chests for players, going beyond reach distance to open chests from far away
Previous Changes
- For previous changes, see the code-api repository or #dev-log in the Bloxd Discord server