BeamMP ServerConfig.toml and AuthKey Setup Explained
A BeamMP server needs two things before it will start: an AuthKey from keymaster.beammp.com, and that key pasted into the AuthKey field of ServerConfig.toml. Everything else in the file has a working default, but one default catches almost everyone: Private is true, so a new server stays out of the public server list until you change it.
This guide covers the key, then every setting the current server writes to the file, with defaults read from the BeamMP-Server v3.9.3 source and the official BeamMP docs (checked 2026-11-01). Server updates can add or rename settings, so compare against the file your own server generates.
- Log in to Keymaster with Discord, open Keys, click the green + button, name the key, click Create, then copy it. Treat it like a password.
- Start the server once so it generates ServerConfig.toml, then paste the key into
AuthKeyunder[General]and start it again. Private = trueis the default and hides the server from the list. Set it tofalsefor a public server.- Defaults in v3.9.3: Port 30814 (TCP and UDP), MaxPlayers 8, MaxCars 1, Map
/levels/gridmap_v2/info.json. - The server reads ServerConfig.toml only at startup, so stop it, edit the file, then start it again.
On this page
How to get a BeamMP AuthKey from Keymaster
The AuthKey is what identifies your server to the BeamMP backend. You create it on Keymaster, which uses your Discord login.
- Log in to Keymaster
Open keymaster.beammp.com and sign in with Discord.
- Open Keys and add one
Click Keys in the left sidebar, then the green + button in the top right.
- Name the key
The name is only a label so you can tell your keys apart. It is not the server name players see in the list.
- Create and copy it
Click Create, then use the clipboard icon to the right of the key to copy it.
A valid key is 36 characters long (the pattern is groups of letters and numbers separated by dashes). If yours is a different length the server logs a warning that it is probably not valid, which usually means the key was copied with a missing or extra character.
Where ServerConfig.toml comes from
You do not write the file from scratch. Run the server once and it creates ServerConfig.toml (plus Server.log and a Resources folder) in its working directory. That is the directory the process was started from, not necessarily the folder holding the executable, so on Linux start the server from the folder you want it to live in.
On the first run without a key the console tells you to get an AuthKey, enter it in the config file and restart. That is expected. Open ServerConfig.toml over SFTP (or in your host's file or config editor, if it has one), set the key, and start the server again.
The server reads the file at startup and writes it back with the values it loaded, so any hand-written comments are not preserved. Edit while the server is stopped and start it again to apply the change. The old Server.cfg format is obsolete and not compatible; if one is still present the server warns about it.
ServerConfig.toml settings explained
Everything below sits under the [General] header unless noted. Defaults are the values in the v3.9.3 server source.
| Setting | What it does | Default |
|---|---|---|
AuthKey | Your Keymaster key. The server will not start without it. | empty |
Name | Server name shown in the list. Supports formatting codes. The backend limit is 250 characters. | BeamMP Server |
Description | Text shown in the list for public servers. Supports formatting codes. Limit 1000 characters. | BeamMP Default Description |
Tags | Comma-separated tags to help players find you, such as Freeroam,Modded,Racing. Not case sensitive. Limit 100 characters. | Freeroam |
Port | Port the server listens on. Any value from 1024 to 65535 that nothing else on the machine uses. | 30814 |
IP | Local address to bind to. Leave it alone unless you know why you are changing it. | :: |
MaxPlayers | Player slots. Does not limit vehicles. | 8 |
MaxCars | Vehicles per player. Extra spawns are deleted immediately. | 1 |
Map | Level path, for example /levels/gridmap_v2/info.json. Must be a stock map or a map installed as a server mod. Limit 100 characters. | /levels/gridmap_v2/info.json |
Private | true keeps the server out of the public list. Players who know the IP and port can still join. | true |
AllowGuests | Whether players who are not logged in to a BeamMP account may join. | true |
InformationPacket | Lets clients that are not connected fetch your public server info directly from the server. | true |
LogChat | Writes chat messages to the log. The sample in the BeamMP setup guide shows false, but the v3.9.3 source default is true. | true |
Debug | Verbose logging. Greatly increases log size, so leave it off unless you are chasing a problem. | false |
ResourceFolder | Where the Resources folder lives, so you can keep it away from the server files. | Resources |
ImScaredOfUpdates (under [Misc]) | Controls the periodic update reminder in the console. An update notice always appears at startup. | true |
UpdateReminderTime (under [Misc]) | How often the update reminder repeats, for example 30s, 10min, 2h or 1d. | 30s |
The generated file may also contain SendErrors and SendErrorsShowMessage under [Misc], which control whether the server sends crash and error information back to the BeamMP developers. Other section names, such as one named after a plugin, are reserved for server plugins.
A working public server config
This is a typical public freeroam setup. The AuthKey is a placeholder.
[General]
AuthKey = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
Name = "My BeamMP Server"
Description = "Freeroam, friendly drivers, no ramming."
Tags = "Freeroam,Modded"
Port = 30814
MaxPlayers = 16
MaxCars = 2
Map = "/levels/gridmap_v2/info.json"
Private = false
AllowGuests = true
Debug = falseRaise MaxPlayers and MaxCars gradually. Total vehicle count is what players and the server actually feel, so 16 players with 2 cars each is a much heavier session than 16 players with 1 car each.
Ports, firewalls and why the server is not in the list
BeamMP needs both TCP and UDP on the configured port (30814 by default). If you run more than one server on a machine, give each its own port, for example 30814 and 30815. At home that means forwarding the port on your router, and CGNAT or a 4G/5G-only connection can make forwarding impossible. On a hosted machine with its own public address you skip the router part and just use the IP and port your host gives you, which is the main reason many communities use BeamMP server hosting instead.
If the server starts but nobody can find or join it, work through these in order:
- Not in the list at all: check
Private. It defaults to true. - Startup error about the AuthKey: the key is empty or malformed. Re-copy it from Keymaster.
- Error 10048 or 10022: another program or BeamMP server is already using that port. Pick a different
Port. - Errors 10060, 10061 or 10065 for joining players: the port is not reachable from the internet. Check forwarding and firewall rules for both TCP and UDP.
- You can see the server but cannot join from the same PC: use Direct Connect to 127.0.0.1 and your port, since many home routers do not support NAT loopback.
Also scan the console and Server.log for [ERROR] and [WARN] lines after every start; the official docs recommend this as the first check.
Overriding settings with environment variables
Since server v3.2.0 each setting can be overridden by an environment variable with a BEAMMP_ prefix, which is useful for containers. The documented names are BEAMMP_AUTH_KEY, BEAMMP_NAME, BEAMMP_DESCRIPTION, BEAMMP_TAGS, BEAMMP_PORT, BEAMMP_MAX_PLAYERS, BEAMMP_MAX_CARS, BEAMMP_MAP, BEAMMP_PRIVATE, BEAMMP_DEBUG, BEAMMP_LOG_CHAT and BEAMMP_RESOURCE_FOLDER. Booleans are on for true or 1 and off for anything else.
If you do not use them, ignore this section. If you do, remember that an environment variable wins over the file, which is a common reason an edit to ServerConfig.toml seems to be ignored.
Frequently asked questions
Why is my BeamMP server not showing in the server list?
The most common cause is Private = true, which is the default. Set Private = false, make sure the AuthKey is valid, and restart. If it still does not appear, check the console for [ERROR] or [WARN] lines and confirm the port is reachable over TCP and UDP.
Can I use one AuthKey for two servers?
A key works on one server at a time, and each account gets a limited number of keys. Create a separate key in Keymaster for each server you run.
What port does a BeamMP server use?
30814 by default, over both TCP and UDP. You can change it in ServerConfig.toml to any free port between 1024 and 65535, and every extra server on the same machine needs its own.
What does MaxCars do?
It limits how many vehicles each player can have spawned at once. Extra vehicles are deleted instantly. MaxPlayers only limits player slots and does not affect the vehicle count.