While the Xapalus Deluxe client is free, the server code is not, and is available for only $1 from itch.io!. This document will help you set up a Xapalus Deluxe server.
Setting up a server should be relatively painless; the basic idea is that an enet
instance will be hosted by a headless version of LÖVE
.
- A server with a public facing IP address.
- LÖVE 0.9.2 (https://love2d.org/)
- The source code for Xapalus Deluxe server.
- Download the source code at itch.io
- Upload the code to your server using
scp
or your favorite data transmission program.
scp xapalus-deluxe-server_alpha3_v61-[9adcef0].love what@islove.com:~/
-
Ensure you have the correct version of LÖVE installed.
$ love --version LOVE 0.9.2 (Baby Inspector)
-
Run the love file, optionally supplying a port (default is
19871
). A log file will start aslog19871.txt
(love[port].txt
) for that instance.$ love xapalus-deluxe-server_alpha3_v61-[9adcef0].love 19872 Server started alpha3 v61 [9adcef0] on port 19872
Note: you will have to run this in a screen
, tmux
or detached session if you don't want it to stop when you end your session.
To stop your server, send an interrupt signal such as CTRL-C
.
If you would like to make a server that would restart in case of a failure, simply put it in a while loop.
#!/bin/sh
while true; do
love . $1
sleep 1
done
Private servers can only be accessed by those who have the proper configuration.
To add a server, for example: My Amazing Private Server
at 8.8.8.8
on port 19871
from good old The Moon
, one would open the [client].love
or [client].exe
file ([client].app
will contain a love
file to do this to) as if it were a zip file , and locate and edit custom_servers.lua
. Then add the new server:
For example, change this from:
return {
{ name = "Localhost Connection", ip = "localhost",port = "19871", location = "Server code for $1 at http://josefnpat.itch.io/xapalus-deluxe" },
}
To;
return {
{ name = "My Amazing Private Server", ip = "8.8.8.8",port = "19871", location = "The Moon" },
{ name = "Localhost Connection", ip = "localhost",port = "19871", location = "Server code for $1 at http://josefnpat.itch.io/xapalus-deluxe" },
}
Now when the client is started, it will show the new server as an available connection.
If you would like to make a client that checks against a master server list, and adds those servers, much like the previous section; open the [client].love
or [client].exe
file as if it were a zip file ([client].app
will contain a love file to do this to), and locate and edit master_servers.lua
If your master_server list is located at http://foo.com/servers.json
, add the new server:
For example, change this from:
return {
"http://50.116.63.25/public/xapalus-deluxe/servers.json",
}
To:
return {
"http://50.116.63.25/public/xapalus-deluxe/servers.json",
"http://foo.com/servers.json",
}
For servers.json
, add an array named servers
to the json table, and add supply the name, ip, port and location in an object for each server; for example;
{
servers: [
{
name: "Secret Moon Base",
ip: "8.8.8.8",
port: 19871,
location: "The Moon"
}
}
Now when the client starts, it will download and parse the servers.json
files.
If you are interested in hosting an official server, please contact @josefnpat.