Setting up an MTA:SA server is a thirty-minute job if you know the right order — and a multi-day trial-and-error marathon if you do not. Multi Theft Auto: San Andreas is the modification that turned GTA: San Andreas into a multiplayer game, and it still has an active community years later. You do not need a huge infrastructure to launch your own roleplay, drift, deathmatch or freeroam server, but you absolutely need the right hosting environment, the correct port configuration and a sane approach to resource management. This guide walks through an MTA:SA server installation from scratch, on both Linux and Windows.
An MTA server is a CPU-bound application once player counts rise. The main server loop runs largely on a single core, which makes per-core performance far more important than raw core count. The checklist is short:
The MTA:SA server runs on both platforms, but if you are building something serious, Linux is the better choice. The reasons are concrete: the server process consumes fewer resources, it is more stable over long uptimes, and automatic restart and backup workflows are far easier to set up. Windows, on the other hand, is more approachable for someone opening their first server, thanks to the graphical interface.
A practical compromise: develop and test locally on Windows, then run the production server on Linux. The configuration files behave identically on both sides, so migrating is not a problem.
The MTA:SA server software is free and comes from the official source. On Linux you need three pieces: the server binaries, the default configuration package and the official resources package. On Windows a single installer covers everything.
The typical Linux flow looks like this:
/home/mta/.mods/deathmatch/. Configuration files and resources live here.mods/deathmatch/resources/.mtaserver.conf and acl.xml from the default configuration package into mods/deathmatch/.Do not forget to make the binary executable: chmod +x mta-server64.
The heart of the server is mods/deathmatch/mtaserver.conf. On a fresh installation these are the lines you need to touch:
servername — the name shown in the server browser. Keep it short, memorable, and avoid walls of capital letters.serverip — the external IP of the machine. On a single-IP VDS you can usually leave it empty.serverport — the game port, 22003 (UDP) by default.maxplayers — set what your hardware can genuinely handle. An empty 200-slot server looks far worse than a full 60-slot one.Players download scripts and model files when they connect. Setting httpserver to 1 makes the server's own internal HTTP service handle those downloads (TCP 22005 by default). As your player count grows and you add custom models and sounds, moving those downloads to an external web server via httpdownloadurl both shortens join times and takes load off the game process.
After the first start, create an account from the console with addaccount username password, then add the object user.username to the Admin group inside acl.xml. Skip this step and your server will run perfectly while refusing every single administration command you try.
In MTA almost everything is a resource: the spawn system, vehicle panels, maps, the admin panel, chat — all of them are Lua-based packages living in their own folders. The official resources package gives you a working baseline; you build your own systems on top of it.
Three console commands you will use constantly:
refresh — makes the server aware of changes in the resources folder.start — starts a resource.restart — reloads a running resource; this is the command you will type most often while developing scripts.Resources that should start automatically go into the resource lines of mtaserver.conf. Make sure the admin resource is on that list.
So the server does not die when you close your SSH session, run the process under a session manager. The simplest option is screen or tmux:
screen -S mta ./mta-server64
Detach with Ctrl+A followed by D, reattach with screen -r mta. For a permanent setup the better approach is defining the server as a systemd service, so MTA comes back up automatically after a reboot and restarts itself after an unexpected crash.
Three ports matter for an MTA:SA server to work and to be visible:
While opening these ports, keep everything else closed. On a brand-new server, the SSH port, root login and the default password policy are all day-one items.
Once ase is set to 1 and 22126/UDP is reachable, your server starts appearing in the public list. If it does not show up, check in this order: is the server actually running, is serverip correct, is the port genuinely reachable from outside, and is there a filter on the provider side.
The bottleneck on an MTA server is usually CPU rather than RAM — especially on roleplay servers with heavy Lua scripts, large vehicle counts and lots of timers. A modern high-clock processor beats a slow many-core one every time. Nubitro game servers run on AMD Ryzen 9 9950X processors with DDR5 memory and NVMe M2 storage in an Istanbul datacenter, which is exactly the profile MTA wants. On the storage side, NVMe noticeably shortens startup and resource loading times.
mods/deathmatch/ and your database, a single bad command can erase months of work.The server software itself is free and downloaded from the official source. What you pay for is the hosting environment that keeps it online around the clock. You can review current options in the MTA server category.
For testing, yes. For production, no. Home connections have limited upload bandwidth, usually a dynamic IP, the server dies when you shut the machine down, and there is no DDoS protection at all.
A small freeroam or deathmatch server runs comfortably on modest memory. What really decides the requirement is the weight of your resources and the number of concurrent players. Roleplay servers need noticeably more because of databases and large custom script bases.
Yes. It is a reasonable choice if you prefer managing things through a graphical interface. Just account for Windows itself consuming somewhat more memory on identical hardware.
Almost always one of two reasons: ase is disabled, or 22126/UDP is blocked in the firewall. The third possibility is a wrong address in the serverip field.
The logic is identical — a server with root access, opened ports, resource management, running in the background — but the file layout and ports differ. You can find suitable configurations for each game in the game servers category.
Installing an MTA:SA server comes down to seven steps: get a server with root access, pick your platform, download the binaries and resources, configure mtaserver.conf, create your administrator account, run the process persistently in the background, and open 22003/UDP, 22005/TCP and 22126/UDP. After that the real work starts: shaping your resources, growing a community and keeping the server alive.
If you want to run your server on an Istanbul location with low latency and a DDoS-protected network, take a look at our MTA server packages, or get in touch for a configuration matched to your needs. Our support team is available 24/7 for anything you run into after installation.