These messages handle the authentication and session establishment sequence — from initial login through character load, world entry, reconnect, and logout. All payload field names match the keys defined inDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/TaylorZaneKirk/MMO-Project/llms.txt
Use this file to discover all available pages before exploring further.
protocol-v1.json. The server owns the session lifecycle; the client only sends intent and applies server-confirmed results.
login_request C→S
Sent by the client immediately after the WebSocket connection is opened. Declares credentials and the desired protocol version. Optionally opts the session into revisioned delta delivery.The account login name.
The account password.
Must be
"v1". The server rejects unknown protocol versions and closes the connection.Send
1 to opt this session into revisioned delta delivery. Clients that omit this field or send null remain in legacy snapshot-refresh mode. See Delta Runtime for details.login_response S→C
Returned by the server after evaluating the login credentials. On failure, the server closes the WebSocket after sending this message.Outcome of the login attempt. One of:
"ok"— credentials valid; session created;session_idandaccount_idare populated"invalid_credentials"— account name or password did not match"account_inactive"— account exists but is disabled"unsupported_version"—protocol_versiondid not match the server’s expected value
UUID of the newly created server session. Populated only when
login_status is "ok".UUID of the authenticated account. Populated only when
login_status is "ok".character_load_response S→C
Sent by the server immediately after a successfullogin_response. Binds the authenticated session to the account’s owned character. World entry does not proceed if character_id is null.
The active session UUID, echoed from the login response.
UUID of the account’s character.
null if the account has no character, in which case world entry is blocked.enter_world_response S→C
Sent by the server aftercharacter_load_response. Delivers the minimum authoritative state needed to place the character into the world. A world_snapshot follows immediately after.
The active session UUID.
The UUID of the character entering the world.
The chunk map identifier the character is entering, for example
"x1000y992".The character’s authoritative starting tile X coordinate on
map_id.The character’s authoritative starting tile Y coordinate on
map_id.The character’s starting facing direction. One of
"north", "south", "east", "west".Indicates how the starting position was determined:
"character_save"— position was restored from the database record"default"— no saved position existed; the character spawned at the map default
reconnect_request C→S
Sent by the client to restore a previously disconnected session within the reconnect grace window. See Session Flow — Reconnect grace window for eligibility rules.The UUID of the session to restore, obtained from the original
login_response.The UUID of the character associated with the session.
reconnect_response S→C
Returned by the server after evaluating areconnect_request. On success, a fresh world_snapshot follows immediately.
Outcome of the reconnect attempt. One of:
"restored"— session restored; position fields are populated"session_invalid"— session record not found, already revoked (e.g. after explicit logout), or map presence could not be loaded"reauthentication_required"— session has expired or the reconnect grace window has elapsed
The restored session UUID. Populated only on
"restored".The restored character UUID. Populated only on
"restored".The map the character is being restored to. Populated only on
"restored".The character’s restored tile X coordinate. Populated only on
"restored".The character’s restored tile Y coordinate. Populated only on
"restored".The character’s restored facing direction. Populated only on
"restored".logout_request C→S
Sent by the client to end the session explicitly. The server revokes the session, removes live map presence, and closes the WebSocket connection after processing this message.The UUID of the session to end.
The UUID of the character whose presence should be cleared.
There is no
logout_response message. The server closes the WebSocket after processing logout_request. Any subsequent reconnect_request for this session will receive "session_invalid" because the session’s revoked_at column is set by the logout operation.