First gamemode
VIMP loads <scripts_path>/server/main.js during startup. With the default configuration, that is scripting/server/main.js.
ts
vimp.on('playerConnected', (player) => {
console.log(`${player.name} (#${player.id}) connected`)
player.teleport(90.79, -1951.33, 20.74, 307.23)
})
vimp.on('playerDisconnected', (player) => {
console.log(`${player.name} (#${player.id}) disconnected`)
})
vimp.markReady()The server does not accept player connections until the script calls vimp.markReady(). Register startup event handlers first, then call it once.
JavaScript quick start
TypeScript is recommended but not required. The same runtime accepts plain JavaScript without imports or an npm installation:
js
vimp.on('playerConnected', (player) => {
player.teleport(90.79, -1951.33, 20.74, 307.23)
})
vimp.markReady()Restart the process after editing server code; VIMP 2.x does not hot-reload the server entry script.
Next step
Move source code out of the runtime directory and compile it into dist/scripts/server/main.js. This keeps build-time dependencies separate from the files deployed to the game server.