You should have the ability to host and run a Dinogen Online multiplayer server.
Read the custom server guide for more details: https://dinogenonline.com/multiplayer-server-guide/
Server side updates are frequently released. Each time you start the multiplayer server, make sure you’re using the latest version. You’ll need to restart the server in order for changes to take effect.
If you are using the Dinogen Online Multiplayer Server tool on Steam, server files are automatically updated. If you are using the server repository, read more.
To update the server code to the latest version:
git pull npm install
Then start the server again:
It’s useful to automatically restart the server in the event it stops for any reason. Using PM2 handles this, ensuring the server remains online until you explicitly stop it. This is particularly useful if you are hosting on an external service.
Learn more about PM2: https://pm2.keymetrics.io/
npm install pm2 -g
Start the server with PM2:
pm2 start server.js --name dinogen-online
PM2 also provides some useful commands:
pm2 list pm2 logs pm2 monitor
In most cases, the default server setup will be sufficient.
However, you can configure server settings by modifying the settings.json file in the root directory.
|country||2-letter country code, useful if hosting the server externally|
|port||Port to run the server on (default 9000)|
|admins||Array of usernames for admin access|
|banned||Array of usernames or Steam IDs to ban from the server|
|maxPlayers||Maximum players that can connect simultaneously|
|welcome||Welcome message to display when a player connects|
|info||Array of messages to randomly display to players in game|
|bPersistentStats||If true, server stats will be saved to a file|
|bAllowVotekick||Enable votekick for public lobbies|
|bAllowVoteskip||Enable voteskip for public lobbies|
|bAllowVotes||Enable map voting for public lobbies|
|bDisableDummies||Disable multiplayer bots|
|bDisableCustomLobbies||Disable the ability to create custom lobbies|
|bSingleGame||Limit the server to a single concurrent game|
|publicLobbies||Array of public lobby types to create on startup|
Array of public lobby types to create when the server is started.
Acceptable lobby types:
all standard survival scenario
If enabled, server stats will be saved to stats.json in the root directory.
If enabled, players will not be able to create custom games. Players will only be able to join public lobbies.
If enabled, the server will be limited to a single active lobby. This can be useful for “24/7” style servers. The lobby player limit will use the defined maxPlayers value. When players join the server, they will immediately join this lobby.
See singleGameData for more info.
Only used when bSingleGame is enabled. You can configure additional game settings for the single active lobby.
|lobbyType||Public lobby type to use|
|scenario||Specifies a scenario file to use (root directory)|
It’s recommended to have your server accessible by a URL.
Your server will be accessible by IP address for most players. However, web players will not be able to connect to an IP address directly. This is because the game on web is loaded over HTTPS (secure) and typically the IP address will not be secure.
Depending on where you are hosting your server, you may already be provided with a secure URL. Otherwise follow the steps below.
You will need your server IP address and access to a domain name or purchase a new one. You can use Namecheap for this.
This example will use Ubuntu and the server URL of dinogen-server.wilkingames.net.
Create Domain Record
Create a new A Record on your domain:
Type: A Record Hostname: dinogen-server.wilkingames.net Value: <Your server IP>
Install nginx (web server) on your server:
sudo apt install nginx
Certbot is a free open-source tool that enables HTTPS.
sudo apt install certbot python3-certbot-nginx
Enable HTTPS on your server:
sudo certbot --nginx -d dinogen-server.wilkingames.net
You can modify game files (such as weapon and dinosaur stats) in the assets/json directory. Generally this is not recommended since it can disrupt the balance of the game, and negatively impact existing custom scenarios that are played on your server. Instead, use the Scenario Editor to make these changes.