<?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=DeepNeeL</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=DeepNeeL"/>
	<link rel="alternate" type="text/html" href="https://wiki.rage.mp/wiki/Special:Contributions/DeepNeeL"/>
	<updated>2026-06-03T21:46:39Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.40.0</generator>
	<entry>
		<id>https://wiki.rage.mp/w/index.php?title=Server_settings&amp;diff=16055</id>
		<title>Server settings</title>
		<link rel="alternate" type="text/html" href="https://wiki.rage.mp/w/index.php?title=Server_settings&amp;diff=16055"/>
		<updated>2018-11-04T21:02:47Z</updated>

		<summary type="html">&lt;p&gt;DeepNeeL: /* Settings */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* &#039;&#039;&#039;conf.json -&#039;&#039;&#039; is a configuration file which allows you manage your server easily.&lt;br /&gt;
&lt;br /&gt;
== Settings ==&lt;br /&gt;
The following table will explain the use of the following settings:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Setting !! Default value !! Description&lt;br /&gt;
|-&lt;br /&gt;
| announce || false || Announce to the master server so people can see you in their server browser.&lt;br /&gt;
|-&lt;br /&gt;
| bind|| 127.0.0.1 || The IP to listen to.&lt;br /&gt;
|-&lt;br /&gt;
| gamemode|| Freeroam || The server&#039;s gamemode.&lt;br /&gt;
|-&lt;br /&gt;
| encryption|| false|| Whether the connection to the server will be encrypted or not.&lt;br /&gt;
|-&lt;br /&gt;
| maxplayers || 100 || Maximum number of players your server will hold.&lt;br /&gt;
|-&lt;br /&gt;
| name || RAGE:MP Unofficial server || Server name that will be displayed to the master server.&lt;br /&gt;
|-&lt;br /&gt;
| stream-distance || 500.0 || The distance on the X,Y plane which server entities will stream in for connected players.&lt;br /&gt;
|-&lt;br /&gt;
| port || 22005 || The port that the server will use. The server uses both UDP and TCP protocols.&amp;lt;br/&amp;gt;The port after that one (&#039;&#039;port + 1&#039;&#039;, so 22006 by default) will be used for the HTTP server that hosts the client packages for the clients to download from.&lt;br /&gt;
|-&lt;br /&gt;
| disallow-multiple-connections-per-ip|| false|| Allows (false) or disallows (true) multiple players to connect from the same IP address&lt;br /&gt;
|-&lt;br /&gt;
| limit-time-of-connections-per-ip|| 0|| Maximum time a player can try to reconnect before getting timeout&lt;br /&gt;
|-&lt;br /&gt;
| url|| || Website URL.&lt;br /&gt;
|-&lt;br /&gt;
| language|| en|| Server&#039;s language&lt;br /&gt;
|-&lt;br /&gt;
| sync-rate|| 40|| This number indicates how many times per second the server has to synchronize its entities&lt;br /&gt;
|-&lt;br /&gt;
| resource-scan-thread-limit|| || Indicates the maximum number of threads used for resource scanning&lt;br /&gt;
|-&lt;br /&gt;
| max-ping|| || Maximum Ping accepted for the server&lt;br /&gt;
|-&lt;br /&gt;
| min-fps|| || Minimum FPS required for the server&lt;br /&gt;
|-&lt;br /&gt;
| max-packet-loss|| || Maximum Packet loss accepted in the server&lt;br /&gt;
|-&lt;br /&gt;
| allow-cef-debugging || || Whether the client can (true) or not (false) debug the server&#039;s CEF pages&lt;br /&gt;
|-&lt;br /&gt;
| csharp || false||  If your server will be using the C# bridge plugin set it to true, else don&#039;t add this line&lt;br /&gt;
|-&lt;br /&gt;
| enable-http-security|| false||  When set to true, enables an extra security layer to avoid the server being flooded by fake HTTP requests&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| voice-chat || || boolean true / false&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| allow-voice-chat-input || || (only available via registry at the moment); default value: 1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| voice-chat-sample-rate || || allowed values are 8000, 16000, 24000, 48000&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Sample file ==&lt;br /&gt;
&lt;br /&gt;
This is an example of &#039;&#039;&#039;conf.json&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;announce&amp;quot;: false,&lt;br /&gt;
        &amp;quot;bind&amp;quot;: &amp;quot;127.0.0.1&amp;quot;,&lt;br /&gt;
        &amp;quot;gamemode&amp;quot;: &amp;quot;freeroam&amp;quot;, &lt;br /&gt;
        &amp;quot;name&amp;quot;: &amp;quot;RAGE:MP Unofficial server&amp;quot;, &lt;br /&gt;
        &amp;quot;maxplayers&amp;quot;: 100,&lt;br /&gt;
        &amp;quot;port&amp;quot;: 22005,&lt;br /&gt;
        &amp;quot;streamdistance&amp;quot;: 500.0&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Category:Reference]]&lt;/div&gt;</summary>
		<author><name>DeepNeeL</name></author>
	</entry>
	<entry>
		<id>https://wiki.rage.mp/w/index.php?title=Player::setProp&amp;diff=15808</id>
		<title>Player::setProp</title>
		<link rel="alternate" type="text/html" href="https://wiki.rage.mp/w/index.php?title=Player::setProp&amp;diff=15808"/>
		<updated>2018-09-29T00:52:32Z</updated>

		<summary type="html">&lt;p&gt;DeepNeeL: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This function set prop for player.&lt;br /&gt;
== Syntax ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
player.setProp(Number propID, Number drawable, Number texture)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Props:&lt;br /&gt;
* 0 - Helmets, hats, earphones, masks&lt;br /&gt;
* 1 - Glasses&lt;br /&gt;
* 2 - Ear accessories&lt;br /&gt;
* 6 - Watches&lt;br /&gt;
* 7 - bracelets&lt;br /&gt;
&lt;br /&gt;
Check https://wiki.gt-mp.net/index.php?title=Character_Components for a gallery of possible props&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
This example changes props.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
mp.events.add(&#039;playerCommand&#039;, (player, command) =&amp;gt; {&lt;br /&gt;
  let arr = command.split(&#039; &#039;);&lt;br /&gt;
  if (arr[0] == &#039;setprop&#039;) {&lt;br /&gt;
    if (arr.length &amp;lt; 4 || !parseInt(arr[1]) || !parseInt(arr[2]) || !parseInt(arr[3])) {&lt;br /&gt;
      return player.outputChatBox(&#039;Use syntax: /setprop [prop_id] [drawable_id] [texture_id]&#039;);&lt;br /&gt;
    } else {&lt;br /&gt;
      player.setProp(parseInt(arr[1]), parseInt(arr[2]), parseInt(arr[3]));&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
{{Player_block}}&lt;/div&gt;</summary>
		<author><name>DeepNeeL</name></author>
	</entry>
	<entry>
		<id>https://wiki.rage.mp/w/index.php?title=Player::setProp&amp;diff=15807</id>
		<title>Player::setProp</title>
		<link rel="alternate" type="text/html" href="https://wiki.rage.mp/w/index.php?title=Player::setProp&amp;diff=15807"/>
		<updated>2018-09-29T00:51:53Z</updated>

		<summary type="html">&lt;p&gt;DeepNeeL: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This function set prop for player.&lt;br /&gt;
== Syntax ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
player.setProp(Number propID, Number drawable, Number texture)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Props:&lt;br /&gt;
* 0 - Helmets, hats, earphones, masks&lt;br /&gt;
* 1 - Glasses&lt;br /&gt;
* 2 - Ear accessories&lt;br /&gt;
* 6 - Watches (male watches : https://wiki.gt-mp.net/index.php?title=Watches_Male female watches : https://wiki.gt-mp.net/index.php?title=Watches_Female)&lt;br /&gt;
* 7 - bracelets&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
This example changes props.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
mp.events.add(&#039;playerCommand&#039;, (player, command) =&amp;gt; {&lt;br /&gt;
  let arr = command.split(&#039; &#039;);&lt;br /&gt;
  if (arr[0] == &#039;setprop&#039;) {&lt;br /&gt;
    if (arr.length &amp;lt; 4 || !parseInt(arr[1]) || !parseInt(arr[2]) || !parseInt(arr[3])) {&lt;br /&gt;
      return player.outputChatBox(&#039;Use syntax: /setprop [prop_id] [drawable_id] [texture_id]&#039;);&lt;br /&gt;
    } else {&lt;br /&gt;
      player.setProp(parseInt(arr[1]), parseInt(arr[2]), parseInt(arr[3]));&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
{{Player_block}}&lt;/div&gt;</summary>
		<author><name>DeepNeeL</name></author>
	</entry>
	<entry>
		<id>https://wiki.rage.mp/w/index.php?title=Player::setProp&amp;diff=15806</id>
		<title>Player::setProp</title>
		<link rel="alternate" type="text/html" href="https://wiki.rage.mp/w/index.php?title=Player::setProp&amp;diff=15806"/>
		<updated>2018-09-29T00:50:01Z</updated>

		<summary type="html">&lt;p&gt;DeepNeeL: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This function set prop for player.&lt;br /&gt;
== Syntax ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
player.setProp(Number propID, Number drawable, Number texture)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Props:&lt;br /&gt;
* 0 - Helmets, hats, earphones, masks&lt;br /&gt;
* 1 - Glasses&lt;br /&gt;
* 2 - Ear accessories&lt;br /&gt;
* 6 - Watches&lt;br /&gt;
* 7 - bracelets&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
This example changes props.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
mp.events.add(&#039;playerCommand&#039;, (player, command) =&amp;gt; {&lt;br /&gt;
  let arr = command.split(&#039; &#039;);&lt;br /&gt;
  if (arr[0] == &#039;setprop&#039;) {&lt;br /&gt;
    if (arr.length &amp;lt; 4 || !parseInt(arr[1]) || !parseInt(arr[2]) || !parseInt(arr[3])) {&lt;br /&gt;
      return player.outputChatBox(&#039;Use syntax: /setprop [prop_id] [drawable_id] [texture_id]&#039;);&lt;br /&gt;
    } else {&lt;br /&gt;
      player.setProp(parseInt(arr[1]), parseInt(arr[2]), parseInt(arr[3]));&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
{{Player_block}}&lt;/div&gt;</summary>
		<author><name>DeepNeeL</name></author>
	</entry>
	<entry>
		<id>https://wiki.rage.mp/w/index.php?title=Player::setClothes&amp;diff=15805</id>
		<title>Player::setClothes</title>
		<link rel="alternate" type="text/html" href="https://wiki.rage.mp/w/index.php?title=Player::setClothes&amp;diff=15805"/>
		<updated>2018-09-29T00:49:18Z</updated>

		<summary type="html">&lt;p&gt;DeepNeeL: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This function set clothing for player.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;palette&#039;&#039;&#039; = 2&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Looks like this function can&#039;t handle drawable over 255 ! If you need, I suggest you to use player.data &amp;amp; entityDataChange + entityStreamIn events so you can set it client-side with setComponentVariation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Syntax ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
player.setClothes(Number componentNumber, Number drawable, Number texture, Number palette)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
List of components:&lt;br /&gt;
* 0 - Head&lt;br /&gt;
* 1 - Beard&lt;br /&gt;
* 2 - Hair&lt;br /&gt;
* 3 - Torso&lt;br /&gt;
* 4 - Legs&lt;br /&gt;
* 5 - Hands&lt;br /&gt;
* 6 - Foot&lt;br /&gt;
* 7 - Eyes&lt;br /&gt;
* 8 - Accessories like parachute, scuba tank&lt;br /&gt;
* 9 - Accessories like bags, mask, scuba mask&lt;br /&gt;
* 10- Decals and mask&lt;br /&gt;
* 11 - Auxiliary parts for torso&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
This example changes clothes.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
mp.events.add(&#039;playerCommand&#039;, (player, command) =&amp;gt; {&lt;br /&gt;
  let arr = command.split(&#039; &#039;);&lt;br /&gt;
  if (arr[0] == &#039;setclothes&#039;) {&lt;br /&gt;
    if (arr.length &amp;lt; 5 || parseInt(arr[1]) === undefined || parseInt(arr[2]) === undefined || parseInt(arr[3]) === undefined || parseInt(arr[4]) === undefined) {&lt;br /&gt;
      return player.outputChatBox(&#039;Use syntax: /setclothes [component_id] [drawable_id] [texture_id] [palette_id]&#039;);&lt;br /&gt;
    } else {&lt;br /&gt;
      player.setClothes(parseInt(arr[1]), parseInt(arr[2]), parseInt(arr[3]), parseInt(arr[4]));&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
{{Player_block}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Clothes]]&lt;/div&gt;</summary>
		<author><name>DeepNeeL</name></author>
	</entry>
	<entry>
		<id>https://wiki.rage.mp/w/index.php?title=Player::setProp&amp;diff=15804</id>
		<title>Player::setProp</title>
		<link rel="alternate" type="text/html" href="https://wiki.rage.mp/w/index.php?title=Player::setProp&amp;diff=15804"/>
		<updated>2018-09-29T00:47:28Z</updated>

		<summary type="html">&lt;p&gt;DeepNeeL: /* Syntax */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This function set prop for player.&lt;br /&gt;
== Syntax ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
player.setProp(Number propID, Number drawable, Number texture)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Props:&lt;br /&gt;
* 0 - Helmets, hats, earphones, masks&lt;br /&gt;
* 1 - Glasses&lt;br /&gt;
* 2 - Ear accessories&lt;br /&gt;
* 6 - Watches&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
This example changes props.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
mp.events.add(&#039;playerCommand&#039;, (player, command) =&amp;gt; {&lt;br /&gt;
  let arr = command.split(&#039; &#039;);&lt;br /&gt;
  if (arr[0] == &#039;setprop&#039;) {&lt;br /&gt;
    if (arr.length &amp;lt; 4 || !parseInt(arr[1]) || !parseInt(arr[2]) || !parseInt(arr[3])) {&lt;br /&gt;
      return player.outputChatBox(&#039;Use syntax: /setprop [prop_id] [drawable_id] [texture_id]&#039;);&lt;br /&gt;
    } else {&lt;br /&gt;
      player.setProp(parseInt(arr[1]), parseInt(arr[2]), parseInt(arr[3]));&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
{{Player_block}}&lt;/div&gt;</summary>
		<author><name>DeepNeeL</name></author>
	</entry>
	<entry>
		<id>https://wiki.rage.mp/w/index.php?title=Entity::attachTo&amp;diff=15800</id>
		<title>Entity::attachTo</title>
		<link rel="alternate" type="text/html" href="https://wiki.rage.mp/w/index.php?title=Entity::attachTo&amp;diff=15800"/>
		<updated>2018-09-25T22:22:50Z</updated>

		<summary type="html">&lt;p&gt;DeepNeeL: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Attaches entity1 to bone (boneIndex) of entity2.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;boneIndex - this is different to boneID, use GET_Player_BONE_INDEX to get the index from the ID. use the index for attaching to specific bones. entity1 will be attached to entity2&#039;s centre if bone index given doesn&#039;t correspond to bone indexes for that entity type.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;useSoftPinning - if set to false attached entity will not detach when fixed&amp;lt;br&amp;gt;collision - controls collision between the two entities (FALSE disables collision).&amp;lt;br&amp;gt;isPed - pitch doesnt work when false and roll will only work on negative numbers (only peds)&amp;lt;br&amp;gt;vertexIndex - position of vertex&amp;lt;br&amp;gt;fixedRot - if false it ignores entity vector &amp;lt;br&amp;gt;&lt;br /&gt;
==Syntax==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;entity.attachTo(entity2, boneIndex, xPosOffset, yPosOffset, zPosOffset, xRot, yRot, zRot, p9, useSoftPinning, collision, isPed, vertexIndex, fixedRot);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Required Arguments ===&lt;br /&gt;
*&#039;&#039;&#039;entity2:&#039;&#039;&#039; Entity handle ( or object, actually it only accepts handles, so use for example player.handle )&lt;br /&gt;
*&#039;&#039;&#039;boneIndex:&#039;&#039;&#039; int&lt;br /&gt;
*&#039;&#039;&#039;xPosOffset:&#039;&#039;&#039; float&lt;br /&gt;
*&#039;&#039;&#039;yPosOffset:&#039;&#039;&#039; float&lt;br /&gt;
*&#039;&#039;&#039;zPosOffset:&#039;&#039;&#039; float&lt;br /&gt;
*&#039;&#039;&#039;xRot:&#039;&#039;&#039; float&lt;br /&gt;
*&#039;&#039;&#039;yRot:&#039;&#039;&#039; float&lt;br /&gt;
*&#039;&#039;&#039;zRot:&#039;&#039;&#039; float&lt;br /&gt;
*&#039;&#039;&#039;p9:&#039;&#039;&#039; Boolean&lt;br /&gt;
*&#039;&#039;&#039;useSoftPinning:&#039;&#039;&#039; Boolean&lt;br /&gt;
*&#039;&#039;&#039;collision:&#039;&#039;&#039; Boolean&lt;br /&gt;
*&#039;&#039;&#039;isPed:&#039;&#039;&#039; Boolean&lt;br /&gt;
*&#039;&#039;&#039;vertexIndex:&#039;&#039;&#039; int&lt;br /&gt;
*&#039;&#039;&#039;fixedRot:&#039;&#039;&#039; Boolean&lt;br /&gt;
&lt;br /&gt;
===Return value===&lt;br /&gt;
*&#039;&#039;&#039;Undefined&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 mp.events.add(&#039;arrestAttach&#039;, (cop, criminal) =&amp;gt; {&lt;br /&gt;
	criminal.attachTo(cop.handle, 0, 0, 0, 0, 0, 0, 0, true, false, false, false, 0, false);&lt;br /&gt;
 });&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
{{Entity_function_c}}&lt;br /&gt;
[[Category:Clientside API]]&lt;br /&gt;
[[Category:TODO: Example]]&lt;/div&gt;</summary>
		<author><name>DeepNeeL</name></author>
	</entry>
</feed>