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.