Skip to content

JavaScript-ресурсы

JavaScript является поддерживаемым серверным runtime текущего Varion MVP. Нужен Node.js в PATH. Отдельный js-module не требуется: сервер автоматически запускает Node host, если загружен ресурс с type = "js".

toml
# server.toml: массив должен быть в одной строке
resources = ["my-gamemode"]
toml
# resources/my-gamemode/resource.toml
enabled = true
type = "js"
main = "server/main.js"
client-type = "js"
client-main = "client/main.js"
client-files = ["client/**"]

Минимальный серверный ресурс

js
varion.on('playerConnect', (player) => {
  varion.log(`connected ${player.id} ${player.name}`);
});

varion.on('playerReady', (player) => {
  player.spawn({ x: 215.76, y: -810.12, z: 30.73 }, 157, 0x705E61F2);
});

varion.onClient('chat:send', (player, text) => {
  varion.emitAllClients('chat:message', player.name, String(text));
});

varion.onRpc('profile:get', (player) => ({ id: player.id, name: player.name }));

playerConnect, playerReady, onClient и onRpc получают объект Player, а не числовой playerId. Для ответа конкретному игроку используйте player.emit(...).

Доступны обычные Node builtins через require(...); npm-зависимости устанавливаются в node_modules самого ресурса. Актуальный полный стартовый пример находится в sdk/templates/js-full-resource.

C# и Go в текущем server binary не загружаются и считаются preview.

Varion Multiplayer Platform