Здесь привожу вольный перевод официальной статьи с вики: States - Garry's Mod
Состояния или так называемые стороны представляют собой различные состояния Lua.
В Garry's Mod есть 3 "состояния" кода.
Клиент (Client)
Сторона Клиента (client-side) - это в основном ваш игровой клиент. Он обрабатывает такие вещи, как визуальный рендеринг. Он может связываться с состоянием сервера через сетевые библиотеки. Набор переменных со стороны Клиента не может быть получен на стороне Сервера без передачи через соответствующие библиотеки (net, umsg).
Общей проблемой является предоставление клиенту слишком большой свободы, клиент должен реагировать только на то, что говорит сервер, а не наоборот.
Сервер (Server)
Сторона Сервера (server-side) обрабатывает всё на сервере; это единственное состояние, используемое на выделенных серверах. Он обрабатывает такие вещи как: говорит что делать энтити, контроллирует оружие, игроков и всю игровую логику. Он также может связываться с состоянием клиента через сетевые библиотеки. Набор переменных со стороны Сервера не может быть получен на стороне Клиента без передачи через эти же библиотеки (net, umsg).
Меню (Menu)
Состояние Меню - это скрытое и изолированное состояние для главного меню. Он имеет некоторые жизненно важные функции, доступные для функциональности Главного меню и не может связываться с состояниями Клиента или Сервера. Любой Lua, запускаемый в этом состоянии, будет работать независимо от sv_allowcslua.
Другое
В вики вы также можете увидеть следующие псевдо-состояния:
Shared (клиент и сервер)
Клиент и меню
Shared и меню (все состояния - клиент, сервер и меню)
Это не фактические состояния, скорее, они означают, что функции или хуки (hook) могут выполняться в каждом из указанных состояний.
Это не обязательно означает, что функция/хук вернет те же значения в разных состояниях (сторонах) или будет делать то же самое на всех сторонах. Например, функция Entity:GetPos() может вызываться на сервере и клиенте, поэтому она является общей. undo.GetTable также является общей функцией, но она работает по-разному на клиенте и сервере, как описано здесь: undo.GetTable - Garry's Mod. С другой стороны, математическая библиотека (math) и библиотека строк (string) могут использоваться во всех трех состояниях.
Состояния или так называемые стороны представляют собой различные состояния Lua.
В Garry's Mod есть 3 "состояния" кода.
Клиент (Client)
Сторона Клиента (client-side) - это в основном ваш игровой клиент. Он обрабатывает такие вещи, как визуальный рендеринг. Он может связываться с состоянием сервера через сетевые библиотеки. Набор переменных со стороны Клиента не может быть получен на стороне Сервера без передачи через соответствующие библиотеки (net, umsg).
Общей проблемой является предоставление клиенту слишком большой свободы, клиент должен реагировать только на то, что говорит сервер, а не наоборот.
Сервер (Server)
Сторона Сервера (server-side) обрабатывает всё на сервере; это единственное состояние, используемое на выделенных серверах. Он обрабатывает такие вещи как: говорит что делать энтити, контроллирует оружие, игроков и всю игровую логику. Он также может связываться с состоянием клиента через сетевые библиотеки. Набор переменных со стороны Сервера не может быть получен на стороне Клиента без передачи через эти же библиотеки (net, umsg).
Меню (Menu)
Состояние Меню - это скрытое и изолированное состояние для главного меню. Он имеет некоторые жизненно важные функции, доступные для функциональности Главного меню и не может связываться с состояниями Клиента или Сервера. Любой Lua, запускаемый в этом состоянии, будет работать независимо от sv_allowcslua.
Другое
В вики вы также можете увидеть следующие псевдо-состояния:
Shared (клиент и сервер)
Клиент и меню
Shared и меню (все состояния - клиент, сервер и меню)
Это не фактические состояния, скорее, они означают, что функции или хуки (hook) могут выполняться в каждом из указанных состояний.
Это не обязательно означает, что функция/хук вернет те же значения в разных состояниях (сторонах) или будет делать то же самое на всех сторонах. Например, функция Entity:GetPos() может вызываться на сервере и клиенте, поэтому она является общей. undo.GetTable также является общей функцией, но она работает по-разному на клиенте и сервере, как описано здесь: undo.GetTable - Garry's Mod. С другой стороны, математическая библиотека (math) и библиотека строк (string) могут использоваться во всех трех состояниях.