Modding
Create your own server
Your Colony, your rules. Gothic MP servers are scripted in Lua - from quests and events to a custom economy - and the full scripting API lives on our wiki.
Scripting
All the logic in Lua
A simple language with serious power. You write plain .lua files and the server loads them on startup - no compilation, no toolchain. A text editor is all you need.
- The full scripting API documented on our wiki
- Hot-reload - script changes without a server restart
- Events, commands, quests, NPCs and a custom economy
- Starter scripts included in the server package
-- scripts/main.lua
local gmp = require("gmp")
gmp.on("playerJoin", function(player)
gmp.chat.broadcast(player:getName() .. " entered the Colony")
player:teleport(gmp.spawn.OLD_CAMP)
end)
gmp.command.register("ore", function(player)
player:giveItem("ItMi_Nugget", 10)
player:message("The Ore Barons are watching...")
end)From zero to your own Colony
Four steps stand between you and a server other players will join.
Get the server package
Server binary, sample configuration and starter scripts in one archive.
Script your world
Open the scripts/ folder and write Lua. The API docs on the wiki walk you through it.
Deploy to a VPS
Rent a cheap VPS, upload the package and open a port - it starts with one command.
Get on the list
Enable announcing in the config and the server reports itself to the public list.
Deploying to a VPS
- 01Rent a Linux VPS - 2 vCPU and 4 GB RAM are plenty to start
- 02Upload the server package (e.g. via SFTP) and unpack it
- 03Open port 28770 (TCP/UDP) in the firewall
- 04Fill in config.lua: name, mode, slots, language
- 05Start ./gmp-server and keep it running (systemd or screen)
Showing up on the server list
- Set announce = true in config.lua
- The server reports to the master server every few minutes
- Name, mode, language and player count appear on the list automatically
- During the alpha, also submit your server on Discord to get a verified badge
Do Lua scripts need to be compiled?
No. Lua is an interpreted language - the server reads .lua files directly on startup and swaps them live (hot-reload). You don't need a compiler or any toolchain; any text editor will do.
