> ## 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.

# sv — Сервер

> Сервер: часы, карта, консоль, переменные движка

# Сервер

<h2 id="time">
  sv.time
</h2>

Серверные часы в секундах.

```lua theme={null}
sv.time()
```

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

| тип      |                          |
| -------- | ------------------------ |
| `number` | секунды с дробной частью |

Те же часы, на которых идут [таймеры](../timer/index.md). Обнуляются при смене карты.

<Note>
  `os.clock()` — это CPU-время, оно сильно расходится на сервере,
  который спит между кадрами. Для интервалов бери `sv.time()`.
</Note>

<h2 id="map">
  sv.map
</h2>

Имя текущей карты.

```lua theme={null}
sv.map()
```

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

| тип      |              |
| -------- | ------------ |
| `string` | `"de_dust2"` |

<h2 id="maps">
  sv.maps
</h2>

Список карт, установленных на сервере.

```lua theme={null}
sv.maps()
```

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

| тип     |                                           |
| ------- | ----------------------------------------- |
| `table` | имена без `.bsp`, порядок не гарантирован |

Читает `maps/` на диске напрямую, а не берёт список
откуда-то из движка — плагину меню голосования этого достаточно, чтобы
отсеять карты, которых на самом деле нет.

<h2 id="map_exists">
  sv.map\_exists
</h2>

Есть ли карта на диске.

```lua theme={null}
sv.map_exists(name)
```

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

| # | имя    | тип    |                |
| - | ------ | ------ | -------------- |
| 1 | `name` | string | имя без `.bsp` |

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

| тип       |                                           |
| --------- | ----------------------------------------- |
| `boolean` | `true`, если `maps/<name>.bsp` существует |

Дешевле, чем звать `sv.maps()` и искать в нём —
одна проверка файла вместо чтения всей папки.

<h2 id="cmd">
  sv.cmd
</h2>

Ставит команду в очередь серверной консоли.

```lua theme={null}
sv.cmd(fmt, ...)
```

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

| # | имя   | тип    |                                        |
| - | ----- | ------ | -------------------------------------- |
| 1 | `fmt` | string | команда или формат для `string.format` |
| 2 | `...` | any    | подстановки                            |

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

Ничего.

### Пример

```lua theme={null}
sv.cmd("changelevel %s", next_map)
```

С одним аргументом строка уходит как есть — одинокий `%` в нике не превратится в директиву формата.

<Warning>
  Длиннее 250 символов — ошибка: обрезанная команда выполнилась бы
  как совсем другая.
</Warning>
