IMIsle Modkit
Pages in this area

server.cfg

server.cfg sits next to IsleModkitServer.exe. The runner creates it with default values on the first start. One setting per line, key first, then the value. Lines that start with # are comments.

sv_hostname My Modded Server
sv_maxplayers 40
sv_map Gateway
sv_port 7777
sv_publicip 203.0.113.10
sv_gamedir C:\isle-modded-server
sv_admins 76561198000000001,76561198000000002
sets Discord "discord.gg/yourserver"
set discord_webhook https://discord.com/api/webhooks/...
load skins
load myresource

The list below comes from server-runner/src/main.cpp.

Keys

Key Default Meaning
sv_hostname Isle Modkit Server Server name. Goes into Game.ini as ServerName and into the launcher list.
sv_maxplayers 20 Player slots.
sv_map Gateway Map name. The runner builds the map URL /Game/TheIsle/Maps/Game/<map>/<map>.
sv_port 7777 Game port. The runner also sets PeerPort to this value plus one and QueryPort to the same value.
sv_httpport 30120 HTTP port of the server plugin. Serves resource files and the client-mods folder.
sv_scriptport 30122 TCP port of the script link between client mods and the server.
sv_publicip 127.0.0.1 Address that goes into the server list entry and into the mod download URLs.
sv_category community Category shown in the launcher (official or community).
sv_gamedir C:\isle-modded-server Folder of the dedicated server install.
sv_steamcmd C:\steamcmd\steamcmd.exe Path to steamcmd. Used by the update command, by sv_autoupdate and when the server exe is missing.
sv_autoupdate 0 1 runs steamcmd before every server start.
sv_humans 0 1 writes bEnableHumans=true into Game.ini.
sv_publiclist 0 0 keeps the server out of the public EOS server list. 1 lets the game create its session.
sv_requirelauncher 1 1 kicks every client that has no script link 90 seconds after it entered the game, and every player whose script link stays down for 45 seconds. 0 lets plain game clients play, for local debugging. Read by the server plugin.
sv_admins empty Steam IDs separated by commas. They become game admins (AdminsSteamIDs in Game.ini) and script admins (player.admin, admin-only commands).
sv_rconpassword changeme RCON password written into Game.ini. Change it.
sv_rconport 8888 RCON port written into Game.ini.
sv_eosclientid, sv_eosclientsecret built in EOS credentials of the dedicated server. The defaults work, leave them alone unless they change.
sets <name> "<text>" none Extra info lines for the server entry in the launcher, for example Discord, rules or tags. Up to 24 entries, names up to 32 characters, text up to 200.
set <name> <value> none A value for your scripts, read with modkit.config.get. The runner ignores the line. Use it for things like a Discord webhook URL.
load <resource> none Starts the resource folder resources\<resource>. One line per resource. Load order is the order of the lines.

The launcher is required

Every player joins with the launcher. A client without it is kicked with a message that says the server requires the Isle Modkit launcher and where to get it. A player who loses the script link and does not get it back is kicked with "Lost the connection to the Isle Modkit launcher." Scripts receive playerRejected with the reason "launcher" for both.

With sv_requirelauncher 0 nobody is kicked for a missing script link. Players without it are then visible to scripts with player.linked == false, player:call does nothing for them and they have no client scripts. Use it on a test server only.

Keep the script and HTTP ports

The client mod connects to the script link on port 30122 and downloads resources from port 30120. Both numbers are fixed in the client mod. If you change sv_scriptport or sv_httpport, client scripts stop working for every player. Content mod downloads are different. The launcher takes their URLs from the server list entry, and the runner writes sv_httpport into that entry.

Firewall

Open sv_port (UDP, plus the next port), sv_httpport (TCP) and sv_scriptport (TCP).

What the runner writes for you

The runner always writes EnableAntiCheat=False into Engine.ini. A client without EAC can not answer the anti-cheat challenge, so a server with EAC on would drop every launcher player after 60 seconds.

It also enables RCON, dynamic weather, migration, diets and mutations, sets GrowthMultiplier=1 and writes a fixed list of allowed species. These values are fixed in the runner source.

Runner console commands

Command Effect
status players, script links and loaded resources (asks the plugin at http://127.0.0.1:<httpport>/status)
mods read the mod folders again
restart stop and start the game server
stop, start stop or start the game server
update stop, run steamcmd on branch evrima, start
new resource <name> create a resource from the template and add load <name>
new skins create the skins resource and add load skins
quit close the runner and the game server

Resources load once when the game server starts. After you change a script, use restart.