Skip to content

Instantly share code, notes, and snippets.

@josefnpat
Last active August 29, 2015 14:22
Xapalus Deluxe Server Documentation

Xapalus Deluxe Server Documentation

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.

Requirements

  • A server with a public facing IP address.
  • LÖVE 0.9.2 (https://love2d.org/)
  • The source code for Xapalus Deluxe server.

Server Setup

Starting your server

  1. Download the source code at itch.io
  2. 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:~/

  1. Ensure you have the correct version of LÖVE installed.

     $ love --version
     LOVE 0.9.2 (Baby Inspector)
    
  2. Run the love file, optionally supplying a port (default is 19871). A log file will start as log19871.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.

Stopping your server

To stop your server, send an interrupt signal such as CTRL-C.

Permanent Server

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

Client Setup

Private

Private servers can only be accessed by those who have the proper configuration.

Adding a custom private server to the client

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.

Adding a master server list

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.

Public

If you are interested in hosting an official server, please contact @josefnpat.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment