# SL:MP, SA:MP и MTA: в чём разница

> Сравнение трёх мультиплееров для GTA: San Andreas: на чём пишутся скрипты в SA:MP, MTA:SA и SL:MP, где работает код, что с исходниками и кому какой подойдёт. Таблица и разбор.

- URL: https://pakulichev.com/wiki/slmp-samp-mta
- Author: Pakulichev (https://pakulichev.com/)
- Language: ru
- Updated: 2026-10-16
- Whole site for LLMs: https://pakulichev.com/llms.txt (index), https://pakulichev.com/llms-full.txt (full text)

У GTA: San Andreas нет встроенного сетевого режима, поэтому все мультиплееры для неё сделаны сообществом. Самые известные – **SA:MP** и **MTA:SA**. Третий участник сравнения – [SL:MP](https://pakulichev.com/projects/sl-mp), который мы с SEVEN писали в 2020–2021 годах. Он заметно меньше двух других, и сравнивать его с ними по масштабу бессмысленно. Зато по устройству разница очень наглядная.

## Сравнительная таблица

| | SA:MP | MTA:SA | SL:MP |
| --- | --- | --- | --- |
| Клиент | Мод на C/C++ | Мод на C/C++ | Lua-скрипты MoonLoader |
| Скрипты сервера | Pawn | Lua | Lua (LuaJIT) |
| Скрипты клиента | Нет штатных, только сторонние моды | Lua, раздаются сервером | Lua, часть клиента |
| Организация кода | Игровой режим и filterscripts | Ресурсы | Игровой режим |
| Исходный код | Клиент закрыт | Открыт | Открыт |
| Сеть | UDP | UDP | UDP, протокол SL:NET |
| Статус | Зрелый, массовый клиент 0.3.7 | Зрелый, развивается сообществом | Альфа 2020–2021, не развивается |
| Слоты | Задаются в конфиге | Задаются в конфиге | maxSlots, в альфе до 10 рекомендовано |

## SA:MP

San Andreas Multiplayer – клиентский мод на C/C++ и отдельный сервер для Windows и Linux. Логика сервера пишется на **Pawn**: это компактный C-подобный язык, скрипты компилируются в байт-код и исполняются виртуальной машиной сервера. Основной скрипт называется игровым режимом (gamemode), дополнительные – filterscripts. Чего не хватает в Pawn, добавляют плагинами на C/C++.

Клиент требует GTA: San Andreas 1.0 US. Самая распространённая версия клиента – **0.3.7**, на неё ориентировано большинство серверов. Своего скриптового движка на стороне клиента у SA:MP нет: всё, что игрок видит, сервер отдаёт через фиксированный набор функций. Поэтому вокруг SA:MP выросла огромная экосистема клиентских модов – CLEO, SAMPFUNCS, [MoonLoader](https://pakulichev.com/wiki/moonloader-lua-gta-sa).

Сильная сторона – простота модели и огромная база готовых режимов. Слабая – Pawn: в нём нет нормальных строк и динамических структур данных, и большой проект на нём держится на дисциплине и макросах.

## MTA:SA

Multi Theft Auto: San Andreas устроен иначе. Скрипты на **Lua** работают и на сервере, и на клиенте, а код организован в **ресурсы**: папка со скриптами, картами и файлами плюс описание в `meta.xml`. Клиентские скрипты и файлы сервер сам отправляет игроку при подключении, ставить что-то вручную не нужно.

Отсюда главное преимущество: на клиенте можно рисовать собственный интерфейс, обрабатывать ввод, создавать объекты и эффекты, и всё это поставляется вместе с сервером. Исходный код MTA открыт.

Платой за гибкость становится более сложная модель. Нужно понимать, какой код выполняется на сервере, какой на клиенте, и как между ними передавать события.

## SL:MP

SL:MP начинался как эксперимент: можно ли синхронизировать игроков одним LuaSocket поверх SA:MP. Позже зависимость от SA:MP мы убрали, и клиент стал набором MoonLoader-скриптов для чистой GTA: SA 1.0 US. Сервер – тоже Lua, под LuaJIT на Windows или Linux. Сеть – собственный бинарный протокол **SL:NET** поверх UDP, позже вынесенный в библиотеку [SNET](https://pakulichev.com/projects/snet).

В альфе 1.0.0-alpha.1 есть синхронизация пешком и в транспорте, диалоги, пикапы и виртуальные миры. Рекомендованный предел – около 10 игроков. Последняя сборка вышла 18 января 2021 года.

Ничего нативного в SL:MP нет. Весь стек от сетевого пакета до диалога на экране – Lua-код, который можно открыть и поменять. Для боевого сервера это слабое место: LuaJIT быстрый, но мультиплеер на C/C++ с годами отладки он не заменит. Для изучения же это главное достоинство. Как запустить свой сервер, описано в статье [«Как запустить сервер SL:MP»](https://pakulichev.com/wiki/slmp-server).

## Кому что подходит

- SA:MP – если нужен классический сервер с большим выбором готовых режимов и аудиторией, которая уже умеет в него играть.
- MTA:SA – если важны клиентская логика, свой интерфейс и единый язык на обеих сторонах.
- SL:MP – если интересно, как мультиплеер устроен внутри, или хочется поэкспериментировать с сетевым кодом на Lua без C/C++.

Совместимости между ними нет: у каждого свой клиент, свой протокол и свой формат скриптов. Код игровых режимов тоже придётся переписывать при переезде, даже между MTA и SL:MP, хотя оба на Lua.

## FAQ

### Можно ли зайти на SA:MP-сервер через клиент MTA или наоборот?

Нет. У каждого мультиплеера свой клиент и свой сетевой протокол. SL:MP тоже несовместим ни с одним из них: подключиться к его серверу можно только через лаунчер и клиент SL:MP.

### Чем код на Lua в MTA отличается от MoonLoader-скриптов?

MTA выполняет Lua внутри своего клиента и сервера и сама раздаёт клиентские скрипты игрокам. MoonLoader – отдельный загрузчик для одиночной игры и SA:MP, со своим API. Язык один, но функции и окружение разные, код напрямую не переносится.

### Что выбрать для своего сервера?

Для ролевого проекта под существующую аудиторию обычно смотрят на SA:MP. Если нужна логика и интерфейс на стороне клиента без отдельных модов, удобнее MTA. SL:MP подходит для экспериментов и изучения того, как устроен мультиплеер изнутри.
