<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.multitheftauto.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Claus</id>
	<title>Multi Theft Auto: Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.multitheftauto.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Claus"/>
	<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/wiki/Special:Contributions/Claus"/>
	<updated>2026-05-18T23:48:05Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.3</generator>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=Building_MTASA_Server_on_GNU_Linux&amp;diff=82020</id>
		<title>Building MTASA Server on GNU Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=Building_MTASA_Server_on_GNU_Linux&amp;diff=82020"/>
		<updated>2025-05-28T16:04:26Z</updated>

		<summary type="html">&lt;p&gt;Claus: /* Ubuntu 20.04 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Needs Checking|Confirm steps work.}}&lt;br /&gt;
&lt;br /&gt;
== Installing and Running MTASA server on Linux ==&lt;br /&gt;
{{Note|This article is only for developers who changed the server code. If you are looking for the precompiled server (for normal server owners). Go to: [http://linux.mtasa.com/ linux.mtasa.com] and see [[Installing and Running MTASA Server on GNU_Linux]]}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== Compiling on a 64 bit Linux ==&lt;br /&gt;
Additional steps for compiling a MTA server on 64 bit Linux:&lt;br /&gt;
===Install 32 bit libs for your 64 bit distro===&lt;br /&gt;
For 64 bit Debian, this is achieved with:&lt;br /&gt;
&lt;br /&gt;
 apt-get install ia32-libs&lt;br /&gt;
&lt;br /&gt;
===64 bit Troubleshooting===&lt;br /&gt;
* If you get a problem with such as &amp;quot;libreadline.so.5: cannot open shared object file: No such file or directory.&amp;quot;, it can be solved on 64 bit Debian Squeeze  by doing this:&lt;br /&gt;
&lt;br /&gt;
 apt-get install lib32readline5&lt;br /&gt;
&lt;br /&gt;
* If you get a problem with such as &amp;quot;libncursesw.so.5 cannot open shared object file: No such file or directory&amp;quot;, it can be solved on 64 bit Debian Squeeze by doing this:&lt;br /&gt;
&lt;br /&gt;
 apt-get install lib32ncursesw5&lt;br /&gt;
&lt;br /&gt;
* Further 64 bit solutions can be found [http://forum.mtasa.com/viewtopic.php?f=106&amp;amp;t=35328#p367282 on the forums]&lt;br /&gt;
&lt;br /&gt;
* If you are using Cent OS and you get something like /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by xmll.so) this can be resolved by doing downloading the archive [[http://archives.fedoraproject.org/pub/archive/fedora/linux/releases/9/Fedora/i386/os/Packages/libstdc++-4.3.0-8.i386.rpm here]] and unpacking it with the following command:&lt;br /&gt;
&lt;br /&gt;
 rpm2cpio libstdc++-4.3.0-8.i386.rpm | cpio -i --make-directories&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
== Preparing your system ==&lt;br /&gt;
&lt;br /&gt;
In order to build the Multi Theft Auto dedicated server, you will have to set up your system with the correct libraries and tools. How these are installed depends on your distribution.&lt;br /&gt;
&lt;br /&gt;
Our network module (net.dll or net.so) is distributed as a precompiled binary library. The file for GNU/Linux can be found inside the lastest Linux nightly from [http://nightly.mtasa.com/ here]. Use the net.so from {{Current Version|master}} if you are compiling from the trunk, or the net.so from {{Current Version|full}} if you are compiling the {{Current Version|full}} branch. Be sure the read the top of ''Server/version.h'' as it contains directions on how to compile the different build types.&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu 20.04 ===&lt;br /&gt;
&lt;br /&gt;
The following instructions are specifically for Ubuntu 20.04.&lt;br /&gt;
&lt;br /&gt;
You will need to install the required build tools, headers, and libraries. These can be installed using the following packages:&lt;br /&gt;
&lt;br /&gt;
* '''g++-10:''' package provides the GNU C++ compiler version 10. It is used to compile C++ source code into executable programs or libraries&lt;br /&gt;
* '''build-essential:''' provides tools, headers, and libraries required to build applications&lt;br /&gt;
* '''automake:''' provides tools for automatically generating Makefiles&lt;br /&gt;
* '''libtool:''' required for building shared libraries&lt;br /&gt;
* '''libreadline-gplv2-dev:''' provides the GNU readline library (version 5)&lt;br /&gt;
* '''libncurses5-dev:''' provides tools for writing to the console screen&lt;br /&gt;
* '''libncursesw5-dev:''' provides wide character support for ncurses&lt;br /&gt;
* '''default-libmysqlclient-dev:''' provides the MySQL client development files&lt;br /&gt;
* '''git:''' version control tool used to clone the code repository&lt;br /&gt;
* '''unzip:''' archive unpacking utility&lt;br /&gt;
&lt;br /&gt;
To install all required packages, run the following commands in the terminal (execute as root):&lt;br /&gt;
&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install g++-10&lt;br /&gt;
 apt-get install build-essential automake libtool&lt;br /&gt;
 apt-get install libreadline-gplv2-dev libncurses5-dev libncursesw5-dev&lt;br /&gt;
 apt-get install default-libmysqlclient-dev git unzip&lt;br /&gt;
&lt;br /&gt;
=== Gentoo Linux ===&lt;br /&gt;
You will need the necessary build tools, headers and libraries. Because Gentoo’s portage system is designed to compile any packages on your own system, the necessary build tools will have already been installed. This only leaves you to install the necessary libraries:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* '''sqlite:''' contains the SQLite library&lt;br /&gt;
* '''curl:''' contains the cURL library; to compile with SSL support, apply the net-misc/curl SSL USE flag&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
* '''git:''' contains the git client used to check out our code repository&lt;br /&gt;
To compile and install these packages through ''emerge'', use the '''emerge -v &amp;lt;package list&amp;gt;''' command. The -v option shows additional * * information and can be omitted. (If you want to use any USE flags, prepend emerge with USE=&amp;quot;use flags here&amp;quot;. You can also use the -pv option to verify that you’re using the correct flags.) Refer to the [http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=2&amp;amp;chap=1 Gentoo Handbook] or manual for more information on emerge.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 emerge -v git sqlite&lt;br /&gt;
 USE=“net-misc/curl ssl” emerge -v curl&lt;br /&gt;
&lt;br /&gt;
=== Fedora ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You will need these packages to be able to successfully compile a MTA server on Fedora: &lt;br /&gt;
* '''glibc-devel:'''&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* '''curl-devel:''' contains the cURL library&lt;br /&gt;
* '''pcre-devel:''' contains the PCRE library&lt;br /&gt;
* '''sqlite3-devel:''' contains the SQLite library&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
* '''readline-devel:''' contains the readline library&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* '''lua-devel:''' contains the Lua libraries&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
* '''git:''' contains the git client to check out the source code&lt;br /&gt;
To install these packages through yum, use the yum install &amp;lt;package list&amp;gt; command as in the following example (execute as root):&lt;br /&gt;
&lt;br /&gt;
 yum install glibc-devel readline-devel git&lt;br /&gt;
&lt;br /&gt;
== General instructions for {{Current Version|master}} ==&lt;br /&gt;
&lt;br /&gt;
'''Downloading the source.'''&lt;br /&gt;
&lt;br /&gt;
First, you need to download the source. Either clone as shown below or [https://github.com/multitheftauto/mtasa-blue/archive/master.zip download a zip snapshot]&lt;br /&gt;
&lt;br /&gt;
 git clone &amp;lt;nowiki&amp;gt;https&amp;lt;/nowiki&amp;gt;://github.com/multitheftauto/mtasa-blue.git mtasa-blue&lt;br /&gt;
 cd mtasa-blue&lt;br /&gt;
 sudo chmod -R 777 .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then compile it thus:&lt;br /&gt;
&lt;br /&gt;
 ./linux-build.sh&lt;br /&gt;
&lt;br /&gt;
Then copy the configuration files, network module and resources into '''Bin/server''' by running this command:&lt;br /&gt;
&lt;br /&gt;
 ./linux-install-data.sh&lt;br /&gt;
&lt;br /&gt;
And the resources and stuff should be downloaded and stuff. As well as the net_d.dll file.&lt;br /&gt;
&lt;br /&gt;
=== '''Troubleshooting''' ===&lt;br /&gt;
&lt;br /&gt;
If you’re getting any unexpected errors while compiling, please check our [https://github.com/multitheftauto/mtasa-blue/issues GitHub issues] or our [https://discord.com/invite/GNN6PRtTnu development-focused Discord server].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If you get a message saying &amp;quot;Killed&amp;quot; when running premake5 gmake (linux-build.sh), that usually means you ran out of memory.&amp;lt;br /&amp;gt;&lt;br /&gt;
You can confirm this by searching for kill logs by running &amp;lt;code&amp;gt;sudo dmesg | grep -i kill&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
A possible solution for this might be to [https://opensource.com/article/18/9/swap-space-linux-systems turn on swap] or upgrade your system memory temporarily.&amp;lt;br /&amp;gt;&lt;br /&gt;
1 GB is likely '''not''' enough of memory to complete the build.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[ru:Building MTASA Server on GNU Linux]]&lt;br /&gt;
[[Category: Development]]&lt;/div&gt;</summary>
		<author><name>Claus</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=Building_MTASA_Server_on_GNU_Linux&amp;diff=82019</id>
		<title>Building MTASA Server on GNU Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=Building_MTASA_Server_on_GNU_Linux&amp;diff=82019"/>
		<updated>2025-05-28T15:55:13Z</updated>

		<summary type="html">&lt;p&gt;Claus: /* General instructions for {{Current Version|master}} */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Needs Checking|Confirm steps work.}}&lt;br /&gt;
&lt;br /&gt;
== Installing and Running MTASA server on Linux ==&lt;br /&gt;
{{Note|This article is only for developers who changed the server code. If you are looking for the precompiled server (for normal server owners). Go to: [http://linux.mtasa.com/ linux.mtasa.com] and see [[Installing and Running MTASA Server on GNU_Linux]]}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== Compiling on a 64 bit Linux ==&lt;br /&gt;
Additional steps for compiling a MTA server on 64 bit Linux:&lt;br /&gt;
===Install 32 bit libs for your 64 bit distro===&lt;br /&gt;
For 64 bit Debian, this is achieved with:&lt;br /&gt;
&lt;br /&gt;
 apt-get install ia32-libs&lt;br /&gt;
&lt;br /&gt;
===64 bit Troubleshooting===&lt;br /&gt;
* If you get a problem with such as &amp;quot;libreadline.so.5: cannot open shared object file: No such file or directory.&amp;quot;, it can be solved on 64 bit Debian Squeeze  by doing this:&lt;br /&gt;
&lt;br /&gt;
 apt-get install lib32readline5&lt;br /&gt;
&lt;br /&gt;
* If you get a problem with such as &amp;quot;libncursesw.so.5 cannot open shared object file: No such file or directory&amp;quot;, it can be solved on 64 bit Debian Squeeze by doing this:&lt;br /&gt;
&lt;br /&gt;
 apt-get install lib32ncursesw5&lt;br /&gt;
&lt;br /&gt;
* Further 64 bit solutions can be found [http://forum.mtasa.com/viewtopic.php?f=106&amp;amp;t=35328#p367282 on the forums]&lt;br /&gt;
&lt;br /&gt;
* If you are using Cent OS and you get something like /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by xmll.so) this can be resolved by doing downloading the archive [[http://archives.fedoraproject.org/pub/archive/fedora/linux/releases/9/Fedora/i386/os/Packages/libstdc++-4.3.0-8.i386.rpm here]] and unpacking it with the following command:&lt;br /&gt;
&lt;br /&gt;
 rpm2cpio libstdc++-4.3.0-8.i386.rpm | cpio -i --make-directories&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
== Preparing your system ==&lt;br /&gt;
&lt;br /&gt;
In order to build the Multi Theft Auto dedicated server, you will have to set up your system with the correct libraries and tools. How these are installed depends on your distribution.&lt;br /&gt;
&lt;br /&gt;
Our network module (net.dll or net.so) is distributed as a precompiled binary library. The file for GNU/Linux can be found inside the lastest Linux nightly from [http://nightly.mtasa.com/ here]. Use the net.so from {{Current Version|master}} if you are compiling from the trunk, or the net.so from {{Current Version|full}} if you are compiling the {{Current Version|full}} branch. Be sure the read the top of ''Server/version.h'' as it contains directions on how to compile the different build types.&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu 20.04 ===&lt;br /&gt;
&lt;br /&gt;
The following instructions are specifically for Ubuntu 20.04.&lt;br /&gt;
&lt;br /&gt;
You will need to install the required build tools, headers, and libraries. These can be installed using the following packages:&lt;br /&gt;
&lt;br /&gt;
* '''build-essential:''' provides tools, headers, and libraries required to build applications&lt;br /&gt;
* '''automake:''' provides tools for automatically generating Makefiles&lt;br /&gt;
* '''libtool:''' required for building shared libraries&lt;br /&gt;
* '''libreadline-gplv2-dev:''' provides the GNU readline library (version 5)&lt;br /&gt;
* '''libncurses5-dev:''' provides tools for writing to the console screen&lt;br /&gt;
* '''libncursesw5-dev:''' provides wide character support for ncurses&lt;br /&gt;
* '''default-libmysqlclient-dev:''' provides the MySQL client development files&lt;br /&gt;
* '''git:''' version control tool used to clone the code repository&lt;br /&gt;
* '''unzip:''' archive unpacking utility&lt;br /&gt;
&lt;br /&gt;
To install all required packages, run the following commands in the terminal (execute as root):&lt;br /&gt;
&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install build-essential automake libtool&lt;br /&gt;
 apt-get install libreadline-gplv2-dev libncurses5-dev libncursesw5-dev&lt;br /&gt;
 apt-get install default-libmysqlclient-dev git unzip&lt;br /&gt;
&lt;br /&gt;
=== Gentoo Linux ===&lt;br /&gt;
You will need the necessary build tools, headers and libraries. Because Gentoo’s portage system is designed to compile any packages on your own system, the necessary build tools will have already been installed. This only leaves you to install the necessary libraries:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* '''sqlite:''' contains the SQLite library&lt;br /&gt;
* '''curl:''' contains the cURL library; to compile with SSL support, apply the net-misc/curl SSL USE flag&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
* '''git:''' contains the git client used to check out our code repository&lt;br /&gt;
To compile and install these packages through ''emerge'', use the '''emerge -v &amp;lt;package list&amp;gt;''' command. The -v option shows additional * * information and can be omitted. (If you want to use any USE flags, prepend emerge with USE=&amp;quot;use flags here&amp;quot;. You can also use the -pv option to verify that you’re using the correct flags.) Refer to the [http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=2&amp;amp;chap=1 Gentoo Handbook] or manual for more information on emerge.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 emerge -v git sqlite&lt;br /&gt;
 USE=“net-misc/curl ssl” emerge -v curl&lt;br /&gt;
&lt;br /&gt;
=== Fedora ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You will need these packages to be able to successfully compile a MTA server on Fedora: &lt;br /&gt;
* '''glibc-devel:'''&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* '''curl-devel:''' contains the cURL library&lt;br /&gt;
* '''pcre-devel:''' contains the PCRE library&lt;br /&gt;
* '''sqlite3-devel:''' contains the SQLite library&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
* '''readline-devel:''' contains the readline library&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* '''lua-devel:''' contains the Lua libraries&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
* '''git:''' contains the git client to check out the source code&lt;br /&gt;
To install these packages through yum, use the yum install &amp;lt;package list&amp;gt; command as in the following example (execute as root):&lt;br /&gt;
&lt;br /&gt;
 yum install glibc-devel readline-devel git&lt;br /&gt;
&lt;br /&gt;
== General instructions for {{Current Version|master}} ==&lt;br /&gt;
&lt;br /&gt;
'''Downloading the source.'''&lt;br /&gt;
&lt;br /&gt;
First, you need to download the source. Either clone as shown below or [https://github.com/multitheftauto/mtasa-blue/archive/master.zip download a zip snapshot]&lt;br /&gt;
&lt;br /&gt;
 git clone &amp;lt;nowiki&amp;gt;https&amp;lt;/nowiki&amp;gt;://github.com/multitheftauto/mtasa-blue.git mtasa-blue&lt;br /&gt;
 cd mtasa-blue&lt;br /&gt;
 sudo chmod -R 777 .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then compile it thus:&lt;br /&gt;
&lt;br /&gt;
 ./linux-build.sh&lt;br /&gt;
&lt;br /&gt;
Then copy the configuration files, network module and resources into '''Bin/server''' by running this command:&lt;br /&gt;
&lt;br /&gt;
 ./linux-install-data.sh&lt;br /&gt;
&lt;br /&gt;
And the resources and stuff should be downloaded and stuff. As well as the net_d.dll file.&lt;br /&gt;
&lt;br /&gt;
=== '''Troubleshooting''' ===&lt;br /&gt;
&lt;br /&gt;
If you’re getting any unexpected errors while compiling, please check our [https://github.com/multitheftauto/mtasa-blue/issues GitHub issues] or our [https://discord.com/invite/GNN6PRtTnu development-focused Discord server].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If you get a message saying &amp;quot;Killed&amp;quot; when running premake5 gmake (linux-build.sh), that usually means you ran out of memory.&amp;lt;br /&amp;gt;&lt;br /&gt;
You can confirm this by searching for kill logs by running &amp;lt;code&amp;gt;sudo dmesg | grep -i kill&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
A possible solution for this might be to [https://opensource.com/article/18/9/swap-space-linux-systems turn on swap] or upgrade your system memory temporarily.&amp;lt;br /&amp;gt;&lt;br /&gt;
1 GB is likely '''not''' enough of memory to complete the build.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[ru:Building MTASA Server on GNU Linux]]&lt;br /&gt;
[[Category: Development]]&lt;/div&gt;</summary>
		<author><name>Claus</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=FormatNumber&amp;diff=81946</id>
		<title>FormatNumber</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=FormatNumber&amp;diff=81946"/>
		<updated>2025-04-18T13:47:47Z</updated>

		<summary type="html">&lt;p&gt;Claus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Useful Function}} __NOTOC__&lt;br /&gt;
This function formats large numbers by adding commas to it. For example, 100000 becomes 100 000&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;string formatNumber( int/string number, [ string sep = &amp;quot; &amp;quot; ] )&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Required Arguments===&lt;br /&gt;
* '''number''': The number to be converted.&lt;br /&gt;
&lt;br /&gt;
===Optional Arguments===&lt;br /&gt;
* '''sep''': A string of the character you want to split&lt;br /&gt;
&lt;br /&gt;
===Returns===&lt;br /&gt;
Returns a string containing the converted number.&lt;br /&gt;
&lt;br /&gt;
==Code==&lt;br /&gt;
&amp;lt;section name=&amp;quot;Example 1: Shared&amp;quot; class=&amp;quot;both&amp;quot; show=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function formatNumber( number, sep )&lt;br /&gt;
    local debugInfo = debug.getinfo( 2, &amp;quot;Sl&amp;quot; )&lt;br /&gt;
    local debugSource = debugInfo and debugInfo.short_src or &amp;quot;unknown&amp;quot;&lt;br /&gt;
    local debugLine = debugInfo and debugInfo.currentline or &amp;quot;unknown&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    if not tonumber( number ) then&lt;br /&gt;
        outputDebugString(&lt;br /&gt;
            &amp;quot;Bad argument @'formatNumber' [Expected number at argument 1, got &amp;quot;..type(number)..&amp;quot;] &amp;quot;..&lt;br /&gt;
            &amp;quot;Called from: &amp;quot;..debugSource..&amp;quot; (line &amp;quot;..debugLine..&amp;quot;)&amp;quot;,&lt;br /&gt;
            2&lt;br /&gt;
        )&lt;br /&gt;
        error( &amp;quot;Bad argument&amp;quot;, 2 )&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    if sep ~= nil and type( sep ) ~= &amp;quot;string&amp;quot; then&lt;br /&gt;
        outputDebugString(&lt;br /&gt;
            &amp;quot;Bad argument @'formatNumber' [Expected string or nil at argument 2, got &amp;quot;..type(sep)..&amp;quot;] &amp;quot;..&lt;br /&gt;
            &amp;quot;Called from: &amp;quot;..debugSource..&amp;quot; (line &amp;quot;..debugLine..&amp;quot;)&amp;quot;,&lt;br /&gt;
            2&lt;br /&gt;
        )&lt;br /&gt;
        error( &amp;quot;Bad argument&amp;quot;, 2 )&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    sep = sep or &amp;quot; &amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    local moneyStr = tostring( math.floor( tonumber( number ) ) )&lt;br /&gt;
    local isNegative = moneyStr:sub( 1, 1 ) == &amp;quot;-&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    if isNegative then&lt;br /&gt;
        moneyStr = moneyStr:sub( 2 )&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    local len = moneyStr:len( )&lt;br /&gt;
    for i = 1, math.ceil( len / 3 ) - 1 do&lt;br /&gt;
        local pos = len - 3 * i + 1&lt;br /&gt;
        moneyStr = moneyStr:sub( 1, pos - 1 ) .. sep .. moneyStr:sub( pos )&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    return ( isNegative and &amp;quot;-&amp;quot; or &amp;quot;&amp;quot;) .. moneyStr&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/section&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section name=&amp;quot;Client&amp;quot; class=&amp;quot;client&amp;quot; show=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
This example converts a player's money, and outputs it to the chatbox when they type 'money' into the console:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function convertPlayerMoney()&lt;br /&gt;
	local pMoney = getPlayerMoney()&lt;br /&gt;
	local convertedMoney = formatNumber(pMoney)&lt;br /&gt;
	outputChatBox(convertedMoney)&lt;br /&gt;
end&lt;br /&gt;
addCommandHandler(&amp;quot;money&amp;quot;, convertPlayerMoney)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/section&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
{{Useful_Functions}}&lt;/div&gt;</summary>
		<author><name>Claus</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=FormatNumber&amp;diff=81945</id>
		<title>FormatNumber</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=FormatNumber&amp;diff=81945"/>
		<updated>2025-04-18T13:47:33Z</updated>

		<summary type="html">&lt;p&gt;Claus: /* Syntax */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Useful Function}} __NOTOC__&lt;br /&gt;
This function formats large numbers by adding commas to it. For example, 100000 becomes 100.000&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;string formatNumber( int/string number, [ string sep = &amp;quot; &amp;quot; ] )&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Required Arguments===&lt;br /&gt;
* '''number''': The number to be converted.&lt;br /&gt;
&lt;br /&gt;
===Optional Arguments===&lt;br /&gt;
* '''sep''': A string of the character you want to split&lt;br /&gt;
&lt;br /&gt;
===Returns===&lt;br /&gt;
Returns a string containing the converted number.&lt;br /&gt;
&lt;br /&gt;
==Code==&lt;br /&gt;
&amp;lt;section name=&amp;quot;Example 1: Shared&amp;quot; class=&amp;quot;both&amp;quot; show=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function formatNumber( number, sep )&lt;br /&gt;
    local debugInfo = debug.getinfo( 2, &amp;quot;Sl&amp;quot; )&lt;br /&gt;
    local debugSource = debugInfo and debugInfo.short_src or &amp;quot;unknown&amp;quot;&lt;br /&gt;
    local debugLine = debugInfo and debugInfo.currentline or &amp;quot;unknown&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    if not tonumber( number ) then&lt;br /&gt;
        outputDebugString(&lt;br /&gt;
            &amp;quot;Bad argument @'formatNumber' [Expected number at argument 1, got &amp;quot;..type(number)..&amp;quot;] &amp;quot;..&lt;br /&gt;
            &amp;quot;Called from: &amp;quot;..debugSource..&amp;quot; (line &amp;quot;..debugLine..&amp;quot;)&amp;quot;,&lt;br /&gt;
            2&lt;br /&gt;
        )&lt;br /&gt;
        error( &amp;quot;Bad argument&amp;quot;, 2 )&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    if sep ~= nil and type( sep ) ~= &amp;quot;string&amp;quot; then&lt;br /&gt;
        outputDebugString(&lt;br /&gt;
            &amp;quot;Bad argument @'formatNumber' [Expected string or nil at argument 2, got &amp;quot;..type(sep)..&amp;quot;] &amp;quot;..&lt;br /&gt;
            &amp;quot;Called from: &amp;quot;..debugSource..&amp;quot; (line &amp;quot;..debugLine..&amp;quot;)&amp;quot;,&lt;br /&gt;
            2&lt;br /&gt;
        )&lt;br /&gt;
        error( &amp;quot;Bad argument&amp;quot;, 2 )&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    sep = sep or &amp;quot; &amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    local moneyStr = tostring( math.floor( tonumber( number ) ) )&lt;br /&gt;
    local isNegative = moneyStr:sub( 1, 1 ) == &amp;quot;-&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    if isNegative then&lt;br /&gt;
        moneyStr = moneyStr:sub( 2 )&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    local len = moneyStr:len( )&lt;br /&gt;
    for i = 1, math.ceil( len / 3 ) - 1 do&lt;br /&gt;
        local pos = len - 3 * i + 1&lt;br /&gt;
        moneyStr = moneyStr:sub( 1, pos - 1 ) .. sep .. moneyStr:sub( pos )&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    return ( isNegative and &amp;quot;-&amp;quot; or &amp;quot;&amp;quot;) .. moneyStr&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/section&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section name=&amp;quot;Client&amp;quot; class=&amp;quot;client&amp;quot; show=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
This example converts a player's money, and outputs it to the chatbox when they type 'money' into the console:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function convertPlayerMoney()&lt;br /&gt;
	local pMoney = getPlayerMoney()&lt;br /&gt;
	local convertedMoney = formatNumber(pMoney)&lt;br /&gt;
	outputChatBox(convertedMoney)&lt;br /&gt;
end&lt;br /&gt;
addCommandHandler(&amp;quot;money&amp;quot;, convertPlayerMoney)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/section&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
{{Useful_Functions}}&lt;/div&gt;</summary>
		<author><name>Claus</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=FormatNumber&amp;diff=81944</id>
		<title>FormatNumber</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=FormatNumber&amp;diff=81944"/>
		<updated>2025-04-18T13:47:06Z</updated>

		<summary type="html">&lt;p&gt;Claus: /* Code */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Useful Function}} __NOTOC__&lt;br /&gt;
This function formats large numbers by adding commas to it. For example, 100000 becomes 100.000&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;string formatNumber( int/string number, [ string sep = &amp;quot;.&amp;quot; ] )&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Required Arguments===&lt;br /&gt;
* '''number''': The number to be converted.&lt;br /&gt;
&lt;br /&gt;
===Optional Arguments===&lt;br /&gt;
* '''sep''': A string of the character you want to split&lt;br /&gt;
&lt;br /&gt;
===Returns===&lt;br /&gt;
Returns a string containing the converted number.&lt;br /&gt;
&lt;br /&gt;
==Code==&lt;br /&gt;
&amp;lt;section name=&amp;quot;Example 1: Shared&amp;quot; class=&amp;quot;both&amp;quot; show=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function formatNumber( number, sep )&lt;br /&gt;
    local debugInfo = debug.getinfo( 2, &amp;quot;Sl&amp;quot; )&lt;br /&gt;
    local debugSource = debugInfo and debugInfo.short_src or &amp;quot;unknown&amp;quot;&lt;br /&gt;
    local debugLine = debugInfo and debugInfo.currentline or &amp;quot;unknown&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    if not tonumber( number ) then&lt;br /&gt;
        outputDebugString(&lt;br /&gt;
            &amp;quot;Bad argument @'formatNumber' [Expected number at argument 1, got &amp;quot;..type(number)..&amp;quot;] &amp;quot;..&lt;br /&gt;
            &amp;quot;Called from: &amp;quot;..debugSource..&amp;quot; (line &amp;quot;..debugLine..&amp;quot;)&amp;quot;,&lt;br /&gt;
            2&lt;br /&gt;
        )&lt;br /&gt;
        error( &amp;quot;Bad argument&amp;quot;, 2 )&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    if sep ~= nil and type( sep ) ~= &amp;quot;string&amp;quot; then&lt;br /&gt;
        outputDebugString(&lt;br /&gt;
            &amp;quot;Bad argument @'formatNumber' [Expected string or nil at argument 2, got &amp;quot;..type(sep)..&amp;quot;] &amp;quot;..&lt;br /&gt;
            &amp;quot;Called from: &amp;quot;..debugSource..&amp;quot; (line &amp;quot;..debugLine..&amp;quot;)&amp;quot;,&lt;br /&gt;
            2&lt;br /&gt;
        )&lt;br /&gt;
        error( &amp;quot;Bad argument&amp;quot;, 2 )&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    sep = sep or &amp;quot; &amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    local moneyStr = tostring( math.floor( tonumber( number ) ) )&lt;br /&gt;
    local isNegative = moneyStr:sub( 1, 1 ) == &amp;quot;-&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    if isNegative then&lt;br /&gt;
        moneyStr = moneyStr:sub( 2 )&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    local len = moneyStr:len( )&lt;br /&gt;
    for i = 1, math.ceil( len / 3 ) - 1 do&lt;br /&gt;
        local pos = len - 3 * i + 1&lt;br /&gt;
        moneyStr = moneyStr:sub( 1, pos - 1 ) .. sep .. moneyStr:sub( pos )&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    return ( isNegative and &amp;quot;-&amp;quot; or &amp;quot;&amp;quot;) .. moneyStr&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/section&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section name=&amp;quot;Client&amp;quot; class=&amp;quot;client&amp;quot; show=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
This example converts a player's money, and outputs it to the chatbox when they type 'money' into the console:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function convertPlayerMoney()&lt;br /&gt;
	local pMoney = getPlayerMoney()&lt;br /&gt;
	local convertedMoney = formatNumber(pMoney)&lt;br /&gt;
	outputChatBox(convertedMoney)&lt;br /&gt;
end&lt;br /&gt;
addCommandHandler(&amp;quot;money&amp;quot;, convertPlayerMoney)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/section&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
{{Useful_Functions}}&lt;/div&gt;</summary>
		<author><name>Claus</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=Compatibility_FAQ&amp;diff=81941</id>
		<title>Compatibility FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=Compatibility_FAQ&amp;diff=81941"/>
		<updated>2025-04-14T12:10:50Z</updated>

		<summary type="html">&lt;p&gt;Claus: /* Compatibility Comparison */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Compatibility Comparison ==&lt;br /&gt;
{{Warning|Using the legacy build is not without risk, there are known security issues in the Chrome Embedded Framework (CEF) that MTA:SA 1.5.7 uses for Windows XP and Vista. It is recommended that you upgrade from XP or Vista to a supported Windows version. (Windows XP and Vista are no longer supported by MTA after September 2019.) |true}} &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Operating System&lt;br /&gt;
! Service Pack/Version &lt;br /&gt;
! Release Date&lt;br /&gt;
! Supported by Microsoft&amp;lt;ref&amp;gt;https://support.microsoft.com/en-us/help/13853/windows-lifecycle-fact-sheet&amp;lt;/ref&amp;gt;&lt;br /&gt;
! Does MTA:SA {{Current Version|full}} work?&lt;br /&gt;
! Chrome Embedded Framework&lt;br /&gt;
Updates&lt;br /&gt;
! Future MTA:SA&lt;br /&gt;
releases/updates&lt;br /&gt;
|-&lt;br /&gt;
| Windows XP&lt;br /&gt;
| Service Pack 3&lt;br /&gt;
| August 2001&lt;br /&gt;
| {{No}}&lt;br /&gt;
| {{No}}&lt;br /&gt;
| {{No}}&lt;br /&gt;
| {{No|1.5.7 was the last version}}&lt;br /&gt;
|-&lt;br /&gt;
| Windows Vista&lt;br /&gt;
| Service Pack 2&lt;br /&gt;
| November 2006&lt;br /&gt;
| {{No}}&lt;br /&gt;
| {{No}}&lt;br /&gt;
| {{No}}&lt;br /&gt;
| {{No|1.5.7 was the last version}}&lt;br /&gt;
|-&lt;br /&gt;
| Windows 7&lt;br /&gt;
| Service Pack 1&lt;br /&gt;
| July 2009&lt;br /&gt;
| {{No}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
|-&lt;br /&gt;
| Windows 8.0&lt;br /&gt;
| {{n/a}}&lt;br /&gt;
| August 2012&lt;br /&gt;
| {{No}}&lt;br /&gt;
| {{n/a}}&lt;br /&gt;
| {{n/a}}&lt;br /&gt;
| {{n/a}}&lt;br /&gt;
|-&lt;br /&gt;
| Windows 8.1&lt;br /&gt;
| {{n/a}}&lt;br /&gt;
| August 2013&lt;br /&gt;
| {{No}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=13 | Windows 10&amp;lt;ref&amp;gt;([https://support.microsoft.com/en-us/help/13853/windows-lifecycle-fact-sheet])&amp;lt;/ref&amp;gt;&lt;br /&gt;
| 1507&lt;br /&gt;
| July 2015&lt;br /&gt;
| {{No}}&lt;br /&gt;
| {{n/a}}&lt;br /&gt;
| {{n/a}}&lt;br /&gt;
| {{n/a}}&lt;br /&gt;
|-&lt;br /&gt;
| 1511&lt;br /&gt;
| November 2015&lt;br /&gt;
| {{No}}&lt;br /&gt;
| {{n/a}}&lt;br /&gt;
| {{n/a}}&lt;br /&gt;
| {{n/a}}&lt;br /&gt;
|-&lt;br /&gt;
| 1607&lt;br /&gt;
| August 2016&lt;br /&gt;
| {{No}}&lt;br /&gt;
| {{n/a}}&lt;br /&gt;
| {{n/a}}&lt;br /&gt;
| {{n/a}}&lt;br /&gt;
|-&lt;br /&gt;
| 1703&lt;br /&gt;
| April 2017&lt;br /&gt;
| {{No}}&lt;br /&gt;
| {{n/a}}&lt;br /&gt;
| {{n/a}}&lt;br /&gt;
| {{n/a}}&lt;br /&gt;
|-&lt;br /&gt;
| 1709&lt;br /&gt;
| October 2017&lt;br /&gt;
| {{No}}&lt;br /&gt;
| {{n/a}}&lt;br /&gt;
| {{n/a}}&lt;br /&gt;
| {{n/a}}&lt;br /&gt;
|-&lt;br /&gt;
| 1803&lt;br /&gt;
| April 2018&lt;br /&gt;
| {{No}}&lt;br /&gt;
| {{n/a}}&lt;br /&gt;
| {{n/a}}&lt;br /&gt;
| {{n/a}}&lt;br /&gt;
|-&lt;br /&gt;
| 1809&lt;br /&gt;
| September 2018&lt;br /&gt;
| {{No}}&lt;br /&gt;
| {{n/a}}&lt;br /&gt;
| {{n/a}}&lt;br /&gt;
| {{n/a}}&lt;br /&gt;
|-&lt;br /&gt;
| 1903&lt;br /&gt;
| May 2019&lt;br /&gt;
| {{No}}&lt;br /&gt;
| {{n/a}}&lt;br /&gt;
| {{n/a}}&lt;br /&gt;
| {{n/a}}&lt;br /&gt;
|-&lt;br /&gt;
| 1909&lt;br /&gt;
| November 2019&lt;br /&gt;
| {{No}}&lt;br /&gt;
| {{n/a}}&lt;br /&gt;
| {{n/a}}&lt;br /&gt;
| {{n/a}}&lt;br /&gt;
|-&lt;br /&gt;
| 2004&lt;br /&gt;
| May 2020&lt;br /&gt;
| {{No}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
|-&lt;br /&gt;
| 20H2&lt;br /&gt;
| October 2020&lt;br /&gt;
| {{No}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
|-&lt;br /&gt;
| 21H1&lt;br /&gt;
| May 2021&lt;br /&gt;
| {{No}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
|-&lt;br /&gt;
| 21H2&lt;br /&gt;
| Nov 2021&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=3 | Windows 11&amp;lt;ref&amp;gt;([https://support.microsoft.com/en-us/help/13853/windows-lifecycle-fact-sheet])&amp;lt;/ref&amp;gt;&lt;br /&gt;
| 21H2&lt;br /&gt;
| October 2021&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
|-&lt;br /&gt;
| 22H2&lt;br /&gt;
| September 2022&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
|-&lt;br /&gt;
| 23H2&lt;br /&gt;
| October 2023&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Please use a supported version of Windows 10 to run MTA.&lt;br /&gt;
* There are no guarantees that MTA will work on older not by Microsoft supported Windows 8 and 10 versions.&lt;br /&gt;
&lt;br /&gt;
== FAQ - Frequently Asked Questions ==&lt;br /&gt;
=== Google is dropping XP/Vista support for Chrome browser? What does this even have to do with MTA:SA? ===&lt;br /&gt;
As you may know from our previous [https://forum.mtasa.com/topic/75559-mtasa-15-release-candidate-is-ready-for-testing/ news posts], MTA:SA uses CEF (Chrome Embedded Framework) components for providing some functionality for the mod since version 1.5. Being Chromium-based, CEF components are also being phased out for users of older Operating Systems and will simply not work on them.&amp;lt;ref&amp;gt;https://bitbucket.org/chromiumembedded/cef&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Does MTA:SA 1.5.7 work fine on Windows XP and Windows Vista? ===&lt;br /&gt;
Yes, it works fine if you install it through the legacy build. We still can not really recommend using these systems anymore due to the reasons listed below.&lt;br /&gt;
&lt;br /&gt;
CEF compatibility issue aside, these Operating Systems (XP especially) are really old nowadays. You are putting yourself at risk if you use them as they are either no longer supported by Microsoft (XP) or the support will be discontinued soon (April 2017 - Vista).&lt;br /&gt;
&lt;br /&gt;
=== What will happen if I try to use the regular build of 1.5.7 on Windows XP/Vista? ===&lt;br /&gt;
MTA:SA installer will display an error and will not let you install the mod on such systems. You will be asked to download the legacy build from our website.&lt;br /&gt;
&lt;br /&gt;
=== And what will happen if I try to use the legacy build of 1.5.7 on Windows 7 and above? ===&lt;br /&gt;
Similarly, MTA:SA installer will display an error and will not let you install the mod on such systems. You will be asked to download the regular build from our website.&lt;br /&gt;
&lt;br /&gt;
=== Why couldn't you just stick to the older version of CEF then so that XP/Vista would be still supported? / What about releasing two versions of the mod? A regular one with newest CEF and a legacy one with the older CEF build that still works on XP/Vista?  ===&lt;br /&gt;
Hey, but we actually do provide a legacy build for MTA:SA 1.5.7 for XP/Vista users with an older version of CEF components.&lt;br /&gt;
&lt;br /&gt;
The problem with sticking with either of these options is that we would have to continue providing a version that is vulnerable to any present and future security exploits that exist in Chromium and are already widely used. We do not want to put our users at risk because of that. CEF developers themselves do not want to provide long-term security support for such a build either. &amp;lt;ref&amp;gt;http://www.magpcss.org/ceforum/viewtopic.php?f=6&amp;amp;t=14187&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== I am playing the mod on Windows 7/Windows 8/Windows 8.1/Windows 10 or newer. Am I affected by this?  ===&lt;br /&gt;
No, you will not be affected at all. In fact, you will have a better experience with built-in web browser components than before due to security and performance fixes included in the newer CEF versions.&lt;br /&gt;
&lt;br /&gt;
=== I am using Windows XP/Vista and I would still like to play future versions of MTA:SA. What can I do about it? ===&lt;br /&gt;
If you are using Windows XP or Windows Vista, you should upgrade your OS to a newer one. You will likely be required to do a clean install for that, so back up your stuff first. You should use these tools first to see if your PC is capable of upgrading to newer OS:&lt;br /&gt;
&lt;br /&gt;
    Windows 7: [https://www.microsoft.com/en-us/download/details.aspx?id=20 Windows 7 Upgrade Advisor]&lt;br /&gt;
    Windows 8/10: [http://go.microsoft.com/fwlink?linkid=259439 Windows 8 Upgrade Assistant]&lt;br /&gt;
&lt;br /&gt;
Is your PC toaster-tier which does not support Windows 8 or even 7? That means it is probably the right time to buy something more modern.&lt;br /&gt;
&lt;br /&gt;
But fear not, if you are already using Windows 7 or newer, just install the newest build of MTA:SA 1.5.7 and you are set! And if you don't want to upgrade your OS or PC, well, we will keep offering the legacy build that works on XP/Vista for a while...&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [https://forum.mtasa.com/topic/89685-mtasa-windows-xpvista-cef-components-and-you/ Topic about the compatibility changes]&lt;/div&gt;</summary>
		<author><name>Claus</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=Client_Manual&amp;diff=81940</id>
		<title>Client Manual</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=Client_Manual&amp;diff=81940"/>
		<updated>2025-04-14T09:10:12Z</updated>

		<summary type="html">&lt;p&gt;Claus: /* Launching MTA */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article will guide you through the initial installation of '''Multi Theft Auto: San Andreas'''. You can also find a short introduction on how to play on an MTA server.&lt;br /&gt;
&lt;br /&gt;
==Before you start==&lt;br /&gt;
[[File:Emblem-important.svg|24px]] '''Before you install Multi Theft Auto: San Andreas, make sure that you have GTA:SA installed (see [[Where to buy GTASA]])''', and that it contains no modifications (these may conflict with MTA). If you would like to keep your single-player mods, you can create two installations by reinstalling GTA: San Andreas to a second folder on your hard drive.&lt;br /&gt;
&lt;br /&gt;
Also, make sure that your machine is capable of running the game in single player. Note that if you are running single player on the absolute minimum requirements, you will experience slowdowns in MTA as it takes up extra processing power.&lt;br /&gt;
&lt;br /&gt;
===System requirements===&lt;br /&gt;
====Minimum system requirements====&lt;br /&gt;
The minimum system requirements for Multi Theft Auto: San Andreas are '''slightly higher''' than the original minimum requirements for Grand Theft Auto: San Andreas:&lt;br /&gt;
* Windows 7 or newer (Microsoft supported) operating system ([[Compatibility FAQ|XP and Vista do not work and are obsolete]])&lt;br /&gt;
* Intel Pentium 4 or AMD Athlon XP&lt;br /&gt;
* 1 GB RAM&lt;br /&gt;
* Clean installation of Grand Theft Auto: San Andreas, version 1.0 (American or European)&lt;br /&gt;
* 3.7GB of free hard disk space (3.6GB for a minimum Grand Theft Auto installation; remember that MTA caches files from the servers that you play on and require disk space)&lt;br /&gt;
* Nvidia GeForce 4 series or ATI Radeon 8xxx series (64MB VRAM and DirectX 9.0 compatible)&lt;br /&gt;
* DirectX 9.0 compatible sound card&lt;br /&gt;
* Keyboard and mouse&lt;br /&gt;
* Internet access&lt;br /&gt;
&lt;br /&gt;
====Recommended system requirements====&lt;br /&gt;
* Windows 10 operating system&lt;br /&gt;
* Intel Core 2 Duo Processor or AMD equivalent&lt;br /&gt;
* 2 GB RAM&lt;br /&gt;
* Clean installation of Grand Theft Auto: San Andreas, version 1.0 (American or European)&lt;br /&gt;
* &amp;gt;5GB of free hard disk space (Remember that MTA caches files from the servers that you play on and require disk space)&lt;br /&gt;
* Nvidia GeForce FX series or higher, ATI Radeon 9xxx series or higher, Pixel Shader 2.0 compatible&lt;br /&gt;
* DirectX 9.0 compatible sound card&lt;br /&gt;
* Keyboard and mouse&lt;br /&gt;
* Broadband internet access (for smooth online play)&lt;br /&gt;
&lt;br /&gt;
====Notes====&lt;br /&gt;
* The minimum system requirements are considered the bare minimum for MTA: San Andreas, the performance can depend on the game modes that are running and the player count.&lt;br /&gt;
* For extra loading performance, more RAM is recommended.&lt;br /&gt;
* Make sure Windows is fully up to date.&lt;br /&gt;
* Make sure you head over to the [[Known_Issues_-_FAQ|Known Issues]] page if you have issues, or join us on [https://discord.com/invite/mtasa Discord] and do so in the #help-support channel.&lt;br /&gt;
&lt;br /&gt;
==Installing MTA==&lt;br /&gt;
# '''If you haven't already, ensure GTA: San Andreas is installed on your PC. See [[Where to buy GTASA]] for information on how to obtain the game.'''&lt;br /&gt;
# Download the MTA:SA client from the download page at [http://multitheftauto.com multitheftauto.com].&lt;br /&gt;
# Run the installer. For Windows Vista and 7 it is required to run this with administrator rights (the installer will ask.)&lt;br /&gt;
# You need to accept the license that comes with MTA:SA (GPLv3).&lt;br /&gt;
# You will be asked which components to install:&lt;br /&gt;
#* '''Game Client''' interfaces with the game and is a required component. '''This is enough to play on multiplayer servers.'''&lt;br /&gt;
#* '''Dedicated Server''' enables you to host your own home-brew server.&lt;br /&gt;
#** '''Core components''' and '''Game module''' are required components for the dedicated server.&lt;br /&gt;
#** '''Core resources''' required resources for dedicated server.&lt;br /&gt;
#** '''Optional resources''' additional resources for your dedicated server, gamemodes and maps.&lt;br /&gt;
#** '''Editor''' is used to create new maps, this is an optional component.&lt;br /&gt;
#* '''Development''' development tools.&lt;br /&gt;
#** '''Module SDK''' development SDK for creating your own MTA server modules, this component requires C++ knowledge.&lt;br /&gt;
#* '''Start menu group''' creates a start menu group for the installed components.&lt;br /&gt;
#* '''Desktop icon''' creates a desktop icon for the client.&lt;br /&gt;
# You are then asked for a folder in which to install MTA. This can by anywhere and '''should not be in you San Andreas directory'''. Avoid special folders like OneDrive or other cloud-synced directories.&lt;br /&gt;
# Next, you will be asked for the directory where you have San Andreas installed. The default location is: '''C:\Program Files\Rockstar Games\GTA San Andreas\'''. '''Reminder: you need to have the game installed before installing MTA. See [[Where to buy GTASA]].'''&lt;br /&gt;
# When the installation completes, you will be given the option to start MTA: San Andreas straight away. Choose your option and then press '''Finish'''.&lt;br /&gt;
# You will be able to launch ''MTA San Andreas'' from your Start Menu if you wish to play.&lt;br /&gt;
&lt;br /&gt;
==Launching MTA==&lt;br /&gt;
# Start '''Multi Theft Auto''' by clicking the icon located in your Start Menu under '''MTA:San Andreas'''.&lt;br /&gt;
# GTA: San Andreas will start and once it is loaded, you will be presented with the MTA:SA main menu. Here you will find several options (you could also watch a how-to tutorial [http://www.youtube.com/watch?v=ShiqnOazNYw here]):&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
| width=&amp;quot;188&amp;quot; |&lt;br /&gt;
[[File:Server Browser List.png|600px|center]]&lt;br /&gt;
| width=&amp;quot;380&amp;quot; |&lt;br /&gt;
&amp;lt;font size=&amp;quot;-1&amp;quot; face=&amp;quot;tahoma,helvetica,arial,sans-serif&amp;quot;&amp;gt;'''Browse servers''' – this allows you to receive a list of available servers to play on. &amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;188&amp;quot; |&lt;br /&gt;
[[File:Host Game 1.6.png|300px|center]]&lt;br /&gt;
| width=&amp;quot;380&amp;quot; |&lt;br /&gt;
&amp;lt;font size=&amp;quot;-1&amp;quot; face=&amp;quot;tahoma,helvetica,arial,sans-serif&amp;quot;&amp;gt;'''Host game''' – this allows you to start a local server. &amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;188&amp;quot; |&lt;br /&gt;
[[File:Menu Settings 1.6.png|300px|center]]&lt;br /&gt;
| width=&amp;quot;380&amp;quot; |&lt;br /&gt;
&amp;lt;font size=&amp;quot;-1&amp;quot; face=&amp;quot;tahoma,helvetica,arial,sans-serif&amp;quot;&amp;gt;'''Settings '''– this allows you to change your in-game nickname, customize controls and adjust display settings.&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;188&amp;quot; |&lt;br /&gt;
[[File:About Menu 1.6.png|300px|center]]&lt;br /&gt;
| width=&amp;quot;380&amp;quot; |&lt;br /&gt;
&amp;lt;font size=&amp;quot;-1&amp;quot; face=&amp;quot;tahoma,helvetica,arial,sans-serif&amp;quot;&amp;gt;'''About '''– this gives you a list of contributors to the project.&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;188&amp;quot; |&lt;br /&gt;
[[Image:Map_Editor.jpg|280px|center]]&lt;br /&gt;
| width=&amp;quot;380&amp;quot; |&lt;br /&gt;
&amp;lt;font size=&amp;quot;-1&amp;quot; face=&amp;quot;tahoma,helvetica,arial,sans-serif&amp;quot;&amp;gt;'''Map editor '''– this allows you to create your own maps, complete with checkpoints, ramps, pickups and other objects. These can then be uploaded onto a server so that you can play them with other people.&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;188&amp;quot; |&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
| width=&amp;quot;380&amp;quot; |&lt;br /&gt;
&amp;lt;font size=&amp;quot;-1&amp;quot; face=&amp;quot;tahoma,helvetica,arial,sans-serif&amp;quot;&amp;gt;'''Quit '''– this returns you back to your Windows desktop.&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The easiest way to play the game is to click '''Browse Servers''' on the menu. If servers have not appeared already, press the '''Refresh''' button and MTA will scan for servers, displaying them as a list.&lt;br /&gt;
&lt;br /&gt;
* Under the '''Name''' tab, each server's name is displayed.&lt;br /&gt;
* Under the '''Players''' tab, the number of players and the maximum capacity of the server is displayed, in the format of [Used Slots] / [Maximum Slots].&lt;br /&gt;
* The '''Ping''' tab displays the ping, or latency, between your machine and the server. Ping is a measure of the time it takes for &amp;quot;packets&amp;quot; of data to be received back from the server after sending them, so a higher ping means that you will experience more lag on that particular server. Generally, servers closest to your location should have the lowest pings.&lt;br /&gt;
* The '''Host''' is the IP address of the server. You can use this address in future to connect to the same server via the Quick Connect option on the main menu.&lt;br /&gt;
&lt;br /&gt;
Each tab can be clicked to arrange the respective column in ascending or descending order.&lt;br /&gt;
&lt;br /&gt;
For optimal performance and gameplay, look for the best balance between players and ping.&lt;br /&gt;
&lt;br /&gt;
Once you have picked a server, select it and click the '''Connect''' button in the top right-hand corner of the dialog. If all goes well, you should connect to the server and automatically join the game.&lt;br /&gt;
&lt;br /&gt;
==How to Play==&lt;br /&gt;
&lt;br /&gt;
MTA:SA offers a comprehensive scripting system that allows map creators to customize many elements of the game in order to create their own innovative game modes. The game incorporates as many single player elements as possible but some aspects are different.&lt;br /&gt;
&lt;br /&gt;
The only other people on the map are your opponents, or allies if it is a team game. You can talk with them using the chatbox located in the left-hand corner of the screen by pressing '''T'''. To chat only to your team members, press '''Y'''.&lt;br /&gt;
&lt;br /&gt;
MTA's map editor allows map creators to add various GTA objects to their maps including roads, exploding barrels, ramps, buildings, hills and more. Not only this, but the objects can be scripted to move, change model and disappear. This offers a great deal of fun and variation to the gameplay. &lt;br /&gt;
&lt;br /&gt;
Holding Tab will display the scoreboard. By default, only names and pings are displayed, but scripts can add extra columns that are specific to the particular gamemode being played. For example, a deathmatch game mode would definitely have a column listing total kills, but the map creator may choose to add extra columns for the number of deaths you have and how long you have been playing for, in order to put your score into perspective.&lt;br /&gt;
&lt;br /&gt;
==Default Controls==&lt;br /&gt;
&lt;br /&gt;
===In-Game Keys===&lt;br /&gt;
&lt;br /&gt;
* F8 (or Tilde Key) - Console&lt;br /&gt;
* F11 - Show SA map ''(the following list is for use when the map is up)''&lt;br /&gt;
**numpad  /- - Zoom in and out&lt;br /&gt;
**numpad 4, 8, 6, 2 - move map left, up, right, down&lt;br /&gt;
**numpad 0 - toggle between attach to local player (map follows player blip) and free move (map stays stationary)  &lt;br /&gt;
* F12 - Take a screenshot&lt;br /&gt;
* T - Chat&lt;br /&gt;
* Y - Team Chat&lt;br /&gt;
&lt;br /&gt;
===Resource Specific Keys===&lt;br /&gt;
These keys depend on the scripts that are running on the server.&lt;br /&gt;
&lt;br /&gt;
* F9 - In-game help (Help manager resource)&lt;br /&gt;
* Z - Push to talk, if voice is enabled on the server.&lt;br /&gt;
* TAB - Player List (if [[Scoreboard]] resource is running on the server)&lt;br /&gt;
&lt;br /&gt;
==Console Commands==&lt;br /&gt;
&lt;br /&gt;
'''bind defaults''' Binds control defaults in the settings menu&lt;br /&gt;
&lt;br /&gt;
Press '''~ (tilde)''' or '''F8''' to access the console, then type a command followed by any necessary parameters (if applicable) then press Enter.&lt;br /&gt;
&lt;br /&gt;
;'''maps''' :This displays a list of all maps available on the server. &lt;br /&gt;
&lt;br /&gt;
;'''nick [nickname]''' :This changes your nickname whilst in-game to whatever you specify in the parameters.&lt;br /&gt;
&lt;br /&gt;
;'''msg [nickname] [message]''' or '''pm [nickname] [message]''' :This sends a private message to the person you specify in the [nickname] parameter. Only the person you specify can see the message. Both '''msg''' and '''pm''' perform the same function.&lt;br /&gt;
&lt;br /&gt;
;'''quit''' or '''exit''' :This disconnects you from the server and returns you to the Windows desktop. Performs the same function as the Quit button on the main menu.&lt;br /&gt;
&lt;br /&gt;
;'''ver''' :This displays the version number and copyright information for the software.&lt;br /&gt;
&lt;br /&gt;
;'''sver''' :This displays the version number of the server you are connected to.&lt;br /&gt;
&lt;br /&gt;
;'''time''' :This displays the current time.&lt;br /&gt;
&lt;br /&gt;
;'''disconnect''' :This disconnects you from the server and returns you to the main menu.&lt;br /&gt;
&lt;br /&gt;
;'''say [text]''' :This enables you to continue talking to people in the chat box whilst the console is open.&lt;br /&gt;
&lt;br /&gt;
;'''ignore [nickname]''' :This will not display any text typed by the player you wish to ignore. To stop ignoring a player, type '''ignore [nickname]''' again.&lt;br /&gt;
{{Tip|You can use these commands in the chatbox by putting a / (forward slash) in front of them.}}&lt;br /&gt;
&lt;br /&gt;
A list of console commands can be seen by typing '''help''' into the console and pressing Enter. The current map may also have extra commands which can be accessed by typing '''commands''' into the console.&lt;br /&gt;
&lt;br /&gt;
For information on more commands see: [[Client Commands]]&lt;br /&gt;
&lt;br /&gt;
==Error codes and their meanings==&lt;br /&gt;
=== Download errors ===&lt;br /&gt;
:{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width: auto; table-layout: fixed;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Code&lt;br /&gt;
!scope=&amp;quot;col&amp;quot; class=&amp;quot;unsortable&amp;quot; | Meaning&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|UNKNOWN_ERROR&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|INVALID_FILE_DESCRIPTORS&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|INVALID_MAX_FILE_DESCRIPTOR&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|INVALID_SELECT_RETURN&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|INVALID_INITIAL_MULTI_PERFORM&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|INVALID_MULTI_PERFORM_CODE&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|INVALID_MULTI_PERFORM_CODE_NEW_DOWNLOADS&lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|UNEXPECTED_CURL_MESSAGE&lt;br /&gt;
|-&lt;br /&gt;
|8&lt;br /&gt;
|UNABLE_TO_CONNECT&lt;br /&gt;
|-&lt;br /&gt;
|9&lt;br /&gt;
|UNABLE_TO_DOWNLOAD_FILE&lt;br /&gt;
|-&lt;br /&gt;
|10&lt;br /&gt;
|FAILED_TO_INITIALIZE_DOWNLOAD&lt;br /&gt;
|}&lt;br /&gt;
===Fatal errors===&lt;br /&gt;
:{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width: auto; table-layout: fixed;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Code&lt;br /&gt;
!scope=&amp;quot;col&amp;quot; class=&amp;quot;unsortable&amp;quot; | Meaning&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|no local player model on ingame event&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|no local player on ingame event&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|server downloads disabled&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|no local player model on player-list packet&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|no local player on player-list packet&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|invalid custom data length on entity-add packet&lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|invalid bitstream data on entity-add packet&lt;br /&gt;
|-&lt;br /&gt;
|8&lt;br /&gt;
|system entity on entity-add packet&lt;br /&gt;
|-&lt;br /&gt;
|9&lt;br /&gt;
|failed to create object on entity-add packet&lt;br /&gt;
|-&lt;br /&gt;
|10&lt;br /&gt;
|failed to create pickup on entity-add packet&lt;br /&gt;
|-&lt;br /&gt;
|11&lt;br /&gt;
|failed to create vehicle on entity-add packet&lt;br /&gt;
|-&lt;br /&gt;
|12&lt;br /&gt;
|invalid team-name length on entity-add packet&lt;br /&gt;
|-&lt;br /&gt;
|13&lt;br /&gt;
|invalid lua-event name length in lua-event packet&lt;br /&gt;
|-&lt;br /&gt;
|14&lt;br /&gt;
|invalid resource name length in resource-start packet&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==='Unable to enter vehicle' errors===&lt;br /&gt;
:{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width: auto; table-layout: fixed;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Code&lt;br /&gt;
!scope=&amp;quot;col&amp;quot; class=&amp;quot;unsortable&amp;quot; | Meaning&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|script cancelled&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|script cancelled (jack)&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|current occupier is entering/exiting&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|invalid seat&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|not close enough&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|already in a vehicle&lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|already entering/exiting&lt;br /&gt;
|-&lt;br /&gt;
|8&lt;br /&gt;
|invalid vehicle (trailer)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Special: Playing MTA on Linux, macOS or Steam Deck?==&lt;br /&gt;
If you're one of those who use other precious systems, and want to have the client working on your device,&lt;br /&gt;
please read the [[Client on Linux Manual]], [[Client on Mac OS X Manual]] or [[Client on Steam Deck Manual]].&lt;br /&gt;
&lt;br /&gt;
[[ar:دليل_اللاعب]]&lt;br /&gt;
[[cs:Client Manual]]&lt;br /&gt;
[[de:MTA DM Client Anleitung]]&lt;br /&gt;
[[en:Client Manual]]&lt;br /&gt;
[[es:Manual Cliente Deathmatch]]&lt;br /&gt;
[[fr:Manuel Client]]&lt;br /&gt;
[[hu:Client Manual]]&lt;br /&gt;
[[it:Manuale del Client]]&lt;br /&gt;
[[nl:Deathmatch Client Manual]]&lt;br /&gt;
[[pl:Client Manual]]&lt;br /&gt;
[[pt-br:Manual do Cliente]]&lt;br /&gt;
[[ru:Deathmatch Client Manual]]&lt;br /&gt;
[[zh-cn:客户端手册]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Support]]&lt;/div&gt;</summary>
		<author><name>Claus</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=File:About_Menu_1.6.png&amp;diff=81939</id>
		<title>File:About Menu 1.6.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=File:About_Menu_1.6.png&amp;diff=81939"/>
		<updated>2025-04-14T09:08:17Z</updated>

		<summary type="html">&lt;p&gt;Claus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;About Menu 1.6&lt;/div&gt;</summary>
		<author><name>Claus</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=File:Menu_Settings_1.6.png&amp;diff=81938</id>
		<title>File:Menu Settings 1.6.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=File:Menu_Settings_1.6.png&amp;diff=81938"/>
		<updated>2025-04-14T09:07:57Z</updated>

		<summary type="html">&lt;p&gt;Claus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Menu Settings 1.6&lt;/div&gt;</summary>
		<author><name>Claus</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=File:Host_Game_1.6.png&amp;diff=81937</id>
		<title>File:Host Game 1.6.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=File:Host_Game_1.6.png&amp;diff=81937"/>
		<updated>2025-04-14T09:06:51Z</updated>

		<summary type="html">&lt;p&gt;Claus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Host Game 1.6&lt;/div&gt;</summary>
		<author><name>Claus</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=File:Server_Browser_List.png&amp;diff=81936</id>
		<title>File:Server Browser List.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=File:Server_Browser_List.png&amp;diff=81936"/>
		<updated>2025-04-14T09:01:00Z</updated>

		<summary type="html">&lt;p&gt;Claus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Browse servers – this allows you to receive a list of available servers to play on.&lt;/div&gt;</summary>
		<author><name>Claus</name></author>
	</entry>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=Building_MTASA_Server_on_GNU_Linux&amp;diff=81935</id>
		<title>Building MTASA Server on GNU Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=Building_MTASA_Server_on_GNU_Linux&amp;diff=81935"/>
		<updated>2025-04-14T08:30:30Z</updated>

		<summary type="html">&lt;p&gt;Claus: /* Ubuntu Linux */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Needs Checking|Confirm steps work.}}&lt;br /&gt;
&lt;br /&gt;
== Installing and Running MTASA server on Linux ==&lt;br /&gt;
{{Note|This article is only for developers who changed the server code. If you are looking for the precompiled server (for normal server owners). Go to: [http://linux.mtasa.com/ linux.mtasa.com] and see [[Installing and Running MTASA Server on GNU_Linux]]}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== Compiling on a 64 bit Linux ==&lt;br /&gt;
Additional steps for compiling a MTA server on 64 bit Linux:&lt;br /&gt;
===Install 32 bit libs for your 64 bit distro===&lt;br /&gt;
For 64 bit Debian, this is achieved with:&lt;br /&gt;
&lt;br /&gt;
 apt-get install ia32-libs&lt;br /&gt;
&lt;br /&gt;
===64 bit Troubleshooting===&lt;br /&gt;
* If you get a problem with such as &amp;quot;libreadline.so.5: cannot open shared object file: No such file or directory.&amp;quot;, it can be solved on 64 bit Debian Squeeze  by doing this:&lt;br /&gt;
&lt;br /&gt;
 apt-get install lib32readline5&lt;br /&gt;
&lt;br /&gt;
* If you get a problem with such as &amp;quot;libncursesw.so.5 cannot open shared object file: No such file or directory&amp;quot;, it can be solved on 64 bit Debian Squeeze by doing this:&lt;br /&gt;
&lt;br /&gt;
 apt-get install lib32ncursesw5&lt;br /&gt;
&lt;br /&gt;
* Further 64 bit solutions can be found [http://forum.mtasa.com/viewtopic.php?f=106&amp;amp;t=35328#p367282 on the forums]&lt;br /&gt;
&lt;br /&gt;
* If you are using Cent OS and you get something like /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by xmll.so) this can be resolved by doing downloading the archive [[http://archives.fedoraproject.org/pub/archive/fedora/linux/releases/9/Fedora/i386/os/Packages/libstdc++-4.3.0-8.i386.rpm here]] and unpacking it with the following command:&lt;br /&gt;
&lt;br /&gt;
 rpm2cpio libstdc++-4.3.0-8.i386.rpm | cpio -i --make-directories&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
== Preparing your system ==&lt;br /&gt;
&lt;br /&gt;
In order to build the Multi Theft Auto dedicated server, you will have to set up your system with the correct libraries and tools. How these are installed depends on your distribution.&lt;br /&gt;
&lt;br /&gt;
Our network module (net.dll or net.so) is distributed as a precompiled binary library. The file for GNU/Linux can be found inside the lastest Linux nightly from [http://nightly.mtasa.com/ here]. Use the net.so from {{Current Version|master}} if you are compiling from the trunk, or the net.so from {{Current Version|full}} if you are compiling the {{Current Version|full}} branch. Be sure the read the top of ''Server/version.h'' as it contains directions on how to compile the different build types.&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu 20.04 ===&lt;br /&gt;
&lt;br /&gt;
The following instructions are specifically for Ubuntu 20.04.&lt;br /&gt;
&lt;br /&gt;
You will need to install the required build tools, headers, and libraries. These can be installed using the following packages:&lt;br /&gt;
&lt;br /&gt;
* '''build-essential:''' provides tools, headers, and libraries required to build applications&lt;br /&gt;
* '''automake:''' provides tools for automatically generating Makefiles&lt;br /&gt;
* '''libtool:''' required for building shared libraries&lt;br /&gt;
* '''libreadline-gplv2-dev:''' provides the GNU readline library (version 5)&lt;br /&gt;
* '''libncurses5-dev:''' provides tools for writing to the console screen&lt;br /&gt;
* '''libncursesw5-dev:''' provides wide character support for ncurses&lt;br /&gt;
* '''default-libmysqlclient-dev:''' provides the MySQL client development files&lt;br /&gt;
* '''git:''' version control tool used to clone the code repository&lt;br /&gt;
* '''unzip:''' archive unpacking utility&lt;br /&gt;
&lt;br /&gt;
To install all required packages, run the following commands in the terminal (execute as root):&lt;br /&gt;
&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install build-essential automake libtool&lt;br /&gt;
 apt-get install libreadline-gplv2-dev libncurses5-dev libncursesw5-dev&lt;br /&gt;
 apt-get install default-libmysqlclient-dev git unzip&lt;br /&gt;
&lt;br /&gt;
=== Gentoo Linux ===&lt;br /&gt;
You will need the necessary build tools, headers and libraries. Because Gentoo’s portage system is designed to compile any packages on your own system, the necessary build tools will have already been installed. This only leaves you to install the necessary libraries:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* '''sqlite:''' contains the SQLite library&lt;br /&gt;
* '''curl:''' contains the cURL library; to compile with SSL support, apply the net-misc/curl SSL USE flag&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
* '''git:''' contains the git client used to check out our code repository&lt;br /&gt;
To compile and install these packages through ''emerge'', use the '''emerge -v &amp;lt;package list&amp;gt;''' command. The -v option shows additional * * information and can be omitted. (If you want to use any USE flags, prepend emerge with USE=&amp;quot;use flags here&amp;quot;. You can also use the -pv option to verify that you’re using the correct flags.) Refer to the [http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=2&amp;amp;chap=1 Gentoo Handbook] or manual for more information on emerge.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 emerge -v git sqlite&lt;br /&gt;
 USE=“net-misc/curl ssl” emerge -v curl&lt;br /&gt;
&lt;br /&gt;
=== Fedora ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You will need these packages to be able to successfully compile a MTA server on Fedora: &lt;br /&gt;
* '''glibc-devel:'''&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* '''curl-devel:''' contains the cURL library&lt;br /&gt;
* '''pcre-devel:''' contains the PCRE library&lt;br /&gt;
* '''sqlite3-devel:''' contains the SQLite library&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
* '''readline-devel:''' contains the readline library&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* '''lua-devel:''' contains the Lua libraries&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
* '''git:''' contains the git client to check out the source code&lt;br /&gt;
To install these packages through yum, use the yum install &amp;lt;package list&amp;gt; command as in the following example (execute as root):&lt;br /&gt;
&lt;br /&gt;
 yum install glibc-devel readline-devel git&lt;br /&gt;
&lt;br /&gt;
== General instructions for {{Current Version|master}} ==&lt;br /&gt;
&lt;br /&gt;
'''Downloading the source.'''&lt;br /&gt;
&lt;br /&gt;
First, you need to download the source. Either clone as shown below or [https://github.com/multitheftauto/mtasa-blue/archive/master.zip download a zip snapshot]&lt;br /&gt;
&lt;br /&gt;
 git clone &amp;lt;nowiki&amp;gt;https&amp;lt;/nowiki&amp;gt;://github.com/multitheftauto/mtasa-blue.git mtasa-blue&lt;br /&gt;
 cd mtasa-blue&lt;br /&gt;
&lt;br /&gt;
Then compile it thus:&lt;br /&gt;
&lt;br /&gt;
 ./linux-build.sh&lt;br /&gt;
&lt;br /&gt;
Then copy the configuration files, network module and resources into '''Bin/server''' by running this command:&lt;br /&gt;
&lt;br /&gt;
 ./linux-install-data.sh&lt;br /&gt;
&lt;br /&gt;
And the resources and stuff should be downloaded and stuff. As well as the net_d.dll file.&lt;br /&gt;
&lt;br /&gt;
=== '''Troubleshooting''' ===&lt;br /&gt;
&lt;br /&gt;
If you’re getting any unexpected errors while compiling, please check our [https://github.com/multitheftauto/mtasa-blue/issues GitHub issues] or our [https://discord.com/invite/GNN6PRtTnu development-focused Discord server].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If you get a message saying &amp;quot;Killed&amp;quot; when running premake5 gmake (linux-build.sh), that usually means you ran out of memory.&amp;lt;br /&amp;gt;&lt;br /&gt;
You can confirm this by searching for kill logs by running &amp;lt;code&amp;gt;sudo dmesg | grep -i kill&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
A possible solution for this might be to [https://opensource.com/article/18/9/swap-space-linux-systems turn on swap] or upgrade your system memory temporarily.&amp;lt;br /&amp;gt;&lt;br /&gt;
1 GB is likely '''not''' enough of memory to complete the build.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[ru:Building MTASA Server on GNU Linux]]&lt;br /&gt;
[[Category: Development]]&lt;/div&gt;</summary>
		<author><name>Claus</name></author>
	</entry>
</feed>