> For the complete documentation index, see [llms.txt](https://docs.nursultan.fun/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.nursultan.fun/scripting-api-ru/chto-eto.md).

# Что это

Скрипты Nursultan — это обычные Kotlin-файлы с расширением `.kts`, которые клиент компилирует прямо во время игры. Сохранил файл — скрипт перезагрузился, перезапускать клиент не нужно.

Один файл — один скрипт. Вот целиком рабочий скрипт:

```kotlin
name("Hello")
description("Мой первый скрипт")

chat.print("привет")

on<ClientTickEvent> {
    // выполняется каждый игровой тик, пока скрипт включён
}
```

Ни `main`, ни классов, ни импортов писать не нужно — всё API уже доступно на верхнем уровне файла.

## Что можно сделать

* **Свой модуль** — настройки, бинд, переключатель во вкладке Scripts. Смотри [Как устроен скрипт](/scripting-api-ru/nachalo/kak-ustroen-skript.md) и [Виды настроек](/scripting-api-ru/nastroiki/vidy-nastroek.md).
* **Реакции на игру** — тики, урон, атаки, ввод, пакеты, появление сущностей. Смотри [События](/scripting-api-ru/sobytiya/podpiska-na-sobytiya.md).
* **Чтение мира** — игрок, блоки, сущности, инвентарь, сервер. Смотри [Игровые данные](/scripting-api-ru/igrovye-dannye/svoi-igrok.md).
* **Действия** — бить, ставить, ломать, крутить голову, менять слоты, слать пакеты. Смотри [Действия](/scripting-api-ru/deistviya/vzaimodeistvie.md).
* **Своя графика** — HUD, боксы и линии в мире, свои шейдеры. Смотри [Интерфейс](/scripting-api-ru/interfeis/render-2d.md).
* **Свои команды** — с подсказками по Tab, как у команд самого клиента. Смотри [Свои команды](/scripting-api-ru/eshyo/svoi-komandy.md).

## Где лежат скрипты

|         | Путь                                  |
| ------- | ------------------------------------- |
| Windows | `%APPDATA%\Nursultan\scripts`         |
| macOS   | `<папка minecraft>/Nursultan/scripts` |

В этой папке лежат **только** готовые `.kts`. Писать скрипты удобнее в отдельной папке-проекте — как её открыть в IDE, написано в [Проект в IDE](/scripting-api-ru/nachalo/proekt-v-ide.md).

Имя файла — идентификатор скрипта: `auto-jump.kts` появится в меню как `auto-jump`, пока не зададите ему `name(...)`.

## Вкладка Scripts

Всё управление — во вкладке **Scripts** в меню клиента.

* **Add script** — выбрать `.kts`, файл скопируется в папку скриптов и скомпилируется.
* Пока идёт компиляция, карточка приглушена и показывает статус. Ошибка подсветит её красным и покажет текст.
* У каждого скрипта своя карточка: **переключатель** — включить/выключить, **точки или ПКМ** — настройки, **иконка клавиатуры или СКМ** — назначить бинд.
* Состояние переживает перезапуск: включённость, бинд и настройки восстановятся сами.

Пока API стабилизируется, скриптинг доступен только аккаунтам с ролью **administrator**.
