"Client" is just another name for "Peer". From each client's point of view, all other clients are Peers.

It is simpler to consider any Lacewing Client object as a client rather than a peer, however.


Clients have unique IDs assigned on connect (from 0 to 65534), which is never reused or changed while the client stays connected. The IDs are released when the client disconnects, so a new client can use the number. In Fusion terms, it's like a fixed value.

The clients have names, which depending on the server implementation, can be reused between clients to a good extent – but if using Blue, then even similar names cannot be reused. How names are considered the same or too similar varies per server implementation, so make sure you read about it under When selection is changed.


For applications, it is up to you to decide how clients should interact with each other and the server.

While the server should be responsible for keeping abuse to a minimum, you (as a client) should only process your own movement and information, and only display other clients (peers).


When designing moderation/anti-abuse, remember peers should not be held responsible for leaving channels themselves, by receiving admin messages, as modified clients can ignore the admin's leave messages, leaving an admin powerless.

Only a server has true power over whether a kick has to happen or not, so it is better to have a custom server that will respond to the kick request and force them out, as the client only passed channel messages if the server has them in the channel's client list. So a modified client ignoring the server telling them they've left Channel A won't give them access to Channel A's messages.

A custom server could also check that the person giving a kick request is authorized to kick others, and it could also prevent the kicked client from rejoining.


More details on how to handle unruly clients is covered under Security.