How to Add Custom Maps and Vehicle Mods to a BeamMP Server
Vehicle mods and map mods both go in the same place: zip files in your server's Resources/Client folder. Players download them automatically when they join. A custom map also needs one extra step, which is pointing the Map setting at the right /levels/.../info.json path.
Below is the full process, the stock map paths, how to find a custom map's path when it does not load, and what to watch for on download size and game version. Details were checked against the official BeamMP docs and the v3.9.3 server on 2026-11-01.
- Copy mod .zip files (vehicles or maps) into
Resources/Client. Only .zip files belong there; other files cause an error at startup. - For a custom map, open the zip without extracting it, find the single folder inside
levels, and setMap = "/levels/FOLDERNAME/info.json". - Stock maps need no files, just the right path in
Map. - Restart after changing the map. The console command
reloadmodsreloads the Client folder if you only added mods. - Players download everything from your server when they join, so a long mod list means a slow first join.
On this page
Where mods and maps go: Resources/Client
The server creates a Resources folder on first run. Inside it, Client holds everything players must have, and Server holds server-side Lua plugins (covered in our Lua plugins and moderation guide). Both vehicle mods and map mods are just zip files dropped into Client.
- Open the Client folder
Using SFTP or your host's file manager, go to
Resources/Client. For SFTP, use the connection details shown in your control panel. - Upload the zip files
Upload each mod as a .zip without extracting it. Keep it exactly as downloaded from the mod page.
- Restart or reload
Restart the server, or run
reloadmodsin the server console to reload everything in the Client folder. - Join and test
Join from a game client and confirm the content downloads and loads.
How to change the map on a BeamMP server
The Map setting in ServerConfig.toml takes a level path. For the stock maps no installation is needed, you only change the path. These are the stock paths listed in the BeamMP docs:
/levels/gridmap_v2/info.json (server default)
/levels/johnson_valley/info.json
/levels/automation_test_track/info.json
/levels/east_coast_usa/info.json
/levels/west_coast_usa/info.json
/levels/hirochi_raceway/info.json
/levels/italy/info.json
/levels/jungle_rock_island/info.json
/levels/industrial/info.json
/levels/small_island/info.json
/levels/smallgrid/info.json
/levels/utah/info.json
/levels/driver_training/info.json
/levels/derby/info.jsonBeamNG.drive adds and renames content over time, so if a stock path from this list stops loading after a game update, compare it with the current BeamMP docs. The value must be a stock map or a map installed as a server mod, and the backend caps the setting at 100 characters.
How to install a custom map and find its path
A custom map is a zip in Resources/Client plus the right Map value. The path is built from the folder name inside the zip.
- Upload the map zip
Place the map's .zip in
Resources/Client. - Find the level folder
Open the zip without extracting it. Inside there is a
levelsfolder containing a single folder. Note its name exactly, including case and underscores. - Set the Map value
Edit ServerConfig.toml and set Map to the path with that folder name, ending in
/info.json.Map = "/levels/myawesomedriftmap2021/info.json" - Restart the server
Start it again and watch the console for errors before joining.
If the map does not load, the folder name is usually the problem. The BeamMP docs give a reliable fallback: install the map in singleplayer BeamNG.drive, open it, open the in-game console (the ~ key by default) and run:
print(getMissionFilename())That prints the path the game itself uses for the level, which is what the server's Map setting needs.
Adding vehicle mods
Vehicle mods follow the same rule: .zip into Resources/Client, restart or reloadmods, done. There is no list to maintain in ServerConfig.toml. Whatever zips are in the folder get sent to joining players.
- Start small. Add mods in batches. If players report a "done" or "start" message when joining after you add mods, one of them is broken or incompatible. Remove mods one at a time until it joins cleanly.
- Limit cars to limit load.
MaxCarsin ServerConfig.toml caps vehicles per player, which matters more once heavy modded vehicles are available. - Paid or private mods: the console command
protectmod FILENAME.zip truemarks a mod as protected. Players then have to obtain that file themselves and place it in their BeamMP launcher's resources folder, since the server will not hand it out. Usefalseto undo it.
Download size, join times and BeamNG version compatibility
The BeamMP docs do not set a file size limit for mods, but the practical limit is how long a new player will wait. The server you join provides the mods, which are downloaded and activated automatically on connect, and the launcher caches them afterwards. That means:
- The first join is the slow one. Because the launcher caches downloaded mods, repeat joins are faster.
- A server with a lot of large mods works against itself, because many players will give up during the download. Keep the set to what the server's identity actually needs.
- The files come from your server, so its upload bandwidth matters when several players join at once. BeamMP's own minimum guidance for a server is 5 to 10 Mb/s of upload.
Version compatibility is the other half. BeamMP states it does not work with outdated versions of BeamNG.drive, and mods are built against a particular game version. A mod that worked last season can break after a BeamNG update. Before adding a mod, check its page for the BeamNG.drive version it targets, test it in singleplayer on the version your players run, and check the BeamMP announcements after each BeamNG update to see whether the multiplayer mod and the server have been updated for it.
If your home upload speed is the bottleneck for joins, that is one common reason communities move to BeamMP server hosting.
Troubleshooting maps and mods
| Symptom | Likely cause | Fix |
|---|---|---|
| Server errors at startup after adding files | A non-zip file in Resources/Client | Remove everything that is not a .zip |
| Players load into the wrong map or fail to load | Wrong folder name in the Map path | Re-read the folder under levels in the zip, or use getMissionFilename() in singleplayer |
| "done" or "start" message on join | A broken or incompatible mod | Remove mods one at a time to isolate it |
| Changes not showing up | Server not restarted, or the zip is in the wrong folder | Restart, or run reloadmods; confirm the zip is directly in Resources/Client |
| Map works for you but not others | A client-side mod conflict or an outdated game version | Have the player clear cached mods and update BeamNG.drive and BeamMP |
Frequently asked questions
Where do I put BeamMP map and mod files?
In the Resources/Client folder next to your server, as .zip files. Both vehicle mods and map mods go there, and players download them automatically when they join.
How do I find the right Map path for a custom map?
Open the map's zip, look inside the levels folder for the single folder it contains, and use /levels/FOLDERNAME/info.json. If it still does not load, run print(getMissionFilename()) in the BeamNG.drive console with the map open in singleplayer.
Is there a limit on mod size?
The BeamMP docs do not state a size limit. The practical limit is how long players will wait to download the files from your server on their first join, so keep the mod list focused.
Do I need to restart the server after adding a mod?
Restarting is the safe choice. The server console also has a reloadmods command that reloads everything in Resources/Client without a full restart, but changing the Map setting needs a restart.