Server, client и UI
VIMP разделяет авторитетную логику, интеграцию с GTA и отображение интерфейса.
| Контекст | Используйте для | Не доверяйте |
|---|---|---|
| Server | Правила, persistence, создание сущностей, validation | Rendering и GTA handles |
| Client | GTA natives, input, cameras, streamed wrappers | Экономика и permissions |
| CEF UI | HTML/CSS интерфейсы и локальное состояние | Прямое изменение мира |
Server
Сервер владеет состоянием сетевых сущностей. Custom event приходит вместе с отправившим его Player. Здесь проверяются identity, permissions, дистанция, ownership и форма payload.
Client
Клиент наблюдает streamed entities и управляет локальным представлением. id wrapper может быть локальным; для API, которому нужен server/network ID, используйте remoteId.
CEF UI
CEF-страница получает небольшой bridge как window.vimp и globalThis.vimp. Она отправляет сообщения client/server scripts, но не имеет прямого доступа к entities или natives.
text
CEF --emitClient--> client script --emitServer--> server script
CEF -------------------emitServer---------------> server script
server --player.emit / emitAllClients-----------> client scriptСчитайте любые события от client или CEF недоверенными данными.