<?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=Koprawiki</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=Koprawiki"/>
	<link rel="alternate" type="text/html" href="https://wiki.rage.mp/wiki/Special:Contributions/Koprawiki"/>
	<updated>2026-08-13T02:29:45Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.40.0</generator>
	<entry>
		<id>https://wiki.rage.mp/w/index.php?title=UncaughtException&amp;diff=27497</id>
		<title>UncaughtException</title>
		<link rel="alternate" type="text/html" href="https://wiki.rage.mp/w/index.php?title=UncaughtException&amp;diff=27497"/>
		<updated>2025-09-03T18:39:00Z</updated>

		<summary type="html">&lt;p&gt;Koprawiki: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ClientsideJsFunction}}&lt;br /&gt;
{{JSContainer|&lt;br /&gt;
{{Parameters}}&lt;br /&gt;
* &#039;&#039;&#039;exception&#039;&#039;&#039;: Unhandled exception, it is of &#039;&#039;&#039;any&#039;&#039;&#039; type.&lt;br /&gt;
&lt;br /&gt;
{{Example}}&lt;br /&gt;
The example below cancels the default error message box on client unhandled exception/error and prints to the F11 console instead.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;&lt;br /&gt;
mp.events.add(&amp;quot;uncaughtException&amp;quot;, (exception) =&amp;gt; {&lt;br /&gt;
    // Print the message to F11 console or do whatever you need with it&lt;br /&gt;
    mp.console.logError(`[uncaughtException]: ${exception}`);&lt;br /&gt;
&lt;br /&gt;
    // Cancel the event to prevent default error message box&lt;br /&gt;
    return true;&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
==See also==&lt;br /&gt;
{{Player_events_clientside}}&lt;/div&gt;</summary>
		<author><name>Koprawiki</name></author>
	</entry>
	<entry>
		<id>https://wiki.rage.mp/w/index.php?title=UnhandledRejection&amp;diff=27496</id>
		<title>UnhandledRejection</title>
		<link rel="alternate" type="text/html" href="https://wiki.rage.mp/w/index.php?title=UnhandledRejection&amp;diff=27496"/>
		<updated>2025-09-03T18:38:34Z</updated>

		<summary type="html">&lt;p&gt;Koprawiki: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ClientsideJsFunction}}&lt;br /&gt;
{{JSContainer|&lt;br /&gt;
{{Parameters}}&lt;br /&gt;
* &#039;&#039;&#039;promise&#039;&#039;&#039;: Promise that was rejected and not handled, it is of &#039;&#039;&#039;Promise&amp;lt;any&amp;gt;&#039;&#039;&#039; type.&lt;br /&gt;
* &#039;&#039;&#039;error&#039;&#039;&#039;: Error of the promise that was rejected, it is of &#039;&#039;&#039;any&#039;&#039;&#039; type.&lt;br /&gt;
&lt;br /&gt;
{{Example}}&lt;br /&gt;
The example below cancels the default error message box on client unhandled promise rejection and prints to the F11 console instead.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;&lt;br /&gt;
mp.events.add(&#039;unhandledRejection&#039;, (promise, error) =&amp;gt; {&lt;br /&gt;
    // Print the message to F11 console or do whatever you need with it&lt;br /&gt;
    mp.console.logError(`[unhandledRejection]: ${JSON.stringify(promise)} ${error}`);&lt;br /&gt;
&lt;br /&gt;
    // Cancel the event to prevent default error message box&lt;br /&gt;
    return true; &lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
==See also==&lt;br /&gt;
{{Player_events_clientside}}&lt;/div&gt;</summary>
		<author><name>Koprawiki</name></author>
	</entry>
	<entry>
		<id>https://wiki.rage.mp/w/index.php?title=UnhandledRejection&amp;diff=27495</id>
		<title>UnhandledRejection</title>
		<link rel="alternate" type="text/html" href="https://wiki.rage.mp/w/index.php?title=UnhandledRejection&amp;diff=27495"/>
		<updated>2025-09-03T18:30:12Z</updated>

		<summary type="html">&lt;p&gt;Koprawiki: example of canceling default message box&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ClientsideJsFunction}}&lt;br /&gt;
{{JSContainer|&lt;br /&gt;
{{Parameters}}&lt;br /&gt;
* &#039;&#039;&#039;promise&#039;&#039;&#039;: Promise that was rejected and not handled, it is of &#039;&#039;&#039;Promise&amp;lt;any&amp;gt;&#039;&#039;&#039; type.&lt;br /&gt;
* &#039;&#039;&#039;error&#039;&#039;&#039;: Error of the promise that was rejected, it is of &#039;&#039;&#039;any&#039;&#039;&#039; type.&lt;br /&gt;
&lt;br /&gt;
{{Example}}&lt;br /&gt;
The example below cancels the default error message box on client unhandled promise rejection and prints to the F11 console instead.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;&lt;br /&gt;
mp.events.add(&#039;unhandledRejection&#039;, (promise, error) =&amp;gt; {&lt;br /&gt;
    // Print the message to F11 console instead or forward to the server for logging&lt;br /&gt;
    mp.console.logError(`[unhandledRejection]: ${JSON.stringify(promise)} ${error}`);&lt;br /&gt;
&lt;br /&gt;
    // Cancel the event to prevent default error message box&lt;br /&gt;
    return true; &lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
==See also==&lt;br /&gt;
{{Player_events_clientside}}&lt;/div&gt;</summary>
		<author><name>Koprawiki</name></author>
	</entry>
	<entry>
		<id>https://wiki.rage.mp/w/index.php?title=Clientside_JS_FAQ&amp;diff=27467</id>
		<title>Clientside JS FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.rage.mp/w/index.php?title=Clientside_JS_FAQ&amp;diff=27467"/>
		<updated>2025-03-09T00:19:28Z</updated>

		<summary type="html">&lt;p&gt;Koprawiki: edit at the request of cibucristi&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{FAQContainer|&lt;br /&gt;
How can I send data from CEF(browser) to server-side?|&lt;br /&gt;
Create a client-side event middleman to handle events easily between CEF - Server-side.&lt;br /&gt;
&lt;br /&gt;
Client-side event middleman&lt;br /&gt;
{{Example}}&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mp.events.add(&amp;quot;SEND_TO_SERVER&amp;quot;, (event_name, ...args) =&amp;gt; {&lt;br /&gt;
    mp.events.callRemote(event_name, ...args);&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From CEF&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mp.trigger(&#039;SEND_TO_SERVER&#039;, name, ...args);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FAQContainer|&lt;br /&gt;
How to prevent player from toggling engine state on vehicle enter?|&lt;br /&gt;
{{Example}}&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mp.events.add(&amp;quot;playerReady&amp;quot;, () =&amp;gt; {&lt;br /&gt;
    mp.game.vehicle.defaultEngineBehaviour = false;&lt;br /&gt;
    mp.players.local.setConfigFlag(429, true);&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{FAQContainer|&lt;br /&gt;
Are there any free gamemodes available to start from?|&lt;br /&gt;
Yes, check the [https://rage.mp/files/ resources] posted in our forums, there are a lot of free handful scripts and gamemodes to start from.&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Koprawiki</name></author>
	</entry>
	<entry>
		<id>https://wiki.rage.mp/w/index.php?title=Audio::requestAmbientBank&amp;diff=27447</id>
		<title>Audio::requestAmbientBank</title>
		<link rel="alternate" type="text/html" href="https://wiki.rage.mp/w/index.php?title=Audio::requestAmbientBank&amp;diff=27447"/>
		<updated>2025-01-04T06:19:53Z</updated>

		<summary type="html">&lt;p&gt;Koprawiki: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This function will load requested ambient bank.&lt;br /&gt;
{{ClientsideJsFunction}}&lt;br /&gt;
{{JSContainer|&lt;br /&gt;
&lt;br /&gt;
===Required Params===&lt;br /&gt;
*&#039;&#039;&#039;ambientBankName:&#039;&#039;&#039; {{RageType|string}} &lt;br /&gt;
*&#039;&#039;&#039;p1:&#039;&#039;&#039; {{RageType|boolean}}&lt;br /&gt;
*&#039;&#039;&#039;p2:&#039;&#039;&#039; {{RageType|number}} — Always -1&lt;br /&gt;
&lt;br /&gt;
===Return value===&lt;br /&gt;
*&#039;&#039;&#039; {{RageType|boolean}} &#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;
mp.game.audio.requestAmbientBank(ambientBankName, p1, -1)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
// Asynchronously loads &#039;DLC_LUXE/LUXE_SMOKE_CIGAR&#039; ambient audio bank.&lt;br /&gt;
await mp.game.waitForAsync(() =&amp;gt; mp.game.audio.requestAmbientBank(&amp;quot;DLC_LUXE/LUXE_SMOKE_CIGAR&amp;quot;, false, -1));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
==See also==&lt;br /&gt;
{{Audio_s_function_c}}&lt;br /&gt;
[[Category:Clientside API]]&lt;/div&gt;</summary>
		<author><name>Koprawiki</name></author>
	</entry>
	<entry>
		<id>https://wiki.rage.mp/w/index.php?title=Cam::getFollowPedViewMode&amp;diff=26829</id>
		<title>Cam::getFollowPedViewMode</title>
		<link rel="alternate" type="text/html" href="https://wiki.rage.mp/w/index.php?title=Cam::getFollowPedViewMode&amp;diff=26829"/>
		<updated>2024-11-09T03:32:05Z</updated>

		<summary type="html">&lt;p&gt;Koprawiki: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;0 - Third Person Close&lt;br /&gt;
1 - Third Person Mid&lt;br /&gt;
2 - Third Person Far&lt;br /&gt;
4 - First Person&lt;br /&gt;
&lt;br /&gt;
{{ClientsideJsFunction}}&lt;br /&gt;
{{JSContainer|&lt;br /&gt;
&lt;br /&gt;
===Return value===&lt;br /&gt;
*&#039;&#039;&#039; {{RageType|number}} &#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;
mp.game.cam.getFollowPedViewMode()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
//todo&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
==See also==&lt;br /&gt;
{{Cam_functions_c}}&lt;br /&gt;
[[Category:Clientside API]]&lt;br /&gt;
[[Category:TODO: Example]]&lt;/div&gt;</summary>
		<author><name>Koprawiki</name></author>
	</entry>
	<entry>
		<id>https://wiki.rage.mp/w/index.php?title=Server_settings&amp;diff=26747</id>
		<title>Server settings</title>
		<link rel="alternate" type="text/html" href="https://wiki.rage.mp/w/index.php?title=Server_settings&amp;diff=26747"/>
		<updated>2024-09-07T15:05:07Z</updated>

		<summary type="html">&lt;p&gt;Koprawiki: &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. [[gamemodes|List of valid gamemodes]]&lt;br /&gt;
|-&lt;br /&gt;
| encryption&#039;&#039;&#039;(deprecated)&#039;&#039;&#039;|| true || Setting is deprecated because it is always enabled and can not be disabled.&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. Use [] for tags. Eg. &amp;quot;Beast [Serious Roleplay]&amp;quot;&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. Must be a valid URL. Truncated to 20 characters in [https://rage.mp/masterlist RAGE:MP Master List Web] (shows fine in RAGE:MP client).&lt;br /&gt;
|-&lt;br /&gt;
| language|| us || Server&#039;s language (needs to be a string, example: &amp;quot;language&amp;quot;: &amp;quot;us&amp;quot; will display the United States flag on your server&#039;s name) &lt;br /&gt;
|-&lt;br /&gt;
| sync-rate|| 40|| This number indicates the interval, in milliseconds, that the server has to synchronize its entities. 40 = 40ms&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;
| enable-nodejs || true || Enables NodeJS serverside&lt;br /&gt;
|-&lt;br /&gt;
| csharp || disabled||  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;
| fastdl-host || || String URL, this parameter specifies the external URL from which clients will be able to download needed clientside packages.&amp;lt;br /&amp;gt;Otherwise they will download them directly from the server.&lt;br /&gt;
|-&lt;br /&gt;
| server-side-weapons-only-mode ||  true || boolean true / false, if it&#039;s set to true, only weapons that are given from server side will be synced (available with RAGE 1.1+)&lt;br /&gt;
|-&lt;br /&gt;
| api-threading-debugging ||  false || If set to true, it&#039;ll report every single usage of the API out of proper thread. Use it only for debugging since it adds some CPU overhead. (available with RAGE 1.1+)&lt;br /&gt;
|-&lt;br /&gt;
| fqdn ||  || string, e.g. &amp;quot;fqdn&amp;quot;: &amp;quot;game-srv.rage.mp&amp;quot;. Thanks to this option your players won&#039;t notice any server IP change, including the re-utilisation of downloaded packages.&lt;br /&gt;
|-&lt;br /&gt;
| resources-compression-level || 1 || Use 0 for local server, or a higher value for bandwidth optimisation. -9 for fast compression (available with RAGE 1.1+)&lt;br /&gt;
|-&lt;br /&gt;
| node-commandline-flags ||  || e.g. &amp;quot;node-commandline-flags&amp;quot;: &amp;quot;--inspect&amp;quot; (available with RAGE 1.1+)&lt;br /&gt;
|-&lt;br /&gt;
| synchronization-extrapolation-multiplier || 0.0 || enables vehicle synchronization prediction disabling possible latency offset (available with RAGE 1.1+, enabled by default with 1.0 value in 0.3.7)&lt;br /&gt;
|-&lt;br /&gt;
| http-threads || 50 || Specifies how many concurrent connections will be handled at the same time, the rest will be queued (Increasing this number will increase bandwidth usage)&lt;br /&gt;
|-&lt;br /&gt;
| trigger-compression-logging || false || Log compression rates of all outgoing client event triggers with the dictionary the server has been initialized with (available with RAGE 1.1+)&lt;br /&gt;
|-&lt;br /&gt;
| trigger-compression-training || false || Dictionary training, takes data from all of your triggers and flushes it to the file specified at &amp;quot;trigger-compression-dictionary&amp;quot; at every 20th trigger. TIP: You can train it without joining using &amp;quot;mp.players.call&amp;quot; (available with RAGE 1.1+)&lt;br /&gt;
|-&lt;br /&gt;
| trigger-compression-dictionary ||  || File to load/save compression dictionary (available with RAGE 1.1+)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| create-fastdl-snapshot || false || Generates client packages files to a folder to be downloadable and used with FastDL&lt;br /&gt;
|-&lt;br /&gt;
| disable-client-packages-ram-cache || false || Doesn&#039;t cache resources in memory (for only un-encrypted files with DISABLE_ENCRYPTION_LIST file) and instead streams it from storage &lt;br /&gt;
|-&lt;br /&gt;
| client-packages-shared-folder || || Enables you to use the same client resources across different servers (i guess) (FQDN must be a subdomain of shared folder name, e.g. foo.domain.com, bar.domain.com =&amp;gt; domain.com)&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;
    &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 [Tag]&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;stream-distance&amp;quot;: 500.0&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Category:Reference]]&lt;/div&gt;</summary>
		<author><name>Koprawiki</name></author>
	</entry>
	<entry>
		<id>https://wiki.rage.mp/w/index.php?title=Weapon::setEnableLocalOutgoingDamage&amp;diff=26705</id>
		<title>Weapon::setEnableLocalOutgoingDamage</title>
		<link rel="alternate" type="text/html" href="https://wiki.rage.mp/w/index.php?title=Weapon::setEnableLocalOutgoingDamage&amp;diff=26705"/>
		<updated>2024-08-18T01:35:03Z</updated>

		<summary type="html">&lt;p&gt;Koprawiki: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{ClientsideJsFunction}}&lt;br /&gt;
Enables the &#039;outgoingDamage&#039; event for this client.&lt;br /&gt;
Needs to be called in the &#039;playerReady&#039; event.&lt;br /&gt;
&lt;br /&gt;
{{JSContainer|&lt;br /&gt;
===Required Params===&lt;br /&gt;
*&#039;&#039;&#039;toggle:&#039;&#039;&#039; {{RageType|boolean}}&lt;br /&gt;
&lt;br /&gt;
===Return value===&lt;br /&gt;
*&#039;&#039;&#039; {{RageType|void}} &#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;
mp.game.weapon.setEnableLocalOutgoingDamage(toggle)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
mp.events.add(&amp;quot;playerReady&amp;quot;, () =&amp;gt; mp.game.weapon.setEnableLocalOutgoingDamage(true));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
==See also==&lt;br /&gt;
{{Weapon_s_function_c}}&lt;br /&gt;
[[Category:Clientside API]]&lt;br /&gt;
[[Category:TODO: Example]]&lt;/div&gt;</summary>
		<author><name>Koprawiki</name></author>
	</entry>
	<entry>
		<id>https://wiki.rage.mp/w/index.php?title=DeletePlayerWorldProp&amp;diff=23824</id>
		<title>DeletePlayerWorldProp</title>
		<link rel="alternate" type="text/html" href="https://wiki.rage.mp/w/index.php?title=DeletePlayerWorldProp&amp;diff=23824"/>
		<updated>2024-05-07T11:11:28Z</updated>

		<summary type="html">&lt;p&gt;Koprawiki: Created page with &amp;quot;Removes world prop for given player   {{CSharpContainer| {{#tag:syntaxhighlight|void {{Template:CSharp_Serverside_namespace}}Player.DeletePlayerWorldProp(Player player, int modelHash, Vector3 position, float radius);|lang=csharp}}  {{Parameters}} *&amp;#039;&amp;#039;&amp;#039;player:&amp;#039;&amp;#039;&amp;#039; parameter input should be in &amp;#039;&amp;#039;&amp;#039;Player&amp;#039;&amp;#039;&amp;#039; type *&amp;#039;&amp;#039;&amp;#039;modelHash:&amp;#039;&amp;#039;&amp;#039; parameter modelHash should be in &amp;#039;&amp;#039;&amp;#039;uint&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;int&amp;#039;&amp;#039;&amp;#039;  type *&amp;#039;&amp;#039;&amp;#039;position:&amp;#039;&amp;#039;&amp;#039; parameter position should be in &amp;#039;&amp;#039;&amp;#039;Vector3&amp;#039;&amp;#039;&amp;#039; type *&amp;#039;&amp;#039;&amp;#039;radius:&amp;#039;&amp;#039;&amp;#039; pa...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Removes world prop for given player&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{CSharpContainer|&lt;br /&gt;
{{#tag:syntaxhighlight|void {{Template:CSharp_Serverside_namespace}}Player.DeletePlayerWorldProp(Player player, int modelHash, Vector3 position, float radius);|lang=csharp}}&lt;br /&gt;
&lt;br /&gt;
{{Parameters}}&lt;br /&gt;
*&#039;&#039;&#039;player:&#039;&#039;&#039; parameter input should be in &#039;&#039;&#039;Player&#039;&#039;&#039; type&lt;br /&gt;
*&#039;&#039;&#039;modelHash:&#039;&#039;&#039; parameter modelHash should be in &#039;&#039;&#039;uint&#039;&#039;&#039; or &#039;&#039;&#039;int&#039;&#039;&#039;  type&lt;br /&gt;
*&#039;&#039;&#039;position:&#039;&#039;&#039; parameter position should be in &#039;&#039;&#039;Vector3&#039;&#039;&#039; type&lt;br /&gt;
*&#039;&#039;&#039;radius:&#039;&#039;&#039; parameter radius should be in &#039;&#039;&#039;float&#039;&#039;&#039;  type&lt;br /&gt;
&lt;br /&gt;
[[Category:Serverside API]]&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Koprawiki</name></author>
	</entry>
	<entry>
		<id>https://wiki.rage.mp/w/index.php?title=Player::taskPlayAnim&amp;diff=21758</id>
		<title>Player::taskPlayAnim</title>
		<link rel="alternate" type="text/html" href="https://wiki.rage.mp/w/index.php?title=Player::taskPlayAnim&amp;diff=21758"/>
		<updated>2024-04-12T12:28:13Z</updated>

		<summary type="html">&lt;p&gt;Koprawiki: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
Plays an animation on the targetted ped.&lt;br /&gt;
&lt;br /&gt;
You must always preload the dictionary (use [https://wiki.rage.mp/index.php?title=Streaming::requestAnimDict Streaming::requestAnimDict] to preload an animation), serverside will have some loaded but not all.&lt;br /&gt;
&lt;br /&gt;
==Arguments==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Animation Dictionary, Animation Name&#039;&#039;&#039;&lt;br /&gt;
* A few possible values can be found on the [[Animations|Animations]] page.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Blend speed&#039;&#039;&#039;:&lt;br /&gt;
* Defines the blend time before/after the animation. Most common value is 8.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;pre&amp;gt;1 / [time in seconds] = [blend speed]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Duration (ms)&#039;&#039;&#039;: &lt;br /&gt;
* How long the animation plays. -1 can be used to play the whole animation (or loop indefinitely, if flag 1 is used)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Animation Flags&#039;&#039;&#039;: &lt;br /&gt;
*0: &#039;&#039;&#039;AF_DEFAULT&#039;&#039;&#039;                 &lt;br /&gt;
*1: &#039;&#039;&#039;AF_LOOPING&#039;&#039;&#039; - Repeat the animation &lt;br /&gt;
*2: &#039;&#039;&#039;AF_HOLD_LAST_FRAME&#039;&#039;&#039; - Hold on the last frame of the animation &lt;br /&gt;
*4: &#039;&#039;&#039;AF_REPOSITION_WHEN_FINISHED&#039;&#039;&#039; - When the animation finishes pop the peds physical reprsentation position to match the visual representations position Note that the animator must not unwind the animation and must have an independent mover node &lt;br /&gt;
*8: &#039;&#039;&#039;AF_NOT_INTERRUPTABLE&#039;&#039;&#039; - Can the task not be interupted by extenal events &lt;br /&gt;
*16: &#039;&#039;&#039;AF_UPPERBODY&#039;&#039;&#039; - Only plays the upper body part of the animation. Dampens any motion caused by the lower body animation.Note that the animation should include the root node &lt;br /&gt;
*32: &#039;&#039;&#039;AF_SECONDARY&#039;&#039;&#039; - The task will run in the secondary task slot. This means it can be used aswell as a movement task (for instance) &lt;br /&gt;
*64: &#039;&#039;&#039;AF_REORIENT_WHEN_FINISHED&#039;&#039;&#039; - When the animation finishes pop the peds physical reprsentation direction to match the visual representations direction. Note that the animator must not unwind the animation and must have an independent mover node &lt;br /&gt;
*128: &#039;&#039;&#039;AF_ABORT_ON_PED_MOVEMENT&#039;&#039;&#039; - Ends the animation early if the ped attemps to move e.g. if the player tries to move using the controller. Can also be used to blend out automatically when an ai ped starts moving by combining it with the AF_SECONDARY flag.&lt;br /&gt;
*256: &#039;&#039;&#039;AF_ADDITIVE&#039;&#039;&#039; - Play back the animation additively. Note, this will only produce sensible results on specifically authored additive animations!&lt;br /&gt;
*512: &#039;&#039;&#039;AF_TURN_OFF_COLLISION&#039;&#039;&#039; - Do not react to collision detection whilst this anim is playing&lt;br /&gt;
*1024: &#039;&#039;&#039;AF_OVERRIDE_PHYSICS&#039;&#039;&#039; - Do not apply any physics forces whilst the anim is playing. Automatically turns off collision, extracts any initial offset provided in the clip and uses per frame mover extraction.&lt;br /&gt;
*2048: &#039;&#039;&#039;AF_IGNORE_GRAVITY&#039;&#039;&#039; - Do not apply gravity while the anim is playing&lt;br /&gt;
*4096: &#039;&#039;&#039;AF_EXTRACT_INITIAL_OFFSET&#039;&#039;&#039; - Extract an initial offset from the playback position authored by the animator. Use this flag when playing back anims on different peds which have been authored to sync with each other&lt;br /&gt;
*8192: &#039;&#039;&#039;AF_EXIT_AFTER_INTERRUPTED&#039;&#039;&#039; - Exit the animation task if it is interrupted by another task (ie Natural Motion).  Without this flag bing set looped animations will restart ofter the NM task&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tag synchronizer flags - sync the anim against ped movement (walking / running / etc)&#039;&#039;&#039;:&lt;br /&gt;
*16384: &#039;&#039;&#039;AF_TAG_SYNC_IN&#039;&#039;&#039; - Sync the anim whilst blending in (use for seamless transitions from walk / run into a full body anim)&lt;br /&gt;
*32768: &#039;&#039;&#039;AF_TAG_SYNC_OUT&#039;&#039;&#039; - Sync the anim whilst blending out (use for seamless transitions from a full body anim into walking / running behaviour)&lt;br /&gt;
*65536: &#039;&#039;&#039;AF_TAG_SYNC_CONTINUOUS&#039;&#039;&#039; - Sync all the time (Only usefull to synchronize a partial anim e.g. an upper body)&lt;br /&gt;
&lt;br /&gt;
*131072: &#039;&#039;&#039;AF_FORCE_START&#039;&#039;&#039; - Force the anim task to start even if the ped is falling / ragdolling / etc. Can fix issues with peds not playing their anims immediately after a warp / etc&lt;br /&gt;
*262144: &#039;&#039;&#039;AF_USE_KINEMATIC_PHYSICS&#039;&#039;&#039; - Use the kinematic physics mode on the entity for the duration of the anim (it should push other entities out of the way, and not be pushed around by players / etc&lt;br /&gt;
*524288: &#039;&#039;&#039;AF_USE_MOVER_EXTRACTION&#039;&#039;&#039; - Updates the peds capsule position every frame based on the animation. Use in conjunction with AF_USE_KINEMATIC_PHYSICS to create characters that cannot be pushed off course by other entities / geometry / etc whilst playing the anim.&lt;br /&gt;
&lt;br /&gt;
*1048576: &#039;&#039;&#039;AF_HIDE_WEAPON&#039;&#039;&#039; - Indicates that the ped&#039;s weapon should be hidden while this animation is playing.&lt;br /&gt;
&lt;br /&gt;
*2097152: &#039;&#039;&#039;AF_ENDS_IN_DEAD_POSE&#039;&#039;&#039; - When the anim ends, kill the ped and use the currently playing anim as the dead pose&lt;br /&gt;
*4194304: &#039;&#039;&#039;AF_ACTIVATE_RAGDOLL_ON_COLLISION&#039;&#039;&#039; - If the peds ragdoll bounds make contact with something physical (that isn&#039;t flat ground) activate the ragdoll and fall over.&lt;br /&gt;
*8388608: &#039;&#039;&#039;AF_DONT_EXIT_ON_DEATH&#039;&#039;&#039; - Currently used only on secondary anim tasks. Secondary anim tasks will end automatically when the ped dies. Setting this flag stops that from happening.&amp;quot;&lt;br /&gt;
*16777216: &#039;&#039;&#039;AF_ABORT_ON_WEAPON_DAMAGE&#039;&#039;&#039; - Allow aborting from damage events (including non-ragdoll damage events) even when blocking other ai events using AF_NOT_INTERRUPTABLE.&lt;br /&gt;
*33554432: &#039;&#039;&#039;AF_DISABLE_FORCED_PHYSICS_UPDATE&#039;&#039;&#039; - Prevent adjusting the capsule on the enter state (useful if script is doing a sequence of scripted anims and they are known to more or less stand still) &lt;br /&gt;
*67108864: &#039;&#039;&#039;AF_PROCESS_ATTACHMENTS_ON_START&#039;&#039;&#039; - Force the attachments to be processed at the start of the clip&lt;br /&gt;
*134217728: &#039;&#039;&#039;AF_EXPAND_PED_CAPSULE_FROM_SKELETON&#039;&#039;&#039; - Expands the capsule to the extents of the skeleton&lt;br /&gt;
*268435456: &#039;&#039;&#039;AF_USE_ALTERNATIVE_FP_ANIM&#039;&#039;&#039; - Plays an alternative first person version of the clip on the player when in first person mode (the first person clip must be in the same dictionary, and be named the same as the anim you&#039;re playing, but with _FP appended on the end)&lt;br /&gt;
*536870912: &#039;&#039;&#039;AF_BLENDOUT_WRT_LAST_FRAME&#039;&#039;&#039; - Start blending out the anim early, so that the blend out duration completes at the end of the animation.&lt;br /&gt;
*1073741824 &#039;&#039;&#039;AF_USE_FULL_BLENDING&#039;&#039;&#039; - Use full blending for this anim and override the heading/position adjustment in CTaskScriptedAnimation::CheckIfClonePlayerNeedsHeadingPositionAdjust(), so that we don&#039;t correct errors (special case such as scrip-side implemented AI tasks, i.e. diving)&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;Note:&#039;&#039; You can sum flags together. For example, if you want an upper body controllable animation with last frame you can do 48+2 which is flag 50.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Start Offset&#039;&#039;&#039;:&lt;br /&gt;
*Can be used to skip a part of the animation. Values are between 0.0 and 1.0 (doesn&#039;t seem to work, use mp.game.entity.setAnimCurrentTime instead)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
&amp;lt;pre&amp;gt;player.taskPlayAnim(animDictionary, animationName, blendInSpeed, blendOutSpeed, duration, flag, startOffset, lockX, lockY, lockZ);&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Required Arguments ===&lt;br /&gt;
*&#039;&#039;&#039;animDictionary:&#039;&#039;&#039; String&lt;br /&gt;
*&#039;&#039;&#039;animationName:&#039;&#039;&#039; String&lt;br /&gt;
*&#039;&#039;&#039;blendInSpeed:&#039;&#039;&#039; float&lt;br /&gt;
*&#039;&#039;&#039;blendOutSpeed:&#039;&#039;&#039; float&lt;br /&gt;
*&#039;&#039;&#039;duration:&#039;&#039;&#039; int&lt;br /&gt;
*&#039;&#039;&#039;flag:&#039;&#039;&#039; int&lt;br /&gt;
*&#039;&#039;&#039;startOffset:&#039;&#039;&#039; float&lt;br /&gt;
*&#039;&#039;&#039;lockX:&#039;&#039;&#039; Boolean&lt;br /&gt;
*&#039;&#039;&#039;lockY:&#039;&#039;&#039; Boolean&lt;br /&gt;
*&#039;&#039;&#039;lockZ:&#039;&#039;&#039; Boolean&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;
The example below preloads an animation and applies it into the local player.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mp.game.streaming.requestAnimDict(&amp;quot;random@shop_robbery&amp;quot;);//preload the animation&lt;br /&gt;
mp.players.local.taskPlayAnim(&amp;quot;random@shop_robbery&amp;quot;, &amp;quot;robbery_action_f&amp;quot;, 8.0, 1.0, -1, 1, 1.0, false, false, false);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
*&#039;&#039;&#039;[[Animations|Animations Dictionary]]&#039;&#039;&#039;&lt;br /&gt;
{{Player_function_c}}&lt;br /&gt;
[[Category:Clientside API]]&lt;br /&gt;
[[Category:TODO: Example]]&lt;/div&gt;</summary>
		<author><name>Koprawiki</name></author>
	</entry>
	<entry>
		<id>https://wiki.rage.mp/w/index.php?title=Player::taskPlayAnim&amp;diff=21757</id>
		<title>Player::taskPlayAnim</title>
		<link rel="alternate" type="text/html" href="https://wiki.rage.mp/w/index.php?title=Player::taskPlayAnim&amp;diff=21757"/>
		<updated>2024-04-12T12:27:52Z</updated>

		<summary type="html">&lt;p&gt;Koprawiki: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
Plays an animation on the targetted ped.&lt;br /&gt;
&lt;br /&gt;
You must always preload the dictionary (use [https://wiki.rage.mp/index.php?title=Streaming::requestAnimDict Streaming::requestAnimDict] to preload an animation), serverside will have some loaded but not all.&lt;br /&gt;
&lt;br /&gt;
==Arguments==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Animation Dictionary, Animation Name&#039;&#039;&#039;&lt;br /&gt;
* A few possible values can be found on the [[Animations|Animations]] page.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Blend speed&#039;&#039;&#039;:&lt;br /&gt;
* Defines the blend time before/after the animation. Most common value is 8.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;pre&amp;gt;1 / [time in seconds] = [blend speed]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Duration (ms)&#039;&#039;&#039;: &lt;br /&gt;
* How long the animation plays. -1 can be used to play the whole animation (or loop indefinitely, if flag 1 is used)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Animation Flags&#039;&#039;&#039;: &lt;br /&gt;
*0: &#039;&#039;&#039;AF_DEFAULT&#039;&#039;&#039;                 &lt;br /&gt;
*1: &#039;&#039;&#039;AF_LOOPING&#039;&#039;&#039; - Repeat the animation &lt;br /&gt;
*2: &#039;&#039;&#039;AF_HOLD_LAST_FRAME&#039;&#039;&#039; - Hold on the last frame of the animation &lt;br /&gt;
*4: &#039;&#039;&#039;AF_REPOSITION_WHEN_FINISHED&#039;&#039;&#039; - When the animation finishes pop the peds physical reprsentation position to match the visual representations position Note that the animator must not unwind the animation and must have an independent mover node &lt;br /&gt;
*8: &#039;&#039;&#039;AF_NOT_INTERRUPTABLE&#039;&#039;&#039; - Can the task not be interupted by extenal events &lt;br /&gt;
*16: &#039;&#039;&#039;AF_UPPERBODY&#039;&#039;&#039; - Only plays the upper body part of the animation. Dampens any motion caused by the lower body animation.Note that the animation should include the root node &lt;br /&gt;
*32: &#039;&#039;&#039;AF_SECONDARY&#039;&#039;&#039; - The task will run in the secondary task slot. This means it can be used aswell as a movement task (for instance) &lt;br /&gt;
*64: &#039;&#039;&#039;AF_REORIENT_WHEN_FINISHED&#039;&#039;&#039; - When the animation finishes pop the peds physical reprsentation direction to match the visual representations direction. Note that the animator must not unwind the animation and must have an independent mover node &lt;br /&gt;
*128: &#039;&#039;&#039;AF_ABORT_ON_PED_MOVEMENT&#039;&#039;&#039; - Ends the animation early if the ped attemps to move e.g. if the player tries to move using the controller. Can also be used to blend out automatically when an ai ped starts moving by combining it with the AF_SECONDARY flag.&lt;br /&gt;
*256: &#039;&#039;&#039;AF_ADDITIVE&#039;&#039;&#039; - Play back the animation additively. Note, this will only produce sensible results on specifically authored additive animations!&lt;br /&gt;
*512: &#039;&#039;&#039;AF_TURN_OFF_COLLISION&#039;&#039;&#039; - Do not react to collision detection whilst this anim is playing&lt;br /&gt;
*1024: &#039;&#039;&#039;AF_OVERRIDE_PHYSICS&#039;&#039;&#039; - Do not apply any physics forces whilst the anim is playing. Automatically turns off collision, extracts any initial offset provided in the clip and uses per frame mover extraction.&lt;br /&gt;
*2048: &#039;&#039;&#039;AF_IGNORE_GRAVITY&#039;&#039;&#039; - Do not apply gravity while the anim is playing&lt;br /&gt;
*4096: &#039;&#039;&#039;AF_EXTRACT_INITIAL_OFFSET&#039;&#039;&#039; - Extract an initial offset from the playback position authored by the animator. Use this flag when playing back anims on different peds which have been authored to sync with each other&lt;br /&gt;
*8192: &#039;&#039;&#039;AF_EXIT_AFTER_INTERRUPTED&#039;&#039;&#039; - Exit the animation task if it is interrupted by another task (ie Natural Motion).  Without this flag bing set looped animations will restart ofter the NM task&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tag synchronizer flags - sync the anim against ped movement (walking / running / etc)&#039;&#039;&#039;:&lt;br /&gt;
*16384: &#039;&#039;&#039;AF_TAG_SYNC_IN&#039;&#039;&#039; - Sync the anim whilst blending in (use for seamless transitions from walk / run into a full body anim)&lt;br /&gt;
*32768: &#039;&#039;&#039;AF_TAG_SYNC_OUT&#039;&#039;&#039; - Sync the anim whilst blending out (use for seamless transitions from a full body anim into walking / running behaviour)&lt;br /&gt;
*65536: &#039;&#039;&#039;AF_TAG_SYNC_CONTINUOUS&#039;&#039;&#039; - Sync all the time (Only usefull to synchronize a partial anim e.g. an upper body)&lt;br /&gt;
&lt;br /&gt;
*131072: &#039;&#039;&#039;AF_FORCE_START&#039;&#039;&#039; - Force the anim task to start even if the ped is falling / ragdolling / etc. Can fix issues with peds not playing their anims immediately after a warp / etc&lt;br /&gt;
*262144: &#039;&#039;&#039;AF_USE_KINEMATIC_PHYSICS&#039;&#039;&#039; - Use the kinematic physics mode on the entity for the duration of the anim (it should push other entities out of the way, and not be pushed around by players / etc&lt;br /&gt;
*524288: &#039;&#039;&#039;AF_USE_MOVER_EXTRACTION&#039;&#039;&#039; - Updates the peds capsule position every frame based on the animation. Use in conjunction with AF_USE_KINEMATIC_PHYSICS to create characters that cannot be pushed off course by other entities / geometry / etc whilst playing the anim.&lt;br /&gt;
&lt;br /&gt;
*1048576: &#039;&#039;&#039;AF_HIDE_WEAPON&#039;&#039;&#039; - Indicates that the ped&#039;s weapon should be hidden while this animation is playing.&lt;br /&gt;
&lt;br /&gt;
*2097152: &#039;&#039;&#039;AF_ENDS_IN_DEAD_POSE&#039;&#039;&#039; - When the anim ends, kill the ped and use the currently playing anim as the dead pose&lt;br /&gt;
*4194304: &#039;&#039;&#039;AF_ACTIVATE_RAGDOLL_ON_COLLISION&#039;&#039;&#039; - If the peds ragdoll bounds make contact with something physical (that isn&#039;t flat ground) activate the ragdoll and fall over.&lt;br /&gt;
*8388608: &#039;&#039;&#039;AF_DONT_EXIT_ON_DEATH&#039;&#039;&#039; - Currently used only on secondary anim tasks. Secondary anim tasks will end automatically when the ped dies. Setting this flag stops that from happening.&amp;quot;&lt;br /&gt;
*16777216: &#039;&#039;&#039;AF_ABORT_ON_WEAPON_DAMAGE&#039;&#039;&#039; - Allow aborting from damage events (including non-ragdoll damage events) even when blocking other ai events using AF_NOT_INTERRUPTABLE.&lt;br /&gt;
*33554432: &#039;&#039;&#039;AF_DISABLE_FORCED_PHYSICS_UPDATE&#039;&#039;&#039; - Prevent adjusting the capsule on the enter state (useful if script is doing a sequence of scripted anims and they are known to more or less stand still) &lt;br /&gt;
*67108864: &#039;&#039;&#039;AF_PROCESS_ATTACHMENTS_ON_START&#039;&#039;&#039; - Force the attachments to be processed at the start of the clip&lt;br /&gt;
*134217728: &#039;&#039;&#039;AF_EXPAND_PED_CAPSULE_FROM_SKELETON&#039;&#039;&#039; - Expands the capsule to the extents of the skeleton&lt;br /&gt;
*268435456: &#039;&#039;&#039;AF_USE_ALTERNATIVE_FP_ANIM&#039;&#039;&#039; - Plays an alternative first person version of the clip on the player when in first person mode (the first person clip must be in the same dictionary, and be named the same as the anim you&#039;re playing, but with _FP appended on the end)&lt;br /&gt;
*536870912: &#039;&#039;&#039;AF_BLENDOUT_WRT_LAST_FRAME&#039;&#039;&#039; - Start blending out the anim early, so that the blend out duration completes at the end of the animation.&lt;br /&gt;
*1073741824 &#039;&#039;&#039;AF_USE_FULL_BLENDING&#039;&#039;&#039; - Use full blending for this anim and override the heading/position adjustment in CTaskScriptedAnimation::CheckIfClonePlayerNeedsHeadingPositionAdjust(), so that we don&#039;t correct errors (special case such as scrip-side implemented AI tasks, i.e. diving)&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;Note:&#039;&#039; You can sum flags together. For example, if you want an upper body controllable animation with last frame you can do 48+2 which is flag 50.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Start Offset&#039;&#039;&#039;:&lt;br /&gt;
*Can be used to skip a part of the animation. Values are between 0.0 and 1.0&lt;br /&gt;
(doesn&#039;t seem to work, use mp.game.entity.setAnimCurrentTime instead)&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
&amp;lt;pre&amp;gt;player.taskPlayAnim(animDictionary, animationName, blendInSpeed, blendOutSpeed, duration, flag, startOffset, lockX, lockY, lockZ);&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Required Arguments ===&lt;br /&gt;
*&#039;&#039;&#039;animDictionary:&#039;&#039;&#039; String&lt;br /&gt;
*&#039;&#039;&#039;animationName:&#039;&#039;&#039; String&lt;br /&gt;
*&#039;&#039;&#039;blendInSpeed:&#039;&#039;&#039; float&lt;br /&gt;
*&#039;&#039;&#039;blendOutSpeed:&#039;&#039;&#039; float&lt;br /&gt;
*&#039;&#039;&#039;duration:&#039;&#039;&#039; int&lt;br /&gt;
*&#039;&#039;&#039;flag:&#039;&#039;&#039; int&lt;br /&gt;
*&#039;&#039;&#039;startOffset:&#039;&#039;&#039; float&lt;br /&gt;
*&#039;&#039;&#039;lockX:&#039;&#039;&#039; Boolean&lt;br /&gt;
*&#039;&#039;&#039;lockY:&#039;&#039;&#039; Boolean&lt;br /&gt;
*&#039;&#039;&#039;lockZ:&#039;&#039;&#039; Boolean&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;
The example below preloads an animation and applies it into the local player.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mp.game.streaming.requestAnimDict(&amp;quot;random@shop_robbery&amp;quot;);//preload the animation&lt;br /&gt;
mp.players.local.taskPlayAnim(&amp;quot;random@shop_robbery&amp;quot;, &amp;quot;robbery_action_f&amp;quot;, 8.0, 1.0, -1, 1, 1.0, false, false, false);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
*&#039;&#039;&#039;[[Animations|Animations Dictionary]]&#039;&#039;&#039;&lt;br /&gt;
{{Player_function_c}}&lt;br /&gt;
[[Category:Clientside API]]&lt;br /&gt;
[[Category:TODO: Example]]&lt;/div&gt;</summary>
		<author><name>Koprawiki</name></author>
	</entry>
	<entry>
		<id>https://wiki.rage.mp/w/index.php?title=Player::taskLookAt&amp;diff=21743</id>
		<title>Player::taskLookAt</title>
		<link rel="alternate" type="text/html" href="https://wiki.rage.mp/w/index.php?title=Player::taskLookAt&amp;diff=21743"/>
		<updated>2024-02-07T13:22:57Z</updated>

		<summary type="html">&lt;p&gt;Koprawiki: Page update&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Method to task player to look at another entity. Client-side tasks are synced.&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;player.taskLookAt(lookAt, duration, flags, priority);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Required Arguments ===&lt;br /&gt;
*&#039;&#039;&#039;lookAt:&#039;&#039;&#039; Entity handle or object&lt;br /&gt;
*&#039;&#039;&#039;duration:&#039;&#039;&#039; int&lt;br /&gt;
*&#039;&#039;&#039;flags:&#039;&#039;&#039; int&lt;br /&gt;
*&#039;&#039;&#039;priority:&#039;&#039;&#039; int&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;
 * Function to make local player look at another player&lt;br /&gt;
 * @param {number} targetRemoteId - Remote(server) id of the player to look at&lt;br /&gt;
 */&lt;br /&gt;
function localPlayerLookAtPlayer(targetRemoteId) {&lt;br /&gt;
    // Get target player from the pool by his remote id&lt;br /&gt;
    const target = mp.players.atRemoteId(targetRemoteId);&lt;br /&gt;
&lt;br /&gt;
    // If target player is not found, stop&lt;br /&gt;
    if (!target || target.handle === 0) return;&lt;br /&gt;
&lt;br /&gt;
    // Call the method to look at another entity, in this case player&lt;br /&gt;
    mp.players.local.taskLookAt(target.handle, -1, 2048, 2);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==See also==&lt;br /&gt;
{{Player_function_c}}&lt;br /&gt;
[[Category:Clientside API]]&lt;/div&gt;</summary>
		<author><name>Koprawiki</name></author>
	</entry>
	<entry>
		<id>https://wiki.rage.mp/w/index.php?title=Player::taskLookAt&amp;diff=21742</id>
		<title>Player::taskLookAt</title>
		<link rel="alternate" type="text/html" href="https://wiki.rage.mp/w/index.php?title=Player::taskLookAt&amp;diff=21742"/>
		<updated>2024-02-07T12:54:15Z</updated>

		<summary type="html">&lt;p&gt;Koprawiki: /* Syntax */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;param3: duration in ms, use -1 to look forever&amp;lt;br&amp;gt;param4: using 2048 is fine&amp;lt;br&amp;gt;param5: using 3 is fine&lt;br /&gt;
==Syntax==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;player.taskLookAt(lookAt, duration, flags, priority);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Required Arguments ===&lt;br /&gt;
*&#039;&#039;&#039;lookAt:&#039;&#039;&#039; Entity handle or object&lt;br /&gt;
*&#039;&#039;&#039;duration:&#039;&#039;&#039; int&lt;br /&gt;
*&#039;&#039;&#039;flags:&#039;&#039;&#039; int&lt;br /&gt;
*&#039;&#039;&#039;priority:&#039;&#039;&#039; int&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;
// todo&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==See also==&lt;br /&gt;
{{Player_function_c}}&lt;br /&gt;
[[Category:Clientside API]]&lt;br /&gt;
[[Category:TODO: Example]]&lt;/div&gt;</summary>
		<author><name>Koprawiki</name></author>
	</entry>
	<entry>
		<id>https://wiki.rage.mp/w/index.php?title=Player::taskLookAt&amp;diff=21741</id>
		<title>Player::taskLookAt</title>
		<link rel="alternate" type="text/html" href="https://wiki.rage.mp/w/index.php?title=Player::taskLookAt&amp;diff=21741"/>
		<updated>2024-02-07T12:53:37Z</updated>

		<summary type="html">&lt;p&gt;Koprawiki: /* Required Arguments */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;param3: duration in ms, use -1 to look forever&amp;lt;br&amp;gt;param4: using 2048 is fine&amp;lt;br&amp;gt;param5: using 3 is fine&lt;br /&gt;
==Syntax==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;player.taskLookAt(lookAt, duration, unknown1, unknown2);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Required Arguments ===&lt;br /&gt;
*&#039;&#039;&#039;lookAt:&#039;&#039;&#039; Entity handle or object&lt;br /&gt;
*&#039;&#039;&#039;duration:&#039;&#039;&#039; int&lt;br /&gt;
*&#039;&#039;&#039;flags:&#039;&#039;&#039; int&lt;br /&gt;
*&#039;&#039;&#039;priority:&#039;&#039;&#039; int&lt;br /&gt;
&lt;br /&gt;
===Return value===&lt;br /&gt;
*&#039;&#039;&#039;Undefined&#039;&#039;&#039;&lt;br /&gt;
==Example==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
// todo&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==See also==&lt;br /&gt;
{{Player_function_c}}&lt;br /&gt;
[[Category:Clientside API]]&lt;br /&gt;
[[Category:TODO: Example]]&lt;/div&gt;</summary>
		<author><name>Koprawiki</name></author>
	</entry>
</feed>