BeamMP.
How SCRIPT//GO scripts run on BeamMP: setup, capabilities, protection, limits and the real runs behind its status.
scriptgo-sdk/docs/site/platforms/beammp.mdScripts on BeamMP servers (BeamNG.drive multiplayer), through one server plugin.
This page is generated from the SDK's platform registry (sdk/environments.json) and the adapter's SETUP.md. The BeamMP page on the site is the short version.
| Status | Planned: not usable yet |
| Runs on | Server only |
| Languages | Lua 5.3 |
| Protection | Licence check and signed releases, planned |
| Runtime | BeamMP-Server 3.9.3 (Lua 5.3) |
How it runs
One BeamMP server plugin, scriptgo, runs the core in the plugin's own Lua 5.3 state, ticked by a 25 ms event timer. scriptgo pack --target beammp builds it with the package and its dependencies.
The adapter's code and README: sdk/adapters/beammp.
Set up
Planned: there are no setup steps for it.
Capabilities
What the adapter provides. See SDK and capabilities for what each one is.
| Capability | Support | Note |
|---|---|---|
events |
Partial | Server side only: the plugin runs no client scripts, and TriggerClientEvent answers network_unavailable. |
logging |
Supported | |
storage |
Supported | JSON files in the plugin's data/storage folder (scriptgo.json dataDir), replaced atomically. |
players |
Supported | MP.GetPlayers and the join and disconnect events. BeamMP id n is SCRIPT//GO player n + 1 (0 is the console); identifier is beammp:<account id>, beammp-guest:<name> for guests. |
permissions |
Supported | Grants in scriptgo.json, by beammp:<account id>, or by name for players logged in to BeamMP: BeamMP has no server-side roles. |
commands |
Supported | Chat commands (/name ...; the line is not broadcast) and the server console, where they run as the console. |
config |
Supported | scriptgo.json resources and convars. |
ui |
Partial | MP.SendNotification (a toast in the BeamMP client); its display is not verified, as no game client runs here. |
http |
Partial | curl started in the background through os.execute and polled each tick, so a request never blocks the plugin; needs curl on the server's PATH. BeamMP's own Http.CreateConnection has no POST and drops the response. |
licensing |
Partial | Over the same curl path, to the scriptgo_api convar. |
perks |
Not available | Not switched on: the core implements perks over http and the player identifier, which this adapter has, but it has not been wired or run here. |
presence |
Partial | With curl: /link works, and presence reports only in address mode (scriptgo_presence_addr, default off; the owner's decision on it is pending): the normalised address is sent and SCRIPT//GO fingerprints it at once, from MP.GetPlayerIdentifiers(pid).ip; BeamMP's Lua has no HMAC. Not run on a BeamMP server with a connected player. |
Protection
Licence check and signed releases, once the adapter has passed a run on a real server. The server plugin is plain Lua, so the operator can read what it loads: no code-secrecy claim.
See Protect your work for what protection does and does not do.
Assets
Maps, models, textures, sounds and other files players download. See Selling assets.
| Support | Supported |
environment_asset |
BeamNG mod .zip files, put in Resources/Client/: every player downloads them at join |
| Pack | scriptgo pack --target beammp |
Packed (Resources/Client); not run, BeamMP-Server needs an AuthKey.
Asset escrow: Open: would need native code in the BeamMP launcher or a BeamNG mod.
The platform's own rules
Neither BeamNG nor BeamMP publishes a rule on selling mods.
This is the platform's rule, shown as information: whoever runs a script there answers for following it. It does not change what can be sold on SCRIPT//GO. See the rules.
Limits
- Not verified on a real server yet: BeamMP-Server (3.9.3) refuses to start without an AuthKey from keymaster.beammp.com, which only the server owner can get. Until then the adapter has passed unit tests on a mock of BeamMP's Lua API only.
- Server side only: BeamNG.drive client mods are out of scope, and no game client is run.
- HTTP, and so online license checks, needs curl on the server's PATH.
Real runs
No real run yet. Waiting for a server key: BeamMP-Server does not start without an AuthKey from the BeamMP Keymaster, which the server owner requests.

