<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.rage.mp/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Disinterpreter</id>
	<title>RAGE Multiplayer Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.rage.mp/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Disinterpreter"/>
	<link rel="alternate" type="text/html" href="https://wiki.rage.mp/wiki/Special:Contributions/Disinterpreter"/>
	<updated>2026-06-04T02:14:11Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.40.0</generator>
	<entry>
		<id>https://wiki.rage.mp/w/index.php?title=FastDL&amp;diff=19617</id>
		<title>FastDL</title>
		<link rel="alternate" type="text/html" href="https://wiki.rage.mp/w/index.php?title=FastDL&amp;diff=19617"/>
		<updated>2020-05-23T20:38:07Z</updated>

		<summary type="html">&lt;p&gt;Disinterpreter: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= FastDL =&lt;br /&gt;
FastDL is a technology which can receive files from another server. The major advantage of doing this is balancing the network.&lt;br /&gt;
&lt;br /&gt;
== Setting up FastDL ==&lt;br /&gt;
&lt;br /&gt;
For the first step, you need to &amp;quot;cook&amp;quot; the web server that will be distributing the files.&lt;br /&gt;
&lt;br /&gt;
You need to create a VirtualHost ( in nginx, we will call it &amp;quot;server&amp;quot; )&lt;br /&gt;
In the root of this VirtualHost, you need to make two directories. “file” and “list”.&lt;br /&gt;
&lt;br /&gt;
Here is an example configuration:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nginx&amp;quot;&amp;gt;&lt;br /&gt;
server {&lt;br /&gt;
        listen 80;&lt;br /&gt;
        listen [::]:80;&lt;br /&gt;
&lt;br /&gt;
        root /var/www/rage-cache;&lt;br /&gt;
&lt;br /&gt;
        index index.html index.htm index.nginx-debian.html;&lt;br /&gt;
        # server_name my.domain.com 127.0.0.1 other.domain.net;&lt;br /&gt;
        server_name IP;&lt;br /&gt;
        # use access log only for debug&lt;br /&gt;
        access_log /var/log/nginx/cache_acces;&lt;br /&gt;
        location / {&lt;br /&gt;
                autoindex on;&lt;br /&gt;
        }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&#039;&#039;Tip: You can use the &amp;quot;autoindex on&amp;quot; feature when setting up, this helps with debugging.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The next step isto place the files in the directory.&lt;br /&gt;
&lt;br /&gt;
== Script ==&lt;br /&gt;
The author of the article recommends using his script:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
wget https://raw.githubusercontent.com/Disinterpreter/rage-fastdl-manager/master/main.pl&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Making the config (create a config.json file nearby)&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;host&amp;quot;: &amp;quot;http://serverip:22006&amp;quot;,&lt;br /&gt;
   &amp;quot;cache-path&amp;quot;: &amp;quot;/var/www/cache&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION:&#039;&#039;&#039; cache-path must contain the path to the root of your cache directory.&lt;br /&gt;
&lt;br /&gt;
Great! You have downloaded the script and written the config. Now you can turn on your server (if it was disabled) and then run our script with the command &amp;quot;sh ./main.pl&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pay attention: On a debian-like OS you need to install the following packages: libjson-perl libtest-lwp-useragent-perl libfile-slurp-perl&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For other operating systems, you can use cpan install JSON LWP::UserAgent File::Slurp&lt;br /&gt;
&lt;br /&gt;
== If you don’t want to use the script ==&lt;br /&gt;
&lt;br /&gt;
When the client is joining the server, it makes the following request to the Fast-DL server: &amp;quot;GET /list&amp;quot; which may respond with something like id:name:hash.&lt;br /&gt;
After that, it sorts the files and starts to download them, as follows:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;http&amp;quot;&amp;gt;&lt;br /&gt;
GET /file/0&lt;br /&gt;
GET /file/1&lt;br /&gt;
GET /file/2&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also make your own script if you are a programmer.&lt;br /&gt;
&lt;br /&gt;
After launching the program, it takes the files automatically and puts them in the necessary directory of the web-server.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tip: You can check these files if you go to the link in your browser (if your &amp;quot;autoload&amp;quot; was enabled)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== RAGE Server ==&lt;br /&gt;
Finally, the last step is to edit the rage config. As you can read in the [https://wiki.rage.mp/index.php?title=Server_settings documentation], you need to insert the option “fastdl-host” in your config file.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;fastdl-host&amp;quot;: &amp;quot;domain&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Then restart the server.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION:  The Author of the article recommends syncing the files (executing ./main.pl) after each server restart.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= See also =&lt;br /&gt;
* [[Server settings]]&lt;br /&gt;
{{ScriptingTutorials}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Tutorials]]&lt;/div&gt;</summary>
		<author><name>Disinterpreter</name></author>
	</entry>
	<entry>
		<id>https://wiki.rage.mp/w/index.php?title=FastDL&amp;diff=19616</id>
		<title>FastDL</title>
		<link rel="alternate" type="text/html" href="https://wiki.rage.mp/w/index.php?title=FastDL&amp;diff=19616"/>
		<updated>2020-05-23T20:33:13Z</updated>

		<summary type="html">&lt;p&gt;Disinterpreter: oops. The mistake with an argument of nginx.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= FastDL =&lt;br /&gt;
FastDL is a technology which can receive files from another server. The major advantage of doing this is balancing the network.&lt;br /&gt;
&lt;br /&gt;
== Setting up FastDL ==&lt;br /&gt;
&lt;br /&gt;
For the first step, you need to &amp;quot;cook&amp;quot; the web server that will be distributing the files.&lt;br /&gt;
&lt;br /&gt;
You need to create a VirtualHost ( in nginx, we will call it &amp;quot;server&amp;quot; )&lt;br /&gt;
In the root of this VirtualHost, you need to make two directories. “file” and “list”.&lt;br /&gt;
&lt;br /&gt;
Here is an example configuration:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nginx&amp;quot;&amp;gt;&lt;br /&gt;
server {&lt;br /&gt;
        listen 80;&lt;br /&gt;
        listen [::]:80;&lt;br /&gt;
&lt;br /&gt;
        root /var/www/rage-cache;&lt;br /&gt;
&lt;br /&gt;
        index index.html index.htm index.nginx-debian.html;&lt;br /&gt;
        # server_name my.domain.com 127.0.0.1 other.domain.net;&lt;br /&gt;
        server_name IP;&lt;br /&gt;
        # use access log only for debug&lt;br /&gt;
        access_log /var/log/nginx/cache_acces;&lt;br /&gt;
        location / {&lt;br /&gt;
                autoindex on;&lt;br /&gt;
        }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&#039;&#039;Tip: You can use the &amp;quot;autoindex on&amp;quot; feature when setting up, this helps with debugging.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The next step isto place the files in the directory.&lt;br /&gt;
&lt;br /&gt;
== Script ==&lt;br /&gt;
The author of the article recommends using his script:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
wget https://raw.githubusercontent.com/Disinterpreter/rage-fastdl-manager/master/main.pl&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Making the config&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;host&amp;quot;: &amp;quot;http://serverip:22006&amp;quot;,&lt;br /&gt;
   &amp;quot;cache-path&amp;quot;: &amp;quot;/var/www/cache&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION:&#039;&#039;&#039; cache-path must contain the path to the root of your cache directory.&lt;br /&gt;
&lt;br /&gt;
Great! You have downloaded the script and written the config. Now you can turn on your server (if it was disabled) and then run our script with the command &amp;quot;sh ./main.pl&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pay attention: On a debian-like OS you need to install the following packages: libjson-perl libtest-lwp-useragent-perl libfile-slurp-perl&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For other operating systems, you can use cpan install JSON LWP::UserAgent File::Slurp&lt;br /&gt;
&lt;br /&gt;
== If you don’t want to use the script ==&lt;br /&gt;
&lt;br /&gt;
When the client is joining the server, it makes the following request to the Fast-DL server: &amp;quot;GET /list&amp;quot; which may respond with something like id:name:hash.&lt;br /&gt;
After that, it sorts the files and starts to download them, as follows:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;http&amp;quot;&amp;gt;&lt;br /&gt;
GET /file/0&lt;br /&gt;
GET /file/1&lt;br /&gt;
GET /file/2&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also make your own script if you are a programmer.&lt;br /&gt;
&lt;br /&gt;
After launching the program, it takes the files automatically and puts them in the necessary directory of the web-server.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tip: You can check these files if you go to the link in your browser (if your &amp;quot;autoload&amp;quot; was enabled)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== RAGE Server ==&lt;br /&gt;
Finally, the last step is to edit the rage config. As you can read in the [https://wiki.rage.mp/index.php?title=Server_settings documentation], you need to insert the option “fastdl-host” in your config file.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;fastdl-host&amp;quot;: &amp;quot;domain&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Then restart the server.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION:  The Author of the article recommends syncing the files (executing ./main.pl) after each server restart.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= See also =&lt;br /&gt;
* [[Server settings]]&lt;br /&gt;
{{ScriptingTutorials}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Tutorials]]&lt;/div&gt;</summary>
		<author><name>Disinterpreter</name></author>
	</entry>
	<entry>
		<id>https://wiki.rage.mp/w/index.php?title=FastDL&amp;diff=19605</id>
		<title>FastDL</title>
		<link rel="alternate" type="text/html" href="https://wiki.rage.mp/w/index.php?title=FastDL&amp;diff=19605"/>
		<updated>2020-05-18T08:30:34Z</updated>

		<summary type="html">&lt;p&gt;Disinterpreter: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= What is FastDL? =&lt;br /&gt;
FastDL is a technology which can receive files from another server. The major advantage of doing this is balancing the network.&lt;br /&gt;
&lt;br /&gt;
= FastDL in 0.3.7 =&lt;br /&gt;
Unlike  using FastDL with MTA or Counter Strike, when used with Rage it is slightly different, which makes the setup process  more difficult.&lt;br /&gt;
== Setting up FastDL ==&lt;br /&gt;
&lt;br /&gt;
For the first step, you need to &amp;quot;cook&amp;quot; the web server that will be distributing the files.&lt;br /&gt;
&lt;br /&gt;
You need to create a VirtualHost ( in nginx, we will call it &amp;quot;server&amp;quot; )&lt;br /&gt;
In the root of this VirtualHost, you need to make two directories. “file” and “list”.&lt;br /&gt;
&lt;br /&gt;
Here is an example configuration:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nginx&amp;quot;&amp;gt;&lt;br /&gt;
server {&lt;br /&gt;
        listen 80;&lt;br /&gt;
        listen [::]:80;&lt;br /&gt;
&lt;br /&gt;
        root /var/www/rage-cache;&lt;br /&gt;
&lt;br /&gt;
        index index.html index.htm index.nginx-debian.html;&lt;br /&gt;
        # server_name my.domain.com 127.0.0.1 other.domain.net;&lt;br /&gt;
        server_name IP;&lt;br /&gt;
        # use access log only for debug&lt;br /&gt;
        access_log /var/log/nginx/cache_acces;&lt;br /&gt;
        location / {&lt;br /&gt;
                autoindex on;&lt;br /&gt;
        }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&#039;&#039;Tip: You can use the &amp;quot;autoload on&amp;quot; feature when setting up, this helps with debugging.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The next step isto place the files in the directory.&lt;br /&gt;
&lt;br /&gt;
== Script ==&lt;br /&gt;
The author of the article recommends using his script:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
wget https://raw.githubusercontent.com/Disinterpreter/rage-fastdl-manager/master/main.pl&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Making the config&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;host&amp;quot;: &amp;quot;http://serverip:22006&amp;quot;,&lt;br /&gt;
   &amp;quot;cache-path&amp;quot;: &amp;quot;/var/www/cache&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION:&#039;&#039;&#039; cache-path must contain the path to the root of your cache directory.&lt;br /&gt;
&lt;br /&gt;
Great! You have downloaded the script and written the config. Now you can turn on your server (if it was disabled) and then run our script with the command &amp;quot;sh ./main.pl&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pay attention: On a debian-like OS you need to install the following packages: libjson-perl libtest-lwp-useragent-perl libfile-slurp-perl&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For other operating systems, you can use cpan install JSON LWP::UserAgent File::Slurp&lt;br /&gt;
&lt;br /&gt;
== If you don’t want to use the script ==&lt;br /&gt;
&lt;br /&gt;
When the client is joining the server, it makes the following request to the Fast-DL server: &amp;quot;GET /list&amp;quot; which may respond with something like id:name:hash.&lt;br /&gt;
After that, it sorts the files and starts to download them, as follows:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;http&amp;quot;&amp;gt;&lt;br /&gt;
GET /file/0&lt;br /&gt;
GET /file/1&lt;br /&gt;
GET /file/2&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also make your own script if you are a programmer.&lt;br /&gt;
&lt;br /&gt;
After launching the program, it takes the files automatically and puts them in the necessary directory of the web-server.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tip: You can check these files if you go to the link in your browser (if your &amp;quot;autoload&amp;quot; was enabled)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== RAGE Server ==&lt;br /&gt;
Finally, the last step is to edit the rage config. As you can read in the [https://wiki.rage.mp/index.php?title=Server_settings documentation], you need to insert the option “fastdl-host” in your config file.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    ...&lt;br /&gt;
    &amp;quot;fastdl-host&amp;quot;: IPADDRESS&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Then restart the server.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION:  The Author of the article recommends syncing the files (executing ./main.pl) after each server restart.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Known problems ==&lt;br /&gt;
The new client (prerelease branch or 1.0) does not work well with Fast-DL, but version 0.3.7 does work well.&lt;br /&gt;
&lt;br /&gt;
If you will be write your script, remember, GET /list receive only 2xx codes.&lt;br /&gt;
&lt;br /&gt;
= See also =&lt;br /&gt;
* [[Server settings]]&lt;br /&gt;
{{ScriptingTutorials}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Tutorials]]&lt;/div&gt;</summary>
		<author><name>Disinterpreter</name></author>
	</entry>
	<entry>
		<id>https://wiki.rage.mp/w/index.php?title=FastDL&amp;diff=19604</id>
		<title>FastDL</title>
		<link rel="alternate" type="text/html" href="https://wiki.rage.mp/w/index.php?title=FastDL&amp;diff=19604"/>
		<updated>2020-05-18T08:15:23Z</updated>

		<summary type="html">&lt;p&gt;Disinterpreter: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= What is FastDL? =&lt;br /&gt;
FastDL is a technology which can receive files from another server. The major advantage of doing this is balancing the network.&lt;br /&gt;
&lt;br /&gt;
= FastDL in 0.3.7 =&lt;br /&gt;
Unlike  usingFastDL with MTA or Counter Strike, when used with Rage it is slightly different, which makes the setup process  more difficult.&lt;br /&gt;
== Setting up FastDL ==&lt;br /&gt;
&lt;br /&gt;
For the first step, you need to &amp;quot;cook&amp;quot; the web server that will be distributing the files.&lt;br /&gt;
&lt;br /&gt;
You need to create a VirtualHost ( in nginx, we will call it &amp;quot;server&amp;quot; )&lt;br /&gt;
In the root of this VirtualHost, you need to make two directories. “file” and “list”.&lt;br /&gt;
&lt;br /&gt;
Here is an example configuration:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nginx&amp;quot;&amp;gt;&lt;br /&gt;
server {&lt;br /&gt;
        listen 80;&lt;br /&gt;
        listen [::]:80;&lt;br /&gt;
&lt;br /&gt;
        root /var/www/rage-cache;&lt;br /&gt;
&lt;br /&gt;
        index index.html index.htm index.nginx-debian.html;&lt;br /&gt;
        # server_name my.domain.com 127.0.0.1 other.domain.net;&lt;br /&gt;
        server_name IP;&lt;br /&gt;
        # use access log only for debug&lt;br /&gt;
        access_log /var/log/nginx/cache_acces;&lt;br /&gt;
        location / {&lt;br /&gt;
                autoindex on;&lt;br /&gt;
        }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&#039;&#039;Tip: You can use the &amp;quot;autoload on&amp;quot; feature when setting up, this helps with debugging.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The next step isto place the files in the directory.&lt;br /&gt;
&lt;br /&gt;
== Script ==&lt;br /&gt;
The author of the article recommends using his script:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
wget https://raw.githubusercontent.com/Disinterpreter/rage-fastdl-manager/master/main.pl&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Making the config&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;host&amp;quot;: &amp;quot;http://serverip:22006&amp;quot;,&lt;br /&gt;
   &amp;quot;cache-path&amp;quot;: &amp;quot;/var/www/cache&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION:&#039;&#039;&#039; cache-path must contain the path to the root of your cache directory.&lt;br /&gt;
&lt;br /&gt;
Great! You have downloaded the script and written the config. Now you can turn on your server (if it was disabled) and then run our script with the command &amp;quot;sh ./main.pl&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pay attention: On a debian-like OS you need to install the following packages: libjson-perl libtest-lwp-useragent-perl libfile-slurp-perl&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For other operating systems, you can use cpan install JSON LWP::UserAgent File::Slurp&lt;br /&gt;
&lt;br /&gt;
== If you don’t want to use the script ==&lt;br /&gt;
&lt;br /&gt;
When the client is joining the server, it makes the following request to the Fast-DL server: &amp;quot;GET /list&amp;quot; which may respond with something like id:name:hash.&lt;br /&gt;
After that, it sorts the files and starts to download them, as follows:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;http&amp;quot;&amp;gt;&lt;br /&gt;
GET /file/0&lt;br /&gt;
GET /file/1&lt;br /&gt;
GET /file/2&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also make your own script if you are a programmer.&lt;br /&gt;
&lt;br /&gt;
After launching the program, it takes the files automatically and puts them in the necessary directory of the web-server.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tip: You can check these files if you go to the link in your browser (if your &amp;quot;autoload&amp;quot; was enabled)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== RAGE Server ==&lt;br /&gt;
Finally, the last step is to edit the rage config. As you can read in the [https://wiki.rage.mp/index.php?title=Server_settings documentation], you need to insert the option “fastdl-host” in your config file.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    ...&lt;br /&gt;
    &amp;quot;fastdl-host&amp;quot;: IPADDRESS&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Then restart the server.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION:  The Author of the article recommends syncing the files (executing ./main.pl) after each server restart.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Known problems ==&lt;br /&gt;
The new client (prerelease branch or 1.0) does not work well with Fast-DL, but version 0.3.7 does work well.&lt;br /&gt;
&lt;br /&gt;
If you will be write your script, remember, GET /list receive only 2xx codes.&lt;br /&gt;
&lt;br /&gt;
= See also =&lt;br /&gt;
* [[Server settings]]&lt;br /&gt;
{{ScriptingTutorials}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Tutorials]]&lt;/div&gt;</summary>
		<author><name>Disinterpreter</name></author>
	</entry>
	<entry>
		<id>https://wiki.rage.mp/w/index.php?title=FastDL&amp;diff=19603</id>
		<title>FastDL</title>
		<link rel="alternate" type="text/html" href="https://wiki.rage.mp/w/index.php?title=FastDL&amp;diff=19603"/>
		<updated>2020-05-18T08:13:54Z</updated>

		<summary type="html">&lt;p&gt;Disinterpreter: Created page with &amp;quot;= What is FastDL? = FastDL is a technology which can receive files from another server. The major advantage of doing this is balancing the network.  = FastDL in 0.3.7 = Unlike...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= What is FastDL? =&lt;br /&gt;
FastDL is a technology which can receive files from another server. The major advantage of doing this is balancing the network.&lt;br /&gt;
&lt;br /&gt;
= FastDL in 0.3.7 =&lt;br /&gt;
Unlike  usingFastDL with MTA or Counter Strike, when used with Rage it is slightly different, which makes the setup process  more difficult.&lt;br /&gt;
== Setting up FastDL ==&lt;br /&gt;
&lt;br /&gt;
For the first step, you need to &amp;quot;cook&amp;quot; the web server that will be distributing the files.&lt;br /&gt;
&lt;br /&gt;
You need to create a VirtualHost ( in nginx, we will call it &amp;quot;server&amp;quot; )&lt;br /&gt;
In the root of this VirtualHost, you need to make two directories. “file” and “list”.&lt;br /&gt;
&lt;br /&gt;
Here is an example configuration:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nginx&amp;quot;&amp;gt;&lt;br /&gt;
server {&lt;br /&gt;
        listen 80;&lt;br /&gt;
        listen [::]:80;&lt;br /&gt;
&lt;br /&gt;
        root /var/www/rage-cache;&lt;br /&gt;
&lt;br /&gt;
        index index.html index.htm index.nginx-debian.html;&lt;br /&gt;
        # server_name my.domain.com 127.0.0.1 other.domain.net;&lt;br /&gt;
        server_name IP;&lt;br /&gt;
        # use access log only for debug&lt;br /&gt;
        access_log /var/log/nginx/cache_acces;&lt;br /&gt;
        location / {&lt;br /&gt;
                autoindex on;&lt;br /&gt;
        }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&#039;&#039;Tip: You can use the &amp;quot;autoload on&amp;quot; feature when setting up, this helps with debugging.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The next step isto place the files in the directory.&lt;br /&gt;
&lt;br /&gt;
== Script ==&lt;br /&gt;
The author of the article recommends using his script:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
wget https://raw.githubusercontent.com/Disinterpreter/rage-fastdl-manager/master/main.pl&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Making the config&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
   &amp;quot;host&amp;quot;: &amp;quot;http://serverip:22006&amp;quot;,&lt;br /&gt;
   &amp;quot;cache-path&amp;quot;: &amp;quot;/var/www/cache&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION:&#039;&#039;&#039; cache-path must contain the path to the root of your cache directory.&lt;br /&gt;
&lt;br /&gt;
Great! You have downloaded the script and written the config. Now you can turn on your server (if it was disabled) and then run our script with the command &amp;quot;sh ./main.pl&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pay attention: On a debian-like OS you need to install the following packages: libjson-perl libtest-lwp-useragent-perl libfile-slurp-perl&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For other operating systems, you can use cpan install JSON LWP::UserAgent File::Slurp&lt;br /&gt;
&lt;br /&gt;
== If you don’t want to use the script ==&lt;br /&gt;
&lt;br /&gt;
When the client is joining the server, it makes the following request to the Fast-DL server: &amp;quot;GET /list&amp;quot; which may respond with something like id:name:hash.&lt;br /&gt;
After that, it sorts the files and starts to download them, as follows:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;http&amp;quot;&amp;gt;&lt;br /&gt;
GET /file/0&lt;br /&gt;
GET /file/1&lt;br /&gt;
GET /file/2&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also make your own script if you are a programmer.&lt;br /&gt;
&lt;br /&gt;
After launching the program, it takes the files automatically and puts them in the necessary directory of the web-server.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tip: You can check these files if you go to the link in your browser (if your &amp;quot;autoload&amp;quot; was enabled)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Finally, the last step is to edit the rage config. As you can read in the [https://wiki.rage.mp/index.php?title=Server_settings documentation], you need to insert the option “fastdl-host” in your config file.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    ...&lt;br /&gt;
    &amp;quot;fastdl-host&amp;quot;: IPADDRESS&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Then restart the server.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION:  The Author of the article recommends syncing the files (executing ./main.pl) after each server restart.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Known problems ==&lt;br /&gt;
The new client (prerelease branch or 1.0) does not work well with Fast-DL, but version 0.3.7 does work well.&lt;br /&gt;
&lt;br /&gt;
If you will be write your script, remember, GET /list receive only 2xx codes.&lt;br /&gt;
&lt;br /&gt;
= See also =&lt;br /&gt;
* [[Server settings]]&lt;br /&gt;
{{ScriptingTutorials}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Tutorials]]&lt;/div&gt;</summary>
		<author><name>Disinterpreter</name></author>
	</entry>
	<entry>
		<id>https://wiki.rage.mp/w/index.php?title=Getting_Started_with_Server&amp;diff=18068</id>
		<title>Getting Started with Server</title>
		<link rel="alternate" type="text/html" href="https://wiki.rage.mp/w/index.php?title=Getting_Started_with_Server&amp;diff=18068"/>
		<updated>2019-09-18T10:46:32Z</updated>

		<summary type="html">&lt;p&gt;Disinterpreter: some people don&amp;#039;t understand this part&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
This brief tutorial will show you how to run your server on both Windows and Linux distributions.&lt;br /&gt;
&lt;br /&gt;
By default, the server makes use of port 22005 UDP for server access and the port after (here 22006) for the HTTP server hosting the client packages for the clients to download from.&amp;lt;br&amp;gt;      &lt;br /&gt;
So make sure to have done the ports forwarding on your router process and have also unblocked the ports on your firewall before running the server. &lt;br /&gt;
&lt;br /&gt;
=Bridge=&lt;br /&gt;
The following tutorial is found on [https://wiki.gtanet.work/index.php?title=Setting_up_the_Bridge_on_Linux/Windows Setting up the Bridge on Linux/Windows].&lt;br /&gt;
&lt;br /&gt;
=Windows=&lt;br /&gt;
==Prerequisite==&lt;br /&gt;
For a hassle-free installation and operation, it is recommended to have the latest VC Redist.&lt;br /&gt;
&lt;br /&gt;
[https://aka.ms/vs/15/release/VC_redist.x64.exe Microsoft Visual C++ Redistributable 2017]&lt;br /&gt;
&lt;br /&gt;
==Setting up the server==&lt;br /&gt;
1. Download the latest [https://cdn.rage.mp/client/updater.exe updater.exe].&lt;br /&gt;
: &#039;&#039;&#039;Note:&#039;&#039;&#039; Server files are also already included with installation of RAGE-MP Client for Windows.&lt;br /&gt;
&lt;br /&gt;
2. Run the downloaded &#039;&#039;&#039;updater.exe&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
3. Launch &#039;&#039;&#039;server-files/server.exe&#039;&#039;&#039; and you should be able to connect to it (default local host IP: &#039;&#039;&#039;127.0.0.1:22005&#039;&#039;&#039;).&lt;br /&gt;
: Read more about [https://wiki.rage.mp/index.php?title=Server_settings Server Settings]. &lt;br /&gt;
&lt;br /&gt;
==Next step==&lt;br /&gt;
[[Getting Started with Development]]&lt;br /&gt;
&lt;br /&gt;
=Linux=&lt;br /&gt;
==Prerequisite==&lt;br /&gt;
===Ubuntu===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test&lt;br /&gt;
sudo apt update &amp;amp;&amp;amp; sudo apt install libstdc++6&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Debian===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
echo &#039;deb http://httpredir.debian.org/debian testing main contrib non-free&#039; &amp;gt; /etc/apt/sources.list&lt;br /&gt;
apt update &amp;amp;&amp;amp; apt install -y -t testing libstdc++6&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Setting up server==&lt;br /&gt;
This bash snippet should automate the server installation.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Downloading server&lt;br /&gt;
wget https://cdn.rage.mp/lin/ragemp-srv-037.tar.gz&lt;br /&gt;
&lt;br /&gt;
# Extract the server files&lt;br /&gt;
tar -xzf ragemp-srv-037.tar.gz&lt;br /&gt;
&lt;br /&gt;
# Accessing the directory&lt;br /&gt;
cd ragemp-srv&lt;br /&gt;
&lt;br /&gt;
# Set executable permission&lt;br /&gt;
chmod +x server&lt;br /&gt;
&lt;br /&gt;
# Run the server&lt;br /&gt;
./server&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Launching the server as a daemon (systemd)==&lt;br /&gt;
If you want to launch the server as a daemon on the latest version of Ubuntu/Debian/CentOS, you need to follow these steps:&lt;br /&gt;
 &lt;br /&gt;
1. We recommend move your server to /opt&lt;br /&gt;
e.g &#039;&#039;&#039;mv ./ragemp-srv /opt/&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
2. Create the systemd unit (e.g /etc/systemd/system/rageserv.service) and enter this config:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=RAGE-MP Dedicated server&lt;br /&gt;
After=network.target&lt;br /&gt;
StartLimitIntervalSec=0&lt;br /&gt;
 &lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
Restart=always&lt;br /&gt;
RestartSec=1&lt;br /&gt;
; not safe, change root to another user&lt;br /&gt;
User=root&lt;br /&gt;
WorkingDirectory=/opt/ragemp-srv&lt;br /&gt;
ExecStart=/opt/ragemp-srv/server&lt;br /&gt;
 &lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important: If you have not moved the directory, you need to edit WorkingDirectory and ExecStart with new absolute paths.&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
3. After saving the new unit we recommend you to update your systemd unit&#039;s list.&lt;br /&gt;
 &lt;br /&gt;
4. Finally! Now you can enable and run the unit via these commands:&lt;br /&gt;
#  systemctl enable rageserv&lt;br /&gt;
#  systemctl start rageserv&lt;br /&gt;
 &lt;br /&gt;
If you want to watch status of your server you need enter:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
systemctl status rageserv&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to restart your server you need to enter:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
systemctl restart rageserv&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
More commands and other details can be found [https://www.freedesktop.org/software/systemd/man/systemctl.html#Unit%20File%20Commands here.]&lt;br /&gt;
&lt;br /&gt;
==Installing screen (Optional)==&lt;br /&gt;
For running the server in the background, we recommend using screen, mainly for its ease of use.&lt;br /&gt;
&lt;br /&gt;
===Debian based (Ubuntu &amp;amp; derivatives)===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt-get install screen&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===CentOS 6.x/7.x===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
yum install screen&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Starting the server===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
screen -dmS GTASERVER -L bash -c &#039;cd ~/srv &amp;amp;&amp;amp; ./server&#039; &amp;amp;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;Parameter explanation:&amp;lt;/u&amp;gt;&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; inline&amp;gt;screen -dmS&amp;lt;/syntaxhighlight&amp;gt; starts a separate shell without directly opening an interface towards it (detached mode). The &amp;lt;tt&amp;gt;S&amp;lt;/tt&amp;gt; param defines a session name for the newly created session (in this case &amp;lt;code&amp;gt;GTASERVER&amp;lt;/code&amp;gt;), so that it is easier to manage in the future.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; inline&amp;gt;screen -L&amp;lt;/syntaxhighlight&amp;gt; basically logs whatever error that is shown by the server through the separate shell into a file for easier reference in the future.&lt;br /&gt;
&#039;&#039;&#039;!IMPORTANT!&#039;&#039;&#039;&lt;br /&gt;
* Log output will be saved as &amp;lt;code&amp;gt;screenlog.&#039;&#039;_number_&#039;&#039;&amp;lt;/code&amp;gt; in the server directory.&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; &#039;&#039;&#039;IS IMPORTANT&#039;&#039;&#039; IF YOU WANT TO TERMINATE THE PROCESS GRACEFULLY.&lt;br /&gt;
&lt;br /&gt;
===Stopping the server===&lt;br /&gt;
There are usually two ways to stop the server; One that we call a &#039;&#039;&#039;graceful&#039;&#039;&#039; shutdown that sends the server a signal for termination and the other, well, a &#039;&#039;&#039;crash&#039;&#039;&#039; since it does not allow the code to run through the termination process correctly.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RECOMMENDED:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
kill $(ps h --ppid $(screen -ls | grep GTASERVER | cut -d. -f1) -o pid)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOT RECOMMENDED:&#039;&#039;&#039; It does not shut down the server gracefully&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
screen -S GTASERVER -X quit &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Troubleshooting=&lt;br /&gt;
==Linux==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./server: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.22&#039; not found (required by ./server)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make sure GCC/G++ 6 or newer is installed, follow the [[#Prerequisite_2|Prerequisite]].&lt;br /&gt;
&lt;br /&gt;
= See also =&lt;br /&gt;
* [[Server settings]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Tutorials]]&lt;/div&gt;</summary>
		<author><name>Disinterpreter</name></author>
	</entry>
	<entry>
		<id>https://wiki.rage.mp/w/index.php?title=Getting_Started_with_Server&amp;diff=16868</id>
		<title>Getting Started with Server</title>
		<link rel="alternate" type="text/html" href="https://wiki.rage.mp/w/index.php?title=Getting_Started_with_Server&amp;diff=16868"/>
		<updated>2019-02-10T20:31:19Z</updated>

		<summary type="html">&lt;p&gt;Disinterpreter: linux daemon&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
This brief tutorial will show you how to run your server on both Windows and Linux distributions.&lt;br /&gt;
&lt;br /&gt;
By default, the server makes use of port 22005 UDP for server access and the port after (here 22006) for the HTTP server hosting the client packages for the clients to download from.&amp;lt;br&amp;gt;      &lt;br /&gt;
So make sure to have done the ports forwarding on your router process and have also unblocked the ports on your firewall before running the server. &lt;br /&gt;
&lt;br /&gt;
=Bridge=&lt;br /&gt;
The following tutorial is found on [https://wiki.gtanet.work/index.php?title=Setting_up_the_Bridge_on_Linux/Windows Setting up the Bridge on Linux/Windows].&lt;br /&gt;
&lt;br /&gt;
=Windows=&lt;br /&gt;
==Prerequisite==&lt;br /&gt;
For a hassle-free installation and operation, it is recommended to have the latest VC Redist.&lt;br /&gt;
&lt;br /&gt;
[https://aka.ms/vs/15/release/VC_redist.x64.exe Microsoft Visual C++ Redistributable 2017]&lt;br /&gt;
&lt;br /&gt;
==Setting up the server==&lt;br /&gt;
1. Download the latest [https://cdn.rage.mp/client/updater.exe updater.exe].&lt;br /&gt;
&lt;br /&gt;
2. Run the downloaded &#039;&#039;&#039;updater.exe&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
3. Launch &#039;&#039;&#039;server.exe&#039;&#039;&#039; and you should be able to connect to it. &lt;br /&gt;
&lt;br /&gt;
=Linux=&lt;br /&gt;
==Prerequisite==&lt;br /&gt;
===Ubuntu===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test&lt;br /&gt;
sudo apt update &amp;amp;&amp;amp; sudo apt install libstdc++6&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Debian===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
echo &#039;deb http://httpredir.debian.org/debian testing main contrib non-free&#039; &amp;gt; /etc/apt/sources.list&lt;br /&gt;
apt update &amp;amp;&amp;amp; apt install -y -t testing libstdc++6&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Setting up server==&lt;br /&gt;
This bash snippet should automate the server installation.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Downloading server&lt;br /&gt;
wget https://cdn.rage.mp/lin/ragemp-srv-037.tar.gz&lt;br /&gt;
&lt;br /&gt;
# Extract the server files&lt;br /&gt;
tar -xzf ragemp-srv-037.tar.gz&lt;br /&gt;
&lt;br /&gt;
# Accessing the directory&lt;br /&gt;
cd ragemp-srv&lt;br /&gt;
&lt;br /&gt;
# Set executable permission&lt;br /&gt;
chmod +x server&lt;br /&gt;
&lt;br /&gt;
# Run the server&lt;br /&gt;
./server&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==Launching the server as a daemon (systemd)==&lt;br /&gt;
If you want to launch the server as a daemon on the latest version of Ubuntu/Debian/CentOS, you need to follow these steps:&lt;br /&gt;
 &lt;br /&gt;
1. We recommend move your server to /opt&lt;br /&gt;
e.g &#039;&#039;&#039;mv ./ragemp-srv /opt/&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
2. Create the systemd unit and enter this config:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=RAGE-MP Dedicated server&lt;br /&gt;
After=network.target&lt;br /&gt;
StartLimitIntervalSec=0&lt;br /&gt;
 &lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
Restart=always&lt;br /&gt;
RestartSec=1&lt;br /&gt;
; not safe, change root to another user&lt;br /&gt;
User=root&lt;br /&gt;
WorkingDirectory=/opt/ragemp-srv&lt;br /&gt;
ExecStart=/opt/ragemp-srv/server&lt;br /&gt;
 &lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Important: If you have not moved the directory, you need to edit WorkingDirectory and ExecStart with new absolute paths.&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
3. After saving the new unit we recommend you to update your systemd unit&#039;s list.&lt;br /&gt;
 &lt;br /&gt;
4. Finally! Now you can enable and run the unit via these commands:&lt;br /&gt;
#  systemctl enable rageserv&lt;br /&gt;
#  systemctl start rageserv&lt;br /&gt;
 &lt;br /&gt;
If you want to watch status of your server you need enter: &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;systemctl status rageserv&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
If you want to restart your server you need to enter: &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;systemctl restart rageserv&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
More commands and other details can be found [https://www.freedesktop.org/software/systemd/man/systemctl.html#Unit%20File%20Commands here.]&lt;br /&gt;
&lt;br /&gt;
==Installing screen (Optional)==&lt;br /&gt;
For running the server in the background, we recommend using screen, mainly for its ease of use.&lt;br /&gt;
&lt;br /&gt;
===Debian based (Ubuntu &amp;amp; derivatives)===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt-get install screen&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===CentOS 6.x/7.x===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
yum install screen&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Starting the server===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
screen -dmS GTASERVER -L bash -c &#039;cd ~/srv &amp;amp;&amp;amp; ./server&#039; &amp;amp;&lt;br /&gt;
&lt;br /&gt;
# Parameter explanation&lt;br /&gt;
# screen -dmS = starts a separate shell without directly opening an interface towards it (detached mode). The S param defines a session name for the newly created session, so that it is easier to manage in the future.&lt;br /&gt;
# screen -L = basically logs whatever error that is shown by the server through the separate shell into a file for easier reference in the future.&lt;br /&gt;
# !IMPORTANT!&lt;br /&gt;
# Log output will be saved as screenlog._number_ in the server directory.&lt;br /&gt;
# &amp;amp;: IS IMPORTANT IF YOU WANT TO TERMINATE THE PROCESS GRACEFULLY&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Stopping the server===&lt;br /&gt;
There&#039;s usually two ways to stop the server; One that we call a &#039;&#039;&#039;graceful&#039;&#039;&#039; shutdown that sends the server a signal for termination and the other, well, a &#039;&#039;&#039;crash&#039;&#039;&#039; since it does not allow the code to run through the termination process correctly.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RECOMMENDED:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
kill $(ps h --ppid $(screen -ls | grep GTASERVER | cut -d. -f1) -o pid)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOT RECOMMENDED:&#039;&#039;&#039; It does not shut down the server gracefully&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
screen -S GTASERVER -X quit &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Troubleshooting=&lt;br /&gt;
==Linux==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./server: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.22&#039; not found (required by ./server)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make sure GCC/G++ 6 or newer is installed, follow the [[Getting_Started_with_Server#Prerequisite|Prerequisite]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Tutorials]]&lt;/div&gt;</summary>
		<author><name>Disinterpreter</name></author>
	</entry>
</feed>