> ## Documentation Index
> Fetch the complete documentation index at: https://cs-lua.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# msg — Поля сообщения

> Каждая функция описывает одно поле в порядке провода — сама ничего не

# Поля сообщения

Каждая функция описывает одно поле в порядке провода — сама ничего не
отправляет, только проверяет диапазон и возвращает значение, которое
`msg.send` пишет по очереди.

```lua theme={null}
msg.send("one", "TextMsg", e.player,
  msg.byte(4), msg.string("hello"))
```

<h2 id="byte">
  msg.byte
</h2>

n — `0..255` (`WRITE_BYTE` в SDK).

```lua theme={null}
msg.byte(n)
```

### Аргументы

| # | имя | тип              |          |
| - | --- | ---------------- | -------- |
| 1 | `n` | number \| string | `0..255` |

### Возвращает

| тип     |                                                                     |
| ------- | ------------------------------------------------------------------- |
| `table` | значение для `msg.send` — передавай как есть, не пересобирай руками |

<Warning>
  Значение вне диапазона — ошибка Lua сразу в момент вызова `msg.byte`/
  `msg.short`/..., до `msg.send`. Так проще найти, какое именно поле не влезло.
</Warning>

<h2 id="char">
  msg.char
</h2>

n — `-128..127` (`WRITE_CHAR` в SDK).

```lua theme={null}
msg.char(n)
```

### Аргументы

| # | имя | тип              |             |
| - | --- | ---------------- | ----------- |
| 1 | `n` | number \| string | `-128..127` |

### Возвращает

| тип     |                                                                     |
| ------- | ------------------------------------------------------------------- |
| `table` | значение для `msg.send` — передавай как есть, не пересобирай руками |

<Warning>
  Значение вне диапазона — ошибка Lua сразу в момент вызова `msg.byte`/
  `msg.short`/..., до `msg.send`. Так проще найти, какое именно поле не влезло.
</Warning>

<h2 id="short">
  msg.short
</h2>

n — `-32768..32767` (`WRITE_SHORT` в SDK).

```lua theme={null}
msg.short(n)
```

### Аргументы

| # | имя | тип              |                 |
| - | --- | ---------------- | --------------- |
| 1 | `n` | number \| string | `-32768..32767` |

### Возвращает

| тип     |                                                                     |
| ------- | ------------------------------------------------------------------- |
| `table` | значение для `msg.send` — передавай как есть, не пересобирай руками |

<Warning>
  Значение вне диапазона — ошибка Lua сразу в момент вызова `msg.byte`/
  `msg.short`/..., до `msg.send`. Так проще найти, какое именно поле не влезло.
</Warning>

<h2 id="long">
  msg.long
</h2>

n — любое 32-битное целое (`WRITE_LONG` в SDK).

```lua theme={null}
msg.long(n)
```

### Аргументы

| # | имя | тип              |                       |
| - | --- | ---------------- | --------------------- |
| 1 | `n` | number \| string | любое 32-битное целое |

### Возвращает

| тип     |                                                                     |
| ------- | ------------------------------------------------------------------- |
| `table` | значение для `msg.send` — передавай как есть, не пересобирай руками |

<Warning>
  Значение вне диапазона — ошибка Lua сразу в момент вызова `msg.byte`/
  `msg.short`/..., до `msg.send`. Так проще найти, какое именно поле не влезло.
</Warning>

<h2 id="angle">
  msg.angle
</h2>

f — число, градусы (`WRITE_ANGLE` в SDK).

```lua theme={null}
msg.angle(f)
```

### Аргументы

| # | имя | тип              |                |
| - | --- | ---------------- | -------------- |
| 1 | `f` | number \| string | число, градусы |

### Возвращает

| тип     |                                                                     |
| ------- | ------------------------------------------------------------------- |
| `table` | значение для `msg.send` — передавай как есть, не пересобирай руками |

<Warning>
  Значение вне диапазона — ошибка Lua сразу в момент вызова `msg.byte`/
  `msg.short`/..., до `msg.send`. Так проще найти, какое именно поле не влезло.
</Warning>

<h2 id="coord">
  msg.coord
</h2>

f — число, игровые единицы (`WRITE_COORD` в SDK).

```lua theme={null}
msg.coord(f)
```

### Аргументы

| # | имя | тип              |                        |
| - | --- | ---------------- | ---------------------- |
| 1 | `f` | number \| string | число, игровые единицы |

### Возвращает

| тип     |                                                                     |
| ------- | ------------------------------------------------------------------- |
| `table` | значение для `msg.send` — передавай как есть, не пересобирай руками |

<Warning>
  Значение вне диапазона — ошибка Lua сразу в момент вызова `msg.byte`/
  `msg.short`/..., до `msg.send`. Так проще найти, какое именно поле не влезло.
</Warning>

<h2 id="string">
  msg.string
</h2>

s — до 191 байта (`WRITE_STRING` в SDK).

```lua theme={null}
msg.string(s)
```

### Аргументы

| # | имя | тип              |              |
| - | --- | ---------------- | ------------ |
| 1 | `s` | number \| string | до 191 байта |

### Возвращает

| тип     |                                                                     |
| ------- | ------------------------------------------------------------------- |
| `table` | значение для `msg.send` — передавай как есть, не пересобирай руками |

Проходит через ту же кодировку, что и `p:hud()`/`p:say()`: `cslua_cp1251` переключает UTF-8 → CP1251 для старых клиентов, по умолчанию выключено.

<h2 id="entity">
  msg.entity
</h2>

v — игрок или объект `ents`, индекс `>= 1` (`WRITE_ENTITY` в SDK).

```lua theme={null}
msg.entity(v)
```

### Аргументы

| # | имя | тип              |                                        |
| - | --- | ---------------- | -------------------------------------- |
| 1 | `v` | number \| string | игрок или объект `ents`, индекс `>= 1` |

### Возвращает

| тип     |                                                                     |
| ------- | ------------------------------------------------------------------- |
| `table` | значение для `msg.send` — передавай как есть, не пересобирай руками |

Принимает и игрока (`e.player`), и сущность из `ents` — что угодно с полем `id` (игрок) или `index` (сущность). `0` (мир) не годится.
