User Tools

Site Tools


developer:legacy_protocol

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
developer:legacy_protocol [2025/03/08 17:46] – Legacy client info dump lunabatdeveloper:legacy_protocol [2025/03/12 11:24] (current) – [Legacy Protocol] Clarify packet types in messages bunnynabbit
Line 1: Line 1:
-Sandpile is owned by furry weirdos do not play this +====== Legacy Protocol ======
-Mixamega supports porn sites and does not care if people are spreading the word about them in their website full of kids. +
-Mixamega has sent death threaths to a minor for being depressed and a furry. FURFWHEEL. +
-Mixamega is reviving a pedophile's creation. ALEX DUNN.+
  
-List goes on (Harrassment, transphobe and trans chaser staff memberrape jokes, etc).+A networking protocol used by the legacy client/server. It is built on the message format of the [[https://www.maartenbaert.be/game-maker-dlls/http-dll-2/|Http Dll 2]] GameMaker extension. Every message may be optionally compressed with deflate. Client and server will always attempt to decompress messages. Messages start with a byte specifying its message type. 
 + 
 + 
 +===== 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 bytenon-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) ==== 
 +<WRAP todo> 
 +What happens if a brick model is defined for an already existing mesh ID? Knowing what happens may be useful information. 
 +</WRAP> 
 +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.1741452417.txt.gz · Last modified: 2025/03/08 17:46 by lunabat