ServerConfiguration: Difference between revisions

no edit summary
No edit summary
 
No edit summary
 
(46 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{DISPLAYTITLE:Server Configuration}}
{{DISPLAYTITLE:Server Configuration}}
== Summary ==
== Summary ==
The server configuration file is named <code>server.xml</code>, and is located in the same folder as the file named <code>Server.exe</code> on Windows or <code>Server</code> on Linux.<br>
The server.xml file is used to configure your server with things like server name, game, networking, sync, which resources to load, and many other options.
You can use a custom server configuration file with the <code>-config</code> option. Example: <code>Server.exe -config my-config.xml</code>. See the [[ServerCommandArguments|server command arguments]] page for more info on accepted command arguments.
The file uses the XML syntax, with a root node named <code>server</code>.<br>
[https://www.w3.org/TR/xml/ Official XML Specification]


== Settings ==
== Custom Config File ==
You can start the server with a [[ServerCommandLine|command switch]] for a different configuration file name. Example: <code>Server.exe -config my-config.xml</code>.
 
== CVars ==
See the [[CVars|CVars]] page for info.
 
== Options ==
{| class="wikitable"
{| class="wikitable"
!Server Property Name
!Server Property Name
Line 12: Line 15:
!Description
!Description
|-
|-
|compresspackets
|anticheat
|false
|(empty node)
|The status of whether packets are compressed. This is only available in GTAC versions 1.0.66 and newer.
|Anti cheat. See [[Anticheat|Anticheat]] for more information.
|-
|bindip
|(empty string)
|Forces the server to use a specific IP. Only for hosts that have multiple IP addresses.
|-
|cvar
|(individual default values)
|Sets a server's cvar value. See [[CVars|CVars]] for more information.
|-
|-
|duplicatenames
|duplicatenames
Line 21: Line 32:
|-
|-
|game
|game
|gta:iii ('''required''')
|gta:iii
|The identifier of the game that the server should run for. See [[GameIdentifiers|game identifiers]] for more information.
|The identifier of the game that the server should run for. See [[GameIdentifiers|game identifiers]] for more information.
|-
|-
|gamemode
|gamemode
|n/a ('''required''')
|n/a ('''required''')
|The name of the game mode, which appears in the server browser.
|Custom text to identify the game mode. Appears in the server browser. '''This is not IV gamemode ID'''.
|-
|-
|httpport
|httpport
Line 34: Line 45:
|httpserver
|httpserver
|true
|true
|Whether or not to run the HTTP server. If you don't run it, you'll need to host the HTTP server elsewhere, with the port found in httpport.
|Whether or not to run the [[HTTPServer|HTTP server]].
|-
|httpurl
|(empty string)
|A URL (like a CDN) containing the server's client resource files and scripts. Clients will download them from that URL instead of the server.
|-
|iv_episode
| -1
|Sets the DLC to use for IV. See [[Resources/GTAIV/Episodes|IV Episodes]] for more information.
|-
|iv_gamemode
|8
|Sets the built-in gamemode for IV. See [[Resources/GTAIV/GameModes|IV Gamemodes]] for more information.
|-
|iv_nativemultiplayer
|true
|If enabled, server uses Rockstar's sync, otherwise server uses GTAC's custom sync. See [[NativeMultiplayer|this page for more information]]
|-
|-
|logpath
|logpath
|"" (empty string)
|(empty string)
|The path to store the server logs. Leave blank to not use server logs.
|The path to store the server logs. Leave blank to not use server logs.
|-
|-
|logtimestamp
|logtimestamp
|"" (empty string)
|%d/%m/%Y - %X
|The timestamp format to use in the log files. Based on the [http://cplusplus.com/reference/clibrary/ctime/strftime/ strftime] format from C++. Some examples:
|The timestamp format to use in the log files. Based on the [http://cplusplus.com/reference/clibrary/ctime/strftime/ strftime] format from C++. Some examples:
<code>[%H:%M:%S]</code> This displays only the time<br>
<code>[%H:%M:%S]</code> This displays only the time.<br>
<code>[%d/%m/%Y %H:%M:%S]</code> This would display the date in dd/mm/yyyy format followed by the time in hour:minute:second format.  
<code>[%d/%m/%Y %H:%M:%S]</code> This would display the date in dd/mm/yyyy format followed by the time in hour:minute:second format.  
|-
|-
|maxplayers
|maxplayers
|32
|32
|The maximum amount of players that can connect to the server, between 0 and 256.
|The maximum amount of players that can connect to the server, between 0 and 127.
|-
|-
|minclientversion
|minclientversion
|1.0.0
|1.0.0.0
|The minimum version that clients can connect with.
|The minimum version that clients can connect with. Between 1 and 4 dot-delimited tokens. [https://gtaconnected.com/downloads/client/version See latest client version here].
|-
|minuteduration
|2.0 for IV, otherwise 1.0
|The amount of seconds for an in-game minute.
|-
|-
|modules
|modules
Line 58: Line 89:
|The modules to load. Use the <code>&lt;module&gt;</code> tag inside the <code>&lt;modules&gt;</code> tag, for each module to load, including the <code>src</code> attribute for the directory path.
|The modules to load. Use the <code>&lt;module&gt;</code> tag inside the <code>&lt;modules&gt;</code> tag, for each module to load, including the <code>src</code> attribute for the directory path.
|-
|-
|packetcompressionlevel
|multithreaded
|default
|false
|The compression level for compressed packets, between 0 and 9, or the word default. Default is 6 ([https://www.zlib.net/manual.html ZLib's Z_DEFAULT_COMPRESSION])
|Enables/disables using multiple threads for managing network peers. Useful on multi-core systems.
|-
|-
|password
|password
|"" (empty string)
|(empty string)
|The password to connect to the server.
|The password to connect to the server.
|-
|-
Line 72: Line 103:
|pickupstreamoutdistance
|pickupstreamoutdistance
|100.0
|100.0
|The distance that a pickup is removed from the client, recommended to be about 100.0.
|The distance that a pickup is removed from the client, recommended to be about 100.0. '''Must be higher than pickupstreamindistance'''.
|-  
|-
|port
|port
|22000
|22000
|The port for the server to listen on, between 0 and 65,535. Players only need to know the port if using the /connect command in-game, not when using the server browser.
|The port for the server to listen on, between 0 and 65,535. Players only need to know the port if using the /connect command in-game, not when using the server browser.
|-
|processinterval
|50
|The interval, in milliseconds, of each process-once occurrence, between 0 and 65,535.
|-
|-
|rcon
|rcon
|false
|false
|The status of whether the server will host the remote console service, use true or false.
|'''[Inoperable]''' The status of whether the server will host the remote console service.
|-
|-
|rconpassword
|rconpassword
|"" (empty string)
|(empty string)
|The password to connect to the remote console service.
|The password to connect to the remote console service.
|-
|rconport
|23000
|The port to host the remote console service on.
|-
|-
|resources
|resources
|(empty node)
|(empty node)
|The resources to load. Use the <code>&lt;resource&gt;</code> tag inside the <code>&lt;resources&gt;</code> tag, for each resource to load, including the <code>src</code> attribute for the directory path.
|The [[Resources|resources]] to load. Use the <code>&lt;resource&gt;</code> tag inside the <code>&lt;resources&gt;</code> tag, for each resource to load, including the <code>src</code> attribute for the directory path.
|-
|rule
|(empty string)
|Adds a server rule. See [[ServerRules|server rules]] for more info.
|-
|-
|serverbrowser
|serverbrowser
Line 101: Line 136:
|n/a ('''required''')
|n/a ('''required''')
|The name of the server, which appears in the server browser.
|The name of the server, which appears in the server browser.
|-
|serverquery
|true
|The enabled status of UDP server queries.
|-
|-
|streamindistance
|streamindistance
|100.0
|100.0
|The distance that an entity is sent to the client, recommended to be about 100.0.
|The distance that an entity is sent to a client, recommended to be about 100.0 mainly because of game limits.
|-
|-
|streamoutdistance
|streamoutdistance
|200.0
|200.0
|The distance that an entity is removed from the client, recommended to be about 200.0.
|The distance that an entity is removed from a client, recommended to be about 200.0. '''Must be higher than streamindistance'''.
|-
|-
|syncinterval
|syncinterval
|30
|30
|The interval, in milliseconds, of each sync occurrence for the regularly sync'd data, between 0 and 65,535.
|The interval, in milliseconds, of each sync occurrence for the regularly sync'd data, between 0 and 65,535.
|-
|synclocalentities
|false
|Whether to sync local entities.
|-
|-
|syncmethod
|syncmethod
|interval
|interval
|The sync type for regularly sync'd data. Use none, interval, replay, or peer2peer. (See sync methods section below)
|The sync type for regularly sync'd data. Use none, interval, or replay. (See sync methods section below.)
|-
|syncpacketpriority
|low
|The priority of sync packets. Use low, medium, high, or immediate.
|-
|-
|cvar
|syncpacketreliable
|null
|false
|Sets a server's cvar value (See cvars section for accepted cvars)
|Flags to bitwise-OR with for reliable packets.
|-
|-
|ipv4
|syncpacketunsequenced
|true
|false
|Enables/disables support for ipv4
|Flags to bitwise-OR with for unsequenced packets.
|-
|-
|ipv6
|timesync
|true
|true
|Enables/disables support for ipv6
|Enables/disables syncing the time set by server to all clients.
|-
|-
|bindip
|weathersync
|true
|true
|Forces the server to use a specific IP. Only for hosts that have multiple IP addresses.
|Enables/disables syncing the weather set by server to all clients.
|-
|-
|iv_gamemode
|streaminterval
|30
|1000
|Sets the built-in gamemode for IV. See [[Resources/GTAIV/GameModes|IV Gamemodes]] for more information.
|The interval, in milliseconds, between checking if elements should be streamed in/out for players, between 500-5000.
|-
|-
|iv_episode
|0
|Sets the DLC to use for IV. See [[Resources/GTAIV/Episodes|IV Episodes]] for more information
|}
|}


== CVars ==
== Example ==
CVars are values that affect specific game features. For example, the "Traffic" cvar will toggle the server traffic on/off, depending on the value provided. See the "Settings" section above to see how to add a cvar to a server configuration. Below is a list of built in cvars and values for each. You can also add custom cvars and access them with server.getCVar. CVars added to server config are not case sensitive.
<source>
{| class="wikitable"
<server>
!CVar Name
<!-- General Information -->
!Type
<servername>Default Server</servername>
!Description
<game>gta:iii</game>
|-
<gamemode>Free Roam</gamemode>
|Nametags
<serverbrowser>true</serverbrowser>
|boolean
<maxplayers>32</maxplayers>
|Enable/disable built-in nametags
<password></password>
|-
<minclientversion>1.5.0</minclientversion>
|GunShops
<duplicatenames>false</duplicatenames>
|boolean
 
|Enable/disable singleplayer gunshops (ammunations)
<!-- Networking -->
|-
<port>22000</port>
|UniqueStuntJumps
<httpport>22000</httpport>
|boolean
<httpserver>true</httpserver>
|Enable/disable the slow-motion unique jumps from singleplayer (example, the Callahan Bridge median)
<streaminterval>1000</streaminterval>
|-
<syncinterval>30</syncinterval>
|StuntJumps
<syncmethod>interval</syncmethod>
|boolean
<synclocalentities>true</synclocalentities>
|Enable/disable the bonuses provided by doing stunts (and what a great landing!)
 
|-
<!-- Element Streaming -->
|StauntonToiletCamera
<streamindistance>200</streamindistance>
|boolean
<streamoutdistance>250</streamoutdistance>
|Force the multi-stage fixed camera used when entering the toilet in Belleville Park
<pickupstreamindistance>30</pickupstreamindistance>
|-
<pickupstreamoutdistance>50</pickupstreamoutdistance>
|Gates
 
|boolean
<!-- Logging -->
|Enable/disable the automatic singleplayer gates (example: the one at LCPD when you show up in a police car)
<logpath>logs</logpath>
|-
<logtimestamp>[%d/%m/%Y - %X]</logtimestamp>
|Trains
 
|boolean
<!-- GTA IV -->
|Enable/disable trains. This does not have any effect on GTA Vice City
<!-- https://wiki.gtaconnected.com/Resources/GTAIV/GameModes -->
|-
<!-- https://wiki.gtaconnected.com/Resources/GTAIV/Episodes -->
|Planes
<iv_gamemode>8</iv_gamemode>
|boolean
<iv_episode>-1</iv_episode>
|Enable/disable the overhead ambience planes. The position and status of these are synced as well.
 
|-
<!-- Modules -->
|MaximumWantedLevel
<!-- https://wiki.gtaconnected.com/Modules -->
|integer
<modules>
|Set's the highest possible wanted level. Use 0 to disable automatic wanted levels altogether.
</modules>
|-
|DefaultParkedCars
|boolean
|If enabled, spawns default parked vehicles found in singleplayer
|-
|Ambulances
|boolean
|Enables/disable the singleplayer rescue ambulances and paramedics when somebody is killed
|-
|Traffic
|boolean
|Enables/disable AI traffic. With peer2peer enabled, this will be synced with everyone.
|-
|Civilians
|boolean
|Enables/disable AI peds that walk around the city. With peer2peer enabled, this will be synced with everyone.
|-
|DefaultPickups
|boolean
|Enables/disable the default pickups found in singleplayer
|-
|SinglePlayer
|boolean
|Enables/disable general singleplayer features
|}


== Sync Methods ==
<!-- Global CVars -->
There are a few different config options for server sync. Here is the list of them and a brief description of each.
<!-- https://wiki.gtaconnected.com/CVars -->
{| class="wikitable"
<cvar name="nametags" value="1" />
!Name
<cvar name="gunshops" value="1" />
!Description
<cvar name="uniquestuntjumps" value="1" />
|-
<cvar name="stuntjumps" value="1" />
|none
<cvar name="stauntontoiletcamera" value="1" />
|Disables element sync entirely. Not recommended for multiplayer environments.
<cvar name="gates" value="1" />
|-
<cvar name="trains" value="1" />
|replay
<cvar name="planes" value="1" />
|Default. This will sync elements as soon as they're processed. If CPU usage is too busy and processing is slow, sync will be too.
<cvar name="maximumwantedlevel" value="6" />
|-
<cvar name="defaultparkedcars" value="1" />
|interval
<cvar name="ambulances" value="1" />
|This forces sync of elements at a specified interval. Use <syncinterval> in server config to set the interval time in milliseconds (ms)
<cvar name="traffic" value="1" />
|-
<cvar name="civilians" value="1" />
|peer2peer
<cvar name="defaultpickups" value="1" />
|Syncs elements from client to client directly. Server receives sync every few seconds to keep up to date.
<cvar name="singleplayer" value="1" />
|}
<cvar name="bigmap" value="1" />
<cvar name="iv_playerwalking" value="0" />
<cvar name="iv_scenariopeds" value="1" />
<cvar name="iv_randomcops" value="1" />


<!-- Rules -->
<!-- https://wiki.gtaconnected.com/ServerRules -->
<rule name="Owner" value="Nobody" />
<rule name="Website" value="https://gtaconnected.com" />


== Sync Priority ==
<!-- Resources -->
There are a few different config options for sync packet priority. Here is the list of them and a brief description of each.
<!-- https://wiki.gtaconnected.com/Resources -->
{| class="wikitable"
<resources>
!Name
<resource src="freeroam" />
!Description
</resources>
|-
</server>
|immediate
</source>
|Sends sync immediately without delay
|-
|high
|Sends sync twice as much as medium (if both levels are waiting to be sent)
|-
|medium
|Sends sync twice as much as low (if both levels are waiting to be sent)
|-
|low
|Sends sync with the lowest priority
|}
2,818

edits