Protocol messages
Client and server messages generated from protocol version 43.
12 minute read
The current wire contract is PROTOCOL_VERSION 43. The handshake negotiates this integer independently from the Aether release and package versions. Message ids and fields come from packages/protocol/src/index.ts; internal parsing helpers are not listed. The purpose catalog is exhaustive, so adding or removing a public message fails generation until its reader-facing purpose is recorded.
#Client to server
| Message | Purpose | Fields |
|---|---|---|
addContentPack | Add a content pack to the world's available pack list. | pack: objectworldId: string |
addMember | Add an existing user to a world with a role. | role: gm or playerusername: stringworldId: string |
assignCharacter | Assign or unassign a projected actor document for a member. | actorId: string or nulluserId: stringworldId: string |
audioControl | Adjust or stop authoritative table-audio playback. | command: one of several defined shapesrequestId: stringsourceModId: string (optional)worldId: string |
audioCreateBinding | Create a validated scene or handout audio binding. | binding: objectname: stringrequestId: stringsourceModId: string (optional)worldId: string |
audioCreateDefinition | Create a validated persistent audio definition. | definition: one of several defined shapesname: stringrequestId: stringsourceModId: string (optional)worldId: string |
audioDeleteBinding | Delete an audio binding when the caller may manage audio. | documentId: stringrequestId: stringsourceModId: string (optional)worldId: string |
audioDeleteDefinition | Delete an audio definition when the caller may manage audio. | documentId: stringrequestId: stringsourceModId: string (optional)worldId: string |
audioParticipation | Record whether this member joined or declined table audio. | state: joined or declined or unavailableworldId: string |
audioPlay | Start one server-resolved audio definition for an authorized audience. | audience: objectdefinitionId: stringfadeMs: numbermode: start or resume or restart or crossfaderequestId: stringsourceModId: string (optional)worldId: string |
audioUpdateBinding | Replace a validated audio binding at an expected revision. | baseRev: numberbinding: objectdocumentId: stringname: string (optional)requestId: stringsourceModId: string (optional)worldId: string |
audioUpdateDefinition | Replace a validated audio definition at an expected revision. | baseRev: numberdefinition: one of several defined shapesdocumentId: stringname: string (optional)requestId: stringsourceModId: string (optional)worldId: string |
cardAction | Invoke one server-owned action attached to a chat card. | buttonId: stringcardId: stringworldId: string |
chat | Post a chat message to its declared audience. | emote: boolean (optional)quotes: string (optional)text: one of several defined shapesto: array of string (optional) |
chatHistory | Request an older page of projected chat entries. | before: string (optional)limit: number (optional)worldId: string |
commitSystemGenerator | Re-run an approved generator preview and create its document idempotently. | request: object |
create | Create a document from a registered type and its validated defaults. | data: unknown value (optional)documentType: stringhistory: object (optional)mutationId: string (optional)name: stringpackageSource: object (optional) |
createWorld | Create a world using a system available in the server registry. | name: stringsystemId: string |
delete | Delete a document when the caller has authority. | documentId: stringhistory: object (optional)mutationId: string (optional)permanent: boolean (optional) |
dismissPresentation | Dismiss a current table presentation for this reader. | id: stringworldId: string |
enableMod | Enable or disable an installed mod for the world. | enabled: booleanmodId: stringworldId: string |
endPresentation | End the GM's current presentation for the table. | id: stringworldId: string |
executeGameAction | Execute one installed action as an atomic actor, target, roll and chat transaction. | invocation: one of several defined shapes |
forgetHistory | Remove a History entry from the caller's undo and redo projection. | entryId: stringworldId: string |
forkPackageLibraryEntry | Create an editable world definition from one exact mounted library entry. | name: string (optional)ref: objectrequestId: stringworldId: string |
getLayout | Read this member's saved dock layout for a world. | worldId: string |
getPackageLibraryEntry | Hydrate one exact immutable entry from a mounted package library. | ref: objectrequestId: stringworldId: string |
getTourProgress | Read this member's authenticated guided-tour progress and offer preference. | requestId: stringworldId: string |
hello | Authenticate and negotiate the protocol version. | protocolVersion: numbertoken: string |
historyBoundary | Mark the start or end of one user-visible History operation. | groupId: string (optional)worldId: string |
inspectHistory | Read the caller's projected History entries. | userId: stringworldId: string |
installMod | Install a validated mod manifest for the world. | mod: objectworldId: string |
joinWorld | Join a world lobby connection to one world session. | worldId: string |
leaveWorld | Leave the active world session while keeping the connection. | None |
listWorlds | List worlds available to the authenticated user. | None |
markContentPackImported | Record that a listed content pack was imported into this world. | importedVersion: stringpackId: stringworldId: string |
mutateSceneEntries | Apply one validated batch to drawings, images, walls, lights, or tokens. | batch: object |
packageServiceCall | Call one graph-pinned, typed package service endpoint as the current user. | callerPackageId: stringendpoint: stringkind: action or querypayload: unknown valuerequestId: stringserviceId: stringworldId: string |
patch | Apply validated document patch operations at an expected revision. | patch: object |
postCard | Post a validated rich card while retaining its actions on the server. | lead: string (optional)modId: stringspec: unknown valueworldId: string |
postTablePreview | Post a previously authorized Roll Table preview result to Chat. | previewId: string |
present | Present projected Library material to the table. | documentId: stringpageId: string or nullto: array of string or nullworldId: string |
previewAs | Ask the server for a world snapshot projected as another member. | userId: stringworldId: string |
previewSystemGenerator | Run one installed seeded generator without changing world state. | request: object |
previewTable | Draw a private, server-authoritative Roll Table preview. | requestId: stringtableId: string |
queryPackageLibrary | Search or page the bounded index of a mounted package library. | query: objectrequestId: stringworldId: string |
redo | Replay one eligible operation from the caller's redo stack. | worldId: string |
removeContentPack | Remove a content pack from the world's available pack list. | packId: stringworldId: string |
removeMember | Remove a member from a world. | userId: stringworldId: string |
resetExploredFog | Clear persisted exploration memory for the selected scope. | sceneId: stringuserId: string (optional) |
resolveDefinition | Hydrate one exact installed or projected-world content reference. | ref: one of several defined shapesrequestId: stringworldId: string |
roll | Request a server-authoritative dice result for a declared audience. | context: keyed object (optional)formula: stringlabel: string (optional)to: array of string (optional) |
runModAction | Invoke a validated semantic action contributed by an enabled mod. | actionId: stringdocumentId: string (optional)modId: stringworldId: string |
runScript | Run a named active-system automation script for a document. | args: unknown value (optional)documentId: stringscriptId: string |
searchDefinitions | Search exact installed libraries and their visible world definition types through one paged result. | query: objectrequestId: stringworldId: string |
setAccess | Change document grants, defaults, or page visibility. | defaultPermission: number (optional)documentId: stringgrants: keyed object (optional)history: object (optional)mutationId: string (optional)pageVisibility: array of object (optional)worldId: string |
setActiveScene | Select the world's active scene. | sceneId: stringworldId: string |
setChatClosed | Open or close Chat for players at the world level. | closed: booleanworldId: string |
setLayout | Persist this member's dock layout for a world. | layout: string or nullworldId: string |
setModGrants | Replace the GM-approved bridge capabilities for an installed mod. | grants: array of stringmodId: stringworldId: string |
setModSetting | Write one validated user- or world-scoped mod setting. | key: stringmodId: stringvalue: one of several defined shapes or nullworldId: string |
setPolicy | Change a world action policy when the caller is a GM. | action: stringrole: gm or playerworldId: string |
setSceneState | Change authoritative scene navigation or presentation state. | capability: stringdocumentId: stringhistory: object (optional)modId: stringmutationId: string (optional)permanent: boolean (optional)value: unknown value |
setTourPreferences | Enable or disable automatic first-party tutorial offers for this member. | automaticOffers: booleanrequestId: stringworldId: string |
setTourProgress | Monotonically persist one authenticated guided-tour progress record. | progress: objectrequestId: stringworldId: string |
shareMeasurement | Broadcast or clear the caller's temporary map measurement. | path: array of object or nullsceneId: string |
undo | Revert one eligible operation from the caller's undo stack. | worldId: string |
uninstallMod | Remove an installed mod and its active grants from the world. | modId: stringworldId: string |
unsend | Remove one eligible chat entry authored by the caller. | entryId: stringworldId: string |
updateDiceProfile | Replace this connection's per-die selections with a fresh signed world token. | token: string |
#Server to client
| Message | Purpose | Fields |
|---|---|---|
activeScene | Broadcast the selected active scene id. | sceneId: string or nullworldId: string |
assignedCharacters | Deliver the member-to-character assignments visible to this reader. | assignments: keyed objectworldId: string |
audioCommandResult | Acknowledge or refuse one correlated audio management or playback command. | error: string (optional)ok: booleanrequestId: stringworldId: string |
audioParticipants | Deliver table members' joined, declined, or unavailable audio state without local volume. | participants: array of objectworldId: string |
audioState | Deliver authoritative playback instances projected for this reader. | instances: array of objectworldId: string |
chat | Deliver a projected legacy chat message. | at: numberfrom: stringtext: string |
chatClosed | Broadcast whether players may currently use Chat. | closed: booleanworldId: string |
contentPacks | Deliver the world's available content-pack records. | contentPacks: array of objectworldId: string |
created | Deliver a newly created document projected for this reader. | document: unknown valuemutationId: string (optional)source: local or remote or undo or redo (optional) |
definitionResult | Return or refuse one correlated additive definition search or hydration. | error: string (optional)ok: booleanrequestId: stringresult: one of several defined shapes (optional)worldId: string |
deleted | Confirm that a document was removed. | documentId: stringmutationId: string (optional)source: local or remote or undo or redo (optional) |
diceProfileUpdated | Confirm the signed per-die profile now active on this connection. | revision: numberselections: object |
entries | Deliver a page of projected event-stream entries. | entries: array of objectmore: booleanworldId: string |
entry | Deliver one new projected event-stream entry. | entry: objectworldId: string |
error | Report a connection or request error that has no optimistic mutation id. | message: string |
gameActionResult | Return the committed or refused result of one idempotent game action. | duplicate: boolean (optional)error: string (optional)mutationId: stringok: booleanoutcome: object (optional)worldId: string |
history | Deliver this member's projected undo and redo history. | snapshot: objectworldId: string |
joined | Confirm the active world and deliver its initial projected state. | activeSceneId: string or nullassignedCharacters: keyed objectaudio: array of objectaudioParticipants: array of objectchatClosed: booleancontentPacks: array of objectdiceProfileRevision: number (optional)diceSkinIds: object (optional)entries: array of objecthistory: object (optional)members: array of objectmodSettings: keyed objectmodules: array of objectmoreEntries: booleanpolicy: keyed objectpresentations: array of objectrole: gm or playersystem: objecttestWorld: object or nullworldId: stringworldName: string |
layout | Deliver this member's saved dock layout. | layout: string or nullworldId: string |
members | Deliver the current world member list. | members: array of objectworldId: string |
modActionAccepted | Acknowledge an accepted semantic mod action. | actionId: stringdocumentId: string (optional)modId: stringworldId: string |
modSettings | Deliver projected mod settings for this user and world. | values: keyed objectworldId: string |
modules | Deliver the active system contract and enabled module summaries. | modules: array of objectworldId: string |
packageLibraryResult | Return or refuse one correlated package-library query or entry read. | error: string (optional)ok: booleanrequestId: stringresult: one of several defined shapes (optional)worldId: string |
packageServiceResult | Return or refuse one correlated package service call. | error: object (optional)ok: booleanrequestId: stringvalue: unknown value (optional)worldId: string |
patched | Broadcast projected document patch operations and the new revision. | documentId: stringmutationId: string (optional)ops: array of one of several defined shapesrev: numbersource: local or remote or undo or redo (optional) |
policy | Deliver the current world action policy. | policy: keyed objectworldId: string |
presentations | Deliver table presentations visible to this reader. | presentations: array of objectworldId: string |
previewSnapshot | Deliver a temporary world snapshot projected as the requested member. | documents: array of unknown valueexploredRegion: array of array of array of [unknown, unknown]region: array of array of objectuserId: stringvisionActive: boolean |
rejected | Reject an optimistic mutation with its correlation id and reason. | documentId: stringmutationId: string (optional)reason: string |
rolled | Deliver a projected server-authoritative dice result. | result: intersection |
sceneEntriesMutated | Broadcast a validated scene-entry batch and resulting revision. | capability: stringcollection: stringdocumentId: stringhistory: object (optional)mutationId: stringmutations: array of one of several defined shapesrelated: array of object (optional)rev: number |
sharedMeasurement | Broadcast or clear one member's temporary map measurement. | gmUserId: stringpath: array of object or nullsceneId: stringworldId: string |
snapshot | Deliver the current projected document snapshot for the joined world. | documents: array of unknown value |
systemGeneratorCommitResult | Return or refuse one idempotent generated-document commit. | document: unknown value (optional)duplicate: boolean (optional)error: string (optional)mutationId: stringok: booleanpreview: object (optional)worldId: string |
systemGeneratorPreviewResult | Return or refuse one correlated deterministic generator preview. | error: string (optional)ok: booleanpreview: object (optional)requestId: stringworldId: string |
tablePreviewed | Return a private authoritative Roll Table preview to its requester. | preview: objectrequestId: string |
testWorld | Deliver the durable private test-world marker and its exact candidate package graph. | testWorld: object or nullworldId: string |
tourPreferencesSaved | Acknowledge or refuse one guided-tour offer-preference write. | automaticOffers: boolean (optional)error: string (optional)ok: booleanrequestId: string |
tourProgress | Deliver this member's guided-tour progress and offer preference. | automaticOffers: boolean (optional)error: string (optional)ok: booleanrecords: array of object (optional)requestId: stringworldId: string |
tourProgressSaved | Acknowledge or refuse one monotonic guided-tour progress write. | error: string (optional)ok: booleanrecord: object (optional)requestId: string |
undoable | Report whether this member currently has an operation to undo or redo. | label: string or nullworldId: string |
unsent | Confirm that an event-stream entry was removed. | entryId: stringworldId: string |
vision | Deliver server-computed visible and explored map regions for this reader. | active: booleanconceal: array of stringexploredRegion: array of array of array of [unknown, unknown]region: array of array of objectreveal: array of unknown valuesceneId: string or nullvisibleTokenIds: array of stringworldId: string |
welcome | Confirm authentication, protocol negotiation, and lobby state. | protocolVersion: numbersystems: array of objectuserId: stringworlds: array of object |
worlds | Deliver worlds available to the authenticated user. | systems: array of objectworlds: array of object |
Was this page helpful?