Servers
Your server, your rules
Node-Server runs on Linux, Windows and in Docker: one program, one port, server.toml. A server key from this site puts it on the public list; without a key it still runs — people join it by address.
NodeMP is multiplayer for BeamNG.drive: your own servers, honest vehicle sync and Lua plugins. Install the launcher, pick a server and hold to play.
3 servers · 0 players in game right now
Getting started
You need the game at version 0.39.4.0, started at least once: the first start creates the user folder the launcher installs the client mod into.
The Windows launcher installs for the current user, needs no administrator rights, and downloads and updates the client mod itself before every join.
With an account you get a fixed name the directory vouches for. Without one you play as Test Drive under a random guest name — some servers refuse guests.
What it is
Servers
Node-Server runs on Linux, Windows and in Docker: one program, one port, server.toml. A server key from this site puts it on the public list; without a key it still runs — people join it by address.
Sync
TLS 1.3, one-shot join tickets, names verified by the directory. Before every join the launcher checks the game files as strictly as the server asks — up to comparing the whole install and the user folder against a reference of a clean game.
Plugins
A resource is a folder with a resource.toml: the server half in Lua or JavaScript, the client half streamed to players on join and run inside BeamNG. Events, chat commands, timers, HTTP and PostgreSQL — one node API.
Right now
For developers
The server half subscribes to events and answers players; the client half runs inside BeamNG with full access to the game. Below is the real API: an event subscription, a spawn refusal, a chat command. Chat lines go through the chat example resource from the server archive.
node.on("playerJoined", function(player) player:tell("Welcome, %s", player.name) node.log("%s joined from %s", tostring(player), player.ip)end)node.on("vehicleSpawnRequest", function(player, id, config) if player.vehicleCount >= 2 then return false, "two cars per player" endend)node.commands.add("online", function(player, args, raw) player:tell("%d players online", node.players.count())end)Right now