What Isle Modkit is
Isle Modkit lets you run a modded server for The Isle (Evrima) and script it in Lua. The model follows FiveM. The server owns the resources. Players only need the launcher.
It works without the Unreal Editor as long as you only script. New models, animations or species still need cooked game content (.pak, .utoc, .ucas).
The parts
| Part | File | What it does |
|---|---|---|
| Server runner | server-runner\IsleModkitServer.exe |
Reads server.cfg, writes Game.ini and Engine.ini, copies content mods, starts the dedicated server, injects the server plugin and shows the game log. |
| Server plugin | server-plugin\build\isle-modkit-server.dll |
Runs inside the dedicated server. Hosts the server Lua scripts, gives them access to players, skins, chat and the world, serves resource files over HTTP and keeps the script link to the clients. |
| Server proxy | winhttp.dll next to the server exe |
Turns off the pak signature check on the server so unsigned content mods mount. Can keep the server out of the public EOS list. |
| Launcher | launcher\IsleModkit.exe |
The player's server browser. Builds a copy of the game without EAC, downloads the content mods of the chosen server, starts the game and injects the client mod. |
| Client mod | mod-plugin\build\isle-modkit-mod.dll |
Runs inside the player's game. Connects to the server, downloads the resources, runs the client Lua scripts and draws the UI pages. |
| Server Tool | server-tool\IsleModkitServerTool.exe |
Owner GUI for server.cfg, resources, the skin editor, custom AI, custom species and Dino Studio. See the server owner guide. |
What happens when a player joins
- The player picks your server in the launcher.
- The launcher prepares its game copy, downloads the files from your
client-modsfolder and checks their SHA-256 hashes. - The launcher starts the game without EAC and injects the client mod. The mod connects the game to your server.
- After the game join the client mod opens the script link to your server and downloads the resource files. They stay in memory.
- The client scripts start. They receive
onClientReadyandonServerConnected. The server scripts receiveplayerJoined.
Server scripts see a player from step 4 on. When the script link opens, playerConnected fires, then playerSpawned when the player already controls a dinosaur, then playerJoined. Before that the player is not in modkit.players and no event fires for them.
Every player joins with the launcher
The launcher signs the player in with Steam through islemodkit.com. The server checks that sign-in when the client connects and refuses a client without it. Content mods from client-mods are handed out only to signed-in launchers.
A client that has no script link 90 seconds after it entered the game is kicked, with a message that names the launcher and where to get it. A player whose script link drops has 45 seconds to get it back and is kicked after that. Both kicks fire playerRejected with the reason "launcher".
Every player your scripts see runs the client mod, so client scripts and UI pages reach all of them.
For local debugging with a plain game client, set sv_requirelauncher 0 in server.cfg.
Threading
Server scripts run on the game thread of the dedicated server, roughly every 25 ms. Client scripts run on the game thread of the client, roughly every 200 ms. A slow script slows the whole game down. Keep handlers short and split long work with timers.