VIMP developer documentation
VIMP exposes a typed JavaScript scripting runtime for authoritative server code, client-side GTA integration, and CEF user interfaces. These docs cover the current VIMP 2.x runtime.
Start here
- Install a game server and run it locally.
- Build your first gamemode with TypeScript.
- Learn how server, client, and CEF contexts communicate.
- Package add-on vehicles and maps or MLOs.
- Look up the complete scripting API.
Mental model
The server owns persistent multiplayer state. It creates networked entities and decides which players can act. Each connected client receives nearby entity state, runs client scripts, calls GTA natives, and renders CEF pages. Named events move JSON-compatible application data between these contexts.
text
server/main.js ← custom events → client/main.js ← UI events → CEF page
│ │
authoritative state streamed GTA worldSupported authoring environments
| Context | Runtime | Primary API |
|---|---|---|
| Server | Embedded Node.js 22 | @vimp-mp/types/server |
| Client | VIMP JavaScript runtime | @vimp-mp/types/client |
| CEF UI | Chromium page | @vimp-mp/types/ui |
The declaration package is development-only. Do not import runtime values from it; VIMP installs globalThis.vimp before loading your scripts.