User Tools

Site Tools


developer:legacy_protocol

This is an old revision of the document!


Legacy Protocol

A networking protocol used by the legacy client/server. It is built on the message format of the Http Dll 2 GameMaker extension. Every message may be optionally compressed with deflate. Client and server will always attempt to decompress messages.

Data types

All data types are little-endian.

Type Format
String Null terminated UTF-8
Byte 8-bit byte
Float 32-bit float
Boolean 8-bit byte, non-zero meaning true
Uint32
Varint todo

Server to client

Login (0x01)

Used for identifying the player logging in and creates the brick loading message.

Type Description
Uint32 Net ID of player
Uint32 Brick count of world
Uint32 User ID of player
String Username of player
Boolean Is admin
Byte Membership type
Uint32 Set ID
String Set Name

Message (0x06)

Appends a message to the chat log.

Type Description
String Message

Set brick attribute (0x09)

Type Description
Uint32 Net ID of brick
String Attribute type

Type: pos

Sets position of brick.

Type Description
Float X position
Float Y position
Float Z position

Type: rot

Old method of setting brick rotation. Only allows Z rotation to be set.

Type Description
Uint32 Z rotation

Type: rot2

Sets brick rotation.

Type Description
Int32 X rotation
Int32 Y rotation
Int32 Z rotation

Type: scale

Sets brick scale.

Type Description
Uint32 X scale
Uint32 Y scale
Uint32 Z scale

Time is in milliseconds.

Type: kill

Activates physics on brick and remove brick from world after set time.

Type Description
Uint32 Time

Time is in milliseconds.

Type: destroy

Deletes brick from world.

Type Description
Float Color

Type: col

Sets color of brick.

Type Description
Float Color

Type: alpha

Sets transparency of brick.

Type Description
Float Alpha

Alpha value ranges from 0 to 1.

Type: lightcol

Sets light color of brick.

Type Description
Uint32 Color

Type: lightrange

Sets light range of brick.

Type Description
Uint32 Mesh UUID

Type: model

Sets mesh on brick.

Type Description
String Mesh UUID
String Texture UUID

A mesh UUID of none will remove the mesh.

Type: clickable

Sets clickable status on brick.

Type Description
Boolean Clickable enabled
Uint32 Click distance

Type: collide

Sets collision of brick.

Type Description
Boolean Collision enabled

Type: global

Moves brick to the internal global cluster model.

Delete bricks (0x10)

Delete bricks from the world.

Create bricks (0x11)

Loads bricks into the world.

Clear world (0x0E)

Deletes all bricks from the world. No message data is specified.

Brick model (0x14)

What happens if a brick model is defined for an already existing mesh ID? Knowing what happens may be useful information.

Defines a mesh made out of bricks to the mesh cache. The model can then be used as a brick model or a hat by using the newly defined mesh ID.

Type Description
String Mesh ID
Uint32 Brick count of model

Bricks are defined for the number of bricks in model.

Type Description
Float X position
Float Y position
Float Z position
Float X scale
Float Y scale
Float Z scale
Int32 X rotation
Int32 Y rotation
Int32 Z rotation
Uint32 Color
Float Alpha

Client to server

todo

developer/legacy_protocol.1741774833.txt.gz · Last modified: 2025/03/12 11:20 by bunnynabbit