Multi Theft Auto San Andreas is a server component that allows players to play Grand Theft Auto: San Andreas in multiplayer mode. The game by itself does not allow multiplayer, but with the server/client components, you can play multiplayer. The dedicated server component can be run as a Windows Service using FireDaemon Pro, which allows you to start the dedicated server automatically at boot prior to login, start multiple instances of the dedicated server and more. This HOWTO will show you how to set it up. You can also use FireDaemon Fusion to manage FireDaemon and other Windows services via a web browser.


Multi Theft Auto San Andreas Dedicated Server Setup Under FireDaemon Pro

Multi Theft Auto San Andreas is not owned nor developed by Rockstar, developers of Grand Theft Auto San Andreas. It’s a completely separate program. As such, there’s only one way you can play/host a server for it. That is by downloading the server or client component.


First download your desired server version from the Multi Theft Auto San Andreas website. See the server's wiki for further information about configuration of your server.


Extract the files someplace on your hard drive. For the rest of this HOWTO we will be using “C:\MTA SA” as the installation directory. Multi Theft Auto San Andreas uses one configuration file to store its settings: “server.cfg”. Go ahead and edit the configuration file to your preferences.


Download and install FireDaemon Pro into the directory of your choice, typically C:\Program Files\FireDaemon.


Next start the FireDaemon GUI from the desktop shortcut. Click on the "Create a new service definition" button in the toolbar (or type Ctrl+N) and enter the information into the fields as you see below. Adjust the paths to suit your installation. Note that no parameters are required.


In the Executable section, enter the path to your “MTA Server.exe” (e.g. “C:\MTA SA\MTA Server.exe”)

In the Working section, enter the path where your server.cfg file is located. This path should be the same folder as the Server (e.g. C:\MTA SA\).


Now click on the Settings tab. If you DON'T want to see your dedicated server running, uncheck the Interact with Desktop check box & select “Hidden” from the “Show Window” dropdown. You can optionally run Multi Theft Auto San Andreas as the user you installed it as. In the Logon Account field type your username (e.g. Administrator) and then enter the user's password twice in the Password and Confirm fields. You can change the Process Priority to allocate more CPU time to the dedicated server or specify which CPU or core the dedicated server will run on (in the case of multi-processor, hyperthreaded or multi-core CPUs).


Now click on the Lifecycle tab. Uncheck Graceful Shutdown as Multi Theft Auto San Andreas doesn't respond to it.


Now click OK to finish setup and start your dedicated server!


Example Configuration File

Below is an example mtaserver.conf file:

<config>

<!-- This parameter specifies the name of the server, visible in the ingame server browser or in ASE. It's a required parameter. -->
<servername>Default MTA Server</servername>

<!-- This parameter specifies the IP address on which the server. It's useful for servers which have multiple IP addresses attached to them. If left blank, it will default to server's standard local IP. -->
<serverip></serverip>

<!-- This parameter specifies the Maximum Transmission Unit or maximum packet size that the server will use. This will depend on the nature of your clients, as well as the network medium your server is connected to. -->
<mtusize>1264</mtusize>

<!-- This parameter specifies the UDP port on which the server will be accepting incoming player connections; default value: 22003. It's a required parameter. -->
<serverport>22004</serverport>

<!-- This parameter specifies the number of maximum player slots available on the server; default value: 32. It's a required parameter. -->
<maxplayers>32</maxplayers>

<!-- This parameter specifies whether the builtin http server is going to be used. Values: 0 - disabled , 1 - enabled ; default value: 1. Optional parameter. -->
<httpserver>1</httpserver>

<!-- This parameter specifies the TCP port on which the server will be accepting incoming http connections. It can be set to the same value as <serverport>. It's a required parameter if <httpserver> is set to 1. -->
<httpport>22005</httpport>

<!-- This parameter specifies whether connecting players will be able to download needed resources for them from an external site rather than from the server. 0 - disabled , 1 - enabled; default value: 0. -->
<httpdownload>1</httpdownload>

<!-- If set, this parameter specifies the external URL from which clients will be able to download needed resources ingame. Required parameter if <httpdownload> is set to 1. -->
<httpdownloadurl></httpdownloadurl>

<!-- This parameter can be used to make the server report to ASE master servers, allowing it to be visible in the ingame server browser. An additional UDP port needs to be available for this to work (value from <serverport> + 123 , so on a default <serverport> value 22003 the right port will be 22126 ). Available values: 0 - disabled , 1 - enabled. Optional parameter, defaults to 0. -->
<ase>1</ase>

<!-- If set, players will have to provide a password specified below, before they can connect to the server. If left blank, server doesn't require a password from them. -->
<password></password>

<!-- Specifies a location and name of the main server log file. If left blank, server won't be saving this file. -->
<logfile>logs/server.log</logfile>

<!-- This parameter specifies a location and name of the Access Control List settings file. If left blank, server will use acl.xml file. -->
<acl>acl.xml</acl>

<!-- Specifies a location and name of the debugscript log file. If left blank, server won't be saving this file. -->
<scriptdebuglogfile>logs/scripts.log</scriptdebuglogfile>

<!-- Specifies a level of the debugscript log file. Available values: 0, 1, 2, 3. When not set, defaults to 0. -->
<scriptdebugloglevel>0</scriptdebugloglevel>

<!-- Specifies a level of the html debug. Available values: 0, 1, 2, 3. When not set, defaults to 0. -->
<htmldebuglevel>0</htmldebuglevel>

<!-- Specifies the module(s) which are loaded with the server. To load several modules, add more <module> parameter(s). Optional parameter. -->
<!-- <module>sample_win32.dll</module> -->
<!-- <module>sample_linux.so</module> -->

<!-- Specifies resources that are loaded when the server starts and/or which are protected from being stopped. To specify several resources, add more <resource> parameter(s). -->
<resource src="admin" startup="1" protected="0"/>
<resource src="helpmanager" startup="1" protected="0"/>
<resource src="mapcycler" startup="1" protected="0"/>
<resource src="mapmanager" startup="1" protected="0"/>
<resource src="resourcebrowser" startup="1" protected="1" default="true"/>
<resource src="resourcemanager" startup="1" protected="1"/>
<resource src="scoreboard" startup="1" protected="0"/>
<resource src="spawnmanager" startup="1" protected="0"/>
<resource src="votemanager" startup="1" protected="0"/>
<resource src="webadmin" startup="1" protected="0"/>
</config>