Railgun

if it ain't broke, we'll break it

User Tools

Site Tools


sockchat:types

Types

This is a list of all data types that appear in Sock Chat packet fields.

bool

A value that indicates a true or a false state. 0 represents false and anything non-0 represents true, please stick to 1 for representing true though.

int

Any integer ranging from -9007199254740991 to 9007199254740991, Number.MAX_SAFE_INTEGER and Number.MIN_SAFE_INTEGER in JavaScript.

string

Any UTF-8 codepoint, except \t which is used to separate packets.

collection

A set of string values, separated by \f.

timestamp

Extends int, contains the current UNIX timestamp as seconds since January 1st, 1970 0:00:00 UTC.

user name

A string containing a user’s name.

If the user currently has an AFK tag set through the /afk, it is prefixed by <AFK>_. The AFK text can be replaced by any text supplied to the /afk command as an argument, the original PHP Sock Chat and SharpChat force this text to uppercase and limit it to 5 unicode grapheme clusters.

If prefixed by a ~, it is not the user’s actual name but a nick name.

channel name

A string containing only alphanumeric characters (any case), - or _.

colour

Any valid value for the CSS color property. Further documentation can be found on MDN.

message flags

Message flags alter how a message should be displayed to the client, these are all bool values. The parts are as follows:

  • Username should appear using a bold font.
  • Username should appear using a cursive font.
  • Username should appear underlined.
  • A colon : should be displayed between the username and the message.
  • The message was sent privately, directly to the current user.

As an example, the most common message flagset is 10010. This indicates a bold username with a colon separator.

user perms

User permissions are a set of flags separated by either the form feed character (\f / 0x0C) or a space (’ ’ / 0x20). The reason there are two options is due to a past mixup that we now have to live with. Which of the methods is used remains consistent per server however, so the result of a test can be cached.

Note that this string MAY be empty if sent by the bot user (-1).

Type Description
int Rank of the user. Used to determine what channels a user can access or what other users the user can moderate.
bool Indicates whether the user the ability kick/ban/unban others.
bool Indicates whether the user can access the logs. This should always be 0, unless the client has a dedicated log view that can be accessed without connecting to the chat server.
bool Indicates whether the user can set an alternate display name.
int Indicates whether the user can create channel. If 0 the user cannot create channels, if 1 the user can create channels but they are to disappear when all users have left it and if 2 the user can create channels that permanently stay in the channel assortment.
sockchat/types.txt · Last modified: 2025/04/20 00:42 by flash