Камеры, input и storage
Client helpers управляют локальным представлением и не заменяют server authority.
const camera = vimp.cameras.create(
'vehicle-preview',
{ x: 100, y: -1900, z: 24 },
{ x: -15, y: 0, z: 140 },
60,
)
camera.setActive(true)
vimp.cameras.renderScriptCams(true, true, 500)
vimp.cursor.show()
vimp.storage.setItem('garage:lastModel', 'adder')Камеры
Создайте script camera с position, rotation и field of view, активируйте её и включите script camera rendering. При закрытии feature удалите camera и верните gameplay rendering через renderScriptCams(false).
Input и cursor
keyDown и keyUp передают Win32 virtual-key codes. Учитывайте key repeat, чтобы интерфейс не переключался несколько раз. Согласуйте cursor visibility с browser focus и скрывайте cursor на каждом пути закрытия.
Storage
Client storage изолирован namespace текущего сервера и принимает JSON-compatible values. getItem возвращает null и для отсутствующего key, и для сохранённого null; различайте их через hasItem.
Storage подходит только для локальных preferences. Balance, permissions, inventory и progression должны оставаться на сервере.