Skip to content

Net (Multiplayer)

Net.register

Net.register(name) -> int | nil

Net.id

Net.id(name) -> int | nil

Lookup only.

Net.name

Net.name(id) -> string | nil

Net.startServer

Net.startServer(port, maxClients?) -> bool

maxClients defaults to 32.

Net.startClient

Net.startClient(host, port) -> bool

Net.isServer

Net.isServer() -> bool

Net.isNetworked

Net.isNetworked() -> bool

Net.localId

Net.localId() -> number | nil

Net.localEntity

Net.localEntity() -> Entity | nil

Net.maxPlayers

Net.maxPlayers() -> int

Net.on

Net.on(name, callback) -> bool

Registers a packet handler. The callback receives (peer, data). data is a Lua table for JSON payloads, a raw string otherwise, or nil for empty payloads.

Net.off

Net.off(name) -> bool

Net.send

Net.send(peer, name, data, reliable?, channel?) -> bool

peer may be void* or ENetPeer*. reliable defaults to false, channel to 0.

Net.broadcast

Net.broadcast(name, data, reliable?, channel?) -> bool

reliable defaults to false, channel to 0.

Net.onConnect

Net.onConnect(callback or nil) -> nil

Pass nil to clear.

Net.onDisconnect

Net.onDisconnect(callback or nil) -> nil

Pass nil to clear.

Net.peerEntity

Net.peerEntity(peer) -> Entity | nil

Net.networkId

Net.networkId(entity) -> number | nil

Net.playerSlot

Net.playerSlot(entity) -> int | nil

Net.entityFromId

Net.entityFromId(networkId) -> Entity | nil

Net.track

Net.track(entity, networkId) -> bool

Net.untrack

Net.untrack(entity) -> bool

Net.isLocal

Net.isLocal(entity) -> bool

Net.input

Net.input(entity) -> {[action]: true} | nil

Server: last input for that player. Client: local controller input if the entity is local, else nil.

Net.replicate

Net.replicate(entity, authority?, syncTransform?, syncSprite?, prefabPath?) -> bool

authority defaults to "Server", syncTransform to true, syncSprite to false. Tags an entity for replication.

Net.rpc

Net.rpc(entity, method, data) -> bool

Reliable entity RPC.

Net.rpcUnreliable

Net.rpcUnreliable(entity, method, data) -> bool

Unreliable variant.

Net.onEntityRpc

Net.onEntityRpc(method, handler) -> bool

Handler receives (entity, data).

Payload encoding

  • Net.on callback data: JSON payloads become Lua tables; non-JSON becomes a raw string; empty payloads become nil.
  • EncodePayload: strings are sent raw (no JSON quoting); tables are serialized to JSON; functions/userdata become null; cycles and null are guarded.