Nanite Systems has developed a large number of communications protocols for various specialized interfaces. Many of these are open protocols with public documentation. These protocols are documented here.

Space-separated: The majority of NS communications protocols use spaces to separate tokens. This makes them easier to read and adopt, and usually means that parsing is trivially done using llParseString2List(message, [" "]) to split a message into single words, and llDumpList2String(tokens, " ") to rejoin it into a single string again.

JSON: Some newer NS protocols, like CAPS, use JSON for communications. This allows for named arguments and grouping of tokens containing spaces. See JSON usage in LSL from the Second Life Wiki for more information. Note that CAPS, HUDware, and ORIX messages all include a fixed header string that must be clipped off before parsing the JSON payload.

CSV: The ACS protocol uses commas to separate tokens. It can be parsed by drawing an analogy to the space-separated method described above. Note that LSL also provides special functions for this procedure, llCSV2List() and llList2CSV(), which correctly handle embedded vectors and quaternions, but the known parts of the ACS protocol do not use this feature. Aside from these angle-bracket datatypes, the built-in functions do not provide escaping of commas (e.g. by using double quotation marks).

ProtocolChannel(s)SyntaxDescription
Light Busvariable, based on UUIDspace-separatedMain communication protocol between NS control units and devices
Public Bus-9999999, -9999998space-separatedPrimary access method for remotely sending commands to NS control units
ATOS Arena-9990009space-separatedReports events and configures rules for regulated ATOS combat
Local Command Access1space-separated
(uses prefixing)
Secondary access method for sending commands to nearby NS control units
NS Meterological Service-78838783space-separatedUsed to transmit weather information
CAPS411JSONCapabilities Assessment and Provisioning Service; provides a standard interface for discovering what protocols a device supports, and what HUDs are available for automatic attachment onto an avatar
Facet5200space-separatedConfiguration HUD that provides a simple alternative to dialog menus
PDS5201space-separated
supports linebreaks for multiple messages
Distributes and tracks electricity levels in a power grid simulation
HUDware-82104JSONGeneric scriptable HUD presentation system for objects without their own configuration UIs
PHASE (obsolete)1608011905space-separatedFile transfer protocol; replaced by PATH
PATH1608011905space-separatedFile transfer protocol
Property Tracking System16711784mainly space-separated, some JSONUsed to securely attach and configure transponders to slaves, migrant workers, parolees, etc.
TESI Control-9999969space-separatedSent from TESI furniture and anatomy to report arousal status, fluid transfer, etc.
TESI Effects-1010101space-separatedSent from TESI host to peripherals to produce sounds, droplets, etc

This is not a complete list of all protocols used by all Nanite Systems products, as many are kept closed for business reasons.

External Protocols

For interoperability reasons, Nanite Systems products implement a number of protocols developed by outside parties. These are considered open or partially open, and are documented here for completeness.

ProtocolChannel(s)SyntaxDescription
ACS360, plus private side channelsCSVAutonomy Control Systems protocol used by ACS-powered constructs; only the charging functions are officially documented
ORIXdevices send on -15180924 or 9360
devices receive on -15180925
JSONOpen Robot Interface (eXtensible), designed by ACS, used mainly by OeM
Unknown Alteran Stargate Utility Protocol-900000pipe-separatedOnly partially documented