Windows Server Documentation - Patch 1.5
MENU POINTS
- Getting Started
- Hardware Recommendations
- Crysis Wars Installation
- Updating the server
- Game Port(s)
- Basic Set Up
- Set Up the Server
- Standard Server Settings
- Launching the Server
- Advanced Set Up
- Define Level Rotation
- Specify Level Rotation
- Set IP and Port
- Set Up Automatic Map Downloader
- Restrict Items and Weapons
- Set Up RCon
- Using RCon
- Anti-Cheat Protection
- Punksbuter
- Crysis Internal Anti-Cheat Solution
Getting Started (top)
Welcome to the official Crysis Wars Server Documentation. It will guide you through the instructions of how to set up a Crysis Wars Dedicated Server properly. But before continuing with the basic set up please find below the first steps to start with.
Hardware Recommendations
In order to provide a solid base for a Crysis Wars dedicated server it is recommended to use following hardware for one game server. In the case you want to run multiple servers on one machine the hardware should be upgraded accordingly.
Crysis Wars Installation
The first step to set up a Crysis Wars server is to install the game on the PC. Follow the instructions given during the installation. You can choose the target place to install the game by selecting the custom installation procedure. This also allows you to exclude several features that might not be interesting for you. Note: It is not recommended to remove any files (i.e. .pak files) from the Crysis Wars installation afterwards since it might block Crysis Wars from being patched later and also might cause problems when having the internal anti-cheat solution enabled.
Updating the server
Before following any of the steps further below please make sure the server has been updated to the latest available version which is patch 1.4. The server files can be downloaded from here and directly applied to the server (replace the old files with the new ones)
Game Port(s)
Crysis Wars requires the default game port to be open in order to communicate properly with the master server. Following is a list of UDP and TCP ports the game uses in the case of problems with your server not being listed online.
For all traffic between server and client the default 'game' port 64100 is used.
|
Service
|
Hostname
|
|
Ports |
|
|
Server
|
|
Type |
Local |
Remote |
|
hbmaster3
|
crysiswars.available.gamespy.com
|
UDP |
any |
27900 |
|
natserver1
|
natneg1.gamespy.com
|
UDP |
game |
27901 |
|
natserver2
|
natneg2.gamespy.com
|
UDP |
game |
27901 |
|
nat neg
|
Game client
|
UDP |
game |
game* |
|
hbmaster3
|
crysiswars.master.gamespy.com
|
UDP |
game |
27900 |
|
Incoming queries
|
Game client
|
UDP |
game |
any |
|
keymaster
|
key.gamespy.com
|
UDP |
game |
29910 |
|
Stats auth
|
crysiswars.auth.pubsvs.gamespy.com
|
TCP |
any |
any (def: 443) |
|
Stats
|
crysiswars.comp.pubsvs.gamespy.com
|
TCP |
any |
any (def: 80) |
|
Profile settings/stats
|
crysiswars.sake.gamespy.com
|
TCP |
any |
any (def: 80) |
| * Default value for "game" is 64100 (can be adjusted). For incoming UDP traffic, only port "game" (default 64100) is required to be opened. |
Basic Set Up (top)
This is the basic set up for the Default Crysis Wars Server. The instructions will teach you how to get your server running with the least amount of work for yourself.
Set Up the Server
To set up the basics for the dedicated server, you need to have several files in the root directory of your Crysis Wars installation. Keep in mind that you can only run one server at a time with this set up.
The first step is to double-click on the self-extracting “CrysisWars_Dedicated_Server_Package.exe” file. Be sure to extract the files into the root directory of your Crysis Wars installation. You can find the self-extracting file on MyCrysis in the downloads section or the bottom of the document.
Following files will get extracted that help you setting up the server:
- server.cfg - contains all necessary gameplay settings for your game server
- autoexec.cfg - needed for setting up the RCon to administrate the server
- levelrotation.xml - contains multiplayer levels your server cycles through
- Startup.bat - the startup batch file includes all the required information to launch your server automatically with specific settings
- PB folder - includes the latest Punkbuster update and PB server config files
- Crysis RCon folder - includes all files for the HTTP/XMLRPC RCon
Standard Server Settings
To get your server ready please use the standard settings for the “server.cfg” provided further below. It is also recommended give the dedicated server a clearly identifying name.
| sv_servername = "<servername>" |
//defines the server name |
| sv_password = "<password>" |
//defines the password required to join the server |
| |
|
| sv_gamerules = “<gamemode>” |
//PowerStruggle, InstantAction or TeamInstantAction |
| sv_cheatprotection = 1 |
//default: 3; can be set to 1 or 2 |
| sv_maxplayers = 32 |
//defines maximum players on the server |
| net_pb_sv_enable true |
//enables PB; set it to false to disable PB |
| |
|
| g_timelimit = 30 |
//default time limit for a map |
| g_minteamlimit = 1 |
//minimum amount of players required for each team |
| g_revivetime = 20 |
|
| g_autoteambalance = 1 |
//balances team automatically; default: 1=on; 0=off |
| g_tk_punish = 1 |
//punishes team killers; default: 1=on; 0=off |
| g_tk_punish_limit = 10 |
//number of team kills required to be kicked from the server |
| |
|
| log_verbosity = 3 |
//do not change that value |
| log_fileverbosity = 3 |
//do not change that value |
| |
|
| map shore |
//loads the map Shore |
| or… |
|
| g_nextlevel |
//loads first level of your level rotation automatically |
Launching the Server
The following is a description of the last steps that are required to get your server ready for launch.
Automatic Map Loading
A server can automatically load a map on start-up if it is defined in the "server.cfg" file. Basically there are two ways to load a level:
- Level rotation independent
To load a specific level at the start-up of the server, please use following command in the “server.cfg”. After the time limit of this level has been reached the map cycle continues with the first level from your level rotation.
| DX9: |
map mapname |
//mapname = name of the level |
| DX10: |
map mapname x |
//mapname = name of the level; x = DX10 |
- Level rotation dependent
To load the first level of your level rotation the following command needs to be added to the “server.cfg”. After the time limit of this level has been reached the map cycle continues with the second level from your level rotation. .
| DX9: |
g_nextlevel |
//loads the first level of the level rotation automatically |
| DX10: |
g_nextlevel x |
//loads first level of the level rotation automatically; x = DX10 |
Note: The "x" behind the command will launch everything in DX10 mode. This setting is persistent so no editing of the "levelrotation.xml" file is required.
Server Launch
To launch the Crysis Wars Dedicated server with your server settings and level rotation the “startup.bat” needs to be adjusted slightly. This file can be found in your Crysis Wars root directory.
Following is a listing what each command inside the “startup.bat” does:
| Command |
Explanation |
| bin32\crysiswarsdedicatedserver |
Defines where the dedicatedserver.exe file is located. This path should not be changed |
| -root "C:\Root\Folder\Of\Crysis\Wars |
Defines the root folder of your dedicated server. This folder needs to include the “server.cfg”, “autoexec.cfg” and “levelrotation.xml” files. |
| +exec "server.cfg" |
Executes the “server.cfg” when starting up the server. |
Instructions:
- Right click on the "startup.bat" file -> Edit
- Replace the “C:\Root\Folder\Of\CrysisWars” with the correct link to your root folder.
- Save the file and close it.
- Double-click on the "startup.bat" file that will launch the server properly
Note: Always be sure to launch your server from this “startup.bat” file. By launching it from the “CrysisWarsDedicatedServer.exe” file inside Bin32 or Bin64 folder it will completely ignore your server configurations and the level rotation.
Advanced Set Up (top)
Following you can find the advanced set up for a Crysis Wars Server. Be sure you finished all steps from the basic set up above before continuing with this one.
Define Level Rotation
Below you can find a description of how to set up the level rotation in several ways. In general it is not recommended to rename “levelrotation.xml” since it is getting loaded automatically with the server start.
To set up a standard level rotation for Crysis Wars, open the “levelrotation.xml” with an .xml aware editor (such as notepad). Then just add/remove the levels you want. The gameplay settings are used from the “server.cfg” file in your Crysis Wars root folder.
For example (to have a rotation that includes all levels):
<levelrotation>
<level name="multiplayer/ps/Frost" gamerules="PowerStruggle" />
<level name="multiplayer/ps/beach" gamerules="PowerStruggle" />
<level name="multiplayer/ps/crossroads" gamerules="PowerStruggle" />
<level name="multiplayer/ps/desolation" gamerules="PowerStruggle" />
<level name="multiplayer/ps/mesa" gamerules="PowerStruggle" />
<level name="multiplayer/ps/plantation" gamerules="PowerStruggle" />
<level name="multiplayer/ps/refinery" gamerules="PowerStruggle" />
<level name="multiplayer/ps/shore" gamerules="PowerStruggle" />
<level name="multiplayer/ps/tarmac" gamerules="PowerStruggle" />
<level name="multiplayer/ps/training" gamerules="PowerStruggle" />
<level name="multiplayer/ia/armada" gamerules="InstantAction" />
<level name="multiplayer/ia/Savanna" gamerules="InstantAction" />
<level name="multiplayer/ia/battleground" gamerules="InstantAction" />
<level name="multiplayer/ia/coast" gamerules="InstantAction" />
<level name="multiplayer/ia/excavation" gamerules="InstantAction" />
<level name="multiplayer/ia/graveyard" gamerules="InstantAction" />
<level name="multiplayer/ia/outpost" gamerules="InstantAction" />
<level name="multiplayer/ia/peak" gamerules="InstantAction" />
<level name="multiplayer/ia/quarry" gamerules="InstantAction" />
<level name="multiplayer/ia/steelmill" gamerules="InstantAction" />
<level name="multiplayer/ia/stranded" gamerules="InstantAction" />
<level name="multiplayer/ia/terminal" gamerules="InstantAction" />
<level name="multiplayer/ia/treehouse" gamerules="InstantAction" />
<level name="multiplayer/ia/armada" gamerules="TeamInstantAction" />
<level name="multiplayer/ia/battleground" gamerules="TeamInstantAction" />
<level name="multiplayer/ia/coast" gamerules="TeamInstantAction" />
<level name="multiplayer/ia/excavation" gamerules="TeamInstantAction" />
<level name="multiplayer/ia/graveyard" gamerules="TeamInstantAction" />
<level name="multiplayer/ia/outpost" gamerules="TeamInstantAction" />
<level name="multiplayer/ia/peak" gamerules="TeamInstantAction" />
<level name="multiplayer/ia/quarry" gamerules="TeamInstantAction" />
<level name="multiplayer/ia/savanna" gamerules="TeamInstantAction" />
<level name="multiplayer/ia/steelmill" gamerules="TeamInstantAction" />
<level name="multiplayer/ia/stranded" gamerules="TeamInstantAction" />
<level name="multiplayer/ia/terminal" gamerules="TeamInstantAction" />
<level name="multiplayer/ia/treehouse" gamerules="TeamInstantAction" />
</levelrotation>
Specific Level Rotation
You also can set specific gameplay settings for each of the levels in your level rotation. If you set no rules for any of the levels the default gameplay settings from the “server.cfg” are getting used.
<levelRotation randomize="0">
<level name="multiplayer/ps/shore" gameRules="PowerStruggle">
<setting setting="g_timelimit 60"/>
<setting setting="g_fraglimit 0"/>
<setting setting="g_revivetime 20"/>
</level>
<level name="multiplayer/ia/armada" gameRules="InstantAction">
<setting setting="g_timelimit 20"/>
<setting setting="g_fraglimit 50"/>
</level>
<level name="multiplayer/ia/treehouse" gameRules="TeamInstantAction">
<setting setting="g_timelimit 0"/>
<setting setting="g_scorelimit 400"/>
</level>
</levelRotation>
Note: After having the .xml file edited please be sure to do a final check to avoid editing errors. The easiest way to check this is to load the .xml file in the Internet Explorer since it gives out errors if the format is wrong. If you set specific gameplay settings to one level only inside the “levelrotation.xml” these settings overwrite the default settings in the “server.cfg” once this level has been loaded by the server. This means that all upcoming levels in this rotation do run the altered settings and not the default settings in the “server.cfg” file.
Set IP and Port
In order to set a specific IP and Port for your server open up the “server.cfg” that can be found inside the root folder of your Crysis installation. Add following commands: sv_bind <IP Address> sv_port <Game Port> (default is 64100)
Set Up Automatic Map Downloader
The following instruction will explain how to set up the automatic map downloader for the Crysis Wars server. This will allow players who connect to the server to download the currently running map automatically in the case they do not have it.
- Package the map in a zip file, so that when extracted into the Levels folder the level is in the correct place.
For example: For Shore (in the location Levels/Multiplayer/PS/Shore), it must be placed in a zip file containing a Multiplayer folder, containing a PS folder, containing the Shore folder itself. This is because assets in the level (such as solids) are loaded using filenames relative to the Levels folder, so the location of level.pak must be consistent.
- The zip file should be placed on an http server, and the address noted.
- In the server, the cvar 'net_mapDownloadURL' should be set for each level to the http address of the zip file for that level. This is probably best done in the „levelrotation.xml” file, and looks like following:
<levelRotation randomize="0">
<level name="multiplayer/ps/shore" gameRules="PowerStruggle">
<setting setting="g_timelimit = 60"/>
<setting setting="net_mapDownloadURL http://www.server.com/filename.zip"/>
</level>
</levelRotation>
The "net_mapDownloadURL" cvar is reset on going to the next level in the rotation, so only applies to one level.
Restrict Items and Weapons
Generally, every item type is allowed in the list, with only a couple (Fists, for instance) not allowed. The console variable "i_restrictItems" can be set to a string containing weapon names, equipment names, and vehicle names.
Any item names in this list will not be available in MP, either to buy in PowerStruggle or as placed pickups in IA and TIA. Named vehicles will not be available to buy in PowerStruggle, but if placed in levels by designers will still be present.
Item names should be seperated by commas, semicolons or spaces. The order of items is not important, though the entries are case sensitive. The following examples are all equivalent and prevent players from using the flashbang, SCAR or FY71:
i_restrictItems = "flashbang,SCAR,FY71"
i_restrictItems = "flashbang SCAR FY71"
i_restrictItems = "flashbang; SCAR;;;;FY71"
The following is a list of names to use with this command (should be entered exactly as listed):
| Grenades |
| flashbang |
| smokegrenade |
| explosivegrenade |
| empgrenade |
|
| Explosives |
| Claymore |
| AVMine |
| C4 |
| LAW |
|
| Weapons |
| SOCOM |
| SMG |
| Shotgun |
| FY71 |
| SCAR |
| DSG1 |
| GaussRifle |
| AY69 |
| FGL40 |
|
| Equipment |
| Binoculars |
| NightVision |
| Parachute |
| LockpickKit |
| RepairKit |
| RadarKit |
|
| Accessoires |
| SOCOMSilencer |
| Silencer (other weapons) |
| LAM (for SOCOM) |
| LAMRifle (other weapons) |
| Reflex (Reflex Sight) |
| AssaultScope |
| SniperScope |
| GrenadeLauncher |
|
| Prototypes |
| AlienMount |
| MOARAttach |
| Hurricane |
| TACGun |
|
| Vehicles (only applies to bought vehicles) |
| us4wd (armed LTV) |
| usgauss4wd (Gauss Rifle LTV) |
| ussupplytruck (Spawn Truck) |
| usboat (Small Boat) |
| nkboat (Patrol Boat) |
| nkgaussboat (Gauss Rifle Patrol Boat |
| ushovercraft (Hovercraft) |
| nkaaa (AAA) |
| usasv (ASV) |
| usapc (ICV) |
| nkapc (Amphibious APC) |
| nktank (Light Tank) |
| ustank (Battle Tank) |
| usgausstank (Gauss Tank) |
| nkhelicopter (Helicopter) |
| usvtol (VTOL) |
| nktactank (Light TAC Tank) |
| ustactank (Heavy TAC Tank) |
|
| Ammo (prevents players buying extra ammo once they have the weapon/vehicle) |
| bullet (for SCAR, and various vehicle- based coax guns / shiten) |
| fybullet (for FY71) |
| shotgunshell |
| smgbullet |
| lightbullet (for SOCOM) |
| aybullet |
| sniperbullet |
| scargrenade |
| hurricanebullet |
| claymoreexplosive |
| avexplosive |
| c4explosive |
| tank_singularityprojectile |
| towmissile (for APC) |
| dumbaamissile (for AAA) |
| tank125 (for light and battle tanks) |
| helicoptermissile |
| tank30 (APC Cannon) |
| tankaa (AAA Cannon) |
| a2ahomingmissile (for VTOL) |
| gausstankbullet |
| tacgunprojectile |
| tacprojectile |
| fgl40fraggrenade |
| fgl40empgrenade |
|
Notes:
- Restricting access to the SOCOM means players start unarmed
- In PowerStruggle at least one of the end-game weapons should be left available
- Restrictions aren´t communicated to the players (though the buy menu items remain greyed out at all times).
- i_giveitem still works despite the restrictions (though this is dev-mode only)
- Restricting ammo buying only affects extra ammo, though - you still get the ammo in the weapon when you buy it/ pick it up. Only works in PS, though; ammo pickups are different in IA/TIA.
Set Up RCon
Crysis Wars offers multiple ways to administrate a server. The most common one is to login to the ingame RCon system and administrate via the console. Additionally there is also a way to do this from external which does not require Crysis Wars to be started.
InGame RCon
To provide remote control for the server the “autoexec.cfg” needs to be updated. The file can be found in the Crysis Wars root folder. If it does not exist please create the file.
- Be sure following cvar is added properly:
rcon_startserver [port:] [pass:]
- If hosting only one dedicated server the RCon port does not need to be set and can be removed from the command line.
For example: rcon_startserver pass:
- Running several game server on the same machine requires each of them to use a different RCon port (e.g. can be similar to the game port of each instance for easier administration).
- RCon occupies TCP ports, so it is not linked to the game port you can set via sv_port in the "server.cfg" which occupies UDP ports.
- To stop the service simply type in following command into the server window:
rcon_stopserver (to stop the whole service again)
External RCon (HTTP/XMLRPC)
This set up is recommended when you want to administrate a server from external. It is not needed to be ingame and administration can be done via the Windows command line application.
To set up RCon for your server the “autoexec.cfg” needs to be updated. The file can be found in the Crysis Wars root folder. Please be sure following cvars are added properly and in the correct order:
| http_password password |
(replace "password" with a password that should be used when logging into the server via the remote control |
| http_startserver [port:<port>] |
(starts the remote control on this server) |
Using RCon
Above you have been told how to set up the two provided RCon variations. Below you will find the necessary information on how to use both.
Ingame RCon
To make use of the RCon functionality ingame you would need to follow the steps mentioned below. Once this has been accomplished you are able to administrate the server via ingame console commands. Start Crysis Wars, open console by pressing ~ or ^ (key next to 1) and type in following commands:
- con_restricted 0 (to allow console commands)
- rcon_connect [addr:] [port:] [pass:]
If no port has been defined the “port:” command can be left out when logging in.
For example: rcon_connect addr: pass:
- rcon_command (to use commands like status, sv_gamerules, etc.)
- rcon_disconnect (to end remote control on this server)
External HTTP/XMLRPC RCon
To make use of the external RCon functionality you would need to follow the steps mentioned below. Once this has been accomplished you are able to administrate the server via the Windows command line application.
- Installing Java
Please ensure you have installed the latest Java Runtime Environment (JRE) (http://java.sun.com/javase/downloads/index.jsp) on your system.
Make sure you can run “java” from any directory in the Windows command prompt (this should be done by the JRE installation after you restart Windows).
- Starting Remote Control
In the Windows command prompt, move to the folder inside the Crysis Wars root folder where the RCon system has been extracted to. (e.g. “C:\Program Files\Crytek\Crysis Wars\CrysisRcon\”).
Once there you need to have following basic command structure to successfully execute a server command:
java –jar CrysisRcon.jar
For example:
java –jar CrysisRcon.jar 192.168.0.1 password sv_gamerules PowerStruggle
java –jar CrysisRcon.jar 192.168.0.1 password map shore
Anti-Cheat Protection (top)
Crysis Wars offers two anti-cheat solutions to be used on the server. It is recommended to enable both in order to have the highest possible cheat protection for online gaming.
Punkbuster
Installing Punkbuster
With the installation of Crysis Wars on your system Punkbuster gets installed automatically as well. Be sure that you also have the “CrysisWars_Dedicated_Server_Package.exe” extracted into your Crysis Wars root folder as well since it includes a complete updated Punkbuster folder.
You can find the self-extracting file on www.mycrysis.com in the downloads section.
Next to the basic Punkbuster binaries it includes the various Punkbuster related .CFG files with the latest anti-cheat settings. They are optimized to work in conjunction with Crytek’s internal anti-cheat solution.
Initializing Punkbuster
To enable Punkbuster support for the server, open the “server.cfg” that can be found in your Crysis Wars root folder and make sure following command is set:
net_pb_sv_enable true (false turns the PB protection off)
Updating Punkbuster
Punkbuster usually updates itself. To ensure the latest PB files have been applied to the server you can runt he following command in the command line noce the server has started:
pb_sv_update
Note: A server restart is required after this command has been executed to allow the server starting again with the up-to-date Punkbuster files.
Additionally, if you want to look for the latest PB updates for Crysis Wars please check out www.evenbalance.com or download the “PBSetup.exe” file from this and let it updated your Punkbuster automatically.
PBSetup.exe URL: http://www.evenbalance.com/index.php?page=pbsetup.php
Crysis Internal Anti Cheat Solution
Introduction
The internal system compares certain files on the client to those on the server, and disconnects client players who have modified these files. The default file checklist should be sufficient to disconnect potential cheaters using a relatively clean installation of Crysis Wars with no modifications.
However, users who modify the game (either as full client-installed mods, or server-side script tweaks) may need to alter the checklist to provide full cheat protection without erroneously disconnecting non-cheating players. This document is a tutorial on how to modify the cheat protection file list for common situations.
Modifying Game Files
Any modification made to a game file which appears in the file check list will result in clients being kicked if they don't also have the modified file. So, in the case of a server-side mod the changed files must be removed from the file check list.
Note that changing the contents of game .pak files is not recommended, as the .pak file itself would have to be excluded from checks. A better method is to copy the files to be modified into a new .pak file and edit them there.
Cheat Protection Setup: Protect.xml
The cheat protection file list is based on the file “Game/Scripts/Network/Protect.xml” (found inside GameData.pak). Again, this file should not be modified directly as this would result in GameData.pak changing. Rather, a copy of this file can be placed outside the .pak (as Game/Protect.xml), and this version will also be loaded by the game.
| Example basic "Protect.xml" file: |
|
<protect override="0">
<add level="1" folder="Game/Shaders" recurse="1"/>
<exclude level="1" wildcard="*.txt"/>
</protect> |
The <protect></protect> tags mark the start and end of the file, and must be present. Within these tags can be any number of <add> or <exclude> tags.
Override: if set (1), this file will be used instead of the version found in GameData.pak. If 0, the contents of this file will be used in addition to the version in GameData.pak.
<add> allows you to specify files or folders to check, so in the example above the Shaders folder and its contents will be checked to ensure all players have the same version of the file. You can also specify filenames directly; in this case the recurse parameter is not needed.
<exclude> specifies files that should never be checked; this might include logfiles, files that the editor might modify under normal conditions, or simply files that are unlikely to be modified for cheating purposes (music, for example). Excluding these files helps speed up the checking process and will detect cheating players quicker. In the example above all .txt files are ignored, even if they are included by previous steps (so for instance Game/Shaders/test.txt would not be checked). You can also use 'file' or 'folder' here, as in the section.
The 'level' attribute specifies the minimum value of sv_cheatprotection at which each check is done. So you may wish to check script files at level 1, with less important files only being checked at higher values of sv_cheatprotection. All checks performed at level 1 are also performed at higher levels.
Example 1: Server Side Modification
As a simple example, a server admin may wish to alter the purchase prices for some items in Power Struggle to tweak the game balance on their server. These values are contained in GameData.pak, in Game/Scripts/GameRules/PowerStruggleBuying.lua, a file which is checked by the default cheat protection at sv_cheatprotection 1 or higher.
Rather than editing the file directly, make a copy and add it to a new pak file ZMod.pak, ensuring that the folder structure remains the same. This file can then be edited. The following Protect.xml file, when placed in the Game folder, will prevent players from being disconnected due to this change:
| Code: |
|
<protect override="0">
<exclude level="1" file="Game/Scripts/GameRules/PowerStruggleBuying.lua"/>
</protect>
|
Example 2: Full Modification (distributed and installed on client's machines)
By default, the current modification folder is checked in addition to the game's own files. So it checks the GameData.pak file and the Game/Scripts/ folder will check the following files if TestMod is loaded:
Game/GameData.pak
Game/Scripts/*.* (within the above GameData.pak file)
Mods/TestMod/Ga me/GameData.pak (if it exists)
Game/Scripts/*.* (within the mod's GameData.pak file, if it exists)
In most cases it will therefore not be necessary to modify “Protect.xml”.
Testing
If a client is disconnected due to a file check failing, a message similar to the following will appear in the server log:
| Code: |
|
[net 11:11:29.596] Client hash mismatch from <user-ip> (profileid=0); file was game/objects/characters/human/us/nanosuit/nanosuit_helm_mask.mtl
[net 11:11:29.596] Disconnect <user-ip>; profid=0; cause=16; msg='Server probe hash mismatch (probable cheat)'
|
The server admin can therefore determine whether the disconnect was valid. In the case of an invalid disconnection (for instance, differences in a file which does not affect the game, or is allowed to be different on clients' machines, such as some config files), this file can then be excluded in “Protect.xml” to prevent the disconnection from happening again.
|