Server Hosting Tutorial!

by @whisper8 months ago (edited8 months ago)

Server Hosting Tutorial.

Installing server files

When you have bought the Logic World game from the Steam Store, you automatically gain access to the Dedicated Server. It comes under the “Tools Category”, and will often at first appear hidden. You can enable tools to show in your library using the dropdown above your games list. Then navigate to the Dedicated Server program in steam, and install it.

Running the Server in Steam

Intended for: - Windows Users - Ubuntu Users You should just be able to run the Dedicated Server from within Steam. If you are on a distribution of Linux and cannot run the game natively through Steam, try running it under proton.

Running the Server in Steam under Proton

  1. Right-click the Server in the games list, open up properties.
  2. Within properties, go to the “Compatibility” page.
  3. Tick the box to “Force the use of a specific Steam Play compatibility tool”.
  4. A dropdown will appear, select Proton 6,3-7 [ As of October 2021 ].
  5. Try running the Server by pressing the Play button again.

Running the game on Linux

If running the game through Steam natively or with Proton hasn’t worked for you, the file structure of the server has to be changed.

  1. Right-click the Server in the games list, open up properties.
  2. Within properties, go to the “Local Files” page.
  3. Select “Browse”. This will open up your chosen file explorer at the server files.
  4. Create a folder called “home”, move all files and folders other than “GameData” into the home folder.
  5. In the terminal, cd to the new “home” folder, and run: sudo chmod +x ./Server
  6. Go into the “home” folder, run the ./Server executable.
  7. Also in the ‘home’ folder, is a file called config.succ, which contains the server configuration.

Port Forwarding

To allow people outside of your network to access your server, you must forward the port 43531 for UDP.

To Port Forward, you must log in to your router, you can do this by putting its local IP address into the URL bar of your browser. To find your routers IP address, on windows, in CMD, run “ipconfig”, look for the line that contains “Default Gateway”.

When you arrive, note that all routers are different, and their websites differ greatly. But you often have to go to Advanced Settings, and then to the Security/Firewall sections.

If you need Admin login details to access anything, they should be stuck on the back or bottom of your router. If you need help to find admin details, or the port forwarding page, look up your router’s model.

When port forwarding, you should need to put in the following information:

  • Devices IP Address [ This should also be in “ipconfig” under “IPv4 Address” ]
  • Port From [ 43531 ]
  • Port To [ 43531 ]
  • TCP or UDP [ Currently the server only requires UDP ]

Known Issues

  • On Linux, you must have ipv6 currently, ipv4 support should come very, very soon.

If you host a server, post the address to it below in the comments!


9 comments
@GHXX6 months ago (edited6 months ago)

Just gonna copy my guide into here as per Jimmy’s request: (Its about installing the LW dedicated server using steamcmd on ubuntu, but it will also work using other distros most likely.) If there are any issues, message me on the LW discord (@GHXX). I hope it helps.

# update package repositories and packages
sudo apt update && sudo apt upgrade
# install the following packages
sudo apt install steamcmd screen 
# and optionally, using apt again you can install ufw which lets you easily open ports. You can use something else too of course.
sudo apt install ufw

#now create a steam user (you can just hit enter to skip entering the details, and also you can skip setting a password, but that it up to you):
sudo adduser steam

#now switch to the steam user (it is important that you do not switch the user back. Also, do not prefix any of the following commands with sudo):
sudo su steam

# set the current directory to the /home/steam directory
cd

mkdir -p /home/steam/logic_world/logic_world_ds/


# be sure to replace STEAM_USERNAME_HERE in the following command, and further below with your steam USERNAME that owns logicworld
steamcmd +force_install_dir /home/steam/logic_world/logic_world_ds/ +login STEAM_USERNAME_HERE +app_update 1252670 validate +quit


ln -s /home/steam/logic_world/logic_world_ds/GameData/ /home/steam/logic_world/GameData

nano /home/steam/logic_world/config.succ
"--> set the following settings:
(optional) MOTD
(recommended and sometimes required) InternetProtocolOverride: IPv4

-------- (optional, format layout may be very specific:) --------
(A word of warning: If you set verified mode to false, anyone can choose their username freely!, therefore you should really really set a password!!)

VerifiedMode                    : false

Admin_IDs:
    - PlayerName1

UseWhitelist: true
Whitelisted_IDs:
    - PlayerName1
    - PlayerName2

-----------------------------"

#now save and close the config file (ctrl O to save, ctrl X to close)

#then create a start script using the following line:
printf "#/bin/bash\n\nscreen -L -m -d -S lwserver /home/steam/logic_world/logic_world_ds/Server\n" > ~/start_lw_server.sh
chmod +x ~/start_lw_server.sh

and create an update script via
printf "#/bin/bash\n\nsteamcmd +force_install_dir /home/steam/logic_world/logic_world_ds/ +login STEAM_USERNAME_HERE +app_update 1252670 validate +quit\n" > ~/update_logic_world_server.sh
chmod +x ~/update_logic_world_server.sh

#-- optional, create an autostart entry using crontab --

crontab -e

#then choose a text editor (the easiest is probably nano)
#and enter the following line at the bottom, followed by a newline (make sure the line does NOT start with #):
@reboot /bin/bash ~/start_lw_server.sh


#You can now log out of your steam user again if you want.

#-- forward ports --
#likely you will need to forward ports. Using ufw it is as simple as running the following command:

ufw allow 43531/udp

# the firewall rule takes effect immediately, and is persistent across restarts
# if you are using iptables, you will need to use iptables-persistent or something else to save the rules across restart
@whisper6 months ago (edited6 months ago)

You might need to revise some of this markup. It does get messed up slightly once posting.

The steamcmd is a good addition. Setting up ufw is a bit specific.

I am hoping Jimmy removes authorization on the dedicated server install so the steamcmd command can be done anonymously, then we can containerize this…

@GHXX6 months ago

i threw it into a codeblock so it should be good now

@Alexerooo6 months ago

So much thanks! I was searching for this for over 5 days!

@CouthCodger7 months ago (edited7 months ago)

Thank you @whisper for posting this server hosting tutorial, it’s a great start for those that want to run a dedicated server!

I’m experiencing some difficulties getting the server up and running on my Ubuntu box, and wanted to confirm a few things.

Issue 1: I noticed that the linux distribution of the dedicated server was missing the “config.succ” file, so I created a customized configuration referencing the stock configuration found within the game client folder “..\Steam\SteamApps\common\Logic World\config.succ” and saved it to the “~/home/config.succ” location on my linux server. However the dedicated server doesn’t appear to use the configuration file on launch, since I specified a custom “DefaultSave” (among other values) and none of custom values are displayed by the server.

Issue 2: The main issue that I’m having is that I’m not able to connect to the server from the game client. I’ve ensured that port 43531 is open within iptables using the UDP protocol, my router is configured to port-forward all request for that port to my linux server, but the (IPv4 and IPV6) connections still fail even when both TCP and UDP are enabled for that port. The server does indicate that it is “Listening on 43531 using protocol IPv6_DualStack”, so it’s my understanding that IPv4 traffic should be allowed (although my IPv6 addressing attempts also failed).

Any tips would be greatly appreciated.

@whisper6 months ago (edited6 months ago)

Sorry for the late reply,

The config file is a bit weird, and it picks and chooses different parts of it from two separate config files. Ensure you have set the correct values in the appropriate config file.

There is this divider in config.succ, this is the dividing line:

———————————————————————————————

The variables above this can be overridden in config_override.succ.

The variables below cannot be overridden, and will always use the values in this master file.

———————————————————————————————

This can be misleading if you have copied the succ file and it isn’t the master file, but still says it is!

If this doesn’t help then I am not sure, I have low confidence in the config files. A lot of my settings have always been ignored.

As far as your second issue, at many stages the requests can be blocked, NAT => Port Forwarding => IP Tables ( You should really be using UFW )

Test getting any traffic to your server from outside ( Serve an empty website or something ) Really, Really check if your IP Tables are buggered, it’s easy to do. It might be worth clearing it then using UFW instead. Test connecting locally from your computer to your server Test sending UDP requests to the server from the machine itself

The InternetProtocolOveride setting is a bit broken and also really should just not exist. Also, ensure you have set it in the Correct Succ File

  • IPv4 breaks if you have both IPv4 and IPv6

  • IPv6 is fucky, also most people can’t connect to it [Maybe sit a reverse proxy in front of it that takes IPv4 connections and translates it to IPv6]

  • IPv6_DualStack works for a lot of people, but it forgets IPv4 exists

  • Default works for a lot of people

@Ecconia7 months ago

Never had issues with IPv4 on Linux. But you must manually set the DualStack overwrite in the config. Since the game does not recognize IPv4 for reasons.

@foopis238 months ago

A section about installing the server through steamcmd and a mention that the name of the config file is “config.succ” would be a nice addition to this guide.

@whisper8 months ago

Just quickly ammended config.succ, will add details about steamcmd and hopefully docker soon.