Project Cars Dedicated Server Howto (The Howto is WIP)
About the DS:
The Project Cars Dedicated Server is not a standalone server where you select car and track directly in the dedicated server configuration.
It is a rebroadcaster, collecting information from each player and sends the information to the other players.
This reduces network load of each client drastically and helps reducing lags and adds stability.
The server is working but more features will be added.
Requirements:
Most important is a good internet connection with a low latency (ping) and a high bandwidth, especially a high upload speed.
Minimum Network upload bandwidth you need depending on player count, but mind that the latency can drastically rise, if you are at the limit of your connection:
Players
Download (MBit/s) Upload (MBit/s) Comment 10 0.3 1 16 0.5 3 24 0.8 7 32 1 12 48 1.5 25 not supported by the game at the moment 64 2 45 not supported by the game at the moment
On the hardware side (CPU, RAM) the requirements are not very high at the moment.
Install and Update DS:
AppId: 332670
You can download "Project CARS - Dedicated Server" from Steam in the Library-Tools category, or via SteamCMD. Infos about SteamCMD here.
Steam Library tools:
After installation the DS should be in this folder:
{yourSteamLibraryfolder}\steamapps\common\Project CARS Dedicated Server
Steamcmd (Linux):
Switch to the steamcmd directory and run (maybe change "./pcars_ds" to the directory of your liking):
./steamcmd.sh +login anonymous +force_install_dir ./pcars_ds +app_update 332670 validate +exit
Steamcmd (Windows): TODO
Configuration:
Switch to your DS installation directory and copy the server.cfg from config_sample folder to the DS installation directory.
optional: With blacklist and whitelist: copy the blacklist.cfg whitelist.cfg to your DS installation directory. Also copy the server_with_lists.cfg and rename it to server.cfg.
Also, the server can now run from different config file than server.cfg in the current folder.
Use -c (or --conf or --config) command-line option to tell it a non-default location of the config file.
The server provides cmdline help automatically if you run it with -h (or --help). There are no other command-line options available yet.
To quickly run/test a server you only have to change the name.
The password you can set will be needed to create and to join the dedicated server. You can't change this password when hosting the session ingame (it will be ignored).
You should also set the maximum player count to a number your internet connection supports. See 'Requirements'.
The ports selected in the configuration file must be accessable from the internet.
Configure your firewalls or routers if needed.
Settings of config file (server.cfg):
Setting Description
values
default values comment loglevel logging level of the server. Messages of this severity and more important will be logged. debug/info/warning/error "info" eventsLogSize number of gameplay events stored on the server. Oldest ones will be discarded once the game logs more. Number 10000 name the server's name, this will appear in server browser (when implemented) and will be also the default name of sessions hosted on the server. Text "Unconfigured local testing server" secure authenticate users with Steam to check VAC ban when set to true. true/false true password password required to create sessions on the server as well as to join the sessions. The password set in Create options (ingame) is ignored on DS. Text "" maxPlayerCount maximum player count that can connect to this server at the same time. Number 64 bindIP IP address of network interface, where the server's sockets should be bound. Leave empty for 'all interfaces'. Text (IP address) "" steamPort Port used to communicate with Steam and game, they must all be accessible on the public IP of the server. Number 8766 hostPort Port used to communicate with Steam and game, they must all be accessible on the public IP of the server. Number 27015 queryPort Port used to communicate with Steam and game, they must all be accessible on the public IP of the server. Number 27016 sleepWaiting delay between ticks in milliseconds, when in idle mode (no one joined) Number 250 sleepActive delay between ticks in milliseconds, when active (players on server) Number 10 lower values could reduce latency, but will increase CPU load HTTP API enableHttpApi enable/disable HTTP API true/false false warning: not secured, so don't make this accessable to the public httpApiLogLevel logLevel http-access. Note that all logging still goes through the main filter (loglevel), so you won't be able to use more verbose logging here than the main level debug/info/warning/error "warning" httpApiInterface IP address of network interface,where to bind the local http server providing the API and web-based controls Text (IP address) "127.0.0.1" default: only localhost
"0.0.0.0": any interfacehttpApiPort port where the local http server listens Number 9000 game setup control options allowEmptyJoin set to true to make this server show up in the browser even if it's empty true/false true controlGameSetup set to true to enable API that allows the server to control the game's setup. The host will not be able to control the setup if this is set. true/false false sessionAttributes (work in progress)
ServerControlsTrack ServerControlsVehicle GridSize 1-32 32 MaxPlayers Practice1Length Practice2Length
Running the DS:
The DS only has a commandline version until now and cannot run directly from steam.
Linux:
Switch to your DS installation directory and run:
./DedicatedServerCmd
Windows:
Switch to your DS installation directory and start DedicatedServerCmd.exe
Using DS:
The dedicated server will not automatically be shown in the Multiplayer browser list.
To use the DS you have to host a Multiplayer session ingame the same way how you would host a session without DS.
To select a server, the session host has to add a command line argument (or Launch option) to Project Cars in Steam. Howto add command line option to steam games: https://steamcommunity.com/sharedfil.../?id=116794507
Possible commandline options
Searching for dedicated server by name: -searchds "Servername" (or a part of the name)
Searching for a free dedicated server: -autods
Example:
Your servername is: "My super DS #1"
Launch option: -searchds "My super DS #1" or -searchds "My super DS"
Other players can join the game like in a normal multiplayer session.
They don't need to add the command line argument.
HTTP API:
You can inform yourself here: http://forum.projectcarsgame.com/sho...ted-Server-API
(I had no time to read it until now)
Troubleshooting:
Additional Tools: (from community)
Windows DS Configuration GUI: http://forum.projectcarsgame.com/sho...figuration-0-1
Windows DS GUI Launcher, with “live timing“ (results, timetable): http://forum.projectcarsgame.com/showthread.php?31634-Project-Cars-Dedicated-Server-GUI-Launcher-with-%93live-timing%93-%28results-timetable%29
Windows DS Configurator GUI (incl. patch 3.0): http://forum.projectcarsgame.com/sho...0-51-Patch-3-0
If you created a tool related to the DS, please contact me and I will add it here
FAQ:
Why can't I configure cars and tracklist in the dedicated server?
- The Project Cars DS works as rebroadcaster only at the moment. He collects information from each driver and sends it to all other drivers. Someone must host a session ingame, descriped in 'Using DS'.
Is the DS working and finished?
- The DS is working and ready to use. Additional features will be added.
I have selected 64 players, but I can only host sessions with max 32 players!?
- The dedicated server supports up to 64 players, but the game itself only supports 32 players in Multiplayer at the moment.
I started my DS, but it is not shown in the DS browser (steam)!?
- It can take some minutes after starting the ts, until your server will be shown in the DS browser.
If I want to set-up a dedicated server, shall I own the game? Or the dedicated server app is free?
- You do not need to own the game. But you need the game to play on it
Feel free to add ideas, correct me and find typos![]()