In-depth guide for managing your Dinogen Online multiplayer server.

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 Management

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:

npm start

PM2

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/

Install PM2:

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

Configuration

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.

nameServer name
country2-letter country code, useful if hosting the server externally
portPort to run the server on (default 9000)
adminsArray of usernames for admin access
bannedArray of usernames or Steam IDs to ban from the server
maxPlayersMaximum players that can connect simultaneously
welcomeWelcome message to display when a player connects
rulesServer rules
infoArray of messages to randomly display to players in game
bPersistentStatsIf true, server stats will be saved to a file
bAllowVotekickEnable votekick for public lobbies
bAllowVoteskipEnable voteskip for public lobbies
bAllowVotesEnable map voting for public lobbies
bDisableDummiesDisable multiplayer bots
bDisableCustomLobbiesDisable the ability to create custom lobbies
bSingleGameLimit the server to a single concurrent game
publicLobbiesArray of public lobby types to create on startup

bPublicLobbies

Array of public lobby types to create when the server is started.

Acceptable lobby types:

all
standard
survival
scenario

bPersistentStats

If enabled, server stats will be saved to stats.json in the root directory.

bDisableCustomLobbies

If enabled, players will not be able to create custom games. Players will only be able to join public lobbies.

bSingleGame

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.

singleGameData

Only used when bSingleGame is enabled. You can configure additional game settings for the single active lobby.

lobbyTypePublic lobby type to use
scenarioSpecifies a scenario file to use (root directory)

Server URL

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.

Setup SSL

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

Install nginx (web server) on your server:

sudo apt install nginx

Install Certbot

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

Assets

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.