**This is an old revision of the document!**

Nanomachines

Nanomachines are a energybased, configureable and potentially deadly buff system.

To “install” nanomachines, eat them. Once ingested, a new power indicator in your HUD will indicate how much energy your nanomachines have left. (Default: Left of item bar)

You can recharge them by standing close ( <1m ) to a charger.

Nanomachines are crafted using the following recipe:

  • 4x chamelium
  • 1x WLAN Card
  • 1x Tier 2 CPU
  • 1x Acid
  • 1x Tier 1 RAM
  • 1x Capacitor

Nanomachines provide a certain number of “inputs” that can be triggered, causing many different effects on the player, ranging from visual effects such as particles spawning near the player, to select potion effects and some more rare and special behaviors.

Which input triggers what effect depends on the current configuration of the nanomachines, the actual “connections” being random per configuration. This means you'll have to try enabling different inputs to see what they do. If you're unhappy with a configuration, you can always reconfigure your nanomachines. Beware that enabling too many inputs at a time has severe negative effects on you!

You'll need to control them using wireless messages, so carrying a tablet with a wireless network card is strongly recommended. Nanomachines will only react to wireless signals emitted by devices no further than two meters away, but they will react to messages on any port, and from any device!

Nanomachines use a simple protocol: each packet consists of multiple parts, the first of which must equal the string “nanomachines”. The second part is the command name. Additional parts are parameters for the command. The following commands are available:

setResponsePort(port:number) - Set the port nanomachines should send response messages to, for commands that have a response.
dispose() - Destroy all nanomachines currently in the player.
reconfigure() - Cause the nanomachines to enter a new configuration.
getTotalInputCount() - Request a message with the total number of available inputs.
getSafeInputCount() - Request a message with the number of safe inputs.
getInput(index:number) - Request a message with the current state of the input with the specified index.
setInput(index:number, value:boolean) - Set the state of the input with the specified index to the specified value.
getActiveEffects() - Request a list of active effects. Note that some effects may not show up in this list.
getPowerState() - Request a message with the currently stored and maximum stored energy of the nanomachines.

For example, in OpenOS:

component.modem.broadcast(1, "nanomachines", "setInput", 1, true) will enable the first input.
component.modem.broadcast(1, "nanomachines", "reconfigure") will reconfigure the nanomachines.