Table of Contents

Network Protocol

There are two networked components - the “user interface” which consists of the end user web interface, as well as any in world HTML extensions (inventory display). The user interface can be called with GET or POST methods, uses HTML over HTTP along with cookies in some places.

This page does not document the above, the internals for the web interface are mostly beyond the scope of this documentation.

Instead this page focuses on the object/hud communications, that which connects SL LSL scripts to the system.

The protocol format for this communication is JSON encoding over HTTP POST, this is the same wether the server or client initiates the connection.

Note that all requests should result in a 200 OK HTTP status, this doesn't mean the command completed, merely that it was fully processed, the contents of the response should be examined for success details. Any non 200 HTTP status should cause that server to be marked as faulty for a period of time and no further requests should be submitted to it. There are two public entry point servers, and the system automatically switches between them when one becomes faulty, resubmitting requests that error (see supplied Comms.lsl library for reference implementation).

There are some standard fields present in all requests/responses, documented first, then further detail is provided on individual API calls.

Unless otherwise stated these are all key-value pairs in the JSON.

Universal Server Parameters

These values may appear in any server response or inbound HTTP

Universal Client Parameters

The Region and Object Owner and Name are read from the HTTP headers

Mandatory

API

The entire API is now defined by the Java “Commands” interface, documentation ought to be generated from there dynamically. [https://gphud.coagulate.net/app/introspection/api/ GPHUD API (Introspection)]

HUD Interface
Arg'''N'''

Each argument is specified as follows, with N being replaced by its positional index, starting at zero

SELECT