<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.gtaconnected.com/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=PerikiyoXD</id>
	<title>GTA Connected - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.gtaconnected.com/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=PerikiyoXD"/>
	<link rel="alternate" type="text/html" href="https://wiki.gtaconnected.com/Special:Contributions/PerikiyoXD"/>
	<updated>2026-04-28T23:46:58Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.15</generator>
	<entry>
		<id>https://wiki.gtaconnected.com/wiki/index.php?title=exportFunction&amp;diff=11450</id>
		<title>exportFunction</title>
		<link rel="alternate" type="text/html" href="https://wiki.gtaconnected.com/wiki/index.php?title=exportFunction&amp;diff=11450"/>
		<updated>2026-04-10T02:31:16Z</updated>

		<summary type="html">&lt;p&gt;PerikiyoXD: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ScriptItem&lt;br /&gt;
|endpoint = shared&lt;br /&gt;
|type = function&lt;br /&gt;
|name = exportFunction&lt;br /&gt;
|parameters = string name, function Function&lt;br /&gt;
|parameter1 = string name The name of the exported function.&lt;br /&gt;
|parameter2 = function Function The function to export.&lt;br /&gt;
|return1 = void&lt;br /&gt;
|returnFail1 = void&lt;br /&gt;
|returnInfo = a boolean, indicating whether the function has been exported or not&lt;br /&gt;
|note1 = To use this function in another resource, use [[findResourceByName|findResourceByName]] in the other resource, which returns a resource object. You can then use [[resource.exports|resource.exports]] or [[resource.getExport|resource.getExport]] to access exported functions.&lt;br /&gt;
|note2 = Only simple types (string, number, boolean, null) are guaranteed to work across resource boundaries. Passing compound types (objects, arrays, tables) is discouraged — depending on the language combination involved, this may cause crashes or undefined behaviour. If structured data must be passed, serialize it to a JSON string before the call and deserialize on the receiving side.&lt;br /&gt;
|usage = export a function so it can be used in other resources&lt;br /&gt;
|exampleJS = bindEventHandler(&amp;quot;OnResourceStart&amp;quot;, thisResource, function(event, resource) {&lt;br /&gt;
    exportFunction(&amp;quot;testFunc&amp;quot;, testFunc);&lt;br /&gt;
});&lt;br /&gt;
function testFunc(foo, bar) {&lt;br /&gt;
    return true;&lt;br /&gt;
}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>PerikiyoXD</name></author>
	</entry>
	<entry>
		<id>https://wiki.gtaconnected.com/wiki/index.php?title=OnRequestSession&amp;diff=11449</id>
		<title>OnRequestSession</title>
		<link rel="alternate" type="text/html" href="https://wiki.gtaconnected.com/wiki/index.php?title=OnRequestSession&amp;diff=11449"/>
		<updated>2026-04-07T23:01:06Z</updated>

		<summary type="html">&lt;p&gt;PerikiyoXD: Created page with &amp;quot;{{ScriptItem2  |name = OnRequestSession  |side = server  |type = event  |games = iv  |desc = when a client requests a session in GTA IV  |arg1 = Client client The client that sent the request  |arg2 = Episode integer The episode number requested by the client  |cancel = true  |ExampleSSJS = addEventHandler(&amp;quot;OnRequestSession&amp;quot;, (event, client, episode) =&amp;gt; {     console.log(`${client.name} requested session for episode ${episode}`); });  }}&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ScriptItem2&lt;br /&gt;
&lt;br /&gt;
|name = OnRequestSession&lt;br /&gt;
&lt;br /&gt;
|side = server&lt;br /&gt;
&lt;br /&gt;
|type = event&lt;br /&gt;
&lt;br /&gt;
|games = iv&lt;br /&gt;
&lt;br /&gt;
|desc = when a client requests a session in GTA IV&lt;br /&gt;
&lt;br /&gt;
|arg1 = Client client The client that sent the request&lt;br /&gt;
&lt;br /&gt;
|arg2 = Episode integer The episode number requested by the client&lt;br /&gt;
&lt;br /&gt;
|cancel = true&lt;br /&gt;
&lt;br /&gt;
|ExampleSSJS = addEventHandler(&amp;quot;OnRequestSession&amp;quot;, (event, client, episode) =&amp;gt; {&lt;br /&gt;
    console.log(`${client.name} requested session for episode ${episode}`);&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>PerikiyoXD</name></author>
	</entry>
	<entry>
		<id>https://wiki.gtaconnected.com/wiki/index.php?title=FAQ&amp;diff=11448</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.gtaconnected.com/wiki/index.php?title=FAQ&amp;diff=11448"/>
		<updated>2026-04-06T02:30:03Z</updated>

		<summary type="html">&lt;p&gt;PerikiyoXD: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Player FAQ}}&lt;br /&gt;
{{AlertInformationBox|This FAQ is for the client (players) only. For the server FAQ, click [[ServerFAQ|here]]}}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==IV crashes when i change window, minimize, or alt tab==&lt;br /&gt;
Either use windowed mode in the GTAC Launcher settings, or use borderless via zolikapatch.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==My game is on Steam, Rockstar Launcher, or CD/DVD, can I still play GTAC?==&lt;br /&gt;
Yes, check our [[Downgrading|downgrading]] page to get a downgraded exe.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==My game is pirated (torrent), can I still play GTAC?==&lt;br /&gt;
Yes. You may need to downgrade your game though, check our [[Downgrading|downgrading]] page to get a downgraded exe.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==What are the in-game key binds for typing chat messages?==&lt;br /&gt;
For GTA III, Vice City, and San Andreas, use the &#039;&#039;&#039;T&#039;&#039;&#039; key to start typing.&amp;lt;br&amp;gt;&lt;br /&gt;
For GTA IV, use the built-in chat key to start typing, which by default is the &#039;&#039;&#039;Y&#039;&#039;&#039; key.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==What do I do if my game crashes?==&lt;br /&gt;
Report the crash on our [https://bugs.gtaconnected.com bug tracker]. Attach a [[CrashDumps|crash dump]] to the bug report. If possible, explain what just happened right before the crash.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==How do I customize my character&#039;s appearance?==&lt;br /&gt;
For any of the supported games, this depends on each server&#039;s resources. A server may have a command to change your character appearance, such as &amp;lt;code&amp;gt;/skin 35&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
For IV, [https://zolika1351.pages.dev/mods/ivmenu Zmenu] can also be used with GTAC, if the server allows players to use it.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==Why is the GTAC Launcher stuck on Connecting or Disconnected status?==&lt;br /&gt;
Firstly, check if the [https://serverlisting.gtaconnected.com/ server list] is working via a web browser.&amp;lt;br&amp;gt;&lt;br /&gt;
If the server list is working, secondly check that your internet DNS settings are configured correctly, more specifically ensure that your preferred DNS server IP address is valid.&lt;br /&gt;
Sometimes VPN&#039;s can interfere with the launcher connection. Try turning off your VPN to see if that helps.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==Why am I getting an error about a side-by-side configuration?==&lt;br /&gt;
It looks like you might be missing a required Visual C++ runtime service pack. Download and install the &#039;&#039;&#039;x86 version&#039;&#039;&#039; from here: https://www.microsoft.com/en-gb/download/details.aspx?id=26347&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==Why can&#039;t I increase my graphics settings in GTA IV?==&lt;br /&gt;
Make a new file called commandline.txt in your IV folder and add this to it:&lt;br /&gt;
{{InlineCode|1=-nomemrestrict -norestrictions -noswapdelay -percentvidmem 100}}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How do I fix the IMG10 error?==&lt;br /&gt;
[[File:Crash-Window-IMG10.png|thumb|left]]&lt;br /&gt;
This seems to be caused by a FusionFix update that modifies the settings file. This affects all players who have installed the new FusionFix update for Complete Edition and launched the game at least once. Until FusionFix is updated to fix this, we will just have to swap between settings folders.&amp;lt;br /&amp;gt;&lt;br /&gt;
Here&#039;s the fix:&lt;br /&gt;
* Rename `C:\Users\user\AppData\Local\Rockstar Games\GTA IV\SETTINGS.CFG` to something else&lt;br /&gt;
* Launch the game&lt;br /&gt;
* Swap between the 2 config files when wanting to play Complete Edition and GTAC&lt;br /&gt;
* A handy one-liner: `powershell -Command &amp;quot;Rename-Item -Force $ENV:USERPROFILE&#039;\AppData\Local\Rockstar Games\GTA IV&#039; $ENV:USERPROFILE&#039;\AppData\Local\Rockstar Games\GTA IV.bak&#039;&amp;quot;`&lt;/div&gt;</summary>
		<author><name>PerikiyoXD</name></author>
	</entry>
	<entry>
		<id>https://wiki.gtaconnected.com/wiki/index.php?title=File:Crash-Window-IMG10.png&amp;diff=11447</id>
		<title>File:Crash-Window-IMG10.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.gtaconnected.com/wiki/index.php?title=File:Crash-Window-IMG10.png&amp;diff=11447"/>
		<updated>2026-04-06T02:29:06Z</updated>

		<summary type="html">&lt;p&gt;PerikiyoXD: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A messagebox that shows IMG10 error&lt;/div&gt;</summary>
		<author><name>PerikiyoXD</name></author>
	</entry>
	<entry>
		<id>https://wiki.gtaconnected.com/wiki/index.php?title=NativeMultiplayer&amp;diff=11441</id>
		<title>NativeMultiplayer</title>
		<link rel="alternate" type="text/html" href="https://wiki.gtaconnected.com/wiki/index.php?title=NativeMultiplayer&amp;diff=11441"/>
		<updated>2026-03-22T10:10:52Z</updated>

		<summary type="html">&lt;p&gt;PerikiyoXD: typo on xml&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Native Multiplayer}}&lt;br /&gt;
{{AlertBox|This page only applies to Grand Theft Auto IV}}&lt;br /&gt;
&lt;br /&gt;
== tl;dr ==&lt;br /&gt;
* Native MP = GFWL modes&lt;br /&gt;
* Custom sync = Empty and scriptable like SA-MP, FiveM, etc&amp;lt;br /&amp;gt;&lt;br /&gt;
Making a roleplay server? Turn off native MP mode in [[ServerConfiguration|server.xml]]: {{InlineCode|&amp;lt;iv_nativemultiplayer&amp;gt;false&amp;lt;iv_nativemultiplayer&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
== What is native multiplayer? ==&lt;br /&gt;
Native multiplayer (sometimes referred to as native mp for short) is an alternative server/sync mode for GTA IV. &lt;br /&gt;
&lt;br /&gt;
While GTAC (and most other GTA multiplayer mods) provide a sandbox environment and custom-made sync, GTAC also allows the use of &amp;quot;native multiplayer&amp;quot; which is Rockstar&#039;s sync, just passed through the server instead of directly peer to peer.&lt;br /&gt;
&lt;br /&gt;
== How do I use it? ==&lt;br /&gt;
Players can&#039;t turn native multiplayer mode on or off, only a server can. If you are hosting a server, you can set the &amp;lt;iv_nativemultiplayer&amp;gt; tag in the server configuration to true or false. &lt;br /&gt;
&lt;br /&gt;
== When should I use it? ==&lt;br /&gt;
* If you&#039;re hosting a server that uses [[Resources/GTAIV/GameModes|built-in IV gamemodes]], you should use native multiplayer mode.&lt;br /&gt;
* If you&#039;re making a script that&#039;s similar to other MP mods like RAGEMP, MTA:SA, SA-MP, FiveM, etc, you should &#039;&#039;&#039;NOT&#039;&#039;&#039; use native multiplayer mode.&lt;br /&gt;
* If your scripts need to keep track of elements or attach data to them, like a vehicle&#039;s owner for example, you should &#039;&#039;&#039;NOT&#039;&#039;&#039; use native multiplayer mode.&lt;br /&gt;
* If your scripts need to control which [[element.dimension|world players are in]], you should &#039;&#039;&#039;NOT&#039;&#039;&#039; use native multiplayer mode.&lt;br /&gt;
&lt;br /&gt;
== Some notes and technical info ==&lt;br /&gt;
* Using native multiplayer mode presents a challenge when trying to script a gamemode that needs to track elements. For example, a roleplay server might provide vehicle ownership but if the server doesn&#039;t know the vehicle exists, tying that data to the vehicle would be an issue. You could tell a client to spawn it, then report back with the newly spawned vehicle&#039;s ID, but as soon as the session is destroyed and/or another one is created, those ID&#039;s are useless. The ID&#039;s also change if the element is streamed out for everybody and no client has it in memory anymore. If you need to attach persistent data to an element, you should disable native multiplayer on your server&lt;br /&gt;
&lt;br /&gt;
* When using native multiplayer mode, you can&#039;t force players to create or join specific sessions (also called lobbies) with scripting. Each session has a player hosting it. Even if you have the phone disabled, the game might still place some players in different sessions with different hosts, and they won&#039;t be able to see players from another session. If you&#039;re trying to script a gamemode that needs everybody in the same &amp;quot;world&amp;quot; or needs to control which world they&#039;re in then you should disable native multiplayer on your server.&lt;br /&gt;
&lt;br /&gt;
* If you want to use elements in the same way as other GTA multiplayer mods, or the older games here on GTA Connected, you&#039;ll need to turn off native MP mode in server config. This will force GTAC to use it&#039;s own custom sync. When using GTAC&#039;s custom sync, servers will be aware of elements and all can be handled using either GTAC functions or natives, although natives will only exist client-side. &lt;br /&gt;
&lt;br /&gt;
* When native multiplayer mode is &#039;&#039;disabled&#039;&#039;, some internal &amp;quot;events&amp;quot; that IV uses are not currently handled or synced. This means things like when a player shoots another player, the damage itself won&#039;t be synced. A small snippet of code added to a resource is needed to sync these events.&lt;br /&gt;
&lt;br /&gt;
* The [[element.id|element.id]] function is part of GTAC&#039;s own element handling and does not work on native multiplayer mode. If you&#039;re using native multiplayer mode, you will need to use natives to get the ID of an element.&lt;br /&gt;
&lt;br /&gt;
* When using native multiplayer mode, the server doesn&#039;t know how to read the sync packets, and only passes them along &#039;&#039;&#039;as-is&#039;&#039;&#039;. Any references to elements in this mode is handled by the games themselves.&lt;/div&gt;</summary>
		<author><name>PerikiyoXD</name></author>
	</entry>
	<entry>
		<id>https://wiki.gtaconnected.com/wiki/index.php?title=meta.xml&amp;diff=11426</id>
		<title>meta.xml</title>
		<link rel="alternate" type="text/html" href="https://wiki.gtaconnected.com/wiki/index.php?title=meta.xml&amp;diff=11426"/>
		<updated>2026-03-12T13:12:11Z</updated>

		<summary type="html">&lt;p&gt;PerikiyoXD: New `meta.xml`&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Resource `meta.xml` ==&lt;br /&gt;
&lt;br /&gt;
Defines metadata and file declarations for a resource.  &lt;br /&gt;
Every resource &#039;&#039;&#039;must contain a `meta.xml` file&#039;&#039;&#039; or the resource will not load.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Basic Structure ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;meta&amp;gt;&lt;br /&gt;
    &amp;lt;info author=&amp;quot;&amp;quot; type=&amp;quot;&amp;quot; version=&amp;quot;&amp;quot; description=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;&amp;quot; type=&amp;quot;&amp;quot; language=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;dependency src=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;map src=&amp;quot;&amp;quot; type=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;file src=&amp;quot;&amp;quot; type=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/meta&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Complete Example ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;meta&amp;gt;&lt;br /&gt;
    &amp;lt;info &lt;br /&gt;
        author=&amp;quot;JohnDoe&amp;quot;&lt;br /&gt;
        type=&amp;quot;gameplay&amp;quot;&lt;br /&gt;
        version=&amp;quot;1.0.0&amp;quot;&lt;br /&gt;
        description=&amp;quot;Example resource&amp;quot;&lt;br /&gt;
    /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;script src=&amp;quot;server/main.js&amp;quot; type=&amp;quot;server&amp;quot; language=&amp;quot;javascript&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;client/ui.js&amp;quot; type=&amp;quot;client&amp;quot; language=&amp;quot;javascript&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;file src=&amp;quot;config/settings.json&amp;quot; type=&amp;quot;server&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;file src=&amp;quot;ui/index.html&amp;quot; type=&amp;quot;client&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;map src=&amp;quot;maps/city.map&amp;quot; type=&amp;quot;map&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;dependency src=&amp;quot;core&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/meta&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Elements ==&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;meta&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
Root element that contains all metadata and file declarations for the resource.&lt;br /&gt;
&lt;br /&gt;
Only one `&amp;lt;meta&amp;gt;` element should exist in a `meta.xml`.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;info&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
Provides general metadata about the resource.&lt;br /&gt;
&lt;br /&gt;
==== Attributes ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Attribute&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| author&lt;br /&gt;
| Name of the resource author.&lt;br /&gt;
|-&lt;br /&gt;
| type&lt;br /&gt;
| Resource category or custom description.&lt;br /&gt;
|-&lt;br /&gt;
| version&lt;br /&gt;
| Resource version number.&lt;br /&gt;
|-&lt;br /&gt;
| description&lt;br /&gt;
| Short description explaining the resource.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;info &lt;br /&gt;
    author=&amp;quot;JohnDoe&amp;quot;&lt;br /&gt;
    type=&amp;quot;gameplay&amp;quot;&lt;br /&gt;
    version=&amp;quot;1.0.0&amp;quot;&lt;br /&gt;
    description=&amp;quot;Adds custom gameplay mechanics&amp;quot;&lt;br /&gt;
/&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;script&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
Declares a script file that should be loaded by the resource.&lt;br /&gt;
&lt;br /&gt;
Each script file must have its own `&amp;lt;script&amp;gt;` entry.&lt;br /&gt;
&lt;br /&gt;
==== Attributes ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Attribute&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| src&lt;br /&gt;
| Relative path to the script file.&lt;br /&gt;
|-&lt;br /&gt;
| type&lt;br /&gt;
| Execution side (&amp;lt;code&amp;gt;server&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;client&amp;lt;/code&amp;gt;).&lt;br /&gt;
|-&lt;br /&gt;
| language&lt;br /&gt;
| Script language used by the file.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;server/main.js&amp;quot; type=&amp;quot;server&amp;quot; language=&amp;quot;javascript&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;client/ui.js&amp;quot; type=&amp;quot;client&amp;quot; language=&amp;quot;javascript&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;file&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
Declares a custom file included in the resource.&lt;br /&gt;
&lt;br /&gt;
==== Attributes ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Attribute&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| src&lt;br /&gt;
| Relative path to the file.&lt;br /&gt;
|-&lt;br /&gt;
| type&lt;br /&gt;
| Target side (&amp;lt;code&amp;gt;client&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;server&amp;lt;/code&amp;gt;).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;file src=&amp;quot;config/settings.json&amp;quot; type=&amp;quot;server&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;file src=&amp;quot;ui/index.html&amp;quot; type=&amp;quot;client&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;dependency&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
Declares a required resource dependency.&lt;br /&gt;
&lt;br /&gt;
If specified, the dependency resource must load before this one.&lt;br /&gt;
&lt;br /&gt;
==== Attributes ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Attribute&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| src&lt;br /&gt;
| Name of the required resource.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;dependency src=&amp;quot;core&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;dependency src=&amp;quot;database&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;map&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
Registers a map file used by the resource.&lt;br /&gt;
&lt;br /&gt;
==== Attributes ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Attribute&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| src&lt;br /&gt;
| Relative path to the map file.&lt;br /&gt;
|-&lt;br /&gt;
| type&lt;br /&gt;
| Map type definition.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;map src=&amp;quot;maps/city.map&amp;quot; type=&amp;quot;map&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Path Rules ==&lt;br /&gt;
&lt;br /&gt;
All &amp;lt;code&amp;gt;src&amp;lt;/code&amp;gt; attributes use &#039;&#039;&#039;paths relative to the resource root folder&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Valid Examples ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
example.js&lt;br /&gt;
client/ui.js&lt;br /&gt;
server/modules/auth.js&lt;br /&gt;
assets/images/logo.png&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Invalid Example ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/absolute/path/file.js&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Absolute paths are not supported.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Key Rules ==&lt;br /&gt;
&lt;br /&gt;
* Every resource must include a &amp;lt;code&amp;gt;meta.xml&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Each script requires its own &amp;lt;code&amp;gt;&amp;amp;lt;script&amp;amp;gt;&amp;lt;/code&amp;gt; entry.&lt;br /&gt;
* All &amp;lt;code&amp;gt;src&amp;lt;/code&amp;gt; paths are relative to the resource root folder.&lt;br /&gt;
* Dependencies ensure correct resource load order.&lt;br /&gt;
* Custom files must be declared using &amp;lt;code&amp;gt;&amp;amp;lt;file&amp;amp;gt;&amp;lt;/code&amp;gt; to be available at runtime.&lt;/div&gt;</summary>
		<author><name>PerikiyoXD</name></author>
	</entry>
	<entry>
		<id>https://wiki.gtaconnected.com/wiki/index.php?title=Main_Page&amp;diff=11411</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.gtaconnected.com/wiki/index.php?title=Main_Page&amp;diff=11411"/>
		<updated>2026-02-23T13:53:28Z</updated>

		<summary type="html">&lt;p&gt;PerikiyoXD: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:100%;padding:0;margin:0;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Header --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#222222;text-align:center;color:white;font-size:2em;padding:1em;margin:0;&amp;quot;&amp;gt;GTA Connected Wiki&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- 2x2 Grid --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;display:flex;flex-wrap:wrap;gap:1em;padding:1em;background:#f9f9f9;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- For Players --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mainPageLinksBox&amp;quot; style=&amp;quot;flex:1 1 300px;border:4px solid #008b8b;display:flex;flex-direction:column;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#008b8b;text-align:center;color:white;font-size:1.5em;padding:0.8em;&amp;quot;&amp;gt;For Players&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:1em;&amp;quot;&amp;gt;&lt;br /&gt;
==Getting Started==&lt;br /&gt;
*[[Downgrading|Downgrading]]&lt;br /&gt;
*[[GameModifications|Game Modifications]]&lt;br /&gt;
*[[GamesAndVersions|Games &amp;amp; Versions]]&lt;br /&gt;
&lt;br /&gt;
==More Information==&lt;br /&gt;
*[[ClientManual|Client Manual]]&lt;br /&gt;
*[[SteamDeck|Steam Deck]]&lt;br /&gt;
*[[FAQ|FAQ]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- For Servers --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mainPageLinksBox&amp;quot; style=&amp;quot;flex:1 1 300px;border:4px solid #008b8b;display:flex;flex-direction:column;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#008b8b;text-align:center;color:white;font-size:1.5em;padding:0.8em;&amp;quot;&amp;gt;For Servers&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:1em;&amp;quot;&amp;gt;&lt;br /&gt;
==Hosting a server==&lt;br /&gt;
*[[Servers/GettingStarted|Getting Started]]&lt;br /&gt;
*[[PortForward|Port Forwarding]]&lt;br /&gt;
*[[ServerManual|Server Manual]]&lt;br /&gt;
*[[ServerConfiguration|Server Configuration]]&lt;br /&gt;
*[[CVars|CVars]]&lt;br /&gt;
*[[ServerRules|Server Rules]]&lt;br /&gt;
&lt;br /&gt;
==Extending the server==&lt;br /&gt;
*[[Resources|Resources]]&lt;br /&gt;
*[[Modules|Modules]]&lt;br /&gt;
&lt;br /&gt;
==Advanced==&lt;br /&gt;
*[[Dumpdoc|Dumpdoc]]&lt;br /&gt;
*[[ServerCommandLine|Server Command Line]]&lt;br /&gt;
*[[ServerQuery|Server Query]]&lt;br /&gt;
*[[Anticheat|Anticheat]]&lt;br /&gt;
*[[Limits|Limits]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Scripting --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mainPageLinksBox&amp;quot; style=&amp;quot;flex:1 1 300px;border:4px solid #8b0000;display:flex;flex-direction:column;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#8b0000;text-align:center;color:white;font-size:1.5em;padding:0.8em;&amp;quot;&amp;gt;Scripting&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:1em;&amp;quot;&amp;gt;&lt;br /&gt;
==Shared==&lt;br /&gt;
*[[Types|Types]]&lt;br /&gt;
*[[Defines|Defines]]&lt;br /&gt;
&lt;br /&gt;
==Server==&lt;br /&gt;
*[[Server/Events|Events]]&lt;br /&gt;
*[[Server/Functions|Functions]]&lt;br /&gt;
&lt;br /&gt;
==Client==&lt;br /&gt;
*[[Client/Events|Events]]&lt;br /&gt;
*[[Client/Functions|Functions]]&lt;br /&gt;
*[[Client/Natives|Native Scripting Functions]]&lt;br /&gt;
&lt;br /&gt;
==Extra==&lt;br /&gt;
*[[ScriptingLanguages|Scripting Languages]]&lt;br /&gt;
*[[NetworkEvents|Network Events]]&lt;br /&gt;
*[[ScriptingExamples|Examples]]&lt;br /&gt;
*[[ScriptingTutorials|Tutorials]]&lt;br /&gt;
*[[NativeMultiplayer|Native MP Mode (GTA IV)]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Reference --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mainPageLinksBox&amp;quot; style=&amp;quot;flex:1 1 300px;border:4px solid #8b8b00;display:flex;flex-direction:column;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#8b8b00;text-align:center;color:white;font-size:1.5em;padding:0.8em;&amp;quot;&amp;gt;Reference&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;display:flex;flex-wrap:wrap;gap:1em;padding:1em;flex:1;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;flex:1 1 120px;padding:0.8em;border:1px solid #ddd;background:white;&amp;quot;&amp;gt;&lt;br /&gt;
=== [[Image:GTAIII_Logo.png|32px|middle]] GTA III ===&lt;br /&gt;
*[[Resources/GTA3/Animations|Animations]]&lt;br /&gt;
*[[Resources/GTA3/PedSkins|Ped Skins]]&lt;br /&gt;
*[[Resources/GTA3/Pickups|Pickups]]&lt;br /&gt;
*[[Resources/GTA3/RadarBlips|Radar Blips]]&lt;br /&gt;
*[[Resources/GTA3/VehicleColours|Vehicle Colours]]&lt;br /&gt;
*[[Resources/GTA3/VehicleModels|Vehicle Models]]&lt;br /&gt;
*[[Resources/GTA3/Weapons|Weapons]]&lt;br /&gt;
*[[Resources/GTA3|More ...]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;flex:1 1 120px;padding:0.8em;border:1px solid #ddd;background:white;&amp;quot;&amp;gt;&lt;br /&gt;
=== [[Image:GTAVC_Logo.png|32px|middle]] GTA Vice City ===&lt;br /&gt;
*[[Resources/GTAVC/Animations|Animations]]&lt;br /&gt;
*[[Resources/GTAVC/PedSkins|Ped Skins]]&lt;br /&gt;
*[[Resources/GTAVC/Pickups|Pickups]]&lt;br /&gt;
*[[Resources/GTAVC/RadarBlips|Radar Blips]]&lt;br /&gt;
*[[Resources/GTAVC/VehicleColours|Vehicle Colours]]&lt;br /&gt;
*[[Resources/GTAVC/VehicleModels|Vehicle Models]]&lt;br /&gt;
*[[Resources/GTAVC/Weapons|Weapons]]&lt;br /&gt;
*[[Resources/GTAVC|More ...]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;flex:1 1 120px;padding:0.8em;border:1px solid #ddd;background:white;&amp;quot;&amp;gt;&lt;br /&gt;
=== [[Image:GTASA_Logo.png|32px|middle]] GTA San Andreas ===&lt;br /&gt;
*[[Resources/GTASA/Animations|Animations]]&lt;br /&gt;
*[[Resources/GTASA/PedSkins|Ped Skins]]&lt;br /&gt;
*[[Resources/GTASA/Pickups|Pickups]]&lt;br /&gt;
*[[Resources/GTASA/RadarBlips|Radar Blips]]&lt;br /&gt;
*[[Resources/GTASA/VehicleColours|Vehicle Colours]]&lt;br /&gt;
*[[Resources/GTASA/VehicleModels|Vehicle Models]]&lt;br /&gt;
*[[Resources/GTASA/Weapons|Weapons]]&lt;br /&gt;
*[[Resources/GTASA|More ...]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;flex:1 1 120px;padding:0.8em;border:1px solid #ddd;background:white;&amp;quot;&amp;gt;&lt;br /&gt;
=== [[Image:GTAIV_Logo.png|32px|middle]] GTA IV ===&lt;br /&gt;
*[[Resources/GTAIV/Animations|Animations]]&lt;br /&gt;
*[[Resources/GTAIV/PedSkins|Ped Skins]]&lt;br /&gt;
*[[Resources/GTAIV/Pickups|Pickups]]&lt;br /&gt;
*[[Resources/GTAIV/RadarBlips|Radar Blips]]&lt;br /&gt;
*[[Resources/GTAIV/VehicleColours|Vehicle Colours]]&lt;br /&gt;
*[[Resources/GTAIV/VehicleModels|Vehicle Models]]&lt;br /&gt;
*[[Resources/GTAIV/Weapons|Weapons]]&lt;br /&gt;
*[[Resources/GTAIV|More ...]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>PerikiyoXD</name></author>
	</entry>
	<entry>
		<id>https://wiki.gtaconnected.com/wiki/index.php?title=Main_Page&amp;diff=11410</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.gtaconnected.com/wiki/index.php?title=Main_Page&amp;diff=11410"/>
		<updated>2026-02-23T13:51:46Z</updated>

		<summary type="html">&lt;p&gt;PerikiyoXD: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:100%;padding:0;margin:0;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Header --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#222222;text-align:center;color:white;font-size:2em;padding:1em;margin:0;&amp;quot;&amp;gt;GTA Connected Wiki&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- 2x2 Grid --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;display:flex;flex-wrap:wrap;gap:1em;padding:1em;background:#f9f9f9;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- For Players --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mainPageLinksBox&amp;quot; style=&amp;quot;flex:1 1 300px;border:4px solid #008b8b;display:flex;flex-direction:column;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#008b8b;text-align:center;color:white;font-size:1.5em;padding:0.8em;&amp;quot;&amp;gt;For Players&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:1em;&amp;quot;&amp;gt;&lt;br /&gt;
==Getting Started==&lt;br /&gt;
*[[Downgrading|Downgrading]]&lt;br /&gt;
*[[GameModifications|Game Modifications]]&lt;br /&gt;
*[[GamesAndVersions|Games &amp;amp; Versions]]&lt;br /&gt;
&lt;br /&gt;
==More Information==&lt;br /&gt;
*[[ClientManual|Client Manual]]&lt;br /&gt;
*[[SteamDeck|Steam Deck]]&lt;br /&gt;
*[[FAQ|FAQ]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- For Servers --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mainPageLinksBox&amp;quot; style=&amp;quot;flex:1 1 300px;border:4px solid #008b8b;display:flex;flex-direction:column;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#008b8b;text-align:center;color:white;font-size:1.5em;padding:0.8em;&amp;quot;&amp;gt;For Servers&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:1em;&amp;quot;&amp;gt;&lt;br /&gt;
==Hosting a server==&lt;br /&gt;
*[[Server/GettingStarted|Getting Started]]&lt;br /&gt;
*[[PortForward|Port Forwarding]]&lt;br /&gt;
*[[ServerManual|Server Manual]]&lt;br /&gt;
*[[ServerConfiguration|Server Configuration]]&lt;br /&gt;
*[[CVars|CVars]]&lt;br /&gt;
*[[ServerRules|Server Rules]]&lt;br /&gt;
&lt;br /&gt;
==Extending the server==&lt;br /&gt;
*[[Resources|Resources]]&lt;br /&gt;
*[[Modules|Modules]]&lt;br /&gt;
&lt;br /&gt;
==Advanced==&lt;br /&gt;
*[[Dumpdoc|Dumpdoc]]&lt;br /&gt;
*[[ServerCommandLine|Server Command Line]]&lt;br /&gt;
*[[ServerQuery|Server Query]]&lt;br /&gt;
*[[Anticheat|Anticheat]]&lt;br /&gt;
*[[Limits|Limits]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Scripting --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mainPageLinksBox&amp;quot; style=&amp;quot;flex:1 1 300px;border:4px solid #8b0000;display:flex;flex-direction:column;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#8b0000;text-align:center;color:white;font-size:1.5em;padding:0.8em;&amp;quot;&amp;gt;Scripting&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:1em;&amp;quot;&amp;gt;&lt;br /&gt;
==Shared==&lt;br /&gt;
*[[Types|Types]]&lt;br /&gt;
*[[Defines|Defines]]&lt;br /&gt;
&lt;br /&gt;
==Server==&lt;br /&gt;
*[[Server/Events|Events]]&lt;br /&gt;
*[[Server/Functions|Functions]]&lt;br /&gt;
&lt;br /&gt;
==Client==&lt;br /&gt;
*[[Client/Events|Events]]&lt;br /&gt;
*[[Client/Functions|Functions]]&lt;br /&gt;
*[[Client/Natives|Native Scripting Functions]]&lt;br /&gt;
&lt;br /&gt;
==Extra==&lt;br /&gt;
*[[ScriptingLanguages|Scripting Languages]]&lt;br /&gt;
*[[NetworkEvents|Network Events]]&lt;br /&gt;
*[[ScriptingExamples|Examples]]&lt;br /&gt;
*[[ScriptingTutorials|Tutorials]]&lt;br /&gt;
*[[NativeMultiplayer|Native MP Mode (GTA IV)]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Reference --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mainPageLinksBox&amp;quot; style=&amp;quot;flex:1 1 300px;border:4px solid #8b8b00;display:flex;flex-direction:column;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#8b8b00;text-align:center;color:white;font-size:1.5em;padding:0.8em;&amp;quot;&amp;gt;Reference&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;display:flex;flex-wrap:wrap;gap:1em;padding:1em;flex:1;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;flex:1 1 120px;padding:0.8em;border:1px solid #ddd;background:white;&amp;quot;&amp;gt;&lt;br /&gt;
=== [[Image:GTAIII_Logo.png|32px|middle]] GTA III ===&lt;br /&gt;
*[[Resources/GTA3/Animations|Animations]]&lt;br /&gt;
*[[Resources/GTA3/PedSkins|Ped Skins]]&lt;br /&gt;
*[[Resources/GTA3/Pickups|Pickups]]&lt;br /&gt;
*[[Resources/GTA3/RadarBlips|Radar Blips]]&lt;br /&gt;
*[[Resources/GTA3/VehicleColours|Vehicle Colours]]&lt;br /&gt;
*[[Resources/GTA3/VehicleModels|Vehicle Models]]&lt;br /&gt;
*[[Resources/GTA3/Weapons|Weapons]]&lt;br /&gt;
*[[Resources/GTA3|More ...]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;flex:1 1 120px;padding:0.8em;border:1px solid #ddd;background:white;&amp;quot;&amp;gt;&lt;br /&gt;
=== [[Image:GTAVC_Logo.png|32px|middle]] GTA Vice City ===&lt;br /&gt;
*[[Resources/GTAVC/Animations|Animations]]&lt;br /&gt;
*[[Resources/GTAVC/PedSkins|Ped Skins]]&lt;br /&gt;
*[[Resources/GTAVC/Pickups|Pickups]]&lt;br /&gt;
*[[Resources/GTAVC/RadarBlips|Radar Blips]]&lt;br /&gt;
*[[Resources/GTAVC/VehicleColours|Vehicle Colours]]&lt;br /&gt;
*[[Resources/GTAVC/VehicleModels|Vehicle Models]]&lt;br /&gt;
*[[Resources/GTAVC/Weapons|Weapons]]&lt;br /&gt;
*[[Resources/GTAVC|More ...]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;flex:1 1 120px;padding:0.8em;border:1px solid #ddd;background:white;&amp;quot;&amp;gt;&lt;br /&gt;
=== [[Image:GTASA_Logo.png|32px|middle]] GTA San Andreas ===&lt;br /&gt;
*[[Resources/GTASA/Animations|Animations]]&lt;br /&gt;
*[[Resources/GTASA/PedSkins|Ped Skins]]&lt;br /&gt;
*[[Resources/GTASA/Pickups|Pickups]]&lt;br /&gt;
*[[Resources/GTASA/RadarBlips|Radar Blips]]&lt;br /&gt;
*[[Resources/GTASA/VehicleColours|Vehicle Colours]]&lt;br /&gt;
*[[Resources/GTASA/VehicleModels|Vehicle Models]]&lt;br /&gt;
*[[Resources/GTASA/Weapons|Weapons]]&lt;br /&gt;
*[[Resources/GTASA|More ...]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;flex:1 1 120px;padding:0.8em;border:1px solid #ddd;background:white;&amp;quot;&amp;gt;&lt;br /&gt;
=== [[Image:GTAIV_Logo.png|32px|middle]] GTA IV ===&lt;br /&gt;
*[[Resources/GTAIV/Animations|Animations]]&lt;br /&gt;
*[[Resources/GTAIV/PedSkins|Ped Skins]]&lt;br /&gt;
*[[Resources/GTAIV/Pickups|Pickups]]&lt;br /&gt;
*[[Resources/GTAIV/RadarBlips|Radar Blips]]&lt;br /&gt;
*[[Resources/GTAIV/VehicleColours|Vehicle Colours]]&lt;br /&gt;
*[[Resources/GTAIV/VehicleModels|Vehicle Models]]&lt;br /&gt;
*[[Resources/GTAIV/Weapons|Weapons]]&lt;br /&gt;
*[[Resources/GTAIV|More ...]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>PerikiyoXD</name></author>
	</entry>
	<entry>
		<id>https://wiki.gtaconnected.com/wiki/index.php?title=GettingStarted&amp;diff=11409</id>
		<title>GettingStarted</title>
		<link rel="alternate" type="text/html" href="https://wiki.gtaconnected.com/wiki/index.php?title=GettingStarted&amp;diff=11409"/>
		<updated>2026-02-23T13:51:27Z</updated>

		<summary type="html">&lt;p&gt;PerikiyoXD: PerikiyoXD moved page GettingStarted to Servers/GettingStarted: Namespacing&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Servers/GettingStarted]]&lt;/div&gt;</summary>
		<author><name>PerikiyoXD</name></author>
	</entry>
	<entry>
		<id>https://wiki.gtaconnected.com/wiki/index.php?title=Servers/GettingStarted&amp;diff=11408</id>
		<title>Servers/GettingStarted</title>
		<link rel="alternate" type="text/html" href="https://wiki.gtaconnected.com/wiki/index.php?title=Servers/GettingStarted&amp;diff=11408"/>
		<updated>2026-02-23T13:51:27Z</updated>

		<summary type="html">&lt;p&gt;PerikiyoXD: PerikiyoXD moved page GettingStarted to Servers/GettingStarted: Namespacing&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Getting Started}}&lt;br /&gt;
{{BlueInformationBox|1=This guide explains how to &#039;&#039;&#039;create and run a server&#039;&#039;&#039;. If you only want to join and play on an existing server, this page is not required.}}&lt;br /&gt;
&lt;br /&gt;
= Getting Started =&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
Setting up a server involves four main steps:&lt;br /&gt;
&lt;br /&gt;
# Download the server package from the [https://gtaconnected.com/downloads Downloads] page.&lt;br /&gt;
# Extract the files to a new, empty folder.&lt;br /&gt;
# Configure your server settings in &amp;lt;code&amp;gt;server.xml&amp;lt;/code&amp;gt; (see [[ServerConfiguration|Server Configuration]]).&lt;br /&gt;
# Start the server executable.&lt;br /&gt;
&lt;br /&gt;
Executable names:&lt;br /&gt;
* &#039;&#039;&#039;Windows:&#039;&#039;&#039; &amp;lt;code&amp;gt;Server.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Linux:&#039;&#039;&#039; See [[LinuxServer|Linux Server]] for available launch methods and instructions.&lt;br /&gt;
&lt;br /&gt;
Once started successfully, the server will begin listening for incoming connections.&lt;br /&gt;
&lt;br /&gt;
== Server Configuration ==&lt;br /&gt;
&lt;br /&gt;
All core settings are stored in &amp;lt;code&amp;gt;server.xml&amp;lt;/code&amp;gt;. This includes:&lt;br /&gt;
&lt;br /&gt;
* Server name&lt;br /&gt;
* Port settings&lt;br /&gt;
* Resource loading&lt;br /&gt;
* Player limits&lt;br /&gt;
* Networking options&lt;br /&gt;
&lt;br /&gt;
Refer to [[ServerConfiguration|Server Configuration]] for a full list of available settings and explanations.&lt;br /&gt;
&lt;br /&gt;
After modifying the configuration, restart the server for changes to take effect.&lt;br /&gt;
&lt;br /&gt;
== Game Mode Setup ==&lt;br /&gt;
&lt;br /&gt;
=== GTA IV (Rockstar Modes) ===&lt;br /&gt;
&lt;br /&gt;
To use Rockstar’s built-in game modes (Party Mode sessions):&lt;br /&gt;
&lt;br /&gt;
# Navigate to the &amp;lt;code&amp;gt;resources&amp;lt;/code&amp;gt; folder.&lt;br /&gt;
# Delete the &amp;lt;code&amp;gt;freeroam&amp;lt;/code&amp;gt; folder.&lt;br /&gt;
# Open &amp;lt;code&amp;gt;server.xml&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Remove the line:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;resource src=&amp;quot;freeroam&amp;quot; /&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start the server normally.&lt;br /&gt;
&lt;br /&gt;
Players who connect will enter a generic rendezvous lobby using Party Mode. From there:&lt;br /&gt;
&lt;br /&gt;
* Players can use the in-game phone.&lt;br /&gt;
* Sessions can be created or joined directly.&lt;br /&gt;
&lt;br /&gt;
=== GTA III, Vice City, San Andreas, and IV (Custom / Scripted Modes) ===&lt;br /&gt;
&lt;br /&gt;
For scripted servers:&lt;br /&gt;
&lt;br /&gt;
* Example scripts are available here:&lt;br /&gt;
  [https://github.com/VortrexFTW/v-essentials v-essentials examples]&lt;br /&gt;
&lt;br /&gt;
If creating your own scripts, you must at minimum:&lt;br /&gt;
&lt;br /&gt;
* Spawn the player.&lt;br /&gt;
* Fade in the camera using [[gta.fadeCamera|gta.fadeCamera]].&lt;br /&gt;
* Trigger this logic in an appropriate event, such as [[OnPlayerJoined|onPlayerJoined]].&lt;br /&gt;
&lt;br /&gt;
The default &amp;lt;code&amp;gt;freeroam&amp;lt;/code&amp;gt; resource:&lt;br /&gt;
&lt;br /&gt;
* Handles spawning and camera fade.&lt;br /&gt;
* Is designed for GTA III.&lt;br /&gt;
* May require modification for other games.&lt;br /&gt;
&lt;br /&gt;
We also provide a [[MinimalResourceSkeleton|Minimal Resource Skeleton]] that you can use to start on your own.&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
&lt;br /&gt;
Resources control gameplay logic, scripts, and custom functionality.&lt;br /&gt;
&lt;br /&gt;
See [[Resources|Resources]] for:&lt;br /&gt;
&lt;br /&gt;
* Resource structure&lt;br /&gt;
* Loading and unloading&lt;br /&gt;
* Script organization&lt;br /&gt;
* Best practices&lt;br /&gt;
&lt;br /&gt;
== Modules ==&lt;br /&gt;
&lt;br /&gt;
Modules extend server functionality with native integrations such as:&lt;br /&gt;
&lt;br /&gt;
* MySQL&lt;br /&gt;
* SQLite&lt;br /&gt;
* INI file handling&lt;br /&gt;
* Additional system-level features&lt;br /&gt;
&lt;br /&gt;
See [[Modules|Modules]] for usage instructions.&lt;br /&gt;
&lt;br /&gt;
Additional modules are available on the forum:&lt;br /&gt;
[https://forum.gtaconnected.com/index.php?board=24.0 Modules Board]&lt;br /&gt;
&lt;br /&gt;
Developers with C or C++ experience can create custom modules using the:&lt;br /&gt;
[https://gtaconnected.com/downloads/ModuleSDK.7z Module SDK]&lt;br /&gt;
&lt;br /&gt;
== Server Manual ==&lt;br /&gt;
&lt;br /&gt;
For in-depth documentation covering commands, configuration, scripting, and advanced topics, see the [[ServerManual|Server Manual]].&lt;br /&gt;
&lt;br /&gt;
== Next Steps ==&lt;br /&gt;
&lt;br /&gt;
After your server is running:&lt;br /&gt;
&lt;br /&gt;
* Verify connectivity (see port forwarding documentation if hosting from home).&lt;br /&gt;
* Test resource loading.&lt;br /&gt;
* Confirm players can join successfully.&lt;br /&gt;
* Begin developing or installing additional resources and modules.&lt;/div&gt;</summary>
		<author><name>PerikiyoXD</name></author>
	</entry>
	<entry>
		<id>https://wiki.gtaconnected.com/wiki/index.php?title=Resources/GTAIV/Weapons&amp;diff=11407</id>
		<title>Resources/GTAIV/Weapons</title>
		<link rel="alternate" type="text/html" href="https://wiki.gtaconnected.com/wiki/index.php?title=Resources/GTAIV/Weapons&amp;diff=11407"/>
		<updated>2026-02-23T13:48:22Z</updated>

		<summary type="html">&lt;p&gt;PerikiyoXD: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Weapon Flags ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! ID !! Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || CAN_AIM&lt;br /&gt;
|-&lt;br /&gt;
| 1 || CAN_AIM_WITH_ARM&lt;br /&gt;
|-&lt;br /&gt;
| 2 || CAN_FREE_AIM&lt;br /&gt;
|-&lt;br /&gt;
| 3 || FIRST_PERSON&lt;br /&gt;
|-&lt;br /&gt;
| 4 || KEEP_CAMERA_BEHIND&lt;br /&gt;
|-&lt;br /&gt;
| 5 || GUN&lt;br /&gt;
|-&lt;br /&gt;
| 6 || THROWN&lt;br /&gt;
|-&lt;br /&gt;
| 7 || HEAVY&lt;br /&gt;
|-&lt;br /&gt;
| 8 || SILENCED&lt;br /&gt;
|-&lt;br /&gt;
| 9 || MELEE_CLUB&lt;br /&gt;
|-&lt;br /&gt;
| 10 || MELEE_BLADE&lt;br /&gt;
|-&lt;br /&gt;
| 11 || ARMOUR_PENETRATING&lt;br /&gt;
|-&lt;br /&gt;
| 12 || 2HANDED&lt;br /&gt;
|-&lt;br /&gt;
| 13 || TREAT_AS_2HANDED_IN_COVER&lt;br /&gt;
|-&lt;br /&gt;
| 14 || ANIM_RELOAD&lt;br /&gt;
|-&lt;br /&gt;
| 15 || ANIM_CROUCH_FIRE&lt;br /&gt;
|-&lt;br /&gt;
| 16 || CREATE_VISIBLE_ORDNANCE&lt;br /&gt;
|-&lt;br /&gt;
| 17 || EXPLOSION_BASED_ON_IMPACT&lt;br /&gt;
|-&lt;br /&gt;
| 18 || ADD_SMOKE_ON_EXPLOSION&lt;br /&gt;
|-&lt;br /&gt;
| 19 || INSTANT_KILL_IN_MP&lt;br /&gt;
|-&lt;br /&gt;
| 20 || HIGHER_BREAK_FORCE&lt;br /&gt;
|-&lt;br /&gt;
| 21 || CAN_BE_USED_AS_DRIVEBY&lt;br /&gt;
|-&lt;br /&gt;
| 22 || HEAVY_WEAPON_USES_RIFLE_ANIMS&lt;br /&gt;
|-&lt;br /&gt;
| 23 || MISSION_CAN_FORCE_DRIVEBY_USE&lt;br /&gt;
|-&lt;br /&gt;
| 24 || DONT_RUMBLE_WHEN_DOING_DRIVE_BY&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Weapon Slots ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! ID !! Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || UNARMED&lt;br /&gt;
|-&lt;br /&gt;
| 1 || MELEE&lt;br /&gt;
|-&lt;br /&gt;
| 2 || HANDGUN&lt;br /&gt;
|-&lt;br /&gt;
| 3 || SHOTGUN&lt;br /&gt;
|-&lt;br /&gt;
| 4 || SMG&lt;br /&gt;
|-&lt;br /&gt;
| 5 || RIFLE&lt;br /&gt;
|-&lt;br /&gt;
| 6 || SNIPER&lt;br /&gt;
|-&lt;br /&gt;
| 7 || HEAVY&lt;br /&gt;
|-&lt;br /&gt;
| 8 || THROWN&lt;br /&gt;
|-&lt;br /&gt;
| 9 || SPECIAL&lt;br /&gt;
|-&lt;br /&gt;
| 10 || GIFT&lt;br /&gt;
|-&lt;br /&gt;
| 11 || PARACHUTE&lt;br /&gt;
|-&lt;br /&gt;
| 12 || DETONATORUNKNOWN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Weapons ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! ID !! Name !! Associated Weapon Model&lt;br /&gt;
|-&lt;br /&gt;
| 0 || UNARMED || Fist&lt;br /&gt;
|-&lt;br /&gt;
| 1 || BASEBALLBAT || w_bat&lt;br /&gt;
|-&lt;br /&gt;
| 2 || POOLCUE || w_cue&lt;br /&gt;
|-&lt;br /&gt;
| 3 || KNIFE || w_knife&lt;br /&gt;
|-&lt;br /&gt;
| 4 || GRENADE || w_grenade&lt;br /&gt;
|-&lt;br /&gt;
| 5 || MOLOTOV || w_molotov&lt;br /&gt;
|-&lt;br /&gt;
| 6 || ROCKET || cj_rpg_rocket&lt;br /&gt;
|-&lt;br /&gt;
| 7 || PISTOL || w_glock&lt;br /&gt;
|-&lt;br /&gt;
| 8 || UNUSED0 || &lt;br /&gt;
|-&lt;br /&gt;
| 9 || DEAGLE || w_eagle, w_e2_eagle (TBOGT only)&lt;br /&gt;
|-&lt;br /&gt;
| 10 || SHOTGUN || w_pumpshot&lt;br /&gt;
|-&lt;br /&gt;
| 11 || BARETTA || w_shotgun&lt;br /&gt;
|-&lt;br /&gt;
| 12 || MICRO_UZI || w_uzi&lt;br /&gt;
|-&lt;br /&gt;
| 13 || MP5 || w_mp5&lt;br /&gt;
|-&lt;br /&gt;
| 14 || AK47 || w_ak47&lt;br /&gt;
|-&lt;br /&gt;
| 15 || M4 || w_m4&lt;br /&gt;
|-&lt;br /&gt;
| 16 || SNIPERRIFLE || w_psg1&lt;br /&gt;
|-&lt;br /&gt;
| 17 || M40A1 || w_rifle&lt;br /&gt;
|-&lt;br /&gt;
| 18 || RLAUNCHER || rpg&lt;br /&gt;
|-&lt;br /&gt;
| 19 || FTHROWER || flame (Removed)&lt;br /&gt;
|-&lt;br /&gt;
| 20 || MINIGUN || minigun (Removed), Annihilator MiniGuns&lt;br /&gt;
|-&lt;br /&gt;
| 21 || EPISODIC_1 || w_e1_glauncher (TLAD), w_e2_glauncher (TBoGT)&lt;br /&gt;
|-&lt;br /&gt;
| 22 || EPISODIC_2 || w_e1_sweeper (TLAD)&lt;br /&gt;
|-&lt;br /&gt;
| 23 || EPISODIC_3 || &lt;br /&gt;
|-&lt;br /&gt;
| 24 || EPISODIC_4 || w_e1_cuehalf (TLAD)&lt;br /&gt;
|-&lt;br /&gt;
| 25 || EPISODIC_5 || w_e1_grenade (TLAD), w_e2_grenade (TBoGT)&lt;br /&gt;
|-&lt;br /&gt;
| 26 || EPISODIC_6 || w_sawnoff (TLAD)&lt;br /&gt;
|-&lt;br /&gt;
| 27 || EPISODIC_7 || w_cz75 (TLAD)&lt;br /&gt;
|-&lt;br /&gt;
| 28 || EPISODIC_8 || w_pipebomb (TLAD)&lt;br /&gt;
|-&lt;br /&gt;
| 29 || EPISODIC_9 || w_44amag (TBoGT)&lt;br /&gt;
|-&lt;br /&gt;
| 30 || EPISODIC_10 || w_e2_aa12_exp (TBoGT)&lt;br /&gt;
|-&lt;br /&gt;
| 31 || EPISODIC_11 || w_e2_aa12 (TBoGT)&lt;br /&gt;
|-&lt;br /&gt;
| 32 || EPISODIC_12 || w_e2_p90 (TBoGT)&lt;br /&gt;
|-&lt;br /&gt;
| 33 || EPISODIC_13 || w_e2_uzi (TBoGT)&lt;br /&gt;
|-&lt;br /&gt;
| 34 || EPISODIC_14 || w_e2_m249 (TBoGT)&lt;br /&gt;
|-&lt;br /&gt;
| 35 || EPISODIC_15 || w_e2_dsr1 (TBoGT)&lt;br /&gt;
|-&lt;br /&gt;
| 36 || EPISODIC_16 || w_e2_stickybomb (TBoGT)&lt;br /&gt;
|-&lt;br /&gt;
| 37 || EPISODIC_17 || Buzzard Rocket Launcher (TBoGT)&lt;br /&gt;
|-&lt;br /&gt;
| 38 || EPISODIC_18 || Buzzard Rockets (TBoGT)&lt;br /&gt;
|-&lt;br /&gt;
| 39 || EPISODIC_19 || Buzzard Miniguns (TBoGT)&lt;br /&gt;
|-&lt;br /&gt;
| 40 || EPISODIC_20 || APC Cannons (TBoGT)&lt;br /&gt;
|-&lt;br /&gt;
| 41 || EPISODIC_21 || Parachute (TBoGT)&lt;br /&gt;
|-&lt;br /&gt;
| 42 || EPISODIC_22 || &lt;br /&gt;
|-&lt;br /&gt;
| 43 || EPISODIC_23 || &lt;br /&gt;
|-&lt;br /&gt;
| 44 || EPISODIC_24 || &lt;br /&gt;
|-&lt;br /&gt;
| 45 || CAMERA || &lt;br /&gt;
|-&lt;br /&gt;
| 46 || OBJECT || Pickup able Objects to be thrown&lt;br /&gt;
|-&lt;br /&gt;
| 47 || WEAPONTYPE_LAST_WEAPONTYPE || &lt;br /&gt;
|-&lt;br /&gt;
| 48 || ARMOUR || &lt;br /&gt;
|-&lt;br /&gt;
| 49 || RAMMEDBYCAR || &lt;br /&gt;
|-&lt;br /&gt;
| 50 || RUNOVERBYCAR || &lt;br /&gt;
|-&lt;br /&gt;
| 51 || EXPLOSION || &lt;br /&gt;
|-&lt;br /&gt;
| 52 || UZI_DRIVEBY || &lt;br /&gt;
|-&lt;br /&gt;
| 53 || DROWNING || &lt;br /&gt;
|-&lt;br /&gt;
| 54 || FALL || &lt;br /&gt;
|-&lt;br /&gt;
| 55 || UNIDENTIFIED || &lt;br /&gt;
|-&lt;br /&gt;
| 56 || ANYMELEE || &lt;br /&gt;
|-&lt;br /&gt;
| 57 || ANYWEAPON || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Weapon Fire Types ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! ID !! Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || MELEE&lt;br /&gt;
|-&lt;br /&gt;
| 1 || INSTANT_HIT&lt;br /&gt;
|-&lt;br /&gt;
| 2 || DELAYED_HIT&lt;br /&gt;
|-&lt;br /&gt;
| 3 || PROJECTILE&lt;br /&gt;
|-&lt;br /&gt;
| 4 || AREA_EFFECT&lt;br /&gt;
|-&lt;br /&gt;
| 5 || CAMERA&lt;br /&gt;
|-&lt;br /&gt;
| 6 || USE&lt;br /&gt;
|-&lt;br /&gt;
| 7 || UNKNOWN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Weapon Damage Types ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! ID !! Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || NONE&lt;br /&gt;
|-&lt;br /&gt;
| 1 || MELEE&lt;br /&gt;
|-&lt;br /&gt;
| 2 || BULLET&lt;br /&gt;
|-&lt;br /&gt;
| 3 || EXPLOSIVE&lt;br /&gt;
|-&lt;br /&gt;
| 4 || FIRE&lt;br /&gt;
|-&lt;br /&gt;
| 5 || COLLISION&lt;br /&gt;
|-&lt;br /&gt;
| 6 || FALL&lt;br /&gt;
|-&lt;br /&gt;
| 7 || DROWN&lt;br /&gt;
|-&lt;br /&gt;
| 8 || UNKNOWN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Projectile Types ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! ID !! Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || NONE&lt;br /&gt;
|-&lt;br /&gt;
| 1 || FUSE&lt;br /&gt;
|-&lt;br /&gt;
| 2 || IMPACT&lt;br /&gt;
|-&lt;br /&gt;
| 3 || ROCKET&lt;br /&gt;
|-&lt;br /&gt;
| 4 || UNKNOWN&lt;br /&gt;
|-&lt;br /&gt;
| ? || STICKY&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Weapon Groups ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! ID !! Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || PUNCH_KICK&lt;br /&gt;
|-&lt;br /&gt;
| 1 || MELEE_WOOD&lt;br /&gt;
|-&lt;br /&gt;
| 2 || MELEE_METAL&lt;br /&gt;
|-&lt;br /&gt;
| 3 || MELEE_SHARP&lt;br /&gt;
|-&lt;br /&gt;
| 4 || MELEE_GENERIC&lt;br /&gt;
|-&lt;br /&gt;
| 5 || PISTOL_SMALL&lt;br /&gt;
|-&lt;br /&gt;
| 6 || PISTOL_LARGE&lt;br /&gt;
|-&lt;br /&gt;
| 7 || PISTOL_SILENCED&lt;br /&gt;
|-&lt;br /&gt;
| 8 || SMG&lt;br /&gt;
|-&lt;br /&gt;
| 9 || SHOTGUN&lt;br /&gt;
|-&lt;br /&gt;
| 10 || RIFLE_ASSAULT&lt;br /&gt;
|-&lt;br /&gt;
| 11 || RIFLE_SNIPER&lt;br /&gt;
|-&lt;br /&gt;
| 12 || ROCKET&lt;br /&gt;
|-&lt;br /&gt;
| 13 || GRENADE&lt;br /&gt;
|-&lt;br /&gt;
| 14 || MOLOTOV&lt;br /&gt;
|-&lt;br /&gt;
| 15 || FIRE&lt;br /&gt;
|-&lt;br /&gt;
| 16 || EXPLOSION&lt;br /&gt;
|-&lt;br /&gt;
| 17 || UNKNOWN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Explosion Types ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! ID !! Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || GRENADE&lt;br /&gt;
|-&lt;br /&gt;
| 1 || MOLOTOV&lt;br /&gt;
|-&lt;br /&gt;
| 2 || ROCKET&lt;br /&gt;
|-&lt;br /&gt;
| 3 || HI_OCTANE&lt;br /&gt;
|-&lt;br /&gt;
| 4 || CAR&lt;br /&gt;
|-&lt;br /&gt;
| 5 || PLANE&lt;br /&gt;
|-&lt;br /&gt;
| 6 || PETROL_PUMP&lt;br /&gt;
|-&lt;br /&gt;
| 7 || BIKE&lt;br /&gt;
|-&lt;br /&gt;
| 8 || DIR_STEAM&lt;br /&gt;
|-&lt;br /&gt;
| 9 || DIR_FLAME&lt;br /&gt;
|-&lt;br /&gt;
| 10 || DIR_WATER_HYDRANT&lt;br /&gt;
|-&lt;br /&gt;
| 11 || DIR_GAS_CANISTER&lt;br /&gt;
|-&lt;br /&gt;
| 12 || BOAT&lt;br /&gt;
|-&lt;br /&gt;
| 13 || SHIP_DESTROY&lt;br /&gt;
|-&lt;br /&gt;
| 14 || TRUCK&lt;br /&gt;
|-&lt;br /&gt;
| 15 || EPISODIC_1&lt;br /&gt;
|-&lt;br /&gt;
| 16 || EPISODIC_2&lt;br /&gt;
|-&lt;br /&gt;
| 17 || EPISODIC_3&lt;br /&gt;
|-&lt;br /&gt;
| 18 || EPISODIC_4&lt;br /&gt;
|-&lt;br /&gt;
| 19 || EPISODIC_5&lt;br /&gt;
|-&lt;br /&gt;
| 20 || EPISODIC_6&lt;br /&gt;
|-&lt;br /&gt;
| 21 || EPISODIC_7&lt;br /&gt;
|-&lt;br /&gt;
| 22 || EPISODIC_8&lt;br /&gt;
|-&lt;br /&gt;
| 23 || EPISODIC_9&lt;br /&gt;
|-&lt;br /&gt;
| 24 || EPISODIC_10&lt;br /&gt;
|-&lt;br /&gt;
| 25 || UNKNOWN&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>PerikiyoXD</name></author>
	</entry>
	<entry>
		<id>https://wiki.gtaconnected.com/wiki/index.php?title=GameModifications&amp;diff=11406</id>
		<title>GameModifications</title>
		<link rel="alternate" type="text/html" href="https://wiki.gtaconnected.com/wiki/index.php?title=GameModifications&amp;diff=11406"/>
		<updated>2026-02-23T11:54:05Z</updated>

		<summary type="html">&lt;p&gt;PerikiyoXD: Readjust for better reading&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Game Modifications}}&lt;br /&gt;
== Overview ==&lt;br /&gt;
Modifications are generally not compatible with GTA Connected unless listed in the known compatible list below. GTA Connected&#039;s anticheat will prevent most mods from loading, and those that do load may cause bugs or crashes.&lt;br /&gt;
&lt;br /&gt;
== Mod Support ==&lt;br /&gt;
There are currently no plans to add mod support. The GTA Connected developers are focused on improving game support, fixing bugs, and adding new features.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting Mods ==&lt;br /&gt;
If a mod isn&#039;t loading, it is most likely blocked by GTA Connected&#039;s anticheat. The GTA Connected team cannot provide support for issues caused by modified game files, but you may be able to get help from other players on the [https://discord.com/invite/YSyasDa Discord] or [https://forum.gtaconnected.com/ forum].&lt;br /&gt;
&lt;br /&gt;
If you find a mod that is or isn&#039;t compatible with GTA Connected, add it to the appropriate list below. If a forum topic exists with help or info for a listed mod, link it with the mod name.&lt;br /&gt;
&lt;br /&gt;
== Known Compatible Mods ==&lt;br /&gt;
&#039;&#039;This list only includes verified compatible mods and is not exhaustive.&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
{{game-iii-vc-sa}} [https://gtaforums.com/topic/669045-silentpatch/ SilentPatch]&amp;lt;br&amp;gt;&lt;br /&gt;
{{game-iv}} [https://gtaforums.com/topic/896795-1000-1080-zolika1351s-trainermod-menu-rewritten/ ZolikaMenu/ZMenu]&amp;lt;br&amp;gt;&lt;br /&gt;
{{game-iv}} [https://gtaforums.com/topic/955449-iv-zolikapatch/ ZolikaPatch]&amp;lt;br&amp;gt;&lt;br /&gt;
{{game-iv}} SteamAchievements&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Known Incompatible Mods ==&lt;br /&gt;
&#039;&#039;This list only includes verified incompatible mods and is not exhaustive.&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
{{game-iii-vc-sa}} [https://cleo.li/ CLEO]&lt;/div&gt;</summary>
		<author><name>PerikiyoXD</name></author>
	</entry>
	<entry>
		<id>https://wiki.gtaconnected.com/wiki/index.php?title=Downgrading&amp;diff=11405</id>
		<title>Downgrading</title>
		<link rel="alternate" type="text/html" href="https://wiki.gtaconnected.com/wiki/index.php?title=Downgrading&amp;diff=11405"/>
		<updated>2026-02-23T11:52:06Z</updated>

		<summary type="html">&lt;p&gt;PerikiyoXD: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Downgrading}}&lt;br /&gt;
= Patching the Games =&lt;br /&gt;
To play online, your game executable must be patched to a compatible version.&lt;br /&gt;
This process is called Downgrading.&lt;br /&gt;
Click the appropriate game logo below to download the required patch.&lt;br /&gt;
After downloading, verify the file&#039;s SHA256 hash to ensure integrity before replacing your existing executable.&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Game&lt;br /&gt;
! Download&lt;br /&gt;
! SHA256 Hash&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Grand Theft Auto IV&#039;&#039;&#039;&lt;br /&gt;
| [[File:GTAIV_Logo.png|32px|middle|link=DowngradingIV]]&lt;br /&gt;
| &amp;lt;code&amp;gt;N/A&amp;lt;/code&amp;gt; — GTA IV requires a multi-step downgrade process. See [[DowngradingIV]] for instructions.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Grand Theft Auto III&#039;&#039;&#039;&lt;br /&gt;
| [[File:GTAIII_Logo.png|32px|middle|link=https://wiki.gtaconnected.com/downloads/gta3.exe]]&lt;br /&gt;
| &amp;lt;code&amp;gt;17e036ff18cdd805951fec9107746492f582ae1eb46ca028544e37e517e8fc1f&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Grand Theft Auto: Vice City&#039;&#039;&#039;&lt;br /&gt;
| [[File:GTAVC_Logo.png|32px|middle|link=https://wiki.gtaconnected.com/downloads/gta-vc.exe]]&lt;br /&gt;
| &amp;lt;code&amp;gt;04e4db72629eaa786fdd182ac224f4fd6d68806f5f4fe5c1fb5f756dc4da11d7&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Grand Theft Auto: San Andreas&#039;&#039;&#039;&lt;br /&gt;
| [[File:GTASA_Logo.png|32px|middle|link=https://wiki.gtaconnected.com/downloads/gta_sa.exe]]&lt;br /&gt;
| &amp;lt;code&amp;gt;590b4be1bb005f4e07edf6b32df4a95b7ba403fb85472d68aa4275875b345b6f&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Installation Instructions ==&lt;br /&gt;
# Download the correct executable for your game.&lt;br /&gt;
# Navigate to your game installation directory.&lt;br /&gt;
# Backup your original executable.&lt;br /&gt;
# Replace it with the downloaded patched version.&lt;br /&gt;
# Launch the game through the multiplayer client.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; GTA IV does not use a direct executable replacement. See [[DowngradingIV]] for its specific process.&lt;br /&gt;
&lt;br /&gt;
== Verifying File Integrity ==&lt;br /&gt;
To verify the SHA256 hash:&lt;br /&gt;
* On Windows (PowerShell):&lt;br /&gt;
  &amp;lt;pre&amp;gt;Get-FileHash gta_sa.exe -Algorithm SHA256&amp;lt;/pre&amp;gt;&lt;br /&gt;
* On Linux:&lt;br /&gt;
  &amp;lt;pre&amp;gt;sha256sum gta_sa.exe&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ensure the output matches the hash listed above exactly. If it does not match, do not use the file.&lt;/div&gt;</summary>
		<author><name>PerikiyoXD</name></author>
	</entry>
	<entry>
		<id>https://wiki.gtaconnected.com/wiki/index.php?title=DowngradingIV&amp;diff=11404</id>
		<title>DowngradingIV</title>
		<link rel="alternate" type="text/html" href="https://wiki.gtaconnected.com/wiki/index.php?title=DowngradingIV&amp;diff=11404"/>
		<updated>2026-02-23T11:49:46Z</updated>

		<summary type="html">&lt;p&gt;PerikiyoXD: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Patching GTA IV for GTA Connected}}&lt;br /&gt;
&lt;br /&gt;
= Patching GTA IV for GTA Connected =&lt;br /&gt;
&lt;br /&gt;
These instructions apply to a default installation of  &lt;br /&gt;
[https://store.steampowered.com/app/12210/Grand_Theft_Auto_IV_The_Complete_Edition/ Grand Theft Auto IV: The Complete Edition].&lt;br /&gt;
&lt;br /&gt;
The Complete Edition includes all Episodes in a single directory. After patching, you will be able to switch between Episodes and join any server without modifying your original game files.&lt;br /&gt;
&lt;br /&gt;
Video tutorial:&lt;br /&gt;
https://youtu.be/hLUrUefMo8Y?t=8&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* A clean GTA IV: Complete Edition installation&lt;br /&gt;
* GTA Connected installed&lt;br /&gt;
* Access to your GTA IV installation directory&lt;br /&gt;
&lt;br /&gt;
== Installation Instructions ==&lt;br /&gt;
&lt;br /&gt;
# Download the patch:&lt;br /&gt;
#* [https://wiki.gtaconnected.com/downloads/Retail-1080.zip Version 1.0.8.0] (recommended)&lt;br /&gt;
#* [https://wiki.gtaconnected.com/downloads/Retail-1070.zip Version 1.0.7.0]&lt;br /&gt;
# Extract the archive. It will create a folder named &amp;lt;code&amp;gt;Retail&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Drag the entire &amp;lt;code&amp;gt;Retail&amp;lt;/code&amp;gt; folder into your GTA IV directory.&lt;br /&gt;
#* Do &#039;&#039;&#039;not&#039;&#039;&#039; move files out of the folder.&lt;br /&gt;
#* Do &#039;&#039;&#039;not&#039;&#039;&#039; overwrite your existing installation.&lt;br /&gt;
# Open the GTA Connected launcher.&lt;br /&gt;
# Go to &#039;&#039;Tools&#039;&#039; → &#039;&#039;Game Settings&#039;&#039;.&lt;br /&gt;
# Select &#039;&#039;Grand Theft Auto IV&#039;&#039; from the game dropdown list.&lt;br /&gt;
# Next to &#039;&#039;Game EXE Path&#039;&#039;, click &#039;&#039;Browse&#039;&#039; and select:&lt;br /&gt;
#* &amp;lt;code&amp;gt;GTAIV.exe&amp;lt;/code&amp;gt; inside the new &amp;lt;code&amp;gt;Retail&amp;lt;/code&amp;gt; folder.&lt;br /&gt;
&lt;br /&gt;
Default Steam path:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\Program Files (x86)\Steam\steamapps\common\Grand Theft Auto IV\GTAIV\Retail\GTAIV.exe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Go to &#039;&#039;Tools&#039;&#039; → &#039;&#039;Launcher Settings&#039;&#039; and set your player name.&lt;br /&gt;
# Double-click a server in the server browser to connect.&lt;br /&gt;
&lt;br /&gt;
== How to Play in Lobbies ==&lt;br /&gt;
&lt;br /&gt;
After joining a server:&lt;br /&gt;
&lt;br /&gt;
* Press &#039;&#039;&#039;UP&#039;&#039;&#039; to open the in-game phone.&lt;br /&gt;
* Navigate to &#039;&#039;Multiplayer&#039;&#039; → &#039;&#039;Games&#039;&#039;.&lt;br /&gt;
* Select &#039;&#039;Custom Match&#039;&#039; to view active lobbies.&lt;br /&gt;
* Join a lobby by double-clicking it.&lt;br /&gt;
** If double-click does not work, press &#039;&#039;&#039;DOWN&#039;&#039;&#039; and then &#039;&#039;&#039;ENTER&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
If you know which lobby is active (for example, by holding &#039;&#039;&#039;TAB&#039;&#039;&#039; if the server uses [https://github.com/VortrexFTW/v-essentials/tree/master/v-scoreboard v-scoreboard]):&lt;br /&gt;
&lt;br /&gt;
* Use &#039;&#039;Quick Match&#039;&#039; in the phone menu to connect directly.&lt;br /&gt;
&lt;br /&gt;
Press &#039;&#039;&#039;Y&#039;&#039;&#039; to chat in-game.&lt;br /&gt;
&lt;br /&gt;
== File Integrity Note ==&lt;br /&gt;
&lt;br /&gt;
If installed correctly:&lt;br /&gt;
&lt;br /&gt;
* Your original GTA IV files remain untouched.&lt;br /&gt;
* Steam or the Rockstar Launcher will not overwrite the patch.&lt;br /&gt;
* You can still launch and play the standard GTA IV: Complete Edition campaigns normally.&lt;br /&gt;
* GTA Connected uses the separate &amp;lt;code&amp;gt;Retail&amp;lt;/code&amp;gt; folder only.&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
=== How do I customize my character? ===&lt;br /&gt;
&lt;br /&gt;
# Open the phone.&lt;br /&gt;
# Create a &#039;&#039;Deathmatch&#039;&#039; lobby.&lt;br /&gt;
# Press &#039;&#039;&#039;M&#039;&#039;&#039; to open the character customization menu.&lt;/div&gt;</summary>
		<author><name>PerikiyoXD</name></author>
	</entry>
	<entry>
		<id>https://wiki.gtaconnected.com/wiki/index.php?title=Downgrading&amp;diff=11403</id>
		<title>Downgrading</title>
		<link rel="alternate" type="text/html" href="https://wiki.gtaconnected.com/wiki/index.php?title=Downgrading&amp;diff=11403"/>
		<updated>2026-02-23T11:48:17Z</updated>

		<summary type="html">&lt;p&gt;PerikiyoXD: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Downgrading}}&lt;br /&gt;
&lt;br /&gt;
= Patching the Games =&lt;br /&gt;
&lt;br /&gt;
To play online, your game executable must be patched to a compatible version.&lt;br /&gt;
&lt;br /&gt;
This process is called Downgrading.&lt;br /&gt;
&lt;br /&gt;
Click the appropriate game logo below to download the required patch.&lt;br /&gt;
&lt;br /&gt;
After downloading, verify the file’s SHA256 hash to ensure integrity before replacing your existing executable.&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Game&lt;br /&gt;
! Download&lt;br /&gt;
! SHA256 Hash&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Grand Theft Auto III&#039;&#039;&#039;&lt;br /&gt;
| [[File:GTAIII_Logo.png|32px|middle|link=https://wiki.gtaconnected.com/downloads/gta3.exe]]&lt;br /&gt;
| &amp;lt;code&amp;gt;17e036ff18cdd805951fec9107746492f582ae1eb46ca028544e37e517e8fc1f&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Grand Theft Auto: Vice City&#039;&#039;&#039;&lt;br /&gt;
| [[File:GTAVC_Logo.png|32px|middle|link=https://wiki.gtaconnected.com/downloads/gta-vc.exe]]&lt;br /&gt;
| &amp;lt;code&amp;gt;04e4db72629eaa786fdd182ac224f4fd6d68806f5f4fe5c1fb5f756dc4da11d7&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Grand Theft Auto: San Andreas&#039;&#039;&#039;&lt;br /&gt;
| [[File:GTASA_Logo.png|32px|middle|link=https://wiki.gtaconnected.com/downloads/gta_sa.exe]]&lt;br /&gt;
| &amp;lt;code&amp;gt;590b4be1bb005f4e07edf6b32df4a95b7ba403fb85472d68aa4275875b345b6f&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Grand Theft Auto IV&#039;&#039;&#039;&lt;br /&gt;
| [[File:GTAIV_Logo.png|32px|middle|link=DowngradingIV]]&lt;br /&gt;
| &amp;lt;code&amp;gt;N/A&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Installation Instructions ==&lt;br /&gt;
&lt;br /&gt;
# Download the correct executable for your game.&lt;br /&gt;
# Navigate to your game installation directory.&lt;br /&gt;
# Backup your original executable.&lt;br /&gt;
# Replace it with the downloaded patched version.&lt;br /&gt;
# Launch the game through the multiplayer client.&lt;br /&gt;
&lt;br /&gt;
== Verifying File Integrity ==&lt;br /&gt;
&lt;br /&gt;
To verify the SHA256 hash:&lt;br /&gt;
&lt;br /&gt;
* On Windows (PowerShell):&lt;br /&gt;
  &amp;lt;pre&amp;gt;Get-FileHash gta_sa.exe -Algorithm SHA256&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* On Linux:&lt;br /&gt;
  &amp;lt;pre&amp;gt;sha256sum gta_sa.exe&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ensure the output matches the hash listed above exactly. If it does not match, do not use the file.&lt;br /&gt;
&lt;br /&gt;
== GTA IV ==&lt;br /&gt;
&lt;br /&gt;
GTA IV requires a specific downgrade process rather than a direct executable replacement.&lt;br /&gt;
&lt;br /&gt;
See [[DowngradingIV]] for detailed instructions.&lt;/div&gt;</summary>
		<author><name>PerikiyoXD</name></author>
	</entry>
	<entry>
		<id>https://wiki.gtaconnected.com/wiki/index.php?title=Downgrading&amp;diff=11402</id>
		<title>Downgrading</title>
		<link rel="alternate" type="text/html" href="https://wiki.gtaconnected.com/wiki/index.php?title=Downgrading&amp;diff=11402"/>
		<updated>2026-02-23T11:47:13Z</updated>

		<summary type="html">&lt;p&gt;PerikiyoXD: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Patching The Games}}&lt;br /&gt;
&lt;br /&gt;
= Patching the Games =&lt;br /&gt;
&lt;br /&gt;
To play online, your game executable must be patched to a compatible version.&lt;br /&gt;
&lt;br /&gt;
Click the appropriate game logo below to download the required patch.&lt;br /&gt;
&lt;br /&gt;
After downloading, verify the file’s SHA256 hash to ensure integrity before replacing your existing executable.&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Game&lt;br /&gt;
! Download&lt;br /&gt;
! SHA256 Hash&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Grand Theft Auto III&#039;&#039;&#039;&lt;br /&gt;
| [[File:GTAIII_Logo.png|32px|middle|link=https://wiki.gtaconnected.com/downloads/gta3.exe]]&lt;br /&gt;
| &amp;lt;code&amp;gt;17e036ff18cdd805951fec9107746492f582ae1eb46ca028544e37e517e8fc1f&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Grand Theft Auto: Vice City&#039;&#039;&#039;&lt;br /&gt;
| [[File:GTAVC_Logo.png|32px|middle|link=https://wiki.gtaconnected.com/downloads/gta-vc.exe]]&lt;br /&gt;
| &amp;lt;code&amp;gt;04e4db72629eaa786fdd182ac224f4fd6d68806f5f4fe5c1fb5f756dc4da11d7&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Grand Theft Auto: San Andreas&#039;&#039;&#039;&lt;br /&gt;
| [[File:GTASA_Logo.png|32px|middle|link=https://wiki.gtaconnected.com/downloads/gta_sa.exe]]&lt;br /&gt;
| &amp;lt;code&amp;gt;590b4be1bb005f4e07edf6b32df4a95b7ba403fb85472d68aa4275875b345b6f&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Grand Theft Auto IV&#039;&#039;&#039;&lt;br /&gt;
| [[File:GTAIV_Logo.png|32px|middle|link=DowngradingIV]]&lt;br /&gt;
| &amp;lt;code&amp;gt;N/A&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Installation Instructions ==&lt;br /&gt;
&lt;br /&gt;
# Download the correct executable for your game.&lt;br /&gt;
# Navigate to your game installation directory.&lt;br /&gt;
# Backup your original executable.&lt;br /&gt;
# Replace it with the downloaded patched version.&lt;br /&gt;
# Launch the game through the multiplayer client.&lt;br /&gt;
&lt;br /&gt;
== Verifying File Integrity ==&lt;br /&gt;
&lt;br /&gt;
To verify the SHA256 hash:&lt;br /&gt;
&lt;br /&gt;
* On Windows (PowerShell):&lt;br /&gt;
  &amp;lt;pre&amp;gt;Get-FileHash gta_sa.exe -Algorithm SHA256&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* On Linux:&lt;br /&gt;
  &amp;lt;pre&amp;gt;sha256sum gta_sa.exe&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ensure the output matches the hash listed above exactly. If it does not match, do not use the file.&lt;br /&gt;
&lt;br /&gt;
== GTA IV ==&lt;br /&gt;
&lt;br /&gt;
GTA IV requires a specific downgrade process rather than a direct executable replacement.&lt;br /&gt;
&lt;br /&gt;
See [[DowngradingIV]] for detailed instructions.&lt;/div&gt;</summary>
		<author><name>PerikiyoXD</name></author>
	</entry>
	<entry>
		<id>https://wiki.gtaconnected.com/wiki/index.php?title=Servers/GettingStarted&amp;diff=11401</id>
		<title>Servers/GettingStarted</title>
		<link rel="alternate" type="text/html" href="https://wiki.gtaconnected.com/wiki/index.php?title=Servers/GettingStarted&amp;diff=11401"/>
		<updated>2026-02-23T11:45:49Z</updated>

		<summary type="html">&lt;p&gt;PerikiyoXD: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Getting Started}}&lt;br /&gt;
{{BlueInformationBox|1=This guide explains how to &#039;&#039;&#039;create and run a server&#039;&#039;&#039;. If you only want to join and play on an existing server, this page is not required.}}&lt;br /&gt;
&lt;br /&gt;
= Getting Started =&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
Setting up a server involves four main steps:&lt;br /&gt;
&lt;br /&gt;
# Download the server package from the [https://gtaconnected.com/downloads Downloads] page.&lt;br /&gt;
# Extract the files to a new, empty folder.&lt;br /&gt;
# Configure your server settings in &amp;lt;code&amp;gt;server.xml&amp;lt;/code&amp;gt; (see [[ServerConfiguration|Server Configuration]]).&lt;br /&gt;
# Start the server executable.&lt;br /&gt;
&lt;br /&gt;
Executable names:&lt;br /&gt;
* &#039;&#039;&#039;Windows:&#039;&#039;&#039; &amp;lt;code&amp;gt;Server.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Linux:&#039;&#039;&#039; See [[LinuxServer|Linux Server]] for available launch methods and instructions.&lt;br /&gt;
&lt;br /&gt;
Once started successfully, the server will begin listening for incoming connections.&lt;br /&gt;
&lt;br /&gt;
== Server Configuration ==&lt;br /&gt;
&lt;br /&gt;
All core settings are stored in &amp;lt;code&amp;gt;server.xml&amp;lt;/code&amp;gt;. This includes:&lt;br /&gt;
&lt;br /&gt;
* Server name&lt;br /&gt;
* Port settings&lt;br /&gt;
* Resource loading&lt;br /&gt;
* Player limits&lt;br /&gt;
* Networking options&lt;br /&gt;
&lt;br /&gt;
Refer to [[ServerConfiguration|Server Configuration]] for a full list of available settings and explanations.&lt;br /&gt;
&lt;br /&gt;
After modifying the configuration, restart the server for changes to take effect.&lt;br /&gt;
&lt;br /&gt;
== Game Mode Setup ==&lt;br /&gt;
&lt;br /&gt;
=== GTA IV (Rockstar Modes) ===&lt;br /&gt;
&lt;br /&gt;
To use Rockstar’s built-in game modes (Party Mode sessions):&lt;br /&gt;
&lt;br /&gt;
# Navigate to the &amp;lt;code&amp;gt;resources&amp;lt;/code&amp;gt; folder.&lt;br /&gt;
# Delete the &amp;lt;code&amp;gt;freeroam&amp;lt;/code&amp;gt; folder.&lt;br /&gt;
# Open &amp;lt;code&amp;gt;server.xml&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Remove the line:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;resource src=&amp;quot;freeroam&amp;quot; /&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start the server normally.&lt;br /&gt;
&lt;br /&gt;
Players who connect will enter a generic rendezvous lobby using Party Mode. From there:&lt;br /&gt;
&lt;br /&gt;
* Players can use the in-game phone.&lt;br /&gt;
* Sessions can be created or joined directly.&lt;br /&gt;
&lt;br /&gt;
=== GTA III, Vice City, San Andreas, and IV (Custom / Scripted Modes) ===&lt;br /&gt;
&lt;br /&gt;
For scripted servers:&lt;br /&gt;
&lt;br /&gt;
* Example scripts are available here:&lt;br /&gt;
  [https://github.com/VortrexFTW/v-essentials v-essentials examples]&lt;br /&gt;
&lt;br /&gt;
If creating your own scripts, you must at minimum:&lt;br /&gt;
&lt;br /&gt;
* Spawn the player.&lt;br /&gt;
* Fade in the camera using [[gta.fadeCamera|gta.fadeCamera]].&lt;br /&gt;
* Trigger this logic in an appropriate event, such as [[OnPlayerJoined|onPlayerJoined]].&lt;br /&gt;
&lt;br /&gt;
The default &amp;lt;code&amp;gt;freeroam&amp;lt;/code&amp;gt; resource:&lt;br /&gt;
&lt;br /&gt;
* Handles spawning and camera fade.&lt;br /&gt;
* Is designed for GTA III.&lt;br /&gt;
* May require modification for other games.&lt;br /&gt;
&lt;br /&gt;
We also provide a [[MinimalResourceSkeleton|Minimal Resource Skeleton]] that you can use to start on your own.&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
&lt;br /&gt;
Resources control gameplay logic, scripts, and custom functionality.&lt;br /&gt;
&lt;br /&gt;
See [[Resources|Resources]] for:&lt;br /&gt;
&lt;br /&gt;
* Resource structure&lt;br /&gt;
* Loading and unloading&lt;br /&gt;
* Script organization&lt;br /&gt;
* Best practices&lt;br /&gt;
&lt;br /&gt;
== Modules ==&lt;br /&gt;
&lt;br /&gt;
Modules extend server functionality with native integrations such as:&lt;br /&gt;
&lt;br /&gt;
* MySQL&lt;br /&gt;
* SQLite&lt;br /&gt;
* INI file handling&lt;br /&gt;
* Additional system-level features&lt;br /&gt;
&lt;br /&gt;
See [[Modules|Modules]] for usage instructions.&lt;br /&gt;
&lt;br /&gt;
Additional modules are available on the forum:&lt;br /&gt;
[https://forum.gtaconnected.com/index.php?board=24.0 Modules Board]&lt;br /&gt;
&lt;br /&gt;
Developers with C or C++ experience can create custom modules using the:&lt;br /&gt;
[https://gtaconnected.com/downloads/ModuleSDK.7z Module SDK]&lt;br /&gt;
&lt;br /&gt;
== Server Manual ==&lt;br /&gt;
&lt;br /&gt;
For in-depth documentation covering commands, configuration, scripting, and advanced topics, see the [[ServerManual|Server Manual]].&lt;br /&gt;
&lt;br /&gt;
== Next Steps ==&lt;br /&gt;
&lt;br /&gt;
After your server is running:&lt;br /&gt;
&lt;br /&gt;
* Verify connectivity (see port forwarding documentation if hosting from home).&lt;br /&gt;
* Test resource loading.&lt;br /&gt;
* Confirm players can join successfully.&lt;br /&gt;
* Begin developing or installing additional resources and modules.&lt;/div&gt;</summary>
		<author><name>PerikiyoXD</name></author>
	</entry>
	<entry>
		<id>https://wiki.gtaconnected.com/wiki/index.php?title=MinimalResourceSkeleton&amp;diff=11400</id>
		<title>MinimalResourceSkeleton</title>
		<link rel="alternate" type="text/html" href="https://wiki.gtaconnected.com/wiki/index.php?title=MinimalResourceSkeleton&amp;diff=11400"/>
		<updated>2026-02-23T11:43:02Z</updated>

		<summary type="html">&lt;p&gt;PerikiyoXD: Created page with &amp;quot;{{DISPLAYTITLE:MinimalResourceSkeleton}}  = Minimal Resource Skeleton =  This page provides the smallest functional scripted resource required to:  * Handle a player joining the server * Spawn the player at a fixed position * Fade in the camera * Log basic server-side activity  This is intended as a starting point for custom game modes.  == Purpose ==  When building a custom server mode, you must:  * Create a player element * Spawn the player * Fade in the camera * Handl...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:MinimalResourceSkeleton}}&lt;br /&gt;
&lt;br /&gt;
= Minimal Resource Skeleton =&lt;br /&gt;
&lt;br /&gt;
This page provides the smallest functional scripted resource required to:&lt;br /&gt;
&lt;br /&gt;
* Handle a player joining the server&lt;br /&gt;
* Spawn the player at a fixed position&lt;br /&gt;
* Fade in the camera&lt;br /&gt;
* Log basic server-side activity&lt;br /&gt;
&lt;br /&gt;
This is intended as a starting point for custom game modes.&lt;br /&gt;
&lt;br /&gt;
== Purpose ==&lt;br /&gt;
&lt;br /&gt;
When building a custom server mode, you must:&lt;br /&gt;
&lt;br /&gt;
* Create a player element&lt;br /&gt;
* Spawn the player&lt;br /&gt;
* Fade in the camera&lt;br /&gt;
* Handle join logic&lt;br /&gt;
&lt;br /&gt;
Without this logic, players may connect but remain in a black screen or uninitialized state.&lt;br /&gt;
&lt;br /&gt;
This example demonstrates the minimal structure needed to make a playable resource.&lt;br /&gt;
&lt;br /&gt;
== Example Script ==&lt;br /&gt;
&lt;br /&gt;
Place the following code inside your resource’s main JavaScript file (for example: &amp;lt;code&amp;gt;main.js&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
let spawn_pos = [39.59, 128.88, 15.63]; // Example spawn position&lt;br /&gt;
&lt;br /&gt;
function respawnPlayer(client) {&lt;br /&gt;
    console.log(`Respawning player ${client.name}`);&lt;br /&gt;
    spawnPlayer(client, spawn_pos);&lt;br /&gt;
    console.log(`Player ${client.name} respawned.`);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
addEventHandler(&amp;quot;OnPlayerJoined&amp;quot;, (event, client) =&amp;gt; {&lt;br /&gt;
    console.log(`Player ${client.name} joined the server.`);&lt;br /&gt;
&lt;br /&gt;
    if (client.player) {&lt;br /&gt;
        destroyElement(client.player);&lt;br /&gt;
        console.log(`Destroyed player element for ${client.name}`);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    respawnPlayer(client);&lt;br /&gt;
    fadeCamera(client, true);&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How It Works ==&lt;br /&gt;
&lt;br /&gt;
=== Spawn Position ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;spawn_pos&amp;lt;/code&amp;gt; defines the coordinates where players will appear:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[x, y, z]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace the values with valid coordinates for your game map.&lt;br /&gt;
&lt;br /&gt;
=== OnPlayerJoined Event ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;OnPlayerJoined&amp;lt;/code&amp;gt; is triggered when a client successfully connects.&lt;br /&gt;
&lt;br /&gt;
The handler:&lt;br /&gt;
&lt;br /&gt;
# Logs the join event.&lt;br /&gt;
# Destroys any existing player element (safety cleanup).&lt;br /&gt;
# Calls &amp;lt;code&amp;gt;respawnPlayer()&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Fades the camera in.&lt;br /&gt;
&lt;br /&gt;
=== destroyElement ===&lt;br /&gt;
&lt;br /&gt;
If a player element already exists for the client, it is destroyed before respawning. This prevents duplicate player entities.&lt;br /&gt;
&lt;br /&gt;
=== spawnPlayer ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;spawnPlayer(client, positionArray)&amp;lt;/code&amp;gt; creates and places the player at the given coordinates.&lt;br /&gt;
&lt;br /&gt;
=== fadeCamera ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;fadeCamera(client, true)&amp;lt;/code&amp;gt; fades the camera in from black.  &lt;br /&gt;
If omitted, the player may remain on a black screen.&lt;br /&gt;
&lt;br /&gt;
== Required Resource Structure ==&lt;br /&gt;
&lt;br /&gt;
Minimal folder layout:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
resources/&lt;br /&gt;
└── minimal/&lt;br /&gt;
    ├── resource.xml&lt;br /&gt;
    └── main.js&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example &amp;lt;code&amp;gt;resource.xml&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;resource&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;main.js&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/resource&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ensure the resource is added to &amp;lt;code&amp;gt;server.xml&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;resource src=&amp;quot;minimal&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== What This Does Not Include ==&lt;br /&gt;
&lt;br /&gt;
This minimal skeleton does NOT include:&lt;br /&gt;
&lt;br /&gt;
* Weapons&lt;br /&gt;
* Teams&lt;br /&gt;
* Vehicles&lt;br /&gt;
* Custom game logic&lt;br /&gt;
* Respawn timers&lt;br /&gt;
* Death handling&lt;br /&gt;
* UI elements&lt;br /&gt;
&lt;br /&gt;
It only guarantees that:&lt;br /&gt;
&lt;br /&gt;
* A player joins&lt;br /&gt;
* A player spawns&lt;br /&gt;
* The camera fades in&lt;br /&gt;
* The server logs activity&lt;br /&gt;
&lt;br /&gt;
== Next Steps ==&lt;br /&gt;
&lt;br /&gt;
From this baseline, you can extend the resource with:&lt;br /&gt;
&lt;br /&gt;
* Spawn selection&lt;br /&gt;
* Death events&lt;br /&gt;
* Custom game rules&lt;br /&gt;
* Vehicle spawning&lt;br /&gt;
* Database-backed accounts (via modules)&lt;br /&gt;
* Teams and scoring systems&lt;br /&gt;
&lt;br /&gt;
For additional scripting references, see:&lt;br /&gt;
&lt;br /&gt;
* [[Resources]]&lt;br /&gt;
* [[ServerManual]]&lt;br /&gt;
* [[gta.fadeCamera]]&lt;br /&gt;
* [[OnPlayerJoined]]&lt;/div&gt;</summary>
		<author><name>PerikiyoXD</name></author>
	</entry>
	<entry>
		<id>https://wiki.gtaconnected.com/wiki/index.php?title=Servers/GettingStarted&amp;diff=11399</id>
		<title>Servers/GettingStarted</title>
		<link rel="alternate" type="text/html" href="https://wiki.gtaconnected.com/wiki/index.php?title=Servers/GettingStarted&amp;diff=11399"/>
		<updated>2026-02-23T11:41:45Z</updated>

		<summary type="html">&lt;p&gt;PerikiyoXD: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Getting Started}}&lt;br /&gt;
{{BlueInformationBox|1=This guide explains how to &#039;&#039;&#039;create and run a server&#039;&#039;&#039;. If you only want to join and play on an existing server, this page is not required.}}&lt;br /&gt;
&lt;br /&gt;
= Getting Started =&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
Setting up a server involves four main steps:&lt;br /&gt;
&lt;br /&gt;
# Download the server package from the [https://gtaconnected.com/downloads Downloads] page.&lt;br /&gt;
# Extract the files to a new, empty folder.&lt;br /&gt;
# Configure your server settings in &amp;lt;code&amp;gt;server.xml&amp;lt;/code&amp;gt; (see [[ServerConfiguration|Server Configuration]]).&lt;br /&gt;
# Start the server executable.&lt;br /&gt;
&lt;br /&gt;
Executable names:&lt;br /&gt;
* &#039;&#039;&#039;Windows:&#039;&#039;&#039; &amp;lt;code&amp;gt;Server.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Linux:&#039;&#039;&#039; See [[LinuxServer|Linux Server]] for available launch methods and instructions.&lt;br /&gt;
&lt;br /&gt;
Once started successfully, the server will begin listening for incoming connections.&lt;br /&gt;
&lt;br /&gt;
== Server Configuration ==&lt;br /&gt;
&lt;br /&gt;
All core settings are stored in &amp;lt;code&amp;gt;server.xml&amp;lt;/code&amp;gt;. This includes:&lt;br /&gt;
&lt;br /&gt;
* Server name&lt;br /&gt;
* Port settings&lt;br /&gt;
* Resource loading&lt;br /&gt;
* Player limits&lt;br /&gt;
* Networking options&lt;br /&gt;
&lt;br /&gt;
Refer to [[ServerConfiguration|Server Configuration]] for a full list of available settings and explanations.&lt;br /&gt;
&lt;br /&gt;
After modifying the configuration, restart the server for changes to take effect.&lt;br /&gt;
&lt;br /&gt;
== Game Mode Setup ==&lt;br /&gt;
&lt;br /&gt;
=== GTA IV (Rockstar Modes) ===&lt;br /&gt;
&lt;br /&gt;
To use Rockstar’s built-in game modes (Party Mode sessions):&lt;br /&gt;
&lt;br /&gt;
# Navigate to the &amp;lt;code&amp;gt;resources&amp;lt;/code&amp;gt; folder.&lt;br /&gt;
# Delete the &amp;lt;code&amp;gt;freeroam&amp;lt;/code&amp;gt; folder.&lt;br /&gt;
# Open &amp;lt;code&amp;gt;server.xml&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Remove the line:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;resource src=&amp;quot;freeroam&amp;quot; /&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start the server normally.&lt;br /&gt;
&lt;br /&gt;
Players who connect will enter a generic rendezvous lobby using Party Mode. From there:&lt;br /&gt;
&lt;br /&gt;
* Players can use the in-game phone.&lt;br /&gt;
* Sessions can be created or joined directly.&lt;br /&gt;
&lt;br /&gt;
=== GTA III, Vice City, San Andreas, and IV (Custom / Scripted Modes) ===&lt;br /&gt;
&lt;br /&gt;
For scripted servers:&lt;br /&gt;
&lt;br /&gt;
* Example scripts are available here:&lt;br /&gt;
  [https://github.com/VortrexFTW/v-essentials v-essentials examples]&lt;br /&gt;
&lt;br /&gt;
If creating your own scripts, you must at minimum:&lt;br /&gt;
&lt;br /&gt;
* Spawn the player.&lt;br /&gt;
* Fade in the camera using [[gta.fadeCamera|gta.fadeCamera]].&lt;br /&gt;
* Trigger this logic in an appropriate event, such as [[OnPlayerJoined|onPlayerJoined]].&lt;br /&gt;
&lt;br /&gt;
The default &amp;lt;code&amp;gt;freeroam&amp;lt;/code&amp;gt; resource:&lt;br /&gt;
&lt;br /&gt;
* Handles spawning and camera fade.&lt;br /&gt;
* Is designed for GTA III.&lt;br /&gt;
* May require modification for other games.&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
&lt;br /&gt;
Resources control gameplay logic, scripts, and custom functionality.&lt;br /&gt;
&lt;br /&gt;
See [[Resources|Resources]] for:&lt;br /&gt;
&lt;br /&gt;
* Resource structure&lt;br /&gt;
* Loading and unloading&lt;br /&gt;
* Script organization&lt;br /&gt;
* Best practices&lt;br /&gt;
&lt;br /&gt;
== Modules ==&lt;br /&gt;
&lt;br /&gt;
Modules extend server functionality with native integrations such as:&lt;br /&gt;
&lt;br /&gt;
* MySQL&lt;br /&gt;
* SQLite&lt;br /&gt;
* INI file handling&lt;br /&gt;
* Additional system-level features&lt;br /&gt;
&lt;br /&gt;
See [[Modules|Modules]] for usage instructions.&lt;br /&gt;
&lt;br /&gt;
Additional modules are available on the forum:&lt;br /&gt;
[https://forum.gtaconnected.com/index.php?board=24.0 Modules Board]&lt;br /&gt;
&lt;br /&gt;
Developers with C or C++ experience can create custom modules using the:&lt;br /&gt;
[https://gtaconnected.com/downloads/ModuleSDK.7z Module SDK]&lt;br /&gt;
&lt;br /&gt;
== Server Manual ==&lt;br /&gt;
&lt;br /&gt;
For in-depth documentation covering commands, configuration, scripting, and advanced topics, see the [[ServerManual|Server Manual]].&lt;br /&gt;
&lt;br /&gt;
== Next Steps ==&lt;br /&gt;
&lt;br /&gt;
After your server is running:&lt;br /&gt;
&lt;br /&gt;
* Verify connectivity (see port forwarding documentation if hosting from home).&lt;br /&gt;
* Test resource loading.&lt;br /&gt;
* Confirm players can join successfully.&lt;br /&gt;
* Begin developing or installing additional resources and modules.&lt;/div&gt;</summary>
		<author><name>PerikiyoXD</name></author>
	</entry>
	<entry>
		<id>https://wiki.gtaconnected.com/wiki/index.php?title=Main_Page&amp;diff=11398</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.gtaconnected.com/wiki/index.php?title=Main_Page&amp;diff=11398"/>
		<updated>2026-02-23T11:38:24Z</updated>

		<summary type="html">&lt;p&gt;PerikiyoXD: Add portforward to main&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:100%;padding:0;margin:0;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Header --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#222222;text-align:center;color:white;font-size:2em;padding:1em;margin:0;&amp;quot;&amp;gt;GTA Connected Wiki&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- 2x2 Grid --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;display:flex;flex-wrap:wrap;gap:1em;padding:1em;background:#f9f9f9;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- For Players --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mainPageLinksBox&amp;quot; style=&amp;quot;flex:1 1 300px;border:4px solid #008b8b;display:flex;flex-direction:column;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#008b8b;text-align:center;color:white;font-size:1.5em;padding:0.8em;&amp;quot;&amp;gt;For Players&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:1em;&amp;quot;&amp;gt;&lt;br /&gt;
==Getting Started==&lt;br /&gt;
*[[Downgrading|Downgrading]]&lt;br /&gt;
*[[GameModifications|Game Modifications]]&lt;br /&gt;
*[[GamesAndVersions|Games &amp;amp; Versions]]&lt;br /&gt;
&lt;br /&gt;
==More Information==&lt;br /&gt;
*[[ClientManual|Client Manual]]&lt;br /&gt;
*[[SteamDeck|Steam Deck]]&lt;br /&gt;
*[[FAQ|FAQ]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- For Servers --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mainPageLinksBox&amp;quot; style=&amp;quot;flex:1 1 300px;border:4px solid #008b8b;display:flex;flex-direction:column;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#008b8b;text-align:center;color:white;font-size:1.5em;padding:0.8em;&amp;quot;&amp;gt;For Servers&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:1em;&amp;quot;&amp;gt;&lt;br /&gt;
==Hosting a server==&lt;br /&gt;
*[[GettingStarted|Getting Started]]&lt;br /&gt;
*[[PortForward|Port Forwarding]]&lt;br /&gt;
*[[ServerManual|Server Manual]]&lt;br /&gt;
*[[ServerConfiguration|Server Configuration]]&lt;br /&gt;
*[[CVars|CVars]]&lt;br /&gt;
*[[ServerRules|Server Rules]]&lt;br /&gt;
&lt;br /&gt;
==Extending the server==&lt;br /&gt;
*[[Resources|Resources]]&lt;br /&gt;
*[[Modules|Modules]]&lt;br /&gt;
&lt;br /&gt;
==Advanced==&lt;br /&gt;
*[[Dumpdoc|Dumpdoc]]&lt;br /&gt;
*[[ServerCommandLine|Server Command Line]]&lt;br /&gt;
*[[ServerQuery|Server Query]]&lt;br /&gt;
*[[Anticheat|Anticheat]]&lt;br /&gt;
*[[Limits|Limits]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Scripting --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mainPageLinksBox&amp;quot; style=&amp;quot;flex:1 1 300px;border:4px solid #8b0000;display:flex;flex-direction:column;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#8b0000;text-align:center;color:white;font-size:1.5em;padding:0.8em;&amp;quot;&amp;gt;Scripting&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:1em;&amp;quot;&amp;gt;&lt;br /&gt;
==Shared==&lt;br /&gt;
*[[Types|Types]]&lt;br /&gt;
*[[Defines|Defines]]&lt;br /&gt;
&lt;br /&gt;
==Server==&lt;br /&gt;
*[[Server/Events|Events]]&lt;br /&gt;
*[[Server/Functions|Functions]]&lt;br /&gt;
&lt;br /&gt;
==Client==&lt;br /&gt;
*[[Client/Events|Events]]&lt;br /&gt;
*[[Client/Functions|Functions]]&lt;br /&gt;
*[[Client/Natives|Native Scripting Functions]]&lt;br /&gt;
&lt;br /&gt;
==Extra==&lt;br /&gt;
*[[ScriptingLanguages|Scripting Languages]]&lt;br /&gt;
*[[NetworkEvents|Network Events]]&lt;br /&gt;
*[[ScriptingExamples|Examples]]&lt;br /&gt;
*[[ScriptingTutorials|Tutorials]]&lt;br /&gt;
*[[NativeMultiplayer|Native MP Mode (GTA IV)]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Reference --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mainPageLinksBox&amp;quot; style=&amp;quot;flex:1 1 300px;border:4px solid #8b8b00;display:flex;flex-direction:column;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#8b8b00;text-align:center;color:white;font-size:1.5em;padding:0.8em;&amp;quot;&amp;gt;Reference&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;display:flex;flex-wrap:wrap;gap:1em;padding:1em;flex:1;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;flex:1 1 120px;padding:0.8em;border:1px solid #ddd;background:white;&amp;quot;&amp;gt;&lt;br /&gt;
=== [[Image:GTAIII_Logo.png|32px|middle]] GTA III ===&lt;br /&gt;
*[[Resources/GTA3/Animations|Animations]]&lt;br /&gt;
*[[Resources/GTA3/PedSkins|Ped Skins]]&lt;br /&gt;
*[[Resources/GTA3/Pickups|Pickups]]&lt;br /&gt;
*[[Resources/GTA3/RadarBlips|Radar Blips]]&lt;br /&gt;
*[[Resources/GTA3/VehicleColours|Vehicle Colours]]&lt;br /&gt;
*[[Resources/GTA3/VehicleModels|Vehicle Models]]&lt;br /&gt;
*[[Resources/GTA3/Weapons|Weapons]]&lt;br /&gt;
*[[Resources/GTA3|More ...]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;flex:1 1 120px;padding:0.8em;border:1px solid #ddd;background:white;&amp;quot;&amp;gt;&lt;br /&gt;
=== [[Image:GTAVC_Logo.png|32px|middle]] GTA Vice City ===&lt;br /&gt;
*[[Resources/GTAVC/Animations|Animations]]&lt;br /&gt;
*[[Resources/GTAVC/PedSkins|Ped Skins]]&lt;br /&gt;
*[[Resources/GTAVC/Pickups|Pickups]]&lt;br /&gt;
*[[Resources/GTAVC/RadarBlips|Radar Blips]]&lt;br /&gt;
*[[Resources/GTAVC/VehicleColours|Vehicle Colours]]&lt;br /&gt;
*[[Resources/GTAVC/VehicleModels|Vehicle Models]]&lt;br /&gt;
*[[Resources/GTAVC/Weapons|Weapons]]&lt;br /&gt;
*[[Resources/GTAVC|More ...]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;flex:1 1 120px;padding:0.8em;border:1px solid #ddd;background:white;&amp;quot;&amp;gt;&lt;br /&gt;
=== [[Image:GTASA_Logo.png|32px|middle]] GTA San Andreas ===&lt;br /&gt;
*[[Resources/GTASA/Animations|Animations]]&lt;br /&gt;
*[[Resources/GTASA/PedSkins|Ped Skins]]&lt;br /&gt;
*[[Resources/GTASA/Pickups|Pickups]]&lt;br /&gt;
*[[Resources/GTASA/RadarBlips|Radar Blips]]&lt;br /&gt;
*[[Resources/GTASA/VehicleColours|Vehicle Colours]]&lt;br /&gt;
*[[Resources/GTASA/VehicleModels|Vehicle Models]]&lt;br /&gt;
*[[Resources/GTASA/Weapons|Weapons]]&lt;br /&gt;
*[[Resources/GTASA|More ...]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;flex:1 1 120px;padding:0.8em;border:1px solid #ddd;background:white;&amp;quot;&amp;gt;&lt;br /&gt;
=== [[Image:GTAIV_Logo.png|32px|middle]] GTA IV ===&lt;br /&gt;
*[[Resources/GTAIV/Animations|Animations]]&lt;br /&gt;
*[[Resources/GTAIV/PedSkins|Ped Skins]]&lt;br /&gt;
*[[Resources/GTAIV/Pickups|Pickups]]&lt;br /&gt;
*[[Resources/GTAIV/RadarBlips|Radar Blips]]&lt;br /&gt;
*[[Resources/GTAIV/VehicleColours|Vehicle Colours]]&lt;br /&gt;
*[[Resources/GTAIV/VehicleModels|Vehicle Models]]&lt;br /&gt;
*[[Resources/GTAIV/Weapons|Weapons]]&lt;br /&gt;
*[[Resources/GTAIV|More ...]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>PerikiyoXD</name></author>
	</entry>
	<entry>
		<id>https://wiki.gtaconnected.com/wiki/index.php?title=PortForward&amp;diff=11397</id>
		<title>PortForward</title>
		<link rel="alternate" type="text/html" href="https://wiki.gtaconnected.com/wiki/index.php?title=PortForward&amp;diff=11397"/>
		<updated>2026-02-23T11:37:09Z</updated>

		<summary type="html">&lt;p&gt;PerikiyoXD: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Port Forwarding}}&lt;br /&gt;
&lt;br /&gt;
= Port Forwarding =&lt;br /&gt;
&lt;br /&gt;
== What Is Port Forwarding? ==&lt;br /&gt;
&lt;br /&gt;
Port forwarding is a router configuration that allows external devices on the internet to connect to a specific device inside your local network.&lt;br /&gt;
&lt;br /&gt;
By default, home routers block unsolicited incoming traffic for security reasons. Port forwarding creates a rule that:&lt;br /&gt;
&lt;br /&gt;
* Listens on a specific external port&lt;br /&gt;
* Accepts incoming traffic on that port&lt;br /&gt;
* Forwards the traffic to a designated internal IP address and port&lt;br /&gt;
&lt;br /&gt;
This is required when hosting a server from a home network.&lt;br /&gt;
&lt;br /&gt;
== Why Is It Required? ==&lt;br /&gt;
&lt;br /&gt;
If you are running a server from a PC on your home network:&lt;br /&gt;
&lt;br /&gt;
* Your router blocks incoming connections by default.&lt;br /&gt;
* External players cannot reach your server.&lt;br /&gt;
* Server listing services cannot communicate with your server.&lt;br /&gt;
&lt;br /&gt;
Without port forwarding, your server will only be accessible from inside your local network.&lt;br /&gt;
&lt;br /&gt;
== Before You Begin ==&lt;br /&gt;
&lt;br /&gt;
Ensure the following:&lt;br /&gt;
&lt;br /&gt;
* You have access to your router’s admin panel.&lt;br /&gt;
* Your server PC has a static local IP address (or a DHCP reservation).&lt;br /&gt;
* You know the ports your server uses.&lt;br /&gt;
&lt;br /&gt;
Default server ports:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;22000 UDP&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;22000 TCP&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;HTTP port (if applicable)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ports can be changed in your [[ServerConfiguration|server configuration]].&lt;br /&gt;
&lt;br /&gt;
== How to Open Ports ==&lt;br /&gt;
&lt;br /&gt;
Port forwarding is configured in your router settings.&lt;br /&gt;
&lt;br /&gt;
General steps:&lt;br /&gt;
&lt;br /&gt;
# Log into your router’s admin interface (usually 192.168.0.1 or 192.168.1.1).&lt;br /&gt;
# Locate the section labeled:&lt;br /&gt;
#* Port Forwarding&lt;br /&gt;
#* Virtual Server&lt;br /&gt;
#* NAT Rules&lt;br /&gt;
#* Applications &amp;amp; Gaming&lt;br /&gt;
# Create a new rule:&lt;br /&gt;
#* External Port: 22000&lt;br /&gt;
#* Internal IP: (your server PC’s local IP)&lt;br /&gt;
#* Internal Port: 22000&lt;br /&gt;
#* Protocol: TCP + UDP&lt;br /&gt;
# Save changes.&lt;br /&gt;
# Restart the router if required.&lt;br /&gt;
&lt;br /&gt;
Because every router interface is different, consult:&lt;br /&gt;
[https://portforward.com/router.htm portforward.com router guide]&lt;br /&gt;
&lt;br /&gt;
Select your router model for step-by-step instructions.&lt;br /&gt;
&lt;br /&gt;
== Verifying Port Forwarding ==&lt;br /&gt;
&lt;br /&gt;
After configuring:&lt;br /&gt;
&lt;br /&gt;
* Ensure the server is running.&lt;br /&gt;
* Use an external port checking tool.&lt;br /&gt;
* Ask someone outside your network to attempt connection.&lt;br /&gt;
&lt;br /&gt;
You can check whether your port is open using:&lt;br /&gt;
[https://www.yougetsignal.com/tools/open-ports/ YouGetSignal Open Port Checker]&lt;br /&gt;
&lt;br /&gt;
Enter your public IP address and the port number (e.g., 22000) to test accessibility.&lt;br /&gt;
&lt;br /&gt;
Important: Port checks will fail if the server is not running.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== No Router Access ===&lt;br /&gt;
&lt;br /&gt;
If you do not control the router (e.g., apartment, campus, shared housing), you cannot configure port forwarding yourself.&lt;br /&gt;
&lt;br /&gt;
=== Router Restart Required ===&lt;br /&gt;
&lt;br /&gt;
Some routers require:&lt;br /&gt;
&lt;br /&gt;
* A reboot&lt;br /&gt;
* A full power cycle&lt;br /&gt;
&lt;br /&gt;
Changes may take seconds to several minutes to apply.&lt;br /&gt;
&lt;br /&gt;
=== ISP Port Blocking ===&lt;br /&gt;
&lt;br /&gt;
Some Internet Service Providers block:&lt;br /&gt;
&lt;br /&gt;
* Specific ports&lt;br /&gt;
* All inbound ports&lt;br /&gt;
&lt;br /&gt;
Possible solutions:&lt;br /&gt;
&lt;br /&gt;
* Contact your ISP&lt;br /&gt;
* Use a VPN with port forwarding support&lt;br /&gt;
* Use a VPS or dedicated hosting provider&lt;br /&gt;
&lt;br /&gt;
=== Carrier-Grade NAT (CGNAT) ===&lt;br /&gt;
&lt;br /&gt;
If your ISP uses [https://en.wikipedia.org/wiki/Carrier-grade_NAT carrier-grade NAT (CGNAT)]:&lt;br /&gt;
&lt;br /&gt;
* You do not have a public IPv4 address.&lt;br /&gt;
* Port forwarding will not work.&lt;br /&gt;
&lt;br /&gt;
Solutions:&lt;br /&gt;
&lt;br /&gt;
* Request a public IP from your ISP&lt;br /&gt;
* Use IPv6 (if supported)&lt;br /&gt;
* Use a VPS or external hosting&lt;br /&gt;
* Use a VPN that provides port forwarding&lt;br /&gt;
&lt;br /&gt;
=== Firewall Conflicts ===&lt;br /&gt;
&lt;br /&gt;
Ensure:&lt;br /&gt;
&lt;br /&gt;
* Your operating system firewall allows the server.&lt;br /&gt;
* Security software is not blocking the ports.&lt;br /&gt;
* The internal IP in the router rule matches your server machine.&lt;br /&gt;
&lt;br /&gt;
== Alternatives to Port Forwarding ==&lt;br /&gt;
&lt;br /&gt;
If port forwarding is not possible:&lt;br /&gt;
&lt;br /&gt;
* Rent a VPS&lt;br /&gt;
* Use dedicated game server hosting&lt;br /&gt;
* Use a VPN with port forwarding&lt;br /&gt;
* Use a reverse proxy or tunneling solution&lt;br /&gt;
&lt;br /&gt;
These options typically involve cost but avoid router configuration.&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
&lt;br /&gt;
Port forwarding allows external players to connect to a server hosted on your home network. It requires:&lt;br /&gt;
&lt;br /&gt;
* Router access&lt;br /&gt;
* Correct port configuration&lt;br /&gt;
* A public IP address&lt;br /&gt;
* Proper firewall rules&lt;br /&gt;
&lt;br /&gt;
Without it, your server will not be reachable from the internet.&lt;/div&gt;</summary>
		<author><name>PerikiyoXD</name></author>
	</entry>
	<entry>
		<id>https://wiki.gtaconnected.com/wiki/index.php?title=PortForward&amp;diff=11396</id>
		<title>PortForward</title>
		<link rel="alternate" type="text/html" href="https://wiki.gtaconnected.com/wiki/index.php?title=PortForward&amp;diff=11396"/>
		<updated>2026-02-23T11:33:25Z</updated>

		<summary type="html">&lt;p&gt;PerikiyoXD: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Port Forwarding}}&lt;br /&gt;
&lt;br /&gt;
= Port Forwarding =&lt;br /&gt;
&lt;br /&gt;
== What Is Port Forwarding? ==&lt;br /&gt;
&lt;br /&gt;
Port forwarding is a router configuration that allows external devices on the internet to connect to a specific device inside your local network.&lt;br /&gt;
&lt;br /&gt;
By default, home routers block unsolicited incoming traffic for security reasons. Port forwarding creates a rule that:&lt;br /&gt;
&lt;br /&gt;
* Listens on a specific external port&lt;br /&gt;
* Accepts incoming traffic on that port&lt;br /&gt;
* Forwards the traffic to a designated internal IP address and port&lt;br /&gt;
&lt;br /&gt;
This is required when hosting a server from a home network.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Why Is It Required? ==&lt;br /&gt;
&lt;br /&gt;
If you are running a server from a PC on your home network:&lt;br /&gt;
&lt;br /&gt;
* Your router blocks incoming connections by default.&lt;br /&gt;
* External players cannot reach your server.&lt;br /&gt;
* Server listing services cannot communicate with your server.&lt;br /&gt;
&lt;br /&gt;
Without port forwarding, your server will only be accessible from inside your local network.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Before You Begin ==&lt;br /&gt;
&lt;br /&gt;
Ensure the following:&lt;br /&gt;
&lt;br /&gt;
* You have access to your router’s admin panel.&lt;br /&gt;
* Your server PC has a static local IP address (or a DHCP reservation).&lt;br /&gt;
* You know the ports your server uses.&lt;br /&gt;
&lt;br /&gt;
Default server ports:&lt;br /&gt;
&lt;br /&gt;
* **22000 UDP**&lt;br /&gt;
* **22000 TCP**&lt;br /&gt;
* **HTTP port (if applicable)**&lt;br /&gt;
&lt;br /&gt;
Ports can be changed in the [[ServerConfiguration|server configuration]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to Open Ports ==&lt;br /&gt;
&lt;br /&gt;
Port forwarding is configured in your router settings.&lt;br /&gt;
&lt;br /&gt;
General steps:&lt;br /&gt;
&lt;br /&gt;
1. Log into your router’s admin interface (usually 192.168.0.1 or 192.168.1.1).&lt;br /&gt;
2. Locate the section labeled:&lt;br /&gt;
&lt;br /&gt;
   * Port Forwarding&lt;br /&gt;
   * Virtual Server&lt;br /&gt;
   * NAT Rules&lt;br /&gt;
   * Applications &amp;amp; Gaming&lt;br /&gt;
3. Create a new rule:&lt;br /&gt;
&lt;br /&gt;
   * External Port: 22000&lt;br /&gt;
   * Internal IP: (your server PC’s local IP)&lt;br /&gt;
   * Internal Port: 22000&lt;br /&gt;
   * Protocol: TCP + UDP&lt;br /&gt;
4. Save changes.&lt;br /&gt;
5. Restart the router if required.&lt;br /&gt;
&lt;br /&gt;
Because every router interface is different, consult:&lt;br /&gt;
[https://portforward.com/router.htm](https://portforward.com/router.htm)&lt;br /&gt;
&lt;br /&gt;
Select your router model for step-by-step instructions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Verifying Port Forwarding ==&lt;br /&gt;
&lt;br /&gt;
After configuring:&lt;br /&gt;
&lt;br /&gt;
* Ensure the server is running.&lt;br /&gt;
* Use an external port checking tool.&lt;br /&gt;
* Ask someone outside your network to attempt connection.&lt;br /&gt;
&lt;br /&gt;
Important: Port checks will fail if the server is not running.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== No Router Access ===&lt;br /&gt;
If you do not control the router (e.g., apartment, campus, shared housing), you cannot configure port forwarding yourself.&lt;br /&gt;
&lt;br /&gt;
=== Router Restart Required ===&lt;br /&gt;
Some routers require:&lt;br /&gt;
&lt;br /&gt;
* A reboot&lt;br /&gt;
* A full power cycle&lt;br /&gt;
&lt;br /&gt;
Changes may take seconds to several minutes to apply.&lt;br /&gt;
&lt;br /&gt;
=== ISP Port Blocking ===&lt;br /&gt;
Some Internet Service Providers block:&lt;br /&gt;
&lt;br /&gt;
* Specific ports&lt;br /&gt;
* All inbound ports&lt;br /&gt;
&lt;br /&gt;
Possible solutions:&lt;br /&gt;
&lt;br /&gt;
* Contact your ISP&lt;br /&gt;
* Use a VPN with port forwarding support&lt;br /&gt;
* Use a VPS or dedicated hosting provider&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Carrier-Grade NAT (CGNAT) ===&lt;br /&gt;
If your ISP uses CGNAT:&lt;br /&gt;
&lt;br /&gt;
* You do not have a public IPv4 address.&lt;br /&gt;
* Port forwarding will not work.&lt;br /&gt;
&lt;br /&gt;
Solutions:&lt;br /&gt;
&lt;br /&gt;
* Request a public IP from your ISP&lt;br /&gt;
* Use IPv6 (if supported)&lt;br /&gt;
* Use a VPS or external hosting&lt;br /&gt;
* Use a VPN that provides port forwarding&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Firewall Conflicts ===&lt;br /&gt;
Ensure:&lt;br /&gt;
&lt;br /&gt;
* Your operating system firewall allows the server.&lt;br /&gt;
* Security software is not blocking the ports.&lt;br /&gt;
* The internal IP in the router rule matches your server machine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Alternatives to Port Forwarding ==&lt;br /&gt;
&lt;br /&gt;
If port forwarding is not possible:&lt;br /&gt;
&lt;br /&gt;
* Rent a VPS&lt;br /&gt;
* Use dedicated game server hosting&lt;br /&gt;
* Use a VPN with port forwarding&lt;br /&gt;
* Use a reverse proxy or tunneling solution&lt;br /&gt;
&lt;br /&gt;
These options typically involve cost but avoid router configuration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
&lt;br /&gt;
Port forwarding allows external players to connect to a server hosted on your home network. It requires:&lt;br /&gt;
&lt;br /&gt;
* Router access&lt;br /&gt;
* Correct port configuration&lt;br /&gt;
* A public IP address&lt;br /&gt;
* Proper firewall rules&lt;br /&gt;
&lt;br /&gt;
Without it, your server will not be reachable from the internet.&lt;/div&gt;</summary>
		<author><name>PerikiyoXD</name></author>
	</entry>
	<entry>
		<id>https://wiki.gtaconnected.com/wiki/index.php?title=Main_Page&amp;diff=11395</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.gtaconnected.com/wiki/index.php?title=Main_Page&amp;diff=11395"/>
		<updated>2026-02-23T10:59:50Z</updated>

		<summary type="html">&lt;p&gt;PerikiyoXD: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:100%;padding:0;margin:0;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Header --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#222222;text-align:center;color:white;font-size:2em;padding:1em;margin:0;&amp;quot;&amp;gt;GTA Connected Wiki&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- 2x2 Grid --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;display:flex;flex-wrap:wrap;gap:1em;padding:1em;background:#f9f9f9;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- For Players --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mainPageLinksBox&amp;quot; style=&amp;quot;flex:1 1 300px;border:4px solid #008b8b;display:flex;flex-direction:column;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#008b8b;text-align:center;color:white;font-size:1.5em;padding:0.8em;&amp;quot;&amp;gt;For Players&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:1em;&amp;quot;&amp;gt;&lt;br /&gt;
==Getting Started==&lt;br /&gt;
*[[Downgrading|Downgrading]]&lt;br /&gt;
*[[GameModifications|Game Modifications]]&lt;br /&gt;
*[[GamesAndVersions|Games &amp;amp; Versions]]&lt;br /&gt;
&lt;br /&gt;
==More Information==&lt;br /&gt;
*[[ClientManual|Client Manual]]&lt;br /&gt;
*[[SteamDeck|Steam Deck]]&lt;br /&gt;
*[[FAQ|FAQ]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- For Servers --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mainPageLinksBox&amp;quot; style=&amp;quot;flex:1 1 300px;border:4px solid #008b8b;display:flex;flex-direction:column;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#008b8b;text-align:center;color:white;font-size:1.5em;padding:0.8em;&amp;quot;&amp;gt;For Servers&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:1em;&amp;quot;&amp;gt;&lt;br /&gt;
==Hosting a server==&lt;br /&gt;
*[[GettingStarted|Getting Started]]&lt;br /&gt;
*[[ServerManual|Server Manual]]&lt;br /&gt;
*[[ServerConfiguration|Server Configuration]]&lt;br /&gt;
*[[CVars|CVars]]&lt;br /&gt;
*[[ServerRules|Server Rules]]&lt;br /&gt;
&lt;br /&gt;
==Extending the server==&lt;br /&gt;
*[[Resources|Resources]]&lt;br /&gt;
*[[Modules|Modules]]&lt;br /&gt;
&lt;br /&gt;
==Advanced==&lt;br /&gt;
*[[Dumpdoc|Dumpdoc]]&lt;br /&gt;
*[[ServerCommandLine|Server Command Line]]&lt;br /&gt;
*[[ServerQuery|Server Query]]&lt;br /&gt;
*[[Anticheat|Anticheat]]&lt;br /&gt;
*[[Limits|Limits]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Scripting --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mainPageLinksBox&amp;quot; style=&amp;quot;flex:1 1 300px;border:4px solid #8b0000;display:flex;flex-direction:column;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#8b0000;text-align:center;color:white;font-size:1.5em;padding:0.8em;&amp;quot;&amp;gt;Scripting&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:1em;&amp;quot;&amp;gt;&lt;br /&gt;
==Shared==&lt;br /&gt;
*[[Types|Types]]&lt;br /&gt;
*[[Defines|Defines]]&lt;br /&gt;
&lt;br /&gt;
==Server==&lt;br /&gt;
*[[Server/Events|Events]]&lt;br /&gt;
*[[Server/Functions|Functions]]&lt;br /&gt;
&lt;br /&gt;
==Client==&lt;br /&gt;
*[[Client/Events|Events]]&lt;br /&gt;
*[[Client/Functions|Functions]]&lt;br /&gt;
*[[Client/Natives|Native Scripting Functions]]&lt;br /&gt;
&lt;br /&gt;
==Extra==&lt;br /&gt;
*[[ScriptingLanguages|Scripting Languages]]&lt;br /&gt;
*[[NetworkEvents|Network Events]]&lt;br /&gt;
*[[ScriptingExamples|Examples]]&lt;br /&gt;
*[[ScriptingTutorials|Tutorials]]&lt;br /&gt;
*[[NativeMultiplayer|Native MP Mode (GTA IV)]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Reference --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mainPageLinksBox&amp;quot; style=&amp;quot;flex:1 1 300px;border:4px solid #8b8b00;display:flex;flex-direction:column;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#8b8b00;text-align:center;color:white;font-size:1.5em;padding:0.8em;&amp;quot;&amp;gt;Reference&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;display:flex;flex-wrap:wrap;gap:1em;padding:1em;flex:1;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;flex:1 1 120px;padding:0.8em;border:1px solid #ddd;background:white;&amp;quot;&amp;gt;&lt;br /&gt;
=== [[Image:GTAIII_Logo.png|32px|middle]] GTA III ===&lt;br /&gt;
*[[Resources/GTA3/Animations|Animations]]&lt;br /&gt;
*[[Resources/GTA3/PedSkins|Ped Skins]]&lt;br /&gt;
*[[Resources/GTA3/Pickups|Pickups]]&lt;br /&gt;
*[[Resources/GTA3/RadarBlips|Radar Blips]]&lt;br /&gt;
*[[Resources/GTA3/VehicleColours|Vehicle Colours]]&lt;br /&gt;
*[[Resources/GTA3/VehicleModels|Vehicle Models]]&lt;br /&gt;
*[[Resources/GTA3/Weapons|Weapons]]&lt;br /&gt;
*[[Resources/GTA3|More ...]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;flex:1 1 120px;padding:0.8em;border:1px solid #ddd;background:white;&amp;quot;&amp;gt;&lt;br /&gt;
=== [[Image:GTAVC_Logo.png|32px|middle]] GTA Vice City ===&lt;br /&gt;
*[[Resources/GTAVC/Animations|Animations]]&lt;br /&gt;
*[[Resources/GTAVC/PedSkins|Ped Skins]]&lt;br /&gt;
*[[Resources/GTAVC/Pickups|Pickups]]&lt;br /&gt;
*[[Resources/GTAVC/RadarBlips|Radar Blips]]&lt;br /&gt;
*[[Resources/GTAVC/VehicleColours|Vehicle Colours]]&lt;br /&gt;
*[[Resources/GTAVC/VehicleModels|Vehicle Models]]&lt;br /&gt;
*[[Resources/GTAVC/Weapons|Weapons]]&lt;br /&gt;
*[[Resources/GTAVC|More ...]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;flex:1 1 120px;padding:0.8em;border:1px solid #ddd;background:white;&amp;quot;&amp;gt;&lt;br /&gt;
=== [[Image:GTASA_Logo.png|32px|middle]] GTA San Andreas ===&lt;br /&gt;
*[[Resources/GTASA/Animations|Animations]]&lt;br /&gt;
*[[Resources/GTASA/PedSkins|Ped Skins]]&lt;br /&gt;
*[[Resources/GTASA/Pickups|Pickups]]&lt;br /&gt;
*[[Resources/GTASA/RadarBlips|Radar Blips]]&lt;br /&gt;
*[[Resources/GTASA/VehicleColours|Vehicle Colours]]&lt;br /&gt;
*[[Resources/GTASA/VehicleModels|Vehicle Models]]&lt;br /&gt;
*[[Resources/GTASA/Weapons|Weapons]]&lt;br /&gt;
*[[Resources/GTASA|More ...]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;flex:1 1 120px;padding:0.8em;border:1px solid #ddd;background:white;&amp;quot;&amp;gt;&lt;br /&gt;
=== [[Image:GTAIV_Logo.png|32px|middle]] GTA IV ===&lt;br /&gt;
*[[Resources/GTAIV/Animations|Animations]]&lt;br /&gt;
*[[Resources/GTAIV/PedSkins|Ped Skins]]&lt;br /&gt;
*[[Resources/GTAIV/Pickups|Pickups]]&lt;br /&gt;
*[[Resources/GTAIV/RadarBlips|Radar Blips]]&lt;br /&gt;
*[[Resources/GTAIV/VehicleColours|Vehicle Colours]]&lt;br /&gt;
*[[Resources/GTAIV/VehicleModels|Vehicle Models]]&lt;br /&gt;
*[[Resources/GTAIV/Weapons|Weapons]]&lt;br /&gt;
*[[Resources/GTAIV|More ...]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>PerikiyoXD</name></author>
	</entry>
	<entry>
		<id>https://wiki.gtaconnected.com/wiki/index.php?title=Main_Page&amp;diff=11394</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.gtaconnected.com/wiki/index.php?title=Main_Page&amp;diff=11394"/>
		<updated>2026-02-23T10:56:19Z</updated>

		<summary type="html">&lt;p&gt;PerikiyoXD: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:100%;padding:0;margin:0;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Header --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#222222;text-align:center;color:white;font-size:2em;padding:1em;margin:0;&amp;quot;&amp;gt;GTA Connected Wiki&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- 2x2 Grid --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;display:flex;flex-wrap:wrap;gap:1em;padding:1em;background:#f9f9f9;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- For Players --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mainPageLinksBox&amp;quot; style=&amp;quot;flex:1 1 300px;border:4px solid #008b8b;display:flex;flex-direction:column;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#008b8b;text-align:center;color:white;font-size:1.5em;padding:0.8em;&amp;quot;&amp;gt;For Players&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:1em;&amp;quot;&amp;gt;&lt;br /&gt;
==Getting Started==&lt;br /&gt;
*[[Downgrading|Downgrading]]&lt;br /&gt;
*[[GameModifications|Game Modifications]]&lt;br /&gt;
*[[GamesAndVersions|Games &amp;amp; Versions]]&lt;br /&gt;
&lt;br /&gt;
==More Information==&lt;br /&gt;
*[[ClientManual|Client Manual]]&lt;br /&gt;
*[[SteamDeck|Steam Deck]]&lt;br /&gt;
*[[FAQ|FAQ]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- For Servers --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mainPageLinksBox&amp;quot; style=&amp;quot;flex:1 1 300px;border:4px solid #008b8b;display:flex;flex-direction:column;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#008b8b;text-align:center;color:white;font-size:1.5em;padding:0.8em;&amp;quot;&amp;gt;For Servers&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:1em;&amp;quot;&amp;gt;&lt;br /&gt;
==Hosting a server==&lt;br /&gt;
*[[GettingStarted|Getting Started]]&lt;br /&gt;
*[[ServerManual|Server Manual]]&lt;br /&gt;
*[[ServerConfiguration|Server Configuration]]&lt;br /&gt;
*[[CVars|CVars]]&lt;br /&gt;
*[[ServerRules|Server Rules]]&lt;br /&gt;
&lt;br /&gt;
==Extending the server==&lt;br /&gt;
*[[Resources|Resources]]&lt;br /&gt;
*[[Modules|Modules]]&lt;br /&gt;
&lt;br /&gt;
==Advanced==&lt;br /&gt;
*[[Dumpdoc|Dumpdoc]]&lt;br /&gt;
*[[ServerCommandLine|Server Command Line]]&lt;br /&gt;
*[[ServerQuery|Server Query]]&lt;br /&gt;
*[[Anticheat|Anticheat]]&lt;br /&gt;
*[[Limits|Limits]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Scripting --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mainPageLinksBox&amp;quot; style=&amp;quot;flex:1 1 300px;border:4px solid #8b0000;display:flex;flex-direction:column;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#8b0000;text-align:center;color:white;font-size:1.5em;padding:0.8em;&amp;quot;&amp;gt;Scripting&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:1em;&amp;quot;&amp;gt;&lt;br /&gt;
==Shared==&lt;br /&gt;
*[[Types|Types]]&lt;br /&gt;
*[[Defines|Defines]]&lt;br /&gt;
&lt;br /&gt;
==Server==&lt;br /&gt;
*[[Server/Events|Events]]&lt;br /&gt;
*[[Server/Functions|Functions]]&lt;br /&gt;
&lt;br /&gt;
==Client==&lt;br /&gt;
*[[Client/Events|Events]]&lt;br /&gt;
*[[Client/Functions|Functions]]&lt;br /&gt;
*[[Client/Natives|Native Scripting Functions]]&lt;br /&gt;
&lt;br /&gt;
==Extra==&lt;br /&gt;
*[[ScriptingLanguages|Scripting Languages]]&lt;br /&gt;
*[[NetworkEvents|Network Events]]&lt;br /&gt;
*[[ScriptingExamples|Examples]]&lt;br /&gt;
*[[ScriptingTutorials|Tutorials]]&lt;br /&gt;
*[[NativeMultiplayer|Native MP Mode (GTA IV)]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Reference (Games) --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mainPageLinksBox&amp;quot; style=&amp;quot;flex:1 1 300px;border:4px solid #8b8b00;display:flex;flex-direction:column;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#8b8b00;text-align:center;color:white;font-size:1.5em;padding:0.8em;&amp;quot;&amp;gt;Reference&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;display:flex;flex-wrap:wrap;gap:1em;padding:1em;flex:1;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;flex:1 1 120px;padding:0.8em;border:1px solid #ddd;background:white;&amp;quot;&amp;gt;&lt;br /&gt;
=== [[Image:GTAIII_Logo.png|32px|middle]] GTA III ===&lt;br /&gt;
{{Resources/ShortGTA3}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;flex:1 1 120px;padding:0.8em;border:1px solid #ddd;background:white;&amp;quot;&amp;gt;&lt;br /&gt;
=== [[Image:GTAVC_Logo.png|32px|middle]] GTA Vice City ===&lt;br /&gt;
{{Resources/ShortGTAVC}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;flex:1 1 120px;padding:0.8em;border:1px solid #ddd;background:white;&amp;quot;&amp;gt;&lt;br /&gt;
=== [[Image:GTASA_Logo.png|32px|middle]] GTA San Andreas ===&lt;br /&gt;
{{Resources/ShortGTASA}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;flex:1 1 120px;padding:0.8em;border:1px solid #ddd;background:white;&amp;quot;&amp;gt;&lt;br /&gt;
=== [[Image:GTAIV_Logo.png|32px|middle]] GTA IV ===&lt;br /&gt;
{{Resources/ShortGTAIV}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>PerikiyoXD</name></author>
	</entry>
	<entry>
		<id>https://wiki.gtaconnected.com/wiki/index.php?title=Template:MainPageResources&amp;diff=11393</id>
		<title>Template:MainPageResources</title>
		<link rel="alternate" type="text/html" href="https://wiki.gtaconnected.com/wiki/index.php?title=Template:MainPageResources&amp;diff=11393"/>
		<updated>2026-02-23T10:53:53Z</updated>

		<summary type="html">&lt;p&gt;PerikiyoXD: Undo revision 11392 by PerikiyoXD (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;div class=&amp;quot;mainPageLinksBox&amp;quot; style=&amp;quot;border:4px solid #8b8b00;width:22%&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#8b8b00;text-align:center;color:white;font-size:2em&amp;quot;&amp;gt;Reference&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:1em;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
==[[Image:GTAIII_Logo.png|32px|middle]] GTA III==&lt;br /&gt;
&lt;br /&gt;
{{Resources/ShortGTA3}}&lt;br /&gt;
&lt;br /&gt;
==[[Image:GTAVC_Logo.png|32px|middle]] GTA Vice City==&lt;br /&gt;
{{Resources/ShortGTAVC}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
==[[Image:GTASA_Logo.png|32px|middle]] GTA San Andreas==&lt;br /&gt;
{{Resources/ShortGTASA}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
==[[Image:GTAIV_Logo.png|32px|middle]] GTA IV==&lt;br /&gt;
{{Resources/ShortGTAIV}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>PerikiyoXD</name></author>
	</entry>
	<entry>
		<id>https://wiki.gtaconnected.com/wiki/index.php?title=Template:MainPageResources&amp;diff=11392</id>
		<title>Template:MainPageResources</title>
		<link rel="alternate" type="text/html" href="https://wiki.gtaconnected.com/wiki/index.php?title=Template:MainPageResources&amp;diff=11392"/>
		<updated>2026-02-23T10:47:02Z</updated>

		<summary type="html">&lt;p&gt;PerikiyoXD: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#8b8b00;text-align:center;color:white;font-size:2em;width:100%&amp;quot;&amp;gt;Reference&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mainPageLinksBox&amp;quot; style=&amp;quot;border:4px solid #8b8b00;width:100%;border-top:none;height:auto;display:flex;flex-direction:column;align-items:center;justify-content:center;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:1em;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;display: flex; flex-wrap: wrap; gap: 1em;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;flex: 1 1 300px;&amp;quot;&amp;gt;&lt;br /&gt;
== [[Image:GTAIII_Logo.png|32px|middle]] GTA III ==&lt;br /&gt;
&lt;br /&gt;
{{Resources/ShortGTA3}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;flex: 1 1 300px;&amp;quot;&amp;gt;&lt;br /&gt;
== [[Image:GTAVC_Logo.png|32px|middle]] GTA Vice City ==&lt;br /&gt;
{{Resources/ShortGTAVC}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;flex: 1 1 300px;&amp;quot;&amp;gt;&lt;br /&gt;
== [[Image:GTASA_Logo.png|32px|middle]] GTA San Andreas ==&lt;br /&gt;
{{Resources/ShortGTASA}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;flex: 1 1 300px;&amp;quot;&amp;gt;&lt;br /&gt;
== [[Image:GTAIV_Logo.png|32px|middle]] GTA IV ==&lt;br /&gt;
{{Resources/ShortGTAIV}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>PerikiyoXD</name></author>
	</entry>
	<entry>
		<id>https://wiki.gtaconnected.com/wiki/index.php?title=meta.xml&amp;diff=11391</id>
		<title>meta.xml</title>
		<link rel="alternate" type="text/html" href="https://wiki.gtaconnected.com/wiki/index.php?title=meta.xml&amp;diff=11391"/>
		<updated>2026-02-20T03:40:35Z</updated>

		<summary type="html">&lt;p&gt;PerikiyoXD: Easy redirect by keyword &amp;quot;meta.xml&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Resources#Meta.xml_File]]&lt;/div&gt;</summary>
		<author><name>PerikiyoXD</name></author>
	</entry>
	<entry>
		<id>https://wiki.gtaconnected.com/wiki/index.php?title=Downgrading&amp;diff=11384</id>
		<title>Downgrading</title>
		<link rel="alternate" type="text/html" href="https://wiki.gtaconnected.com/wiki/index.php?title=Downgrading&amp;diff=11384"/>
		<updated>2026-02-11T16:32:55Z</updated>

		<summary type="html">&lt;p&gt;PerikiyoXD: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Patching The Games}}&lt;br /&gt;
&lt;br /&gt;
Click on the game logo below to download the patch.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:left;&amp;quot;&lt;br /&gt;
! Game !! Hash (SHA256)&lt;br /&gt;
|-&lt;br /&gt;
| [[File:GTAIII_Logo.png|32px|middle|link=https://wiki.gtaconnected.com/downloads/gta3.exe]] &#039;&#039;&#039;Grand Theft Auto III&#039;&#039;&#039;&lt;br /&gt;
| &amp;lt;code&amp;gt;17e036ff18cdd805951fec9107746492f582ae1eb46ca028544e37e517e8fc1f&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:GTAVC_Logo.png|32px|middle|link=https://wiki.gtaconnected.com/downloads/gta-vc.exe]] &#039;&#039;&#039;Grand Theft Auto: Vice City&#039;&#039;&#039;&lt;br /&gt;
| &amp;lt;code&amp;gt;04e4db72629eaa786fdd182ac224f4fd6d68806f5f4fe5c1fb5f756dc4da11d7&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:GTASA_Logo.png|32px|middle|link=https://wiki.gtaconnected.com/downloads/gta_sa.exe]] &#039;&#039;&#039;Grand Theft Auto: San Andreas&#039;&#039;&#039;&lt;br /&gt;
| &amp;lt;code&amp;gt;590b4be1bb005f4e07edf6b32df4a95b7ba403fb85472d68aa4275875b345b6f&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:GTAIV_Logo.png|32px|middle|link=DowngradingIV]] &#039;&#039;&#039;Grand Theft Auto IV&#039;&#039;&#039;&lt;br /&gt;
| &amp;lt;code&amp;gt;N/A&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>PerikiyoXD</name></author>
	</entry>
	<entry>
		<id>https://wiki.gtaconnected.com/wiki/index.php?title=Downgrading&amp;diff=11383</id>
		<title>Downgrading</title>
		<link rel="alternate" type="text/html" href="https://wiki.gtaconnected.com/wiki/index.php?title=Downgrading&amp;diff=11383"/>
		<updated>2026-02-11T15:30:44Z</updated>

		<summary type="html">&lt;p&gt;PerikiyoXD: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Patching The Games}}&lt;br /&gt;
&lt;br /&gt;
Click on the game logo below to download the patch.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:left;&amp;quot;&lt;br /&gt;
! Game !! Hash (SHA256)&lt;br /&gt;
|-&lt;br /&gt;
| [[File:GTAIII_Logo.png|32px|middle|link=https://wiki.gtaconnected.com/downloads/gta3.exe]] &#039;&#039;&#039;Grand Theft Auto III&#039;&#039;&#039;&lt;br /&gt;
| &amp;lt;code&amp;gt;17e036ff18cdd805951fec9107746492f582ae1eb46ca028544e37e517e8fc1f&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:GTAVC_Logo.png|32px|middle|link=https://wiki.gtaconnected.com/downloads/gta-vc.exe]] &#039;&#039;&#039;Grand Theft Auto: Vice City&#039;&#039;&#039;&lt;br /&gt;
| &amp;lt;code&amp;gt;04e4db72629eaa786fdd182ac224f4fd6d68806f5f4fe5c1fb5f756dc4da11d7&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:GTASA_Logo.png|32px|middle|link=https://wiki.gtaconnected.com/downloads/gta_sa.exe]] &#039;&#039;&#039;Grand Theft Auto: San Andreas&#039;&#039;&#039;&lt;br /&gt;
|  &amp;lt;code&amp;gt;???&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:GTAIV_Logo.png|32px|middle|link=DowngradingIV]] &#039;&#039;&#039;Grand Theft Auto IV&#039;&#039;&#039;&lt;br /&gt;
| &amp;lt;code&amp;gt;N/A&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>PerikiyoXD</name></author>
	</entry>
	<entry>
		<id>https://wiki.gtaconnected.com/wiki/index.php?title=Downgrading&amp;diff=11382</id>
		<title>Downgrading</title>
		<link rel="alternate" type="text/html" href="https://wiki.gtaconnected.com/wiki/index.php?title=Downgrading&amp;diff=11382"/>
		<updated>2026-02-11T15:20:14Z</updated>

		<summary type="html">&lt;p&gt;PerikiyoXD: Use correct link for VC&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Patching The Games}}&lt;br /&gt;
Click on a game icon below to download the patch.&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding: 10px&amp;quot;|[[Image:GTAIII_Logo.png|32px|middle|link=https://wiki.gtaconnected.com/downloads/gta3.exe]]&lt;br /&gt;
|style=&amp;quot;padding: 10px&amp;quot;|[[Image:GTAVC_Logo.png|32px|middle|link=https://wiki.gtaconnected.com/downloads/gta-vc.exe]] &lt;br /&gt;
|style=&amp;quot;padding: 10px&amp;quot;|[[Image:GTASA_Logo.png|32px|middle|link=https://wiki.gtaconnected.com/downloads/gta_sa.exe]] &lt;br /&gt;
|style=&amp;quot;padding: 10px&amp;quot;|[[Image:GTAIV_Logo.png|32px|middle|link=DowngradingIV]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>PerikiyoXD</name></author>
	</entry>
	<entry>
		<id>https://wiki.gtaconnected.com/wiki/index.php?title=Module:ScriptItem&amp;diff=10341</id>
		<title>Module:ScriptItem</title>
		<link rel="alternate" type="text/html" href="https://wiki.gtaconnected.com/wiki/index.php?title=Module:ScriptItem&amp;diff=10341"/>
		<updated>2022-07-03T17:00:27Z</updated>

		<summary type="html">&lt;p&gt;PerikiyoXD: Inlined local varialbes into function calls&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
-- settings&lt;br /&gt;
p.categoryItems = {&lt;br /&gt;
	-- Category Name		= table. (Fully resolved item name(s), case-sensitive.) (Event names must start with a capital letter &amp;quot;O&amp;quot;, to match the dumpdoc XML.)&lt;br /&gt;
	[&#039;Audio&#039;]				= {&#039;gta.addOneOffSound&#039;, &#039;gta.playFrontEndSound&#039;, &#039;gta.playSuspectLastSeen&#039;},&lt;br /&gt;
	[&#039;Camera&#039;]				= {&#039;gta.fading&#039;},&lt;br /&gt;
	[&#039;Chatbox&#039;]				= {&#039;message&#039;, &#039;messageClient&#039;, &#039;messageAllExcept&#039;, &#039;setChatWindowEnabled&#039;, &#039;OnChatOutput&#039;},&lt;br /&gt;
	[&#039;Cursor&#039;]				= {&#039;gta.getMouseSpeed&#039;},&lt;br /&gt;
	[&#039;CustomText&#039;]			= {&#039;gta.setCustomText&#039;, &#039;gta.setCustomText&#039;, &#039;gta.clearCustomText&#039;, &#039;gta.printBig&#039;},&lt;br /&gt;
	[&#039;Drawing&#039;]				= {&#039;gta.drawRectangle&#039;},&lt;br /&gt;
	[&#039;Effect&#039;]				= {&#039;gta.addParticleEffect&#039;, &#039;addParticleEffect&#039;, &#039;gta.addMovingParticleEffect&#039;, &#039;addMovingParticleEffect&#039;, &#039;gta.createSingleParticle&#039;, &#039;createSingleParticle&#039;},&lt;br /&gt;
	[&#039;Font&#039;]				= {&#039;font.render&#039;},&lt;br /&gt;
	[&#039;GarbageCollection&#039;]	= {&#039;collectAllGarbage&#039;},&lt;br /&gt;
	[&#039;Game&#039;]				= {&#039;gta.game&#039;, &#039;gta.standardControls&#039;, &#039;gta.gameSpeed&#039;, &#039;gta.loadDFF&#039;, &#039;gta.loadTXD&#039;, &#039;gta.loadCOL&#039;},&lt;br /&gt;
	[&#039;GameStat&#039;]			= {&#039;gta.setGameStat&#039;, &#039;gta.getGameStat&#039;},&lt;br /&gt;
	[&#039;GUI&#039;]					= {&#039;OnGUIClick&#039;},&lt;br /&gt;
	[&#039;Key&#039;]					= {&#039;isScancodePressed&#039;, &#039;OnCharacter&#039;},&lt;br /&gt;
	[&#039;KillFrenzy&#039;]			= {&#039;gta.startKillFrenzy&#039;},&lt;br /&gt;
	[&#039;Message&#039;]				= {&#039;gta.clearMessages&#039;, &#039;gta.smallMessage&#039;, &#039;gta.bigMessage&#039;, &#039;gta.pagerMessage&#039;},&lt;br /&gt;
	[&#039;Miscellaneous&#039;]		= {&#039;platform&#039;, &#039;toColour&#039;, &#039;gta.tickCount&#039;, &#039;getRandomSkin&#039;, &#039;gta.getRandomSkin&#039;, &#039;gta.processLineOfSight&#039;, &#039;processLineOfSight&#039;, &#039;gta.setIsland&#039;, &#039;gta.setDefaultInteriors&#039;},&lt;br /&gt;
	[&#039;Network&#039;]				= {&#039;isConnected&#039;, &#039;isConnecting&#039;, &#039;connect&#039;, &#039;disconnect&#039;, &#039;triggerNetworkEvent&#039;, &#039;OnDisconnect&#039;},&lt;br /&gt;
	[&#039;Path&#039;]				= {&#039;gta.trafficDensity&#039;, &#039;gta.setTrafficEnabled&#039;, &#039;setTrafficEnabled&#039;, &#039;gta.setCiviliansEnabled&#039;, &#039;setCiviliansEnabled&#039;},&lt;br /&gt;
	[&#039;Ped&#039;]					= {&#039;gta.tommyFatness&#039;},&lt;br /&gt;
	[&#039;Radio&#039;]				= {&#039;gta.setRadioChannel&#039;, &#039;gta.forceRadioChannel&#039;},&lt;br /&gt;
	[&#039;Reflection&#039;]			= {&#039;exportFunction&#039;, &#039;setErrorMode&#039;},&lt;br /&gt;
	[&#039;Renderware&#039;]			= {&#039;gta.rwRenderStateSet&#039;},&lt;br /&gt;
	[&#039;SaveGame&#039;]			= {&#039;gta.saveGame&#039;},&lt;br /&gt;
	[&#039;Screen&#039;]				= {&#039;gta.aspectRatio&#039;, &#039;gta.width&#039;, &#039;gta.height&#039;},&lt;br /&gt;
	[&#039;Script&#039;]				= {&#039;gta.terminateScript&#039;, &#039;gta.getActiveScripts&#039;, &#039;gta.scriptCommand&#039;},&lt;br /&gt;
	[&#039;Timer&#039;]				= {&#039;setImmediate&#039;, &#039;clearImmediate&#039;, &#039;setInterval&#039;, &#039;clearInterval&#039;, &#039;setTimeout&#039;, &#039;clearTimeout&#039;},&lt;br /&gt;
	[&#039;Weather&#039;]				= {&#039;snowing&#039;, &#039;forceSnowing&#039;},&lt;br /&gt;
	[&#039;Window&#039;]				= {&#039;OnFocus&#039;, &#039;OnLostFocus&#039;},&lt;br /&gt;
	[&#039;World&#039;]				= {&#039;gta.ssvBridgeEnabled&#039;, &#039;gta.planesEnabled&#039;, &#039;gta.trainsEnabled&#039;, &#039;setPlanesEnabled&#039;, &#039;setTrainsEnabled&#039;, &#039;world&#039;, &#039;gta.findGroundZForCoord&#039;, &#039;findGroundZForCoord&#039;, &#039;gta.setTrainsEnabled&#039;, &#039;gta.setPlanesEnabled&#039;}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
p.categoryWords = {&lt;br /&gt;
	-- Category Names. (String(s) to look for in an item name, case-INsensitive.)&lt;br /&gt;
	&#039;Blip&#039;, &#039;Building&#039;, &#039;Camera&#039;, &#039;Chatbox&#039;, &#039;Cheat&#039;, &#039;Client&#039;, &#039;Command&#039;, &#039;Cursor&#039;, &#039;Debug&#039;, &#039;Dodo&#039;,&lt;br /&gt;
	&#039;Element&#039;, &#039;Entity&#039;, &#039;Event&#039;, &#039;File&#039;, &#039;Font&#039;, &#039;Garage&#039;, &#039;HTTP&#039;, &#039;HUD&#039;, &#039;Key&#039;, &#039;Mission&#039;, &#039;Mouse&#039;, &#039;Network&#039;, &#039;Object&#039;,&lt;br /&gt;
	&#039;Pause&#039;, &#039;Ped&#039;, &#039;Pickup&#039;, &#039;Player&#039;, &#039;Process&#039;, &#039;Render&#039;, &#039;Resource&#039;, &#039;Screen&#039;, &#039;Socket&#039;, &#039;Sphere&#039;, &#039;Time&#039;, &#039;Vehicle&#039;, &#039;Weather&#039;, &#039;World&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- entry point&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	local args = p.getArgs(frame)&lt;br /&gt;
	&lt;br /&gt;
	if args.type == &#039;variable&#039; then&lt;br /&gt;
		return p.showVariablePage(frame)&lt;br /&gt;
	elseif args.type == &#039;function&#039; then&lt;br /&gt;
		return p.showFunctionPage(frame)&lt;br /&gt;
	elseif args.type == &#039;property&#039; then&lt;br /&gt;
		return p.showPropertyPage(frame)&lt;br /&gt;
	elseif args.type == &#039;method&#039; then&lt;br /&gt;
		return p.showMethodPage(frame)&lt;br /&gt;
	elseif args.type == &#039;event&#039; then&lt;br /&gt;
		return p.showEventPage(frame)&lt;br /&gt;
	else&lt;br /&gt;
		return &amp;quot;This page has been documented incorrectly, &#039;&#039;&#039;type&#039;&#039;&#039; is missing.&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- item page types&lt;br /&gt;
function p.showVariablePage(frame)&lt;br /&gt;
	return p.showPage(frame, { &amp;quot;Value&amp;quot; })&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.showFunctionPage(frame)&lt;br /&gt;
	return p.showPage(frame, { &amp;quot;Parameters&amp;quot;, &amp;quot;Return&amp;quot;, &amp;quot;Callbacks&amp;quot; })&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.showPropertyPage(frame)&lt;br /&gt;
	return p.showPage(frame, { &amp;quot;Value&amp;quot; })&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.showMethodPage(frame)&lt;br /&gt;
	return p.showPage(frame, { &amp;quot;Parameters&amp;quot;, &amp;quot;Return&amp;quot;, &amp;quot;Callbacks&amp;quot; })&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.showEventPage(frame)&lt;br /&gt;
	return p.showPage(frame, { &amp;quot;Parameters&amp;quot;, &amp;quot;Attributes&amp;quot; })&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- item page&lt;br /&gt;
function p.showPage(frame, parts)&lt;br /&gt;
	local args = p.getArgs(frame)&lt;br /&gt;
	if args.type ~= &#039;event&#039; then&lt;br /&gt;
		table.insert(parts, &amp;quot;Types&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	--table.insert(parts, &amp;quot;Symbols&amp;quot;)&lt;br /&gt;
	local lines = p.getPageTopLines(frame)&lt;br /&gt;
	for i,part in ipairs({&amp;quot;Notes&amp;quot;, &amp;quot;Examples&amp;quot;, &amp;quot;Compatibility&amp;quot;, &amp;quot;Related&amp;quot;}) do&lt;br /&gt;
		table.insert(parts, part)&lt;br /&gt;
	end&lt;br /&gt;
	for i,part in ipairs(parts) do&lt;br /&gt;
		local data = p[part:lower() == &#039;return&#039; and &#039;returns&#039; or part:lower()](frame)&lt;br /&gt;
		if data and #data &amp;gt; 0 then&lt;br /&gt;
			if part == &#039;Settable&#039; then&lt;br /&gt;
				part = args.readonly == &#039;true&#039; and &#039;Read-Only&#039; or &#039;Read and Set&#039;&lt;br /&gt;
			end&lt;br /&gt;
			table.insert(lines, &#039;== &#039;..part..&#039; ==&#039;)&lt;br /&gt;
			table.insert(lines, data)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return table.concat(lines, &amp;quot;\n&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.getPageTopLines(frame)&lt;br /&gt;
	local lines = {}&lt;br /&gt;
	table.insert(lines, frame:preprocess(&amp;quot;{{DISPLAYTITLE:&amp;quot;..p.getDisplayedName(frame)..&amp;quot;}}&amp;quot;))&lt;br /&gt;
	table.insert(lines, &amp;quot;__NOTOC__&amp;quot;..p.getPageTopBoxes(frame)..&amp;quot;\n&amp;quot;)&lt;br /&gt;
	table.insert(lines, &amp;quot;&amp;lt;div style=&#039;margin-top: 20px;&#039;&amp;gt;Available since &amp;quot;..p.since(frame)..&amp;quot;&amp;lt;/div&amp;gt;\n&amp;quot;)&lt;br /&gt;
	table.insert(lines, &amp;quot;&amp;lt;div style=&#039;margin-top: 6px;&#039;&amp;gt;\n&amp;quot;..p.syntax(frame)..&amp;quot;&amp;lt;/div&amp;gt;\n&amp;quot;)&lt;br /&gt;
	table.insert(lines, &amp;quot;&amp;lt;div style=&#039;margin-top: 20px;&#039;&amp;gt;\n&amp;quot;..p.description(frame)..&amp;quot;&amp;lt;/div&amp;gt;\n&amp;quot;)&lt;br /&gt;
	return lines&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.getPageTopBoxes(frame)&lt;br /&gt;
	local args = p.getArgs(frame)&lt;br /&gt;
	&lt;br /&gt;
	local topBoxes = { &amp;quot;type&amp;quot;, &amp;quot;endpoint&amp;quot;, &amp;quot;games&amp;quot;, &amp;quot;online&amp;quot; }&lt;br /&gt;
	if args.type == &#039;variable&#039; or args.type == &#039;property&#039; then&lt;br /&gt;
		table.insert(topBoxes, &amp;quot;settable&amp;quot;)&lt;br /&gt;
	elseif args.type == &#039;event&#039; then&lt;br /&gt;
		table.insert(topBoxes, &amp;quot;cancellable&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local outBoxes = {}&lt;br /&gt;
	for i,topBox in ipairs(topBoxes) do&lt;br /&gt;
		table.insert(outBoxes, p[topBox..&amp;quot;Box&amp;quot;](frame))&lt;br /&gt;
	end&lt;br /&gt;
	return table.concat(outBoxes, &#039; &#039;)..&amp;quot;&amp;lt;br&amp;gt;&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- template arguments&lt;br /&gt;
function p.getArgs(frame)&lt;br /&gt;
	if p.argsCache then&lt;br /&gt;
		return p.argsCache&lt;br /&gt;
	else&lt;br /&gt;
		local args = frame:getParent().args&lt;br /&gt;
		p.copyOldToNewForTemplateArguments(frame, args)&lt;br /&gt;
		p.copyNonIndexedToIndexedTemplateArguments(frame, args)&lt;br /&gt;
		p.populateTypeSpecificTemplateArguments(frame, args)&lt;br /&gt;
		p.populateDefaultTemplateArguments(frame, args)&lt;br /&gt;
		p.argsCache = args&lt;br /&gt;
		return args&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.copyOldToNewForTemplateArguments(frame, args)&lt;br /&gt;
	if args.parameters then&lt;br /&gt;
		args.syntax = args.parameters&lt;br /&gt;
	end&lt;br /&gt;
	if args.parametersSS then&lt;br /&gt;
		args.syntaxSS = args.parametersSS&lt;br /&gt;
	end&lt;br /&gt;
	if args.parametersCS then&lt;br /&gt;
		args.syntaxCS = args.parametersCS&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if args.callbackParameters then&lt;br /&gt;
		args.callbackSyntax = args.callbackParameters&lt;br /&gt;
	end&lt;br /&gt;
	if args.callbackParametersSS then&lt;br /&gt;
		args.callbackSyntaxSS = args.callbackParametersSS&lt;br /&gt;
	end&lt;br /&gt;
	if args.callbackParametersCS then&lt;br /&gt;
		args.callbackSyntaxCS = args.callbackParametersCS&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if args.type == &#039;event&#039; then&lt;br /&gt;
		if args.callbackParameters then&lt;br /&gt;
			args.syntax = args.callbackParameters&lt;br /&gt;
		end&lt;br /&gt;
		if args.callbackParametersSS then&lt;br /&gt;
			args.syntaxSS = args.callbackParametersSS&lt;br /&gt;
		end&lt;br /&gt;
		if args.callbackParametersCS then&lt;br /&gt;
			args.syntaxCS = args.callbackParametersCS&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if args.returnType or args.returnTypes then&lt;br /&gt;
		local returnType = args.returnType and args.returnType or args.returnTypes&lt;br /&gt;
		if args.returnInfo then&lt;br /&gt;
			args.return1 = returnType..&amp;quot; &amp;quot;..args.returnInfo&lt;br /&gt;
			args.value = returnType..&amp;quot; &amp;quot;..args.returnInfo&lt;br /&gt;
		else&lt;br /&gt;
			args.return1 = returnType&lt;br /&gt;
			args.value = returnType&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if args.usage then&lt;br /&gt;
		args.description = args.usage&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if args.notes then&lt;br /&gt;
		local notes = p.splitLines(args.notes)&lt;br /&gt;
		for i,note in ipairs(notes) do&lt;br /&gt;
			args[&#039;note&#039;..i] = note&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local exampleKeys = {&lt;br /&gt;
		&#039;example&#039;, &#039;exampleSS&#039;, &#039;exampleCS&#039;, &#039;exampleJS&#039;, &#039;exampleLua&#039;, &#039;exampleSquirrel&#039;,&lt;br /&gt;
		&#039;exampleJSSS&#039;, &#039;exampleJSCS&#039;, &#039;exampleLuaSS&#039;, &#039;exampleLuaCS&#039;, &#039;exampleSquirrelSS&#039;, &#039;exampleSquirrelCS&#039;&lt;br /&gt;
	}&lt;br /&gt;
	for i,exampleKey in ipairs(exampleKeys) do&lt;br /&gt;
		if args[exampleKey] then&lt;br /&gt;
			local examples = p.split(args[exampleKey], &#039;&amp;lt;br&amp;gt;&#039;)&lt;br /&gt;
			for i,example in ipairs(examples) do&lt;br /&gt;
				args[exampleKey..i] = example&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if args.bcName and args.bcMaxVersion then&lt;br /&gt;
		args.previous1 = args.bcName..&amp;quot; &amp;quot;..args.bcMaxVersion&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.copyNonIndexedToIndexedTemplateArguments(frame, args)&lt;br /&gt;
	if args.description then&lt;br /&gt;
		args.description1 = args.description&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.populateTypeSpecificTemplateArguments(frame, args)&lt;br /&gt;
	if args.type == &#039;variable&#039; or args.type == &#039;property&#039; then&lt;br /&gt;
		if args.value then&lt;br /&gt;
			local tokens = p.split(args.value, &#039; &#039;)&lt;br /&gt;
			local type = tokens[1]&lt;br /&gt;
			&lt;br /&gt;
			local name&lt;br /&gt;
			if args.type == &#039;property&#039; then&lt;br /&gt;
				name = args.class..&amp;quot;.&amp;quot;..args.name&lt;br /&gt;
			else&lt;br /&gt;
				name = args.name&lt;br /&gt;
			end&lt;br /&gt;
			&lt;br /&gt;
			args.syntax = type..&amp;quot; &amp;quot;..name&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.populateDefaultTemplateArguments(frame, args)&lt;br /&gt;
	if not args.since then&lt;br /&gt;
		args.since = &amp;quot;1.0.0 1.0.0&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if args.syntax and args.syntax:lower() == &amp;quot;void&amp;quot; then&lt;br /&gt;
		args.parameter1 = &amp;quot;void&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- item top boxes&lt;br /&gt;
function p.typeBox(frame)&lt;br /&gt;
	local args = p.getArgs(frame)&lt;br /&gt;
	local typeText = p.getType(args.type)&lt;br /&gt;
	return p.loadTemplate(frame, &#039;GreenInformationBox&#039;, {typeText,id=&#039;type&#039;});&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.endpointBox(frame)&lt;br /&gt;
	local args = p.getArgs(frame)&lt;br /&gt;
	local endpointText, isShared = p.getEndpoint(args.endpoint)&lt;br /&gt;
	if isShared then&lt;br /&gt;
		return p.loadTemplate(frame, &#039;GreenInformationBox&#039;, {endpointText,id=&#039;endpoint&#039;});&lt;br /&gt;
	else&lt;br /&gt;
		return p.loadTemplate(frame, &#039;RedInformationBox&#039;, {endpointText,id=&#039;endpoint&#039;});&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.gamesBox(frame)&lt;br /&gt;
	local args = p.getArgs(frame)&lt;br /&gt;
	local gamesText = p.getGames(args.games)&lt;br /&gt;
	if gamesText == &amp;quot;All Games&amp;quot; then&lt;br /&gt;
		return p.loadTemplate(frame, &#039;GreenInformationBox&#039;, {table.concat({&lt;br /&gt;
			p.loadTemplate(frame, &#039;icon-iii&#039;),&lt;br /&gt;
			p.loadTemplate(frame, &#039;icon-vc&#039;),&lt;br /&gt;
			p.loadTemplate(frame, &#039;icon-sa&#039;),&lt;br /&gt;
			p.loadTemplate(frame, &#039;icon-iv&#039;)&lt;br /&gt;
		}, &#039; &#039;), id=&#039;games&#039;})&lt;br /&gt;
	else&lt;br /&gt;
		local games = { &#039;iii&#039;, &#039;vc&#039;, &#039;sa&#039;, &#039;iv&#039; }&lt;br /&gt;
		local out = {}&lt;br /&gt;
		for i,game in ipairs(games) do&lt;br /&gt;
			if gamesText:lower():find(game) then&lt;br /&gt;
				table.insert(out, p.loadTemplate(frame, &#039;icon-&#039;..game, {}))&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		return p.loadTemplate(frame, &#039;RedInformationBox&#039;, {table.concat(out, &#039; &#039;), id=&#039;games&#039;})&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.onlineBox(frame)&lt;br /&gt;
	local args = p.getArgs(frame)&lt;br /&gt;
	if args.sp == &#039;true&#039; or args.online == &#039;false&#039; then&lt;br /&gt;
		return p.loadTemplate(frame, &#039;RedInformationBox&#039;, {&#039;Offline Only&#039;,id=&#039;online&#039;});&lt;br /&gt;
	elseif args.sp == &#039;false&#039; or args.offline == &#039;false&#039; then&lt;br /&gt;
		return p.loadTemplate(frame, &#039;RedInformationBox&#039;, {&#039;Online Only&#039;,id=&#039;online&#039;});&lt;br /&gt;
	else&lt;br /&gt;
		return p.loadTemplate(frame, &#039;GreenInformationBox&#039;, {&#039;Online and Offline&#039;,id=&#039;online&#039;});&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.settableBox(frame)&lt;br /&gt;
	local args = p.getArgs(frame)&lt;br /&gt;
	if args.readonly == &#039;true&#039; then&lt;br /&gt;
		return p.loadTemplate(frame, &#039;RedInformationBox&#039;, {&#039;Read-Only&#039;,id=&#039;settable&#039;});&lt;br /&gt;
	else&lt;br /&gt;
		return p.loadTemplate(frame, &#039;GreenInformationBox&#039;, {&#039;Read and Set&#039;,id=&#039;settable&#039;});&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.cancellableBox(frame)&lt;br /&gt;
	local args = p.getArgs(frame)&lt;br /&gt;
	if p.isCancellable(frame)then&lt;br /&gt;
		return p.loadTemplate(frame, &#039;GreenInformationBox&#039;, {&#039;Cancellable&#039;,id=&#039;cancellable&#039;});&lt;br /&gt;
	else&lt;br /&gt;
		return p.loadTemplate(frame, &#039;RedInformationBox&#039;, {&#039;Not Cancellable&#039;,id=&#039;cancellable&#039;});&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- item parts&lt;br /&gt;
function p.since(frame)&lt;br /&gt;
	local args = p.getArgs(frame)&lt;br /&gt;
	if not args.since then&lt;br /&gt;
		return p.documentationMissing(frame, &amp;quot;Available since&amp;quot;)&lt;br /&gt;
	else&lt;br /&gt;
		local endpointVersions = p.getEndpointVersions(args.since, args.endpoint)&lt;br /&gt;
		if #endpointVersions == 2 then&lt;br /&gt;
			return &amp;quot;&#039;&#039;&#039;Server &amp;quot;..endpointVersions[1]..&amp;quot;&#039;&#039;&#039;, &#039;&#039;&#039;Client &amp;quot;..endpointVersions[2]..&amp;quot;&#039;&#039;&#039;&amp;quot;&lt;br /&gt;
		else&lt;br /&gt;
			if args.endpoint == &#039;server&#039; then&lt;br /&gt;
				return &amp;quot;&#039;&#039;&#039;Server &amp;quot;..endpointVersions[1]..&amp;quot;&#039;&#039;&#039;&amp;quot;&lt;br /&gt;
			elseif args.endpoint == &#039;client&#039; then&lt;br /&gt;
				return &amp;quot;&#039;&#039;&#039;Client &amp;quot;..endpointVersions[1]..&amp;quot;&#039;&#039;&#039;&amp;quot;&lt;br /&gt;
			else&lt;br /&gt;
				return p.documentationMissing(frame, &amp;quot;Available since (Both server and client version is needed for shared items)&amp;quot;)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.syntax(frame)&lt;br /&gt;
	local args = p.getArgs(frame)&lt;br /&gt;
	&lt;br /&gt;
	if args.syntax then&lt;br /&gt;
		return p.loadTemplate(frame, &#039;CodeSyntax&#039;, {p.buildSyntax(frame, args.syntax),id=&#039;syntax&#039;})&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if args.syntaxSS and args.syntaxCS then&lt;br /&gt;
		local rows = {}&lt;br /&gt;
		rows[1] = { &amp;quot;&#039;&#039;&#039;Server:&#039;&#039;&#039;&amp;quot;, p.loadTemplate(frame, &#039;CodeSyntax&#039;, {p.buildSyntax(frame, args.syntaxSS),id=&#039;syntaxss&#039;}) }&lt;br /&gt;
		rows[2] = { &amp;quot;&#039;&#039;&#039;Client:&#039;&#039;&#039;&amp;quot;, p.loadTemplate(frame, &#039;CodeSyntax&#039;, {p.buildSyntax(frame, args.syntaxCS),id=&#039;syntaxcs&#039;}) }&lt;br /&gt;
		return p.table(false, rows, { 100 }, false)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return p.documentationMissing(frame, &amp;quot;Syntax&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.description(frame)&lt;br /&gt;
	local args = p.getArgs(frame)&lt;br /&gt;
	local entries = p.getIndexedArgs(frame, &#039;description&#039;)&lt;br /&gt;
	&lt;br /&gt;
	local startTextFirstLine = &amp;quot;The &amp;lt;span style=\&amp;quot;font-family: &#039;Source Code Pro&#039;, monospace;\&amp;quot;&amp;gt;&amp;quot;..p.getDisplayedNameColoured(frame)..&amp;quot;&amp;lt;/span&amp;gt; [[HowTo/Functions|&amp;quot;..args.type..&amp;quot;]] is &amp;quot;..(args.type == &amp;quot;event&amp;quot; and &amp;quot;invoked when&amp;quot; or &amp;quot;used to&amp;quot;)..&amp;quot; &amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	for i,entry in ipairs(entries) do&lt;br /&gt;
		if i == 1 then&lt;br /&gt;
			entry = startTextFirstLine..entry&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		entries[i] = p.formatDescription(entry)&lt;br /&gt;
	end&lt;br /&gt;
	return table.concat(entries, &#039;&amp;lt;br&amp;gt;&#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.parameters(frame)&lt;br /&gt;
	local args = p.getArgs(frame)&lt;br /&gt;
	local entries = p.getIndexedArgs(frame, &#039;parameter&#039;)&lt;br /&gt;
	local rows = {}&lt;br /&gt;
	local isEvent = args.type == &#039;event&#039;&lt;br /&gt;
	&lt;br /&gt;
	if isEvent and args.syntax and args.syntax:lower() == &#039;event event&#039; then&lt;br /&gt;
	elseif #entries == 0 then&lt;br /&gt;
		return p.documentationMissing(frame, &amp;quot;Parameters&amp;quot;)&lt;br /&gt;
	elseif entries[1] == &amp;quot;void&amp;quot; then&lt;br /&gt;
		local headers = nil&lt;br /&gt;
		local rows = { { p.formatType(&amp;quot;void&amp;quot;, frame), &amp;quot;This &amp;quot;..args.type..&amp;quot; doesn&#039;t take any parameters.&amp;quot; } }&lt;br /&gt;
		local widths = { 120, 400 }&lt;br /&gt;
		return p.table(headers, rows, widths, &#039;wikitable-returns wikitable&#039;)&lt;br /&gt;
	else&lt;br /&gt;
		for i,arg in ipairs(entries) do&lt;br /&gt;
			local tokens = p.split(arg, &#039; &#039;)&lt;br /&gt;
			&lt;br /&gt;
			local isOptional = tokens[3] == &#039;optional&#039;&lt;br /&gt;
			local defaultValue = isOptional and &amp;quot;&amp;lt;span style=&#039;font-family: \&amp;quot;Source Code Pro\&amp;quot;, monospace;&#039;&amp;gt;&amp;quot;..tokens[4]..&amp;quot;&amp;lt;/span&amp;gt;&amp;quot; or &amp;quot;n/a&amp;quot;&lt;br /&gt;
			local description = p.formatDescription(table.concat(tokens, &#039; &#039;, isOptional and 5 or 3))&lt;br /&gt;
			&lt;br /&gt;
			if isEvent then&lt;br /&gt;
				rows[i] = { (i + 1)..&amp;quot;) &amp;quot;, p.formatType(tokens[1], frame), p.formatName(tokens[2], frame), description }&lt;br /&gt;
			else&lt;br /&gt;
				rows[i] = { i..&amp;quot;) &amp;quot;, p.formatType(tokens[1], frame), p.formatName(tokens[2], frame), (isOptional and (&amp;quot;Optional, defaults to &amp;quot;..defaultValue..&amp;quot;. &amp;quot;) or &amp;quot;&amp;quot;)..description }&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if isEvent then&lt;br /&gt;
		table.insert(rows, 1, { &amp;quot;1) &amp;quot;, p.formatType(&amp;quot;Event&amp;quot;, frame), p.formatName(&amp;quot;event&amp;quot;, frame), &amp;quot;The event object for this event.&amp;quot; })&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local headers, widths&lt;br /&gt;
	if isEvent then&lt;br /&gt;
		headers = nil--{ &amp;quot;Type&amp;quot;, &amp;quot;Name&amp;quot;, &amp;quot;Description&amp;quot; }&lt;br /&gt;
		widths = { 30, 80, 110, 400 }&lt;br /&gt;
	else&lt;br /&gt;
		headers = nil--{ &amp;quot;Type&amp;quot;, &amp;quot;Name&amp;quot;, &amp;quot;Presence&amp;quot;, &amp;quot;Default Value&amp;quot;, &amp;quot;Description&amp;quot; }&lt;br /&gt;
		widths = { 30, 80, 110, 400 }&lt;br /&gt;
	end&lt;br /&gt;
	return p.table(headers, rows, widths, &#039;wikitable-parameters wikitable&#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.returns(frame)&lt;br /&gt;
	local args = p.getArgs(frame)&lt;br /&gt;
	local text = &amp;quot;&amp;quot;&lt;br /&gt;
	local entries&lt;br /&gt;
	local rows&lt;br /&gt;
	local headers&lt;br /&gt;
	local widths&lt;br /&gt;
	local isVoidReturn = false&lt;br /&gt;
	&lt;br /&gt;
	rows = {}&lt;br /&gt;
	entries = p.getIndexedArgs(frame, &#039;return&#039;)&lt;br /&gt;
	if #entries == 0 then&lt;br /&gt;
		text = text..p.documentationMissing(frame, &amp;quot;Returns&amp;quot;)..&amp;quot;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
		for i,arg in ipairs(entries) do&lt;br /&gt;
			local tokens = p.split(arg, &#039; &#039;)&lt;br /&gt;
			&lt;br /&gt;
			local type = tokens[1]&lt;br /&gt;
			type = p.standardizeNullType(type)&lt;br /&gt;
			&lt;br /&gt;
			local description&lt;br /&gt;
			if type:lower() == &amp;quot;void&amp;quot; then&lt;br /&gt;
				isVoidReturn = true&lt;br /&gt;
				description = &amp;quot;This &amp;quot;..args.type..&amp;quot; doesn&#039;t return a value.&amp;quot;&lt;br /&gt;
			elseif tokens[2] then&lt;br /&gt;
				description = p.formatDescription(table.concat(tokens, &#039; &#039;, 2))&lt;br /&gt;
			else&lt;br /&gt;
				description = p.documentationMissing(frame, &amp;quot;Description for return value&amp;quot;)&lt;br /&gt;
			end&lt;br /&gt;
			&lt;br /&gt;
			rows[i] = { p.formatType(tokens[1], frame), description }&lt;br /&gt;
		end&lt;br /&gt;
		headers = nil-- { &amp;quot;Type&amp;quot;, &amp;quot;Description&amp;quot; }&lt;br /&gt;
		widths = { 120, 400 }&lt;br /&gt;
		text = text..p.table(headers, rows, widths, &#039;wikitable-returns wikitable&#039;)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	--[[&lt;br /&gt;
	-- commented out as failure returns are not currently implemented in GTAC.&lt;br /&gt;
	if not isVoidReturn then&lt;br /&gt;
		rows = {}&lt;br /&gt;
		entries = p.getIndexedArgs(frame, &#039;returnFail&#039;)&lt;br /&gt;
		text = text..&amp;quot;&#039;&#039;&#039;Failure Return:&#039;&#039;&#039;\n\n&amp;quot;&lt;br /&gt;
		if #entries == 0 then&lt;br /&gt;
			text = text..p.documentationMissing(frame, &amp;quot;Failure returns&amp;quot;)&lt;br /&gt;
		else&lt;br /&gt;
			for i,arg in ipairs(entries) do&lt;br /&gt;
				local tokens = p.split(arg, &#039; &#039;)&lt;br /&gt;
				&lt;br /&gt;
				local type = tokens[1]&lt;br /&gt;
				type = p.standardizeNullType(type)&lt;br /&gt;
				&lt;br /&gt;
				local value&lt;br /&gt;
				if type:lower() == &#039;void&#039; then&lt;br /&gt;
					value = &amp;quot;n/a&amp;quot;&lt;br /&gt;
				elseif tokens[2] then&lt;br /&gt;
					value = p.formatSource(table.concat(tokens, &#039; &#039;, 2), frame)&lt;br /&gt;
				else&lt;br /&gt;
					value = p.formatSource(p.documentationMissing(frame, &amp;quot;Description for failure return value&amp;quot;), frame)&lt;br /&gt;
				end&lt;br /&gt;
				&lt;br /&gt;
				rows[i] = { p.formatType(tokens[1], frame), value }&lt;br /&gt;
			end&lt;br /&gt;
			headers = nil--{ &amp;quot;Type&amp;quot;, &amp;quot;Value&amp;quot; }&lt;br /&gt;
			widths = { 120, 400 }&lt;br /&gt;
			text = text..p.table(headers, rows, widths, &#039;wikitable-returns wikitable&#039;)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	]]&lt;br /&gt;
	&lt;br /&gt;
	return text&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.callbacks(frame)&lt;br /&gt;
	local args = p.getArgs(frame)&lt;br /&gt;
	&lt;br /&gt;
	local suffixes = {&lt;br /&gt;
		{ &#039;&#039;, &#039;&#039; },&lt;br /&gt;
		{ &#039;SS&#039;, &#039;Server-Side Callbacks&#039; },&lt;br /&gt;
		{ &#039;CS&#039;, &#039;Client-Side Callbacks&#039; }&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	local html = {}&lt;br /&gt;
	&lt;br /&gt;
	for i3,suffixData in ipairs(suffixes) do&lt;br /&gt;
		local suffix = suffixData[1]&lt;br /&gt;
		&lt;br /&gt;
		local parameters = p.getIndexedArgs(frame, &#039;parameter&#039;)&lt;br /&gt;
		for i=1, #parameters do&lt;br /&gt;
			local callbackSyntax = args[&#039;callback&#039;..i..&#039;Syntax&#039;..suffix]&lt;br /&gt;
			local callbackText = args[&#039;callback&#039;..i..&#039;Text&#039;..suffix]&lt;br /&gt;
			local callbackNParameters = p.getIndexedArgs(frame, &#039;callback&#039;..i..&#039;Parameter&#039;..suffix)&lt;br /&gt;
			&lt;br /&gt;
			if #callbackNParameters &amp;gt; 0 then&lt;br /&gt;
				if suffixData[1] ~= &#039;&#039; then&lt;br /&gt;
					table.insert(html, &amp;quot;&#039;&#039;&#039;&amp;quot;..suffixData[2]..&amp;quot;&#039;&#039;&#039;&amp;quot;)&lt;br /&gt;
				end&lt;br /&gt;
				&lt;br /&gt;
				local parameterTokens = p.split(parameters[i], &#039; &#039;)&lt;br /&gt;
				local rows = {}&lt;br /&gt;
				&lt;br /&gt;
				if #parameterTokens &amp;gt; 0 then&lt;br /&gt;
					local syntaxLine = parameterTokens[1]..&#039; &#039;..parameterTokens[2]..&#039;(&#039;..callbackSyntax..&#039;)&#039;&lt;br /&gt;
					syntaxLine = p.loadTemplate(frame, &#039;CodeSyntax&#039;, {syntaxLine})&lt;br /&gt;
					table.insert(html, syntaxLine)&lt;br /&gt;
				end&lt;br /&gt;
				&lt;br /&gt;
				if callbackText and #callbackText &amp;gt; 0 then&lt;br /&gt;
					table.insert(html, callbackText)&lt;br /&gt;
				end&lt;br /&gt;
				&lt;br /&gt;
				for i2,callbackNParameter in ipairs(callbackNParameters) do&lt;br /&gt;
					local callbackTokens = p.split(callbackNParameter, &#039; &#039;)&lt;br /&gt;
					&lt;br /&gt;
					local parameterType = callbackTokens[1]&lt;br /&gt;
					local parameterName = callbackTokens[2]&lt;br /&gt;
					local description = p.formatDescription(table.concat(callbackTokens, &#039; &#039;, 3))&lt;br /&gt;
					&lt;br /&gt;
					rows[i2] = { i2..&#039;) &#039;, p.formatType(parameterType, frame), p.formatName(parameterName, frame), description }&lt;br /&gt;
				end&lt;br /&gt;
				&lt;br /&gt;
				local headers, widths&lt;br /&gt;
				headers = nil--{ &amp;quot;Type&amp;quot;, &amp;quot;Name&amp;quot;, &amp;quot;Description&amp;quot; }&lt;br /&gt;
				widths = { 30, 80, 110, 400 }&lt;br /&gt;
				local table2 = &amp;quot;\n&amp;quot;..p.table(headers, rows, widths, &#039;wikitable-callback wikitable&#039;)&lt;br /&gt;
				table.insert(html, table2)&lt;br /&gt;
				&lt;br /&gt;
				if i ~= #parameters then&lt;br /&gt;
					table.insert(html, &amp;quot;&amp;lt;br&amp;gt;&amp;quot;)&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if args.callbackSyntax then&lt;br /&gt;
		table.concat(html, p.loadTemplate(frame, &#039;CodeSyntax&#039;, {p.buildSyntax(frame, args.callbackSyntax, true),id=&#039;callbacks&#039;}))&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if args.callbackSyntaxSS and args.callbackSyntaxCS then&lt;br /&gt;
		local rows = {}&lt;br /&gt;
		rows[1] = { &amp;quot;&#039;&#039;&#039;Server:&#039;&#039;&#039;&amp;quot;, p.loadTemplate(frame, &#039;CodeSyntax&#039;, {p.buildSyntax(frame, args.callbackSyntaxSS, true),id=&#039;callbacks&#039;}) }&lt;br /&gt;
		rows[2] = { &amp;quot;&#039;&#039;&#039;Client:&#039;&#039;&#039;&amp;quot;, p.loadTemplate(frame, &#039;CodeSyntax&#039;, {p.buildSyntax(frame, args.callbackSyntaxCS, true),id=&#039;callbacks&#039;}) }&lt;br /&gt;
		table.concat(html, p.table(false, rows, { 100 }, false, &#039;wikitable-callback wikitable&#039;))&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return #html &amp;gt; 0 and table.concat(html, &#039;&#039;) or false&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.attributes(frame)&lt;br /&gt;
	local args = p.getArgs(frame)&lt;br /&gt;
	local headers = nil--{ &amp;quot;Type&amp;quot;, &amp;quot;Description&amp;quot; }&lt;br /&gt;
	local rows = {}&lt;br /&gt;
	if p.isCancellable(frame) then&lt;br /&gt;
		rows[1] = { &#039;cancellable&#039;, &#039;This &#039;..args.type..&#039; can be cancelled, by using [[event.preventDefault|event.preventDefault]].&#039; }&lt;br /&gt;
	else&lt;br /&gt;
		rows[1] = { p.formatType(&#039;const&#039;, frame), &#039;This &#039;..args.type..&#039; cannot be cancelled.&#039; }&lt;br /&gt;
	end&lt;br /&gt;
	local widths = { 120, 400 }&lt;br /&gt;
	return p.table(headers, rows, widths, &#039;wikitable-returns wikitable&#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.value(frame)&lt;br /&gt;
	local args = p.getArgs(frame)&lt;br /&gt;
	&lt;br /&gt;
	if not args.value then&lt;br /&gt;
		return p.documentationMissing(frame, &amp;quot;Value type and description&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local arg = args.value&lt;br /&gt;
	local tokens = p.split(arg, &#039; &#039;)&lt;br /&gt;
	local description = p.formatDescription(table.concat(tokens, &#039; &#039;, 2))&lt;br /&gt;
	&lt;br /&gt;
	local headers = nil--{ &amp;quot;Type&amp;quot;, &amp;quot;Description&amp;quot; }&lt;br /&gt;
	local rows = {}&lt;br /&gt;
	rows[1] = { p.formatType(tokens[1], frame), description }&lt;br /&gt;
	if args.readonly == &#039;true&#039; then&lt;br /&gt;
		rows[2] = { p.formatType(&#039;readonly&#039;, frame), &#039;This &#039;..args.type..&#039; cannot be changed.&#039; }&lt;br /&gt;
	else&lt;br /&gt;
		rows[2] = { &#039;read/set&#039;, &#039;This &#039;..args.type..&#039; can be changed, as well as read.&#039; }&lt;br /&gt;
	end&lt;br /&gt;
	local widths = { 120, 400 }&lt;br /&gt;
	return p.table(headers, rows, widths, &#039;wikitable-returns wikitable&#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.settable(frame)&lt;br /&gt;
	local args = p.getArgs(frame)&lt;br /&gt;
	&lt;br /&gt;
	if args.readonly == &#039;true&#039; then&lt;br /&gt;
		return &amp;quot;This &amp;quot;..args.type..&amp;quot; is read-only.&amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
		return &amp;quot;This &amp;quot;..args.type..&amp;quot; can be read and set.&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.types(frame)&lt;br /&gt;
	local args = p.getArgs(frame)&lt;br /&gt;
	return p.getTypesText(frame, args.class)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.symbols(frame)&lt;br /&gt;
	local args = p.getArgs(frame)&lt;br /&gt;
	return p.getSymbolsText(frame, args.class)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.notes(frame)&lt;br /&gt;
	local args = p.getArgs(frame)&lt;br /&gt;
	local entries = p.getIndexedArgs(frame, &#039;note&#039;)&lt;br /&gt;
	if #entries == 0 then&lt;br /&gt;
		return &amp;quot;There aren&#039;t any notes for this &amp;quot;..args.type..&amp;quot;.&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	for i,entry in ipairs(entries) do&lt;br /&gt;
		entries[i] = p.dot(entry)&lt;br /&gt;
	end&lt;br /&gt;
	return &amp;quot;* &amp;quot;..table.concat(entries, &amp;quot;\n* &amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.examples(frame)&lt;br /&gt;
	local args = p.getArgs(frame)&lt;br /&gt;
	&lt;br /&gt;
	local data = {&lt;br /&gt;
		{ &amp;quot;example&amp;quot;, &amp;quot;&amp;quot; },&lt;br /&gt;
		&lt;br /&gt;
		{ &amp;quot;exampleSS&amp;quot;, &amp;quot;Server-Side&amp;quot; },&lt;br /&gt;
		{ &amp;quot;exampleCS&amp;quot;, &amp;quot;Client-Side&amp;quot; },&lt;br /&gt;
		&lt;br /&gt;
		{ &amp;quot;exampleJS&amp;quot;, &amp;quot;JavaScript&amp;quot; },&lt;br /&gt;
		{ &amp;quot;exampleLua&amp;quot;, &amp;quot;Lua&amp;quot; },&lt;br /&gt;
		{ &amp;quot;exampleSquirrel&amp;quot;, &amp;quot;Squirrel&amp;quot; },&lt;br /&gt;
		&lt;br /&gt;
		{ &amp;quot;exampleJSSS&amp;quot;, &amp;quot;JavaScript - Server-Side&amp;quot; },&lt;br /&gt;
		{ &amp;quot;exampleJSCS&amp;quot;, &amp;quot;JavaScript - Client-Side&amp;quot; },&lt;br /&gt;
		&lt;br /&gt;
		{ &amp;quot;exampleLuaSS&amp;quot;, &amp;quot;Lua - Server-Side&amp;quot; },&lt;br /&gt;
		{ &amp;quot;exampleLuaCS&amp;quot;, &amp;quot;Lua - Client-Side&amp;quot; },&lt;br /&gt;
		&lt;br /&gt;
		{ &amp;quot;exampleSquirrelSS&amp;quot;, &amp;quot;Squirrel - Server-Side&amp;quot; },&lt;br /&gt;
		{ &amp;quot;exampleSquirrelCS&amp;quot;, &amp;quot;Squirrel - Client-Side&amp;quot; }&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	local examples = {}&lt;br /&gt;
	local exampleIndex = 1&lt;br /&gt;
	for i,data2 in ipairs(data) do&lt;br /&gt;
		local entries = p.getIndexedArgs(frame, data2[1])&lt;br /&gt;
		for i2, entry in ipairs(entries) do&lt;br /&gt;
			local entry = &amp;quot;&#039;&#039;&#039;Example &amp;quot;..exampleIndex..&amp;quot; - &amp;quot;..data2[2]..&amp;quot;:&#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;quot;..p.loadTemplate(frame, &#039;CodeSyntax&#039;, {entry,id=&#039;example_&#039;..exampleIndex})&lt;br /&gt;
			table.insert(examples, entry)&lt;br /&gt;
			exampleIndex = exampleIndex + 1&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if #examples == 0 then&lt;br /&gt;
		return &amp;quot;There aren&#039;t any examples for this &amp;quot;..args.type..&amp;quot;.&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	return table.concat(examples, &amp;quot;&amp;lt;br&amp;gt;&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.compatibility(frame)&lt;br /&gt;
	local args = p.getArgs(frame)&lt;br /&gt;
	local entries1 = p.getIndexedArgs(frame, &#039;previous&#039;)&lt;br /&gt;
	local entries2 = p.getIndexedArgs(frame, &#039;compat&#039;)&lt;br /&gt;
	if #entries1 == 0 and #entries2 == 0 then&lt;br /&gt;
		return &amp;quot;There isn&#039;t any compatibility information for this &amp;quot;..args.type..&amp;quot;.&amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
		local entriesOut = {}&lt;br /&gt;
		for i,arg in ipairs(entries1) do&lt;br /&gt;
			local versionsText, tokens = p.getVersionsText(arg, args.endpoint, 2)&lt;br /&gt;
			entriesOut[i] = &amp;quot;This &amp;quot;..args.type..&amp;quot; was previously named &amp;lt;code&amp;gt;&amp;quot;..tokens[1]..&amp;quot;&amp;lt;/code&amp;gt; in &amp;quot;..versionsText..&amp;quot;.&amp;quot;&lt;br /&gt;
		end&lt;br /&gt;
		local offset = #entriesOut&lt;br /&gt;
		for i,arg in ipairs(entries2) do&lt;br /&gt;
			entriesOut[i + offset] = p.dot(arg)&lt;br /&gt;
		end&lt;br /&gt;
		return &amp;quot;* &amp;quot;..table.concat(entriesOut, &amp;quot;\n* &amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.related(frame)&lt;br /&gt;
	local args = p.getArgs(frame)&lt;br /&gt;
	local categoryTitle = p.getItemCategory(frame)&lt;br /&gt;
	if categoryTitle and categoryTitle:len() &amp;gt; 0 then&lt;br /&gt;
		local shared = args.endpoint:lower() == &#039;shared&#039;&lt;br /&gt;
		local server = args.endpoint:lower() == &#039;shared&#039; or args.endpoint:lower() == &#039;server&#039;&lt;br /&gt;
		local client = args.endpoint:lower() == &#039;shared&#039; or args.endpoint:lower() == &#039;client&#039;&lt;br /&gt;
		local pageName = args.type:lower() == &#039;event&#039; and &#039;Event&#039; or &#039;Function&#039;&lt;br /&gt;
		&lt;br /&gt;
		local parts = {}&lt;br /&gt;
		&lt;br /&gt;
		local name&lt;br /&gt;
		if args.type == &#039;property&#039; then&lt;br /&gt;
			name = args.class..&amp;quot;.&amp;quot;..args.name&lt;br /&gt;
		else&lt;br /&gt;
			name = args.name&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		if server then&lt;br /&gt;
			local title = &#039;Server/&#039;..pageName..&#039;s/&#039;..categoryTitle&lt;br /&gt;
			local t = p.loadTemplate(frame, title, args)&lt;br /&gt;
			&lt;br /&gt;
			--t = p.remove(t, &amp;quot;[[&amp;quot;..name..&amp;quot;|&amp;quot;..name..&amp;quot;]]&amp;lt;br&amp;gt;\n&amp;quot;)&lt;br /&gt;
			&lt;br /&gt;
			--[[&lt;br /&gt;
			t = p.replace(t, &amp;quot;  &amp;quot;, &amp;quot; &amp;quot;);&lt;br /&gt;
			t = p.remove(t, &amp;quot;\t&amp;quot;);&lt;br /&gt;
			t = p.remove(t, &amp;quot;\r&amp;quot;);&lt;br /&gt;
			t = p.remove(t, &amp;quot;\n&amp;quot;);&lt;br /&gt;
			t = p.remove(t, &amp;quot;&amp;lt;a class=\&amp;quot;mw-selflink selflink\&amp;quot;&amp;gt;&amp;quot;..name..&amp;quot;&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&amp;quot;)&lt;br /&gt;
			]]&lt;br /&gt;
			&lt;br /&gt;
			table.insert(parts, &amp;quot;&#039;&#039;&#039;Server Related&#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;quot;..t)&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		if client then&lt;br /&gt;
			local title = &#039;Client/&#039;..pageName..&#039;s/&#039;..categoryTitle&lt;br /&gt;
			local t = p.loadTemplate(frame, title, args)&lt;br /&gt;
			&lt;br /&gt;
			--t = p.remove(t, &amp;quot;[[&amp;quot;..name..&amp;quot;|&amp;quot;..name..&amp;quot;]]&amp;lt;br&amp;gt;\n&amp;quot;)&lt;br /&gt;
			&lt;br /&gt;
			--[[&lt;br /&gt;
			t = p.replace(t, &amp;quot;  &amp;quot;, &amp;quot; &amp;quot;);&lt;br /&gt;
			t = p.remove(t, &amp;quot;\t&amp;quot;);&lt;br /&gt;
			t = p.remove(t, &amp;quot;\r&amp;quot;);&lt;br /&gt;
			t = p.remove(t, &amp;quot;\n&amp;quot;);&lt;br /&gt;
			t = p.remove(t, &amp;quot;&amp;lt;a class=\&amp;quot;mw-selflink selflink\&amp;quot;&amp;gt;&amp;quot;..name..&amp;quot;&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&amp;quot;)&lt;br /&gt;
			]]&lt;br /&gt;
			&lt;br /&gt;
			table.insert(parts, &amp;quot;&#039;&#039;&#039;Client Related&#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;quot;..t)&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		return table.concat(parts, &#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&#039;)&lt;br /&gt;
	else&lt;br /&gt;
		return &#039;&#039;&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- item category&lt;br /&gt;
function p.getItemCategory(frame)&lt;br /&gt;
	local args = p.getArgs(frame)&lt;br /&gt;
	local resolvedNameLower = p.getDisplayedName(frame):lower()&lt;br /&gt;
	&lt;br /&gt;
	for categoryTitle,categoryData in pairs(p.categoryItems) do&lt;br /&gt;
		for i2,resolvedItemName in ipairs(categoryData) do&lt;br /&gt;
			if resolvedNameLower == resolvedItemName:lower() then&lt;br /&gt;
				return categoryTitle&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	for i,categoryTitle in ipairs(p.categoryWords) do&lt;br /&gt;
		if resolvedNameLower:find(categoryTitle:lower(), 1, true) then&lt;br /&gt;
			return categoryTitle&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return false&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- item part utility&lt;br /&gt;
function p.getType(text)&lt;br /&gt;
	local finds = { &amp;quot;variable&amp;quot;, &amp;quot;function&amp;quot;, &amp;quot;property&amp;quot;, &amp;quot;method&amp;quot;, &amp;quot;event&amp;quot;, &amp;quot;define&amp;quot; }&lt;br /&gt;
	local replaces = { &amp;quot;Variable&amp;quot;, &amp;quot;Function&amp;quot;, &amp;quot;Property&amp;quot;, &amp;quot;Method&amp;quot;, &amp;quot;Event&amp;quot;, &amp;quot;Define&amp;quot; }&lt;br /&gt;
	local defaults = {}&lt;br /&gt;
	return p.findText(text, finds, replaces, defaults, &amp;quot;&#039;&#039;&#039;undocumented type&#039;&#039;&#039;&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.getGames(text)&lt;br /&gt;
	local finds = { &amp;quot;iii&amp;quot;, &amp;quot;vc&amp;quot;, &amp;quot;sa&amp;quot;, &amp;quot;iv&amp;quot;, &amp;quot;ug&amp;quot; }&lt;br /&gt;
	local replaces = { &amp;quot;GTA III&amp;quot;, &amp;quot;GTA VC&amp;quot;, &amp;quot;GTA SA&amp;quot;, &amp;quot;GTA IV&amp;quot;, &amp;quot;GTA UG&amp;quot; }&lt;br /&gt;
	local defaults = { &amp;quot;all&amp;quot;, &amp;quot;all games&amp;quot; }&lt;br /&gt;
	return p.findText(text, finds, replaces, defaults, &amp;quot;All Games&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.getEndpoint(text)&lt;br /&gt;
	local finds = { &amp;quot;shared&amp;quot;, &amp;quot;server&amp;quot;, &amp;quot;client&amp;quot; }&lt;br /&gt;
	local replaces = { &amp;quot;Server and Client&amp;quot;, &amp;quot;Server Only&amp;quot;, &amp;quot;Client Only&amp;quot; }&lt;br /&gt;
	local defaults = {}&lt;br /&gt;
	local result = p.findText(text, finds, replaces, defaults, &amp;quot;&#039;&#039;&#039;undocumented endpoint&#039;&#039;&#039;&amp;quot;)&lt;br /&gt;
	local isShared = result == replaces[1]&lt;br /&gt;
	return result, isShared&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.getDisplayedName(frame)&lt;br /&gt;
	local args = p.getArgs(frame)&lt;br /&gt;
	if p.isOOP(frame) then&lt;br /&gt;
		return args.class:lower()..&amp;quot;.&amp;quot;..args.name&lt;br /&gt;
	else&lt;br /&gt;
		return args.name&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.getTypeRgb()&lt;br /&gt;
	return &#039;#009106&#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.getNameRgb()&lt;br /&gt;
	return &#039;#0645ad&#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.getDisplayedNameColoured(frame)&lt;br /&gt;
	local typeRgb = p.getTypeRgb()&lt;br /&gt;
	local nameRgb = p.getNameRgb()&lt;br /&gt;
	local args = p.getArgs(frame)&lt;br /&gt;
	if p.isOOP(frame) then&lt;br /&gt;
		return &amp;quot;&amp;lt;span style=&#039;color:&amp;quot;..typeRgb..&amp;quot;;&#039;&amp;gt;&amp;quot;..args.class:lower()..&amp;quot;&amp;lt;/span&amp;gt;.&amp;lt;span style=&#039;color:&amp;quot;..nameRgb..&amp;quot;&#039;;&amp;gt;&amp;quot;..args.name..&amp;quot;&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
		return &amp;quot;&amp;lt;span style=&#039;color:&amp;quot;..nameRgb..&amp;quot;&#039;;&amp;gt;&amp;quot;..args.name..&amp;quot;&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.getSuccessReturnTypes(frame)&lt;br /&gt;
	local entries = p.getIndexedArgs(frame, &#039;return&#039;)&lt;br /&gt;
	if #entries == 0 then&lt;br /&gt;
		return &amp;quot;unknown&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	for i,entry in ipairs(entries) do&lt;br /&gt;
		local tokens = p.split(entry, &#039; &#039;)&lt;br /&gt;
		entries[i] = tokens[1]&lt;br /&gt;
	end&lt;br /&gt;
	return table.concat(entries, &amp;quot;, &amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.isOOP(frame)&lt;br /&gt;
	local args = p.getArgs(frame)&lt;br /&gt;
	return args.type == &amp;quot;property&amp;quot; or args.type == &amp;quot;method&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.warning(frame, text)&lt;br /&gt;
	return p.loadTemplate(frame, &#039;BlueInformationBox&#039;, {text})..&#039;\n&#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.documentationMissing(frame, text)&lt;br /&gt;
	return p.warning(frame, &amp;quot;Documentation Missing: &amp;quot;..text)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.buildSyntax(frame, parameters, isCallback)&lt;br /&gt;
	if isCallback == nil then&lt;br /&gt;
		isCallback = false;&lt;br /&gt;
	end&lt;br /&gt;
	local args = p.getArgs(frame)&lt;br /&gt;
	if not isCallback and (args.type == &#039;variable&#039; or args.type == &#039;property&#039;) then&lt;br /&gt;
		return p.getSuccessReturnTypes(frame)..&amp;quot; &amp;quot;..p.getDisplayedName(frame)&lt;br /&gt;
	elseif isCallback or args.type == &#039;event&#039; then&lt;br /&gt;
		return &amp;quot;function(&amp;quot;..parameters..&amp;quot;)&amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
		return p.getSuccessReturnTypes(frame)..&amp;quot; &amp;quot;..p.getDisplayedName(frame)..&amp;quot;(&amp;quot;..parameters..&amp;quot;)&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.getTypesText(frame, baseType)&lt;br /&gt;
	local args = p.getArgs(frame)&lt;br /&gt;
	&lt;br /&gt;
	local derivedTypes = {&lt;br /&gt;
		ped			    = {&#039;Player&#039;},&lt;br /&gt;
		physical		= {&#039;Object&#039;, &#039;Ped&#039;, &#039;Vehicle&#039;, &#039;Player&#039;},&lt;br /&gt;
		entity			= {&#039;Building&#039;, &#039;Physical&#039;, &#039;Object&#039;, &#039;Ped&#039;, &#039;Vehicle&#039;, &#039;Player&#039;},&lt;br /&gt;
		element			= {&#039;Blip&#039;, &#039;Entity&#039;, &#039;Marker&#039;, &#039;Building&#039;, &#039;Physical&#039;, &#039;Object&#039;, &#039;Ped&#039;, &#039;Vehicle&#039;, &#039;Player&#039;},&lt;br /&gt;
		vehicle			= {&#039;Train&#039;},&lt;br /&gt;
		event			= {&#039;CancellableEvent&#039;, &#039;KeyEvent&#039;},&lt;br /&gt;
		surface			= {&#039;RenderTarget&#039;, &#039;Texture&#039;}&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	local serverTypes = {}&lt;br /&gt;
	local sharedTypes = {&lt;br /&gt;
		&#039;Building&#039;, &#039;Client&#039;, &#039;Effect&#039;, &#039;Event&#039;, &#039;Timer&#039;, &#039;ReflectedFunction&#039;, &#039;Resource&#039;, &#039;Stream&#039;, &#039;Vec2&#039;, &#039;Vec3&#039;, &#039;Matrix4x4&#039;,&lt;br /&gt;
		&#039;Element&#039;, &#039;Blip&#039;, &#039;Pickup&#039;, &#039;Entity&#039;, &#039;Physical&#039;,&#039;Vehicle&#039;, &#039;Train&#039;, &#039;XmlDocument&#039;, &#039;XmlElement&#039;,&lt;br /&gt;
		&#039;CancellableEvent&#039;, &#039;KeyEvent&#039;, &#039;Marker&#039;, &#039;Object&#039;, &#039;Ped&#039;, &#039;Player&#039;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	local out = {}&lt;br /&gt;
	&lt;br /&gt;
	local getTypeSide = function(type)&lt;br /&gt;
		for i2,type2 in ipairs(serverTypes) do&lt;br /&gt;
			if type:lower() == type2:lower() then&lt;br /&gt;
				return &#039;server&#039;&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		for i2,type2 in ipairs(sharedTypes) do&lt;br /&gt;
			if type:lower() == type2:lower() then&lt;br /&gt;
				return &#039;shared&#039;&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		return &#039;client&#039;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if baseType then&lt;br /&gt;
		local baseTypeLower = baseType:lower()&lt;br /&gt;
		local allTypes&lt;br /&gt;
		if derivedTypes[baseTypeLower] then&lt;br /&gt;
			allTypes = p.copyTable(derivedTypes[baseTypeLower])&lt;br /&gt;
			table.insert(allTypes, 1, baseType)&lt;br /&gt;
		else&lt;br /&gt;
			allTypes = { baseType }&lt;br /&gt;
		end&lt;br /&gt;
		local types = {}&lt;br /&gt;
		for i,type in ipairs(allTypes) do&lt;br /&gt;
			types[i] = type&lt;br /&gt;
		end&lt;br /&gt;
		p.sortTable(types)&lt;br /&gt;
		for i,type in ipairs(types) do&lt;br /&gt;
			types[i] = p.loadTemplate(frame, &#039;Side&#039;, {[getTypeSide(type)]=&#039;1&#039;})..&amp;quot; &amp;quot;..&amp;quot;&amp;lt;span style=\&amp;quot;font-family: &#039;Source Code Pro&#039;, monospace;\&amp;quot;&amp;gt;&amp;quot;..type..&amp;quot;&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
		end&lt;br /&gt;
		--table.insert(out, &amp;quot;&amp;lt;div style=&#039;margin-top: 20px;&#039;&amp;gt;&amp;lt;/div&amp;gt;&amp;quot;)&lt;br /&gt;
		table.insert(out, &amp;quot;\n&amp;quot;..table.concat(types, &amp;quot;&amp;lt;br&amp;gt;&amp;quot;))&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return table.concat(out, &amp;quot;&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.getSymbolsText(frame, baseType)&lt;br /&gt;
	local args = p.getArgs(frame)&lt;br /&gt;
	&lt;br /&gt;
	local out = {}&lt;br /&gt;
	&lt;br /&gt;
	local rows = {}&lt;br /&gt;
	&lt;br /&gt;
	if args.type == &#039;function&#039; or args.type == &#039;variable&#039; then&lt;br /&gt;
		local parts = p.split(p.getDisplayedName(frame), &amp;quot;.&amp;quot;)&lt;br /&gt;
		for i=1,(#parts)-1,1 do&lt;br /&gt;
			rows[i] = {}&lt;br /&gt;
			rows[i][1] = &amp;quot;&amp;lt;span style=\&amp;quot;font-family: &#039;Source Code Pro&#039;, monospace; color: &amp;quot;..p.getNameRgb()..&amp;quot;;\&amp;quot;&amp;gt;&amp;quot;..parts[i]..&amp;quot;&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
			rows[i][2] = &#039;Namespace&#039;&lt;br /&gt;
			rows[i][3] = i == 1 and &#039;Global&#039; or &#039;Namespace: &#039;..parts[i-1]&lt;br /&gt;
			rows[i][4] = i == 1 and parts[i]..&#039; is a namespace, which exists in the global namespace.&#039; or parts[i]..&#039; is a namespace, which exists in the &#039;..parts[i-1]..&#039; namespace.&#039;&lt;br /&gt;
		end&lt;br /&gt;
		rows[#parts] = {}&lt;br /&gt;
		rows[#parts][1] = &amp;quot;&amp;lt;span style=\&amp;quot;font-family: &#039;Source Code Pro&#039;, monospace; color: &amp;quot;..p.getNameRgb()..&amp;quot;;\&amp;quot;&amp;gt;&amp;quot;..parts[#parts]..&amp;quot;&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
		rows[#parts][2] = p.properCase(args.type)&lt;br /&gt;
		rows[#parts][3] = #parts == 1 and &#039;Global&#039; or &#039;Namespace: &#039;..parts[#parts-1]&lt;br /&gt;
		rows[#parts][4] = #parts == 1 and parts[1]..&#039; is a &#039;..p.properCase(args.type)..&#039;, which exists in the global namespace.&#039; or parts[#parts]..&#039; is a &#039;..p.properCase(args.type)..&#039;, which exists in the &#039;..parts[#parts-1]..&#039; namespace.&#039;&lt;br /&gt;
	elseif args.type == &#039;method&#039; or args.type == &#039;property&#039; then&lt;br /&gt;
		local parts = p.split(p.getDisplayedName(frame), &amp;quot;.&amp;quot;)&lt;br /&gt;
		rows[1] = {}&lt;br /&gt;
		rows[1][1] = &amp;quot;&amp;lt;span style=\&amp;quot;font-family: &#039;Source Code Pro&#039;, monospace; color: &amp;quot;..p.getNameRgb()..&amp;quot;;\&amp;quot;&amp;gt;&amp;quot;..parts[1]..&amp;quot;&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
		rows[1][2] = &#039;Object&#039;&lt;br /&gt;
		rows[1][3] = &#039;n/a&#039;&lt;br /&gt;
		rows[1][4] = &amp;quot;&amp;lt;span style=\&amp;quot;font-family: &#039;Source Code Pro&#039;, monospace; color: &amp;quot;..p.getNameRgb()..&amp;quot;;\&amp;quot;&amp;gt;&amp;quot;..parts[1]..&amp;quot;&amp;lt;/span&amp;gt;&amp;quot;..&#039; is an object.&#039;&lt;br /&gt;
		&lt;br /&gt;
		rows[2] = {}&lt;br /&gt;
		rows[2][1] = &amp;quot;&amp;lt;span style=\&amp;quot;font-family: &#039;Source Code Pro&#039;, monospace; color: &amp;quot;..p.getNameRgb()..&amp;quot;;\&amp;quot;&amp;gt;&amp;quot;..parts[2]..&amp;quot;&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
		rows[2][2] = p.properCase(args.type)&lt;br /&gt;
		rows[2][3] = #parts == 1 and &#039;Global&#039; or &#039;Namespace: &#039;..parts[#parts-1]&lt;br /&gt;
		rows[2][4] = &amp;quot;&amp;lt;span style=\&amp;quot;font-family: &#039;Source Code Pro&#039;, monospace; color: &amp;quot;..p.getNameRgb()..&amp;quot;;\&amp;quot;&amp;gt;&amp;quot;..parts[2]..&amp;quot;&amp;lt;/span&amp;gt;&amp;quot;..&#039; is a &#039;..p.properCase(args.type)..&#039;, which is used on objects of type &#039;..parts[1]&lt;br /&gt;
	elseif args.type == &#039;event&#039; then&lt;br /&gt;
		rows[1] = {}&lt;br /&gt;
		rows[1][1] = &amp;quot;&amp;lt;span style=\&amp;quot;font-family: &#039;Source Code Pro&#039;, monospace; color: &amp;quot;..p.getNameRgb()..&amp;quot;;\&amp;quot;&amp;gt;&amp;quot;..p.getDisplayedName(frame)..&amp;quot;&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
		rows[1][2] = &#039;String&#039;&lt;br /&gt;
		rows[1][3] = &#039;n/a&#039;&lt;br /&gt;
		rows[1][4] = &#039;Events are referenced by name. Event names use data type String.&#039;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	--table.insert(out, &amp;quot;&amp;lt;div style=&#039;margin-top: 20px;&#039;&amp;gt;&amp;lt;/div&amp;gt;&amp;quot;)&lt;br /&gt;
	local headers = { &#039;Symbol Name&#039;, &#039;Symbol Type&#039;, &#039;Container&#039;, &#039;Description&#039; }&lt;br /&gt;
	table.insert(out, &amp;quot;\n&amp;quot;..p.table(headers, rows, { 120, 120, 400 }, false))&lt;br /&gt;
	&lt;br /&gt;
	if args.type ~= &#039;event&#039; then&lt;br /&gt;
		local languages = { &#039;JS&#039;, &#039;Lua&#039;, &#039;Squirrel&#039; }&lt;br /&gt;
		local languageSymbols = {&lt;br /&gt;
			[&#039;JS&#039;]			= { [&#039;function&#039;] = &#039;dot&#039;,	[&#039;variable&#039;] = &#039;dot&#039;,	[&#039;method&#039;] = &#039;dot&#039;,		[&#039;property&#039;] = &#039;dot&#039; },&lt;br /&gt;
			[&#039;Lua&#039;]			= { [&#039;function&#039;] = &#039;dot&#039;,	[&#039;variable&#039;] = &#039;dot&#039;,	[&#039;method&#039;] = &#039;colon&#039;,	[&#039;property&#039;] = &#039;dot&#039; },&lt;br /&gt;
			[&#039;Squirrel&#039;]	= { [&#039;function&#039;] = &#039;dot&#039;,	[&#039;variable&#039;] = &#039;dot&#039;,	[&#039;method&#039;] = &#039;dot&#039;,		[&#039;property&#039;] = &#039;dot&#039; }&lt;br /&gt;
		}&lt;br /&gt;
		for i,language in ipairs(languages) do&lt;br /&gt;
			local line&lt;br /&gt;
			if args.type == &#039;function&#039; then&lt;br /&gt;
				line = language..&#039; uses the &#039;..languageSymbols[language][args.type]..&#039; symbol to call a function.&#039;&lt;br /&gt;
			elseif args.type == &#039;variable&#039; then&lt;br /&gt;
				line = language..&#039; uses the &#039;..languageSymbols[language][args.type]..&#039; symbol to get or set a variable.&#039;&lt;br /&gt;
			elseif args.type == &#039;method&#039; then&lt;br /&gt;
				line = language..&#039; uses the &#039;..languageSymbols[language][args.type]..&#039; symbol to call a method.&#039;&lt;br /&gt;
			elseif args.type == &#039;property&#039; then&lt;br /&gt;
				line = language..&#039; uses the &#039;..languageSymbols[language][args.type]..&#039; symbol to get or set a property.&#039;&lt;br /&gt;
			end&lt;br /&gt;
			table.insert(out, &amp;quot;&amp;lt;br&amp;gt;&amp;quot;..line)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return table.concat(out, &amp;quot;&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.isCancellable(frame)&lt;br /&gt;
	local args = p.getArgs(frame)&lt;br /&gt;
	return (args.cancellable and args.cancellable == &#039;true&#039;) or (args.cancelable and args.cancelable == &#039;true&#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.formatType(type, frame)&lt;br /&gt;
	return &amp;quot;&amp;lt;span style=&#039;font-family: \&amp;quot;Source Code Pro\&amp;quot;, monospace; color: &amp;quot;..p.getTypeRgb()..&amp;quot;;\&amp;quot;&#039;&amp;gt;&amp;quot;..type..&amp;quot;&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.formatName(name, frame)&lt;br /&gt;
	return &amp;quot;&amp;lt;span style=&#039;font-family: \&amp;quot;Source Code Pro\&amp;quot;, monospace; color: &amp;quot;..p.getNameRgb()..&amp;quot;;\&amp;quot;&#039;&amp;gt;&amp;quot;..name..&amp;quot;&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.formatSource(type, frame)&lt;br /&gt;
	return frame:preprocess(&#039;&amp;lt;source&amp;gt;&#039;..type..&#039;&amp;lt;/source&amp;gt;&#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.formatCode(code)&lt;br /&gt;
	return &amp;quot;&amp;lt;code&amp;gt;&amp;quot;..code..&amp;quot;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.formatDescription(description)&lt;br /&gt;
	description = p.capital(description)&lt;br /&gt;
	description = p.dot(description)&lt;br /&gt;
	return description&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.standardizeNullType(type)&lt;br /&gt;
	type = type:lower()&lt;br /&gt;
	if type == &#039;void&#039; or type == &#039;null&#039; or type == &#039;undefined&#039; or type == &#039;n/a&#039; then&lt;br /&gt;
		return &#039;void&#039;&lt;br /&gt;
	else&lt;br /&gt;
		return type&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- general utility&lt;br /&gt;
function p.split(str, sep, limit)&lt;br /&gt;
   if not sep or sep == &amp;quot;&amp;quot; then&lt;br /&gt;
      return false&lt;br /&gt;
   end&lt;br /&gt;
   if not str then&lt;br /&gt;
      return false&lt;br /&gt;
   end&lt;br /&gt;
   limit = limit or math.huge&lt;br /&gt;
   if limit == 0 or limit == 1 then&lt;br /&gt;
      return {str}, 1&lt;br /&gt;
   end&lt;br /&gt;
&lt;br /&gt;
   local r = {}&lt;br /&gt;
   local n, init = 0, 1&lt;br /&gt;
&lt;br /&gt;
   while true do&lt;br /&gt;
      local s,e = str:find(sep, init, true)&lt;br /&gt;
      if not s then&lt;br /&gt;
         break&lt;br /&gt;
      end&lt;br /&gt;
      r[#r+1] = str:sub(init, s - 1)&lt;br /&gt;
      init = e + 1&lt;br /&gt;
      n = n + 1&lt;br /&gt;
      if n == limit - 1 then&lt;br /&gt;
         break&lt;br /&gt;
      end&lt;br /&gt;
   end&lt;br /&gt;
&lt;br /&gt;
   if init &amp;lt;= str:len() then&lt;br /&gt;
      r[#r+1] = str:sub(init)&lt;br /&gt;
   else&lt;br /&gt;
      r[#r+1] = &amp;quot;&amp;quot;&lt;br /&gt;
   end&lt;br /&gt;
   n = n + 1&lt;br /&gt;
&lt;br /&gt;
   if limit &amp;lt; 0 then&lt;br /&gt;
      for i=n, n + limit + 1, -1 do r[i] = nil end&lt;br /&gt;
      n = n + limit&lt;br /&gt;
   end&lt;br /&gt;
&lt;br /&gt;
   return r, n&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.splitLines(text)&lt;br /&gt;
	text = p.remove(text, &amp;quot;\n&amp;quot;)&lt;br /&gt;
	text = p.remove(text, &amp;quot;\r&amp;quot;)&lt;br /&gt;
	return p.split(text, &amp;quot;&amp;lt;br&amp;gt;&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.remove(text, remove)&lt;br /&gt;
	return p.replace(text, remove, &amp;quot;&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.replace(text, find, replace)&lt;br /&gt;
	return text:gsub(find, replace)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.getIndexedArgs(frame, name)&lt;br /&gt;
	local args = p.getArgs(frame)&lt;br /&gt;
	local i = 1&lt;br /&gt;
	local out = {}&lt;br /&gt;
	while args[name..i] do&lt;br /&gt;
		out[i] = args[name..i]&lt;br /&gt;
		i = i + 1&lt;br /&gt;
	end&lt;br /&gt;
	return out&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.loadTemplate(frame, title, args)&lt;br /&gt;
	return frame:expandTemplate{ title = title, args = args }&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.getEndpointVersions(arg, endpoint, start)&lt;br /&gt;
	if not start then start = 1 end&lt;br /&gt;
	local tokens = p.split(arg, &#039; &#039;)&lt;br /&gt;
	local endpointVersions = {}&lt;br /&gt;
	if endpoint == &#039;shared&#039; then&lt;br /&gt;
		if tokens[start+1] then&lt;br /&gt;
			endpointVersions[1] = tokens[start]&lt;br /&gt;
			endpointVersions[2] = tokens[start+1]&lt;br /&gt;
		else&lt;br /&gt;
			endpointVersions[1] = tokens[start]&lt;br /&gt;
		end&lt;br /&gt;
	elseif endpoint == &#039;server&#039; then&lt;br /&gt;
		endpointVersions[1] = tokens[start]&lt;br /&gt;
	elseif endpoint == &#039;client&#039; then&lt;br /&gt;
		endpointVersions[1] = tokens[start]&lt;br /&gt;
	end&lt;br /&gt;
	return endpointVersions, tokens&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.getVersionsText(arg, endpoint, start)&lt;br /&gt;
	if not start then start = 1 end&lt;br /&gt;
	local tokens = p.split(arg, &#039; &#039;)&lt;br /&gt;
	local text&lt;br /&gt;
	if endpoint == &#039;shared&#039; then&lt;br /&gt;
		if tokens[start+1] then&lt;br /&gt;
			text = &amp;quot;server version &amp;quot;..tokens[start]..&amp;quot; and client version &amp;quot;..tokens[start+1]&lt;br /&gt;
		else&lt;br /&gt;
			text = &amp;quot;version &amp;quot;..tokens[start]&lt;br /&gt;
		end&lt;br /&gt;
	elseif endpoint == &#039;server&#039; then&lt;br /&gt;
		text = &amp;quot;server version &amp;quot;..tokens[start]&lt;br /&gt;
	elseif endpoint == &#039;client&#039; then&lt;br /&gt;
		text = &amp;quot;client version &amp;quot;..tokens[start]&lt;br /&gt;
	end&lt;br /&gt;
	return text, tokens&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.properCase(text)&lt;br /&gt;
	return text:sub(1,1):upper()..text:sub(2):lower()&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.findText(text, finds, replaces, defaults, default)&lt;br /&gt;
	if not text then return default end&lt;br /&gt;
	local textLower = text:lower()&lt;br /&gt;
	&lt;br /&gt;
	for i,default2 in ipairs(defaults) do&lt;br /&gt;
		if textLower == default2 then&lt;br /&gt;
			return default&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local items = {}&lt;br /&gt;
	for i,find in ipairs(finds) do&lt;br /&gt;
		if textLower:find(find, 1, true) then&lt;br /&gt;
			table.insert(items, replaces[i])&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return p.getListText(items)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.getListText(items)&lt;br /&gt;
	local count = #items&lt;br /&gt;
	&lt;br /&gt;
	if count == 1 then&lt;br /&gt;
		return items[1]&lt;br /&gt;
	elseif count == 2 then&lt;br /&gt;
		return items[1]..&amp;quot; and &amp;quot;..items[2]&lt;br /&gt;
	else&lt;br /&gt;
		return table.concat(items, &amp;quot;, &amp;quot;, 1, count - 1)..&amp;quot; and &amp;quot;..items[count]&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.dot(text)&lt;br /&gt;
	local i = #text&lt;br /&gt;
	while i &amp;gt; 0 and text:sub(i, i) == &amp;quot;.&amp;quot; do&lt;br /&gt;
		i = i - 1&lt;br /&gt;
	end&lt;br /&gt;
	return text:sub(1,i)..&amp;quot;.&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.capital(text)&lt;br /&gt;
	return text:sub(1,1):upper()..text:sub(2)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.copyTable(t)&lt;br /&gt;
	local out = {}&lt;br /&gt;
	for k,v in pairs(t) do&lt;br /&gt;
		out[k] = v&lt;br /&gt;
	end&lt;br /&gt;
	return out&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.sortTable(t)&lt;br /&gt;
	table.sort(t, function(a,b)&lt;br /&gt;
		return a:lower() &amp;lt; b:lower()&lt;br /&gt;
	end)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.table(headers, rows, widths, tableCssClass)&lt;br /&gt;
	if tableCssClass == nil then tableCssClass = &#039;wikitable&#039; end&lt;br /&gt;
	rows = p.copyTable(rows)&lt;br /&gt;
	if not widths then widths = {} end&lt;br /&gt;
	&lt;br /&gt;
	if headers then&lt;br /&gt;
		headers = p.copyTable(headers)&lt;br /&gt;
		&lt;br /&gt;
		for i,header in ipairs(headers) do&lt;br /&gt;
			local width = widths[i]&lt;br /&gt;
			if width and width &amp;gt; 0 then&lt;br /&gt;
				headers[i] = &amp;quot;id=&#039;th_&amp;quot;..i..&amp;quot;&#039; style=&#039;text-align:left;&amp;quot;..(i==#headers and &#039;min-width&#039; or &#039;width&#039;)..&amp;quot;:&amp;quot;..width..&amp;quot;px;&#039;| &amp;quot;..header&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		for i,cell in ipairs(rows[1]) do&lt;br /&gt;
			local width = widths[i]&lt;br /&gt;
			if width and width &amp;gt; 0 then&lt;br /&gt;
				rows[1][i] = &amp;quot;id=&#039;td_&amp;quot;..i..&amp;quot;&#039; style=&#039;text-align:left;&amp;quot;..(i==#rows[1] and &#039;min-width&#039; or &#039;width&#039;)..&amp;quot;:&amp;quot;..width..&amp;quot;px;&#039;| &amp;quot;..cell&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	for i,row in ipairs(rows) do&lt;br /&gt;
		rows[i] = &#039;|&#039;..table.concat(row, &#039;\n|&#039;)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return &#039;{|&#039;..(tableCssClass and &#039; class=&amp;quot;&#039;..tableCssClass..&#039;&amp;quot;&#039; or &#039;&#039;)..(headers and &amp;quot; id=&#039;headers&#039; &amp;quot; and &#039;\n!&#039;..table.concat(headers, &#039;\n!&#039;)..&#039;\n|-&#039; or &#039;&#039;)..&#039;\n&#039;..table.concat(rows, &#039;\n|-\n&#039;)..&#039;\n|}&#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- return the module&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>PerikiyoXD</name></author>
	</entry>
	<entry>
		<id>https://wiki.gtaconnected.com/wiki/index.php?title=Template:ScriptingEntry&amp;diff=10340</id>
		<title>Template:ScriptingEntry</title>
		<link rel="alternate" type="text/html" href="https://wiki.gtaconnected.com/wiki/index.php?title=Template:ScriptingEntry&amp;diff=10340"/>
		<updated>2022-07-03T16:45:29Z</updated>

		<summary type="html">&lt;p&gt;PerikiyoXD: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;code style=&amp;quot;border:1px solid black;background-color:rgb(200,200,200);padding:5px;&amp;quot;&amp;gt;Type: {{{entryType}}}&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code style=&amp;quot;border:1px solid black;background-color:rgb(200,200,200);padding:5px;&amp;quot;&amp;gt;Side: {{{entrySide}}}&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code style=&amp;quot;border:1px solid black;background-color:rgb(200,200,200);padding:5px;&amp;quot;&amp;gt;Game: {{{entryGame}}}&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
== Signature ==&lt;br /&gt;
&amp;lt;code style=&amp;quot;border:1px solid black;background-color:rgb(255,255,255);padding:5px;&amp;quot;&amp;gt;{{{returnType}}} {{{name}}}({{{parameters}}})&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Details ==&lt;br /&gt;
{{{name}}} is a {{{entryType}}}&lt;br /&gt;
&lt;br /&gt;
== Value ==&lt;/div&gt;</summary>
		<author><name>PerikiyoXD</name></author>
	</entry>
	<entry>
		<id>https://wiki.gtaconnected.com/wiki/index.php?title=Template:ScriptingEntry&amp;diff=10339</id>
		<title>Template:ScriptingEntry</title>
		<link rel="alternate" type="text/html" href="https://wiki.gtaconnected.com/wiki/index.php?title=Template:ScriptingEntry&amp;diff=10339"/>
		<updated>2022-07-03T16:13:35Z</updated>

		<summary type="html">&lt;p&gt;PerikiyoXD: Created page with &amp;quot;&amp;lt;code&amp;gt;Type: {{{type}}}&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;Side: {{{side}}}&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;Game: {{{game}}}&amp;lt;/code&amp;gt;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;code&amp;gt;Type: {{{type}}}&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;Side: {{{side}}}&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;Game: {{{game}}}&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>PerikiyoXD</name></author>
	</entry>
	<entry>
		<id>https://wiki.gtaconnected.com/wiki/index.php?title=TestEntry&amp;diff=10338</id>
		<title>TestEntry</title>
		<link rel="alternate" type="text/html" href="https://wiki.gtaconnected.com/wiki/index.php?title=TestEntry&amp;diff=10338"/>
		<updated>2022-07-03T16:10:07Z</updated>

		<summary type="html">&lt;p&gt;PerikiyoXD: Created page with &amp;quot;Test!  {{ScriptingEntry |side = client |type = property |class = Physical |name = turnVelocity |readonly = false |returnTypes = Vec3 |usage = fetch or set the turn velocity fo...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Test!&lt;br /&gt;
&lt;br /&gt;
{{ScriptingEntry&lt;br /&gt;
|side = client&lt;br /&gt;
|type = property&lt;br /&gt;
|class = Physical&lt;br /&gt;
|name = turnVelocity&lt;br /&gt;
|readonly = false&lt;br /&gt;
|returnTypes = Vec3&lt;br /&gt;
|usage = fetch or set the turn velocity for an item&lt;br /&gt;
|returnInfo = the item&#039;s turn velocity&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>PerikiyoXD</name></author>
	</entry>
	<entry>
		<id>https://wiki.gtaconnected.com/wiki/index.php?title=sound.position&amp;diff=10337</id>
		<title>sound.position</title>
		<link rel="alternate" type="text/html" href="https://wiki.gtaconnected.com/wiki/index.php?title=sound.position&amp;diff=10337"/>
		<updated>2022-06-21T04:47:46Z</updated>

		<summary type="html">&lt;p&gt;PerikiyoXD: Upcoming updates&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ScriptItem&lt;br /&gt;
|endpoint = client&lt;br /&gt;
|type = property&lt;br /&gt;
|class = Sound&lt;br /&gt;
|name = position&lt;br /&gt;
|readonly = false&lt;br /&gt;
|returnTypes = float&lt;br /&gt;
|usage = fetch or set the current position (in seconds) for the sound&lt;br /&gt;
|returnInfo = a float representing the current position of the sound in seconds&lt;br /&gt;
|since=1.0.72&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
= Upcoming Updates =&lt;br /&gt;
== 1.4.3 ==&lt;br /&gt;
* position now can be set&lt;/div&gt;</summary>
		<author><name>PerikiyoXD</name></author>
	</entry>
	<entry>
		<id>https://wiki.gtaconnected.com/wiki/index.php?title=DowngradingIV&amp;diff=10336</id>
		<title>DowngradingIV</title>
		<link rel="alternate" type="text/html" href="https://wiki.gtaconnected.com/wiki/index.php?title=DowngradingIV&amp;diff=10336"/>
		<updated>2022-06-20T20:35:53Z</updated>

		<summary type="html">&lt;p&gt;PerikiyoXD: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Downgrading GTA IV to work on GTA Connected}}&lt;br /&gt;
==Instructions==&lt;br /&gt;
* Use the tool on [https://support.steampowered.com/kb_article.php?ref=2037-QEUH-3335 Steam] or [https://support.rockstargames.com/articles/360036000713/How-to-verify-game-files-in-the-Rockstar-Games-Launcher Rockstar Games Launcher] to verify integrity of game files so they get converted back to their original state.&lt;br /&gt;
* Then, download the patch for either [https://www.dropbox.com/s/7mvbvayak0g67sw/Retail-1080.zip?dl=1 1.0.8.0] or [https://www.dropbox.com/s/50b5k6lcu3lj296/Retail-1070.zip?dl=1 1.0.7.0], depending on which version you want to use.&lt;br /&gt;
* Unzip it. it should make a folder called &amp;lt;code&amp;gt;Retail&amp;lt;/code&amp;gt;. &lt;br /&gt;
* Drag the Retail folder into your GTA IV game directory. &#039;&#039;Don&#039;t move the files out of the folder!&#039;&#039; Just move the whole folder itself.&lt;br /&gt;
* Open GTA Connected launcher and select &#039;&#039;Tools&#039;&#039; &amp;gt; &#039;&#039;Game Settings&#039;&#039; and choose GTA IV from the game select dropdown.&lt;br /&gt;
* Use the Browse button to set the path for the exe to &#039;&#039;GTAIV.exe&#039;&#039; inside the new Retail folder in your IV install directory.&lt;br /&gt;
* Launch the game and enjoy!&lt;br /&gt;
&lt;br /&gt;
==Note==&lt;br /&gt;
* If you&#039;ve followed those instructions correctly, the original files should be intact and unmodified. This means Steam/Rockstar launcher won&#039;t force the files to be reverted, and you can now launch the patched version using GTA Connected or also use the original through Steam without any further changes&lt;br /&gt;
* If you don&#039;t have GTA IV on Steam or Rockstar Launcher, skip the first step.&lt;/div&gt;</summary>
		<author><name>PerikiyoXD</name></author>
	</entry>
	<entry>
		<id>https://wiki.gtaconnected.com/wiki/index.php?title=ScriptingFAQ&amp;diff=10333</id>
		<title>ScriptingFAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.gtaconnected.com/wiki/index.php?title=ScriptingFAQ&amp;diff=10333"/>
		<updated>2022-06-16T20:58:47Z</updated>

		<summary type="html">&lt;p&gt;PerikiyoXD: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Scripting FAQ}}&lt;br /&gt;
== An element disappears if I go too far! (blips, cars...) ==&lt;br /&gt;
Sometimes you want to sync an element all the time.&lt;br /&gt;
Check [[netFlags.distanceStreaming]] to toggle streaming by distance.&lt;/div&gt;</summary>
		<author><name>PerikiyoXD</name></author>
	</entry>
	<entry>
		<id>https://wiki.gtaconnected.com/wiki/index.php?title=ScriptingFAQ&amp;diff=10326</id>
		<title>ScriptingFAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.gtaconnected.com/wiki/index.php?title=ScriptingFAQ&amp;diff=10326"/>
		<updated>2022-06-16T20:53:42Z</updated>

		<summary type="html">&lt;p&gt;PerikiyoXD: /* An element dissapears if I go too far! (Blips, Cars...) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== An element dissapears if I go too far! (Blips, Cars...) ==&lt;br /&gt;
Sometimes you want to sync an element all the time.&lt;br /&gt;
Check [[netFlags.distanceStreaming]] to toggle streaming by distance.&lt;/div&gt;</summary>
		<author><name>PerikiyoXD</name></author>
	</entry>
	<entry>
		<id>https://wiki.gtaconnected.com/wiki/index.php?title=ScriptingFAQ&amp;diff=10325</id>
		<title>ScriptingFAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.gtaconnected.com/wiki/index.php?title=ScriptingFAQ&amp;diff=10325"/>
		<updated>2022-06-16T20:53:28Z</updated>

		<summary type="html">&lt;p&gt;PerikiyoXD: Created page with &amp;quot;== An element dissapears if I go too far! (Blips, Cars...) == Sometimes you want to sync an element all the time. Check netFlags.distanceStreaming to toggle straming by di...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== An element dissapears if I go too far! (Blips, Cars...) ==&lt;br /&gt;
Sometimes you want to sync an element all the time.&lt;br /&gt;
Check [[netFlags.distanceStreaming]] to toggle straming by distance.&lt;/div&gt;</summary>
		<author><name>PerikiyoXD</name></author>
	</entry>
	<entry>
		<id>https://wiki.gtaconnected.com/wiki/index.php?title=gta.createBlip&amp;diff=10324</id>
		<title>gta.createBlip</title>
		<link rel="alternate" type="text/html" href="https://wiki.gtaconnected.com/wiki/index.php?title=gta.createBlip&amp;diff=10324"/>
		<updated>2022-06-16T20:44:53Z</updated>

		<summary type="html">&lt;p&gt;PerikiyoXD: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ScriptItem&lt;br /&gt;
|endpoint = shared&lt;br /&gt;
|type = function&lt;br /&gt;
|name = gta.createBlip&lt;br /&gt;
|usage = add a blip to the game&lt;br /&gt;
|parameters = int icon, Vec3 position, [ int size = 2, int colour = 0 ]&lt;br /&gt;
|parameter1 = int icon The icon ID for the blip.&lt;br /&gt;
|parameter2 = Vec3 position The 3D position for the blip.&lt;br /&gt;
|parameter3 = int size optional 2 The size for the blip.&lt;br /&gt;
|parameter4 = int colour optional 0 The colour for the blip.&lt;br /&gt;
|return1 = Blip The new blip object.&lt;br /&gt;
|returnFail1 = bool false&lt;br /&gt;
|bcMaxVersion = 1.0.71&lt;br /&gt;
|bcName = game.createBlip&lt;br /&gt;
|notes = [[Resources/GTA3/RadarBlips|III Radar Blips]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Resources/GTAVC/RadarBlips|VC Radar Blips]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Resources/GTASA/RadarBlips|SA Radar Blips]]&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>PerikiyoXD</name></author>
	</entry>
	<entry>
		<id>https://wiki.gtaconnected.com/wiki/index.php?title=User:PerikiyoXD&amp;diff=10155</id>
		<title>User:PerikiyoXD</title>
		<link rel="alternate" type="text/html" href="https://wiki.gtaconnected.com/wiki/index.php?title=User:PerikiyoXD&amp;diff=10155"/>
		<updated>2022-02-18T18:43:53Z</updated>

		<summary type="html">&lt;p&gt;PerikiyoXD: Created blank page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>PerikiyoXD</name></author>
	</entry>
	<entry>
		<id>https://wiki.gtaconnected.com/wiki/index.php?title=Main_Page&amp;diff=10021</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.gtaconnected.com/wiki/index.php?title=Main_Page&amp;diff=10021"/>
		<updated>2021-11-09T15:16:37Z</updated>

		<summary type="html">&lt;p&gt;PerikiyoXD: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{{MainPageHeader}}&lt;br /&gt;
----&lt;br /&gt;
{{MainPageLinks}}&lt;/div&gt;</summary>
		<author><name>PerikiyoXD</name></author>
	</entry>
	<entry>
		<id>https://wiki.gtaconnected.com/wiki/index.php?title=Main_Page&amp;diff=10020</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.gtaconnected.com/wiki/index.php?title=Main_Page&amp;diff=10020"/>
		<updated>2021-11-09T15:13:41Z</updated>

		<summary type="html">&lt;p&gt;PerikiyoXD: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:&amp;lt;span style=&amp;quot;visibility: hidden;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;}}&lt;br /&gt;
__NOTOC__&lt;br /&gt;
{{MainPageHeader}}&lt;br /&gt;
----&lt;br /&gt;
{{MainPageLinks}}&lt;/div&gt;</summary>
		<author><name>PerikiyoXD</name></author>
	</entry>
	<entry>
		<id>https://wiki.gtaconnected.com/wiki/index.php?title=Template:MainPageResources&amp;diff=10019</id>
		<title>Template:MainPageResources</title>
		<link rel="alternate" type="text/html" href="https://wiki.gtaconnected.com/wiki/index.php?title=Template:MainPageResources&amp;diff=10019"/>
		<updated>2021-11-09T15:11:53Z</updated>

		<summary type="html">&lt;p&gt;PerikiyoXD: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;div class=&amp;quot;mainPageLinksBox&amp;quot; style=&amp;quot;border:4px solid #8b8b00;&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#8b8b00;text-align:center;color:white;font-size:2em&amp;quot;&amp;gt;Reference&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:1em;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
==[[Image:GTAIII_Logo.png]] GTA III==&lt;br /&gt;
{{Resources/ShortGTA3}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
==[[Image:GTAVC_Logo.png|32px]] GTA Vice City==&lt;br /&gt;
{{Resources/ShortGTAVC}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
==[[Image:GTASA_Logo.png|32px]] GTA San Andreas==&lt;br /&gt;
{{Resources/ShortGTASA}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
==[[Image:GTAIV_Logo.png|32px]] GTA IV==&lt;br /&gt;
{{Resources/ShortGTAIV}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>PerikiyoXD</name></author>
	</entry>
	<entry>
		<id>https://wiki.gtaconnected.com/wiki/index.php?title=Template:MainPageResources&amp;diff=10018</id>
		<title>Template:MainPageResources</title>
		<link rel="alternate" type="text/html" href="https://wiki.gtaconnected.com/wiki/index.php?title=Template:MainPageResources&amp;diff=10018"/>
		<updated>2021-11-09T15:11:35Z</updated>

		<summary type="html">&lt;p&gt;PerikiyoXD: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:&amp;lt;span style=&amp;quot;display:none&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;}}&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&amp;lt;div class=&amp;quot;mainPageLinksBox&amp;quot; style=&amp;quot;border:4px solid #8b8b00;&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#8b8b00;text-align:center;color:white;font-size:2em&amp;quot;&amp;gt;Reference&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:1em;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
==[[Image:GTAIII_Logo.png]] GTA III==&lt;br /&gt;
{{Resources/ShortGTA3}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
==[[Image:GTAVC_Logo.png|32px]] GTA Vice City==&lt;br /&gt;
{{Resources/ShortGTAVC}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
==[[Image:GTASA_Logo.png|32px]] GTA San Andreas==&lt;br /&gt;
{{Resources/ShortGTASA}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
==[[Image:GTAIV_Logo.png|32px]] GTA IV==&lt;br /&gt;
{{Resources/ShortGTAIV}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>PerikiyoXD</name></author>
	</entry>
	<entry>
		<id>https://wiki.gtaconnected.com/wiki/index.php?title=Template:MainPageScripting&amp;diff=10017</id>
		<title>Template:MainPageScripting</title>
		<link rel="alternate" type="text/html" href="https://wiki.gtaconnected.com/wiki/index.php?title=Template:MainPageScripting&amp;diff=10017"/>
		<updated>2021-11-09T15:08:25Z</updated>

		<summary type="html">&lt;p&gt;PerikiyoXD: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;div class=&amp;quot;mainPageLinksBox&amp;quot; style=&amp;quot;border:4px solid #8b0000;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#8b0000;text-align:center;color:white;font-size:2em&amp;quot;&amp;gt;Scripting&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:1em;&amp;quot;&amp;gt;&lt;br /&gt;
==Shared==&lt;br /&gt;
*[[Types|Types]]&lt;br /&gt;
*[[Defines|Defines]]&lt;br /&gt;
==Server==&lt;br /&gt;
*[[Server/Events|Events]]&lt;br /&gt;
*[[Server/Functions|Functions]]&lt;br /&gt;
==Client==&lt;br /&gt;
*[[Client/Events|Events]]&lt;br /&gt;
*[[Client/Functions|Functions]]&lt;br /&gt;
*[[Client/Natives|Native Scripting Functions]]&lt;br /&gt;
==Extra==&lt;br /&gt;
*[[GettingStarted|Getting Started]]&lt;br /&gt;
*[[ScriptingInterface|Scripting Interface]]&lt;br /&gt;
*[[ScriptingExamples|Examples]]&lt;br /&gt;
*[[ScriptingTutorials|Tutorials]]&lt;br /&gt;
==Compatibility==&lt;br /&gt;
*[[ThirdPartyVersions|Third-Party Versions]]&lt;br /&gt;
*[[SignificantChanges|Significant Changes]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>PerikiyoXD</name></author>
	</entry>
	<entry>
		<id>https://wiki.gtaconnected.com/wiki/index.php?title=Template:MainPageOverview&amp;diff=10016</id>
		<title>Template:MainPageOverview</title>
		<link rel="alternate" type="text/html" href="https://wiki.gtaconnected.com/wiki/index.php?title=Template:MainPageOverview&amp;diff=10016"/>
		<updated>2021-11-09T15:07:41Z</updated>

		<summary type="html">&lt;p&gt;PerikiyoXD: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;div class=&amp;quot;mainPageLinksBox&amp;quot; style=&amp;quot;border:4px solid #008b8b;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#008b8b;text-align:center;color:white;font-size:2em&amp;quot;&amp;gt;Overview&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:1em;&amp;quot;&amp;gt;&lt;br /&gt;
==Client==&lt;br /&gt;
&#039;&#039;&#039;Playing a game&#039;&#039;&#039;&lt;br /&gt;
*[[ClientManual|Client Manual]]&lt;br /&gt;
*[[ClientCommands|Client Commands]]&lt;br /&gt;
*[[ClientSettings|Client Settings]]&lt;br /&gt;
*[[ClientVariables|Client Variables]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Game Support&#039;&#039;&#039;&lt;br /&gt;
*[[GamesAndVersions|Games &amp;amp; Versions]]&lt;br /&gt;
*[[GameModifications|Game Modifications]]&lt;br /&gt;
*[[Downgrading|Downgrading]]&lt;br /&gt;
&lt;br /&gt;
==Server==&lt;br /&gt;
&#039;&#039;&#039;Hosting a server&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
*[[GettingStarted|Getting Started]]&lt;br /&gt;
*[[HostingAndJoining|Hosting and Joining]]&lt;br /&gt;
*[[Resources|Resources (Scripting)]]&lt;br /&gt;
*[[Modules|Modules (Programming)]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
*[[ServerManual|Server Manual]]&lt;br /&gt;
*[[ServerConfiguration|Server Configuration]]&lt;br /&gt;
*[[Limits|Limits]]&lt;br /&gt;
*[[ServerRules|Server Rules (Shown in Launcher)]]&lt;br /&gt;
*[[Dumpdoc|dumpdoc (Alternative Documentation)]]&lt;br /&gt;
*[[ServerQuery|Server Query]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>PerikiyoXD</name></author>
	</entry>
	<entry>
		<id>https://wiki.gtaconnected.com/wiki/index.php?title=Template:MainPageResources&amp;diff=10015</id>
		<title>Template:MainPageResources</title>
		<link rel="alternate" type="text/html" href="https://wiki.gtaconnected.com/wiki/index.php?title=Template:MainPageResources&amp;diff=10015"/>
		<updated>2021-11-09T15:07:33Z</updated>

		<summary type="html">&lt;p&gt;PerikiyoXD: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;div class=&amp;quot;mainPageLinksBox&amp;quot; style=&amp;quot;border:4px solid #8b8b00;&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#8b8b00;text-align:center;color:white;font-size:2em&amp;quot;&amp;gt;Reference&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:1em;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size:1.5em;&amp;quot;&amp;gt;&amp;lt;center&amp;gt;[[Image:GTAIII_Logo.png|32px]] III&amp;lt;/center&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
{{Resources/ShortGTA3}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size:1.5em;&amp;quot;&amp;gt;&amp;lt;center&amp;gt;[[Image:GTAVC_Logo.png|32px]] Vice City&amp;lt;/center&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
{{Resources/ShortGTAVC}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size:1.5em;&amp;quot;&amp;gt;&amp;lt;center&amp;gt;[[Image:GTASA_Logo.png|32px]] San Andreas&amp;lt;/center&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
{{Resources/ShortGTASA}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size:1.5em;&amp;quot;&amp;gt;&amp;lt;center&amp;gt;[[Image:GTAIV_Logo.png|32px]] IV&amp;lt;/center&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
{{Resources/ShortGTAIV}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>PerikiyoXD</name></author>
	</entry>
	<entry>
		<id>https://wiki.gtaconnected.com/wiki/index.php?title=Template:MainPageHeader&amp;diff=10014</id>
		<title>Template:MainPageHeader</title>
		<link rel="alternate" type="text/html" href="https://wiki.gtaconnected.com/wiki/index.php?title=Template:MainPageHeader&amp;diff=10014"/>
		<updated>2021-11-09T15:07:19Z</updated>

		<summary type="html">&lt;p&gt;PerikiyoXD: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;height:3em;background: #072C38;background: radial-gradient(circle, #072C38, #000000);text-align:center;font-size:2em;color:white;line-height:3em;&amp;quot;&amp;gt;&lt;br /&gt;
GTA Connected&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>PerikiyoXD</name></author>
	</entry>
	<entry>
		<id>https://wiki.gtaconnected.com/wiki/index.php?title=Main_Page&amp;diff=10013</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.gtaconnected.com/wiki/index.php?title=Main_Page&amp;diff=10013"/>
		<updated>2021-11-09T15:07:06Z</updated>

		<summary type="html">&lt;p&gt;PerikiyoXD: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{{MainPageHeader}}&lt;br /&gt;
----&lt;br /&gt;
{{MainPageLinks}}&lt;/div&gt;</summary>
		<author><name>PerikiyoXD</name></author>
	</entry>
</feed>