# Protocol Default port is 28555 for TCP and UDP transport. For TCP, packets are concatenated to a stream. For UDP, game packets are concatenated in groups of at least one to form one UDP packet. ## Protocol packets All packets are preceeded by its length as u32. The next byte indicates the type. The following bytes are the parameters. `Vec` is stored as u32 element count followed by the elements. `Res` is used to denote 256-bit resource hash referring to data of type T. `Obj` refers 128-bit game objects IDs. `String` is stored like `Vec` but contains UTF-8 encoded text. ```rs 0x00 connect(identity: u128) 0xff disconnect() 0x01 request_resource(name: Res) 0x02 respond_resource(data: Vec) 0x03 add(id: Obj, prefab: Res) 0x04 remove(id: Obj) 0x05 position(id: Obj, pos: Vec3, rot: Vec3) 0x06 pose(id: Obj, params: Vec) 0x07 parent(parent: Obj, child: Obj) 0x08 sound(id: Obj, data: Vec) 0x09 prefab_index(res: Res) 0x0a announce_prefab(res: Res) ``` ## Resources Resources are reusable things. They are identified by the SHA-256 hash of their serialized content. See [resources.md](./resources.md)