Docssdk 0.0.0Aether homeOpen Aether

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

MessagePurposeFields
addContentPackAdd a content pack to the world's available pack list.pack: object
worldId: string
addMemberAdd an existing user to a world with a role.role: gm or player
username: string
worldId: string
assignCharacterAssign or unassign a projected actor document for a member.actorId: string or null
userId: string
worldId: string
audioControlAdjust or stop authoritative table-audio playback.command: one of several defined shapes
requestId: string
sourceModId: string (optional)
worldId: string
audioCreateBindingCreate a validated scene or handout audio binding.binding: object
name: string
requestId: string
sourceModId: string (optional)
worldId: string
audioCreateDefinitionCreate a validated persistent audio definition.definition: one of several defined shapes
name: string
requestId: string
sourceModId: string (optional)
worldId: string
audioDeleteBindingDelete an audio binding when the caller may manage audio.documentId: string
requestId: string
sourceModId: string (optional)
worldId: string
audioDeleteDefinitionDelete an audio definition when the caller may manage audio.documentId: string
requestId: string
sourceModId: string (optional)
worldId: string
audioParticipationRecord whether this member joined or declined table audio.state: joined or declined or unavailable
worldId: string
audioPlayStart one server-resolved audio definition for an authorized audience.audience: object
definitionId: string
fadeMs: number
mode: start or resume or restart or crossfade
requestId: string
sourceModId: string (optional)
worldId: string
audioUpdateBindingReplace a validated audio binding at an expected revision.baseRev: number
binding: object
documentId: string
name: string (optional)
requestId: string
sourceModId: string (optional)
worldId: string
audioUpdateDefinitionReplace a validated audio definition at an expected revision.baseRev: number
definition: one of several defined shapes
documentId: string
name: string (optional)
requestId: string
sourceModId: string (optional)
worldId: string
cardActionInvoke one server-owned action attached to a chat card.buttonId: string
cardId: string
worldId: string
chatPost a chat message to its declared audience.emote: boolean (optional)
quotes: string (optional)
text: one of several defined shapes
to: array of string (optional)
chatHistoryRequest an older page of projected chat entries.before: string (optional)
limit: number (optional)
worldId: string
commitSystemGeneratorRe-run an approved generator preview and create its document idempotently.request: object
createCreate a document from a registered type and its validated defaults.data: unknown value (optional)
documentType: string
history: object (optional)
mutationId: string (optional)
name: string
packageSource: object (optional)
createWorldCreate a world using a system available in the server registry.name: string
systemId: string
deleteDelete a document when the caller has authority.documentId: string
history: object (optional)
mutationId: string (optional)
permanent: boolean (optional)
dismissPresentationDismiss a current table presentation for this reader.id: string
worldId: string
enableModEnable or disable an installed mod for the world.enabled: boolean
modId: string
worldId: string
endPresentationEnd the GM's current presentation for the table.id: string
worldId: string
executeGameActionExecute one installed action as an atomic actor, target, roll and chat transaction.invocation: one of several defined shapes
forgetHistoryRemove a History entry from the caller's undo and redo projection.entryId: string
worldId: string
forkPackageLibraryEntryCreate an editable world definition from one exact mounted library entry.name: string (optional)
ref: object
requestId: string
worldId: string
getLayoutRead this member's saved dock layout for a world.worldId: string
getPackageLibraryEntryHydrate one exact immutable entry from a mounted package library.ref: object
requestId: string
worldId: string
getTourProgressRead this member's authenticated guided-tour progress and offer preference.requestId: string
worldId: string
helloAuthenticate and negotiate the protocol version.protocolVersion: number
token: string
historyBoundaryMark the start or end of one user-visible History operation.groupId: string (optional)
worldId: string
inspectHistoryRead the caller's projected History entries.userId: string
worldId: string
installModInstall a validated mod manifest for the world.mod: object
worldId: string
joinWorldJoin a world lobby connection to one world session.worldId: string
leaveWorldLeave the active world session while keeping the connection.None
listWorldsList worlds available to the authenticated user.None
markContentPackImportedRecord that a listed content pack was imported into this world.importedVersion: string
packId: string
worldId: string
mutateSceneEntriesApply one validated batch to drawings, images, walls, lights, or tokens.batch: object
packageServiceCallCall one graph-pinned, typed package service endpoint as the current user.callerPackageId: string
endpoint: string
kind: action or query
payload: unknown value
requestId: string
serviceId: string
worldId: string
patchApply validated document patch operations at an expected revision.patch: object
postCardPost a validated rich card while retaining its actions on the server.lead: string (optional)
modId: string
spec: unknown value
worldId: string
postTablePreviewPost a previously authorized Roll Table preview result to Chat.previewId: string
presentPresent projected Library material to the table.documentId: string
pageId: string or null
to: array of string or null
worldId: string
previewAsAsk the server for a world snapshot projected as another member.userId: string
worldId: string
previewSystemGeneratorRun one installed seeded generator without changing world state.request: object
previewTableDraw a private, server-authoritative Roll Table preview.requestId: string
tableId: string
queryPackageLibrarySearch or page the bounded index of a mounted package library.query: object
requestId: string
worldId: string
redoReplay one eligible operation from the caller's redo stack.worldId: string
removeContentPackRemove a content pack from the world's available pack list.packId: string
worldId: string
removeMemberRemove a member from a world.userId: string
worldId: string
resetExploredFogClear persisted exploration memory for the selected scope.sceneId: string
userId: string (optional)
resolveDefinitionHydrate one exact installed or projected-world content reference.ref: one of several defined shapes
requestId: string
worldId: string
rollRequest a server-authoritative dice result for a declared audience.context: keyed object (optional)
formula: string
label: string (optional)
to: array of string (optional)
runModActionInvoke a validated semantic action contributed by an enabled mod.actionId: string
documentId: string (optional)
modId: string
worldId: string
runScriptRun a named active-system automation script for a document.args: unknown value (optional)
documentId: string
scriptId: string
searchDefinitionsSearch exact installed libraries and their visible world definition types through one paged result.query: object
requestId: string
worldId: string
setAccessChange document grants, defaults, or page visibility.defaultPermission: number (optional)
documentId: string
grants: keyed object (optional)
history: object (optional)
mutationId: string (optional)
pageVisibility: array of object (optional)
worldId: string
setActiveSceneSelect the world's active scene.sceneId: string
worldId: string
setChatClosedOpen or close Chat for players at the world level.closed: boolean
worldId: string
setLayoutPersist this member's dock layout for a world.layout: string or null
worldId: string
setModGrantsReplace the GM-approved bridge capabilities for an installed mod.grants: array of string
modId: string
worldId: string
setModSettingWrite one validated user- or world-scoped mod setting.key: string
modId: string
value: one of several defined shapes or null
worldId: string
setPolicyChange a world action policy when the caller is a GM.action: string
role: gm or player
worldId: string
setSceneStateChange authoritative scene navigation or presentation state.capability: string
documentId: string
history: object (optional)
modId: string
mutationId: string (optional)
permanent: boolean (optional)
value: unknown value
setTourPreferencesEnable or disable automatic first-party tutorial offers for this member.automaticOffers: boolean
requestId: string
worldId: string
setTourProgressMonotonically persist one authenticated guided-tour progress record.progress: object
requestId: string
worldId: string
shareMeasurementBroadcast or clear the caller's temporary map measurement.path: array of object or null
sceneId: string
undoRevert one eligible operation from the caller's undo stack.worldId: string
uninstallModRemove an installed mod and its active grants from the world.modId: string
worldId: string
unsendRemove one eligible chat entry authored by the caller.entryId: string
worldId: string
updateDiceProfileReplace this connection's per-die selections with a fresh signed world token.token: string

#Server to client

MessagePurposeFields
activeSceneBroadcast the selected active scene id.sceneId: string or null
worldId: string
assignedCharactersDeliver the member-to-character assignments visible to this reader.assignments: keyed object
worldId: string
audioCommandResultAcknowledge or refuse one correlated audio management or playback command.error: string (optional)
ok: boolean
requestId: string
worldId: string
audioParticipantsDeliver table members' joined, declined, or unavailable audio state without local volume.participants: array of object
worldId: string
audioStateDeliver authoritative playback instances projected for this reader.instances: array of object
worldId: string
chatDeliver a projected legacy chat message.at: number
from: string
text: string
chatClosedBroadcast whether players may currently use Chat.closed: boolean
worldId: string
contentPacksDeliver the world's available content-pack records.contentPacks: array of object
worldId: string
createdDeliver a newly created document projected for this reader.document: unknown value
mutationId: string (optional)
source: local or remote or undo or redo (optional)
definitionResultReturn or refuse one correlated additive definition search or hydration.error: string (optional)
ok: boolean
requestId: string
result: one of several defined shapes (optional)
worldId: string
deletedConfirm that a document was removed.documentId: string
mutationId: string (optional)
source: local or remote or undo or redo (optional)
diceProfileUpdatedConfirm the signed per-die profile now active on this connection.revision: number
selections: object
entriesDeliver a page of projected event-stream entries.entries: array of object
more: boolean
worldId: string
entryDeliver one new projected event-stream entry.entry: object
worldId: string
errorReport a connection or request error that has no optimistic mutation id.message: string
gameActionResultReturn the committed or refused result of one idempotent game action.duplicate: boolean (optional)
error: string (optional)
mutationId: string
ok: boolean
outcome: object (optional)
worldId: string
historyDeliver this member's projected undo and redo history.snapshot: object
worldId: string
joinedConfirm the active world and deliver its initial projected state.activeSceneId: string or null
assignedCharacters: keyed object
audio: array of object
audioParticipants: array of object
chatClosed: boolean
contentPacks: array of object
diceProfileRevision: number (optional)
diceSkinIds: object (optional)
entries: array of object
history: object (optional)
members: array of object
modSettings: keyed object
modules: array of object
moreEntries: boolean
policy: keyed object
presentations: array of object
role: gm or player
system: object
testWorld: object or null
worldId: string
worldName: string
layoutDeliver this member's saved dock layout.layout: string or null
worldId: string
membersDeliver the current world member list.members: array of object
worldId: string
modActionAcceptedAcknowledge an accepted semantic mod action.actionId: string
documentId: string (optional)
modId: string
worldId: string
modSettingsDeliver projected mod settings for this user and world.values: keyed object
worldId: string
modulesDeliver the active system contract and enabled module summaries.modules: array of object
worldId: string
packageLibraryResultReturn or refuse one correlated package-library query or entry read.error: string (optional)
ok: boolean
requestId: string
result: one of several defined shapes (optional)
worldId: string
packageServiceResultReturn or refuse one correlated package service call.error: object (optional)
ok: boolean
requestId: string
value: unknown value (optional)
worldId: string
patchedBroadcast projected document patch operations and the new revision.documentId: string
mutationId: string (optional)
ops: array of one of several defined shapes
rev: number
source: local or remote or undo or redo (optional)
policyDeliver the current world action policy.policy: keyed object
worldId: string
presentationsDeliver table presentations visible to this reader.presentations: array of object
worldId: string
previewSnapshotDeliver a temporary world snapshot projected as the requested member.documents: array of unknown value
exploredRegion: array of array of array of [unknown, unknown]
region: array of array of object
userId: string
visionActive: boolean
rejectedReject an optimistic mutation with its correlation id and reason.documentId: string
mutationId: string (optional)
reason: string
rolledDeliver a projected server-authoritative dice result.result: intersection
sceneEntriesMutatedBroadcast a validated scene-entry batch and resulting revision.capability: string
collection: string
documentId: string
history: object (optional)
mutationId: string
mutations: array of one of several defined shapes
related: array of object (optional)
rev: number
sharedMeasurementBroadcast or clear one member's temporary map measurement.gmUserId: string
path: array of object or null
sceneId: string
worldId: string
snapshotDeliver the current projected document snapshot for the joined world.documents: array of unknown value
systemGeneratorCommitResultReturn or refuse one idempotent generated-document commit.document: unknown value (optional)
duplicate: boolean (optional)
error: string (optional)
mutationId: string
ok: boolean
preview: object (optional)
worldId: string
systemGeneratorPreviewResultReturn or refuse one correlated deterministic generator preview.error: string (optional)
ok: boolean
preview: object (optional)
requestId: string
worldId: string
tablePreviewedReturn a private authoritative Roll Table preview to its requester.preview: object
requestId: string
testWorldDeliver the durable private test-world marker and its exact candidate package graph.testWorld: object or null
worldId: string
tourPreferencesSavedAcknowledge or refuse one guided-tour offer-preference write.automaticOffers: boolean (optional)
error: string (optional)
ok: boolean
requestId: string
tourProgressDeliver this member's guided-tour progress and offer preference.automaticOffers: boolean (optional)
error: string (optional)
ok: boolean
records: array of object (optional)
requestId: string
worldId: string
tourProgressSavedAcknowledge or refuse one monotonic guided-tour progress write.error: string (optional)
ok: boolean
record: object (optional)
requestId: string
undoableReport whether this member currently has an operation to undo or redo.label: string or null
worldId: string
unsentConfirm that an event-stream entry was removed.entryId: string
worldId: string
visionDeliver server-computed visible and explored map regions for this reader.active: boolean
conceal: array of string
exploredRegion: array of array of array of [unknown, unknown]
region: array of array of object
reveal: array of unknown value
sceneId: string or null
visibleTokenIds: array of string
worldId: string
welcomeConfirm authentication, protocol negotiation, and lobby state.protocolVersion: number
systems: array of object
userId: string
worlds: array of object
worldsDeliver worlds available to the authenticated user.systems: array of object
worlds: array of object
Was this page helpful?