Direction Key
| Client to Client |  |  | Server to Client |  |  | Client to Server |  |  | Server to Server

id | Command Name | cc | sc | cs | ss | Info
--- | --- | --- | --- | --- | --- | ---
Communication Commands
`00` | Public Chat |  |  |  |  |

Parameters
VarString8 | - Username
VarString16 | - Said

`01` | Private Message |  |  |  |  |

Parameters
VarString8 | - Username A
[VarString8] | - Username B
VarString16 | - Message

If direction is client to server, Username A is the user to send PM to and Username B is omitted.
If direction is server to client, Username A is the user the PM is from and Username B is omitted.
If direction is client to client, Username A is the From username and Username B is the To Username.
Authorization Commands
`10` | Lock |  |  |  |  |

Parameters
VarString8 | - Lock

`11` | Key |  |  |  |  |

Parameters
VarString8 | - Key

`12` | Validate Nick |  |  |  |  |

Parameters
VarString8 | - Username

`13` | Validate Denied |  |  |  |  |
`14` | Get Password |  |  |  |  |
`15` | My Password |  |  |  |  |

Parameters
VarString8 | - Password

`16` | Bad Password |  |  |  |  |
`17` | Logged In |  |  |  |  |
Protocol Control Commands
`20` | Get Client Info |  |  |  |  |
`21` | Client Info |  |  |  |  |

Parameters
VarString8 | - Client Name
VarString8 | - Client Version
Int16 | - Client Revision
VarString8 | - Client Website
VarString16 | - Client Info

`22` | Get Hub Info |  |  |  |  |
`23` | Hub Info |  |  |  |  |

Parameters
VarString8 | - Hub Software Name
VarString8 | - Hub Software Version
Int16 | - Hub Software Revision
VarString8 | - Hub Software Website
VarString16 | - Hub Software Info
VarString8 | - Hub Name
VarString8 | - Hub Short Name

`24` | Compatibility |  |  |  |  |

Parameters
TermString | - Terminated by "|"

The parameter MUST begin with "Lock ".
A CDC1 supporting client should use the CDC1 Lock2Key function and send the result back via the CDC1 Key command.
If it only supports the DC1 protocol, it will send the result back as a DC1 protocol command.
`25` | Get Feature Info |  |  |  |  |
`26` | Feature Info |  |  |  |  |

Parameters
Int16 | - Number of Features
For each feature:
∙ VarString8 | - Feature Name
∙ Int16 | - Feature Revision
∙ Boolean8 | - Feature Enabled

`27` | Feature Enable |  |  |  |  |

Parameters
VarString8 | - Feature Name

`28` | Feature Disable |  |  |  |  |

Parameters
VarString8 | - Feature Name

`28` | Feature Command |  |  |  |  |

Parameters
VarString8 | - Feature Name
VarString16 | - Data

Userlist Management Commands
`30` | Clear Userlist |  |  |  |  |
`31` | Hello |  |  |  |  |

Parameters
VarString8 | - Username

`32` | Quit |  |  |  |  |

Parameters
VarString8 | - Username

`33` | Request Userlist Refresh |  |  |  |  |
`34` | My Info |  |  |  |  |

Parameters
VarString8 | - Username
VarString8 | - Content Desc
VarString8 | - Connection
Int8 | - Icon Number
VarString8 | - E-Mail
Currency8 | - Bytes Shared

`35` | Get Info |  |  |  |  |
`36` | Hub Name |  |  |  |  |

Parameters
VarString8 | - Hub Name

`37` | Hub Short Name |  |  |  |  |

Parameters
VarString8 | - Hub Short Name

File Sharing Commands
`40` | Connect To Me |  |  |  |  |

Parameters
VarString8 | - Username to make connection
VarString8 | - P2P Protocol to use
IPAddress32 | - IP Address to connect to
Int16 | - Port to connect to

`41` | Reverse Connect To Me |  |  |  |  |

Parameters
VarString8 | - Username to send CTM to
VarString8 | - Username who sends the CTM

`42` | Connect To Me (Active) |  |  |  |  |

Parameters
VarString8 | - Username to make connection
VarString8 | - P2P Protocol to use
IPAddress32 | - IP Address to connect to
Int16 | - Port to connect to

`43` | Connect To Me (Passive) |  |  |  |  |

Parameters
VarString8 | - Username to make connection
VarString8 | - P2P Protocol to use
IPAddress32 | - IP Address to connect to
Int16 | - Port to connect to

`47` | Search (Active) |  |  |  |  |

Parameters
IPAddress32 | - IP to send results to
Int16 | - Port to send results to
VarString8 | - Search result Protocol
Bit3 | - Search Filter
Bit1 | - Min Size Limit Enabled
Bit1 | - Max Size Limit Enabled
Bit1 | - MultiHub Search (always 1)

Bit2 | - NULL
[Currency8] | - Min File Size (omitted if not enabled)
[Currency8] | - Max File Size (omitted if not enabled)
VarString8 | - Search Query

Search Filter Options (binary):
∙ `000` - No Filter
∙ `001` - Audio
∙ `010` - Compressed
∙ `011` - Document
∙ `100` - Executable
∙ `101` - Picture
∙ `110` - Video
∙ `111` - Folder
`48` Search (Passive)

Parameters
VarString8 | - Username to send results to
Bit3 | - Search Filter
Bit1 | - Min Size Limit Enabled
Bit1 | - Max Size Limit Enabled
Bit1 | - MultiHub Search (always 1)

Bit2- NULL
[Currency8]- Min File Size (omitted if not enabled)
[Currency8]- Max File Size (omitted if not enabled)
VarString8- Search Query
`49` Search (Passive)

Parameters
VarString8 | - Username A
[VarString8] | - Username B
VarString16 | - File Path+File Name
Currency8 | - File Size
Int16 | - Open Slots
Int16 | - Max Slots

IPAddress32- IP Address of hub User is on
Int16- Port of hub User is on
VarString8- Name of hub User is on
If direction is client to server, Username A is the user to send SR to and Username B is omitted.
If direction is server to client, Username A is the user the SR is from and Username B is omitted.
If direction is client to client, Username A is the From username and Username B is the To Username.
Connection Management Commands
`50` Ping

Parameters
VarString8 | - Ping Data

`51` Pong

Parameters
VarString8 | - Ping Data

`52` Redirect

Parameters
VarString8 | - Hostname of dest hub

`53` Disconnect
`54` Reconnect
`55` Delayed Reconnect

Parameters
Int16 | - Number of Seconds to wait before reconnecting

`56` Delayed Redirect

Parameters
VarString8 | - Hostname of dest hub
Int16 | - Number of Seconds to wait before reconnecting

`57` Request My IP
`58` Your IP is...

Parameters
IPAddress32 | - IP Address Response

`59` Get Your IP
`5A` My IP is...

Parameters
IPAddress32 | - IP Address Response

`5B` Error

Parameters
Int8 | - Command Error
Int16 | - Error Number
VarString16 | - Error Data

Operator Functions Commands
`60` Get IP

Parameters
VarString8 | - Username to get IP of

`61` Get IP Response

Parameters
VarString8 | - Username
IPAddress32 | - IP Address of Username

`62` Get Version

Parameters
VarString8 | - Username to get Version of

`63` Get Version Response

Parameters
VarString8 | - Username
VarString8 | - Client Name
VarString8 | - Client Version
Int16 | - Client Revision
VarString8 | - Client Website
VarString16 | - Client Info

`64` Mute

Parameters
VarString8 | - Username to Mute
Int32 | - How long to Mute for (null for infinate)

`65` Unmute

Parameters
VarString8 | - Username to Unmute

`66` Boot

Parameters
VarString8 | - Username to Boot

`67` Redirect

Parameters
VarString8 | - Username to Redirect
VarString8 | - Hub hostname to redirect to

`68` Kick

Parameters
VarString8 | - Username to Kick
Int32 | - How long the temp ban lasts

`69` BanIP

Parameters
IPAddress32 | - IP to Ban
Int32 | - How long the ban lasts (null for infinate)

`6A` UnBanIP

Parameters
IPAddress32 | - IP to UnBan

`6B` BanUser

Parameters
VarString8 | - User who's IP to Ban
Int32 | - How long the ban lasts (null for infinate)

`6C` BanMAC

Parameters
MACAddress48 | - MAC to Ban
Int32 | - How long the ban lasts (null for infinate)

`6D` UnBanMAC

Parameters
MACAddress48 | - MAC to UnBan

`6E` BanName

Parameters
VarString8 | - Username to Ban usage of
Int32 | - How long the ban lasts (null for infinate)

`6F` UnBanName

Parameters
VarString8 | - Username to UnBan usage of

`70` MassMsg

Parameters
VarString16 | - Mass Message

`71` Request Telnet Admin
`72` Telnet Admin Info

Parameters
IPAddress32 | - IP to connect to
Int16 | - Port to connect to

`73` Get Property Value

Parameters
VarString8 | - Object Name
VarString8 | - Property Name

`74` Property Value Is...

Parameters
VarString8 | - Object Name
VarString8 | - Property Name
Int8 | - Property Value Type
Variable | - Property Value

Property Value Types:
∙ `00` - VarString8
∙ `01` - VarString16
∙ `10` - Int8
∙ `11` - Int16
∙ `12` - Int32
∙ `13` - Int64
∙ `20` - IPAddress32
∙ `21` - MACAddress48
∙ `30` - Currency8
∙ `40` - Bit1
∙ `41` - Bit2
∙ `42` - Bit3
∙ `43` - Bit4
∙ `50` - Array8
∙ `51` - Array16
`75` Set Property Value

Parameters
VarString8 | - Object Name
VarString8 | - Property Name
Int8 | - Property Value Type
Variable | - Property Value

`76` List Properties

Parameters
VarString8 | - Object Name

`77` List Properties Result

Parameters
VarString8 | - Object Name
Array16 | - Property Names

`78` List Objects

Parameters
VarString8 | - Object Name

`79` List Objects Result

Parameters
Array16 | - Object Names

`7C` Append Property Value

Parameters
VarString8 | - Object Name
VarString8 | - Property Name
Int8 | - Appended Value Type
Variable | - Appended Value

This only works if the property is currently an array.
`7D` Remote Property Item

Parameters
VarString8 | - Object Name
VarString8 | - Property Name
Int8 | - Removed Value Type
Variable | - Removed Value

This only works if the property is currently an array.