Use this checklist to ensure your multi-server worldgate network is configured correctly.
Player inventories do NOT transfer between servers. When players use a worldgate to transfer:
- ✅ Player account/authentication transfers
- ❌ All items in inventory are lost
- ❌ Armor and wielded items are lost
This is a technical limitation as servers may run different games/mods. Configure your gameplay expectations accordingly!
- I have 2 or more Minetest/Luanti servers ready
- I have admin privileges on all servers
- I understand I need PostgreSQL for multi-server setup
- I've read POSTGRESQL_SETUP.md (if new to databases)
- I understand that player inventories will NOT transfer between servers
- PostgreSQL is installed
- Database
worldgateexists - Database user
worldgateexists with a strong password - User has permissions on the
worldgatedatabase - Tables created successfully from
database_schema.sql - I can connect manually:
psql -U worldgate -d worldgate
Test Command:
psql -U worldgate -d worldgate -c "\dt"Expected Output:
+--------------------+
| Tables_in_worldgate|
+--------------------+
| servers |
| transfer_logs |
| worldgates |
+--------------------+
- Worldgate mod installed in mods folder
- PostgreSQL backend configured in world.mt
-
world.mtorminetest.confconfigured with:-
servergate.server_name= Unique name -
servergate.server_url= Full connection URL -
servergate.db_host= Database IP/hostname -
servergate.db_port= 5432 (or custom port) -
servergate.db_name= worldgate -
servergate.db_user= worldgate -
servergate.db_password= Your password
-
- Server starts without errors
- Checked
debug.txtfor worldgate errors - Server registered with
/worldgate_register_server - Server ID saved (looks like:
abc123-def456-...)
Test Command (in-game as admin):
/worldgate_register_server
Expected Output:
Server registered with ID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- Worldgate mod installed in mods folder
- PostgreSQL backend configured in world.mt
-
world.mtorminetest.confconfigured with:-
servergate.server_name= Different unique name -
servergate.server_url= Different connection URL -
servergate.db_host= Same database IP as Server 1 -
servergate.db_port= Same database port -
servergate.db_name= Same database name -
servergate.db_user= Same database user -
servergate.db_password= Same database password
-
- Server starts without errors
- Checked
debug.txtfor worldgate errors - Server registered with
/worldgate_register_server - Server ID saved (should be different from Server 1)
Repeat Server 2 checklist for each additional server:
- Unique
server_name - Unique
server_url - Same database credentials as other servers
- Registered successfully
- Unique server ID
- Located a worldgate beacon on Server 1 (red glowing block)
- Noted its position coordinates (x, y, z)
- Located a worldgate beacon on Server 2
- Noted its gate ID from database or in-game
- Used admin command to link gates
- Verified link in database
Example Link Command:
-- From Server 1's console or chat (if admin)
servergate.link_gates_manual(
{x=100, y=50, z=200}, -- Server 1 beacon position
"destination-gate-id", -- Server 2 gate ID
"destination-server-id" -- Server 2 server ID
)Verify in Database:
psql -U worldgate -d worldgate -c "SELECT id, destination_gate_id, destination_server_id FROM worldgates WHERE destination_gate_id IS NOT NULL;"- Right-clicked a linked servergate beacon
- Transfer screen appeared with portal image
- Destination server name displayed correctly
- Destination server URL shown
- Chat messages received with transfer instructions
- Successfully disconnected from Server 1
- Successfully reconnected to Server 2 using provided URL
- Transfer logged in
transfer_logstable
Verify Transfer Log:
psql -U worldgate -d worldgate -c "SELECT * FROM transfer_logs ORDER BY transfer_time DESC LIMIT 5;"- Downloaded or created portal/tunnel themed image
- Renamed image to
worldgate_transfer.png - Placed in
mods/worldgate/textures/directory - Restarted servers
- Transfer screen now shows custom background
File Path Should Be:
mods/worldgate/textures/worldgate_transfer.png
See TRANSFER_SCREEN.md for details.
If something isn't working, check these common issues:
Symptoms:
- Errors in
debug.txtabout PostgreSQL - Gates not appearing in database
- Registration fails
Solutions:
- Verify PostgreSQL is running:
sudo systemctl status postgresql - Test connection manually:
psql -U worldgate -d worldgate - Check firewall isn't blocking port 5432
- Verify credentials in
world.mtmatch database user - Check
servergate.db_hostis correct (uselocalhostif same machine)
Symptoms:
/worldgate_register_serverreturns error- Server doesn't appear in
serverstable
Solutions:
- Check database connection (see above)
- Verify
servergate.server_nameandservergate.server_urlare set - Check for errors in
debug.txt - Try restarting the server
Symptoms:
- Link command seems to work but nothing happens
- Right-clicking beacon shows no destination
Solutions:
- Verify both gates exist in database
- Verify both servers are registered
- Check gate IDs are correct (UUIDs, not positions)
- Verify destination server ID is correct
- Query database directly to see link status
Symptoms:
- Transfer screen appears but no background
- Black screen with text
Solutions:
- Check file exists:
mods/worldgate/textures/worldgate_transfer.png - Verify filename is exactly
worldgate_transfer.png - Check file permissions (must be readable)
- Restart server after adding image
- Check
debug.txtfor texture loading errors
Use these SQL queries to verify your setup:
SELECT id, name, url FROM servers;SELECT id, server_id, destination_gate_id, destination_server_id FROM worldgates;SELECT id, server_id, destination_gate_id, destination_server_id
FROM worldgates
WHERE destination_gate_id IS NOT NULL;SELECT player_name, source_gate_id, destination_gate_id, destination_server_id, transfer_time
FROM transfer_logs
ORDER BY transfer_time DESC
LIMIT 10;SELECT s.name, COUNT(w.id) as gate_count
FROM servers s
LEFT JOIN worldgates w ON s.id = w.server_id
GROUP BY s.name;Your setup is complete when:
- All servers connect to the same database
- Each server has a unique ID in the
serverstable - Worldgates are spawning in each server's world
- At least one pair of gates is linked
- Players can see the transfer screen when clicking linked beacons
- Players can successfully transfer between servers
- Transfers are being logged in
transfer_logstable
If all items are checked, your worldgate network is operational!
- Link more gates to expand the network
- Customize transfer screen image
- Configure gate spawning settings
- Set up automated backups
- Monitor transfer logs for activity
- API Reference: API.md
- Architecture: ARCHITECTURE.md
- Database Queries: DATABASE_QUERIES.md
- Transfer Screen: TRANSFER_SCREEN.md
Use this space to record your setup details:
Server 1:
- Name: _________________
- URL: _________________
- ID: _________________
Server 2:
- Name: _________________
- URL: _________________
- ID: _________________
Server 3:
- Name: _________________
- URL: _________________
- ID: _________________
Database:
- Host: _________________
- Port: _________________
- Password: _________________ (keep secure!)
Linked Gates:
- Server _____ Gate _____ → Server _____ Gate _____
- Server _____ Gate _____ → Server _____ Gate _____
- Server _____ Gate _____ → Server _____ Gate _____