Jump to content

Buying & Running a Linux Project Zomboid Server


Connall

Recommended Posts

YOU DON'T NEED TO DO THIS ANYMORE YOU CAN RENT A READY TO GO SERVER. LIST HERE: http://theindiestone.com/forums/index.php/topic/9856-project-zomboid-server-hoster-sites/

 

AUTO-INSTALL SCRIPTS NOW AVAILABLE: http://theindiestone.com/forums/index.php/topic/7504-linux-server-auto-install-project-zomboid-scripts/

 

 

Hey there, so I’m writing this guide as an attempt to help people who might be setting up their servers on a Linux server (such as a VPS) yet are relatively new to the entire game of server hosting. I’m going to be pretty in depth in this tutorial, however I will gloss over a couple of sensitive subjects. I’ll point you in the right direction for everything.

 

Buying A Server

 

So first off if you don’t own a VPS, you’re going to want to buy one. You technically have two choices, a VPS or a proper dedicated server. However… eh… You won’t be buying the dedicated server. Trust me. Unless you have an insanely popular server, not only is it expensive it’s a bit overkill all considering.

 

There are plenty of places to get a VPS but there’s not a lot of places that allow game servers. This is the most important thing you must check before purchasing a VPS. While I know people usually don’t care about Terms & Conditions, you MUST read them. You can usually just CTRL + F “Game” or “Game Server” and you will swiftly find out whether they allow a game server or not. Rule of thumb for me usually is, the cheaper server providers usually don’t allow game servers since they draw too much resources. Don’t be fooled by pricepoint though, just because they are expensive doesn’t mean they allow game servers either. Your best bet will usually be buying from a provider that is specifically catered to gaming. I bought from NFOServers and I’m pretty happy with it so far, everybody has their preferences and different experiences, so just make sure to do the research.

 

Regarding system settings, bandwidth wise I got about 3TB to work with and from the projections I might break 1TB by the end of the month, but I really doubt it. From indications around the forums my guess is the bottleneck would come down to RAM as that seems to be dictating how many players are able to get in. So take that into account. As for CPU I’m not entirely sure right now as to what is best and what isn’t.

 

When ordering the server you’re going to want to make sure that there are linux OS’es available to install. This guide is geared towards those running a Debian (Wheezy) but the differences to this and Ubuntu should be minimal. Do not install Debian 6, the minimum if you install a Debian OS is Debian 7.

 

Base Server Setup

 

For the most part the provider should configure the OS and passwords and what not. So that shouldn’t be a problem. You’re provider will most likely provide a very random looking password for a user called “root”

 

Now something we should have probably covered earlier. You’re going to want to download a program called PuTTY

 

http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

(Just download PuTTY, nothing else.)

 

This is the program we will use to access the terminal side of the server. This is basically the main way in which you will interact with the server. You can sometimes get an equivalent in the server providers control panel, however I believe it’s best to use this. Another handy little thing you might want to think about getting is FileZilla

 

https://filezilla-project.org/

 

IMPORTANT: DO NOT USE QUICKCONNECT WHEN USING FILEZILLA, GO THROUGH "Site Manager" AND CHOOSE SFTP RATHER THAN FTP FOR PROTOCOL. FAILURE TO FOLLOW THIS RULE WILL LEAD TO REFUSAL OF SERVER CONNECTION

 

This allows you to access the file side of your server which will be handy later on when we start mucking around with databases and server options. it’s an easy way to navigate the folders without using the terminal program.

 

Anyway, open up PuTTY and in “Host Name (or IP address)” put the server IP that should have been provided by the server provider. Leave the port as it is. Leave the connection type as what it’s set at (should be SSH) then click open. You can save the session if you don’t want to input this info all the time. Just name it in saved sessions and click save.

 

When you first connect it you’ll see “login as:”  type “root” and hit enter. Next it will ask for the password, so provide the one that was provided for the server (not your control panel password) when typing it will look like you’re not entering anything, but I guarantee that you are typing something. You can paste the password as well by copying the password and just right clicking in PuTTY (CTRL + V isn’t set as paste, it’s right click by default. Have fun with that.) so now you should be in.

 

Now there are a couple things you're going to want to do if it’s your first VPS. Certain security features you might want to think about installing and what not. You can google “First VPS setup Debian” or something along that lines if you’re really interested. Strictly speaking you can skip this part, but it’s your call.

 

First thing you will want to type is these two:

apt-get install default-jdkapt-get install screen

The first is basically installing Java while the second one I will explain in due course.

 

Now we need to grab the Steam CMD so we can download the actual Project Zomboid software. It’s recommended that you run SteamCMD on a seperate user.

 

You should add a new user by doing:

adduser steam

Once that’s sorted we need to switch over to the new user. It should be noted anytime I refer to “steam” in the file directory context, then it means the user folder. If you decide to name the user something else the directories change also. Something to keep note of. “Steam” is not the same as “steam” in the directory context as well.

su - steam

this will switch the user from root, to steam.

 

We are going to create a steamcmd directory to keep things tidy.

mkdir steamcmd
cd /home/steam/steamcmd

Now we need to actually get the SteamCMD. To do this we run this command:

wget http://media.steampowered.com/installer/steamcmd_linux.tar.gz

It should eventually download and once it does we need to actually get the contents out of the folder. To do this we run

tar -xvzf steamcmd_linux.tar.gz

If you're running a 64 bit version of the OS then the code in the spoiler applies to you. Otherwise, ignore.

 

apt-get install lib32gcc1

 

 

Now we got to run SteamCMD

 

To do this we can do:

cd /home/steam/steamcmd

then

./steamcmd.sh +login steamusername steampassword +force_install_dir directory/you/want/to/install/to* +app_update 108600" validate +exit

WARNING

 

You can choose to opt your server onto the beta branch instead, after running the above command run this:

"app_update 108600 -beta iwillbackupmysave -betapassword iaccepttheconsequences" validate +exit

Keep in mind that not all players will be using the beta branch so not everyone would be able to connect. The decision is of course yours.

 

For login you will get a steam guard e-mail as should be expected, unfortunately you need the game in order to get the server software, so trying to log in as anonymous for SteamCMD will not work.

 

*I can’t remember where I installed it to and whether I created the Steam folder or if SteamCMD did it itself. I personally installed it in /home/steam/ I think, but I honestly can’t quite remember.

 

This is where FileZilla comes in handy, as now what we want to do is navigate to the project zomboid folder which should be something like /Steam/SteamApps/common/ProjectZomboid. Check this folder, does it have projectzomboid.sh? Does it have the projectzomboid folder? Does it have only these two things? Then sigh. You don’t have all the files.

 

When you download the program you need to have the projectzomboid folder, projectzomboid-dedi-server.sh file and a projectzomboid.sh file. If you are missing the server file then you are missing one of the most important things. You’ll have to keep running the steamCMD command. Just keep running those until the file appears.

 

If running it a few times doesn't work, then you need to run steamcmd.sh, then each command preceeded by plus, so -

login steamusername steampassword

then

force_install_dir directory/you/want/to/install/to*

etc
 

We now need to make a Zomboid folder in the user home folder we’ll be running the server from. In this case for me it’s steam (but depending how you did it, it’ll vary.) So now we’ll do:

cd /home/steam

Then

mkdir Zomboid

Then

cd /home/steam/Zomboid

Then

mkdir db

Now reconnect FileZilla and go download this empty db file: https://dl.dropboxus...553835/world.db

 

Whether or not you will whitelist the server it’s best to put the file in. You’ll now need to edit the projectzomboid-dedi-server.sh and set your RAM values. This is dependant on how much RAM your server has, I personally didn’t set them to use my complete server capacity, I did about half but the choice is up to you. (Kirrus: Don't set more than 80% of your VM's capacity.) Use FileZilla and double click on the file and it should open it up in an editor, find these two lines:

 

   -Xms1024m \

   -Xmx1024m \

 

And edit the values to your choosing. Save and close the file and it will prompt you for the root password of FileZilla so put it in and it will be updated.

 

Now something I specifically left for last, since I screwed it up. I guarantee you though this step is unmissable. We need one more thing and all you have to do is

wget http://kirrus.co.uk/stuff/pz/wheezy-glibc-sid.shbash wheezy-glibc-sid.sh

This is only required for those who are running a Debian OS, Ubuntu (I am told) should be fine.

 

Nearly Home!

 

We’re almost there. So here’s what we got to do now.

cd /home/steam/Steam/SteamApps/common/ProjectZomboid

then

./projectzomboid-dedi-server.sh

It will start the server. You celebrating yet? Don’t. We’re not quite done yet, do CTRL + C and it’ll shut down the server program. We can’t use the usual things like exit (yet - it’s on the todo list) so for now CTRL + C will close the server. So now we got to boot up fileZilla and navigate to the Zomboid folder we created. As long as everything went smoothly you should have a lot more files now. Go into the server folder and you should see a serverOptions.ini

 

It will contain:

 

PVP=true

PauseEmpty=true

GlobalChat=true

Open=true

 

Most should be self explanatory but if not, here we go.

 

PVP - Allow or don’t allow players to hurt/kill each other.

 

PauseEmpty - I’m not certain but I believe it basically suspends the server when there are no players around.

 

GlobalChat - Whether or not to allow the players to speak to all the players through the /all chat command.

 

Open - Whether it to be whitelisted or not. If you want the server to be whitelisted I would love to help, but at this point in time I have been unable to get whitelisting to work on the server.

 

Right. Do what you wish save, password then exit.

 

Now here’s where that Screen we talked about in the beginning comes in handy. You see if you start the server without it and just do what we did above but didn’t close the server you would find that in order to keep the PZ server running, you would need to keep the PuTTY terminal running. Which would mean you would need to keep your computer running, which would kind of defeat the purpose of having the VPS.

 

When back home type:

screen

You will be taken to a wall of text, just hit enter until the text goes away and your left with a blank screen except for your user

 

steam@server.co.uk thing.

 

Now what you do here is

cd /home/steam/Steam/SteamApps/common/ProjectZomboid

Then

./projectzomboid-dedi-server.sh

The server should start up and eventually be greeted with:

 

"*** SERVER STARTED ****". At the bottom.

 

You can now close PuTTY and play on your server.

 

If you ever need to get back to that screen, when you log back into root type:

screen -dr

and it should take you back to server screen. Don’t initiate multiple versions of the screen, otherwise you’re going to have a bit of a problem down the line.

 

Thanks for reading, that’s the bulk of the tutorial so now here’s some FAQ and handy tips.

 

Server Screen Controls:

 

CTRL + C - Closes the server.

 

FAQ

 

Q: “I get a missing file/folder error when I boot the server.”

 

A: “Usually means you didn’t put the “Zomboid” folder in the right place. Remember to create a “db” folder and put in the “world.db” file in there.

 

Q: “There appears to be some error regarding RakNet. What’s that about?”

 

A: It’s probably to do with kirrus’s script as linked above. Probably means you didn’t install it correctly.

 

Q: "I got a long confusing password, I think I'll change it..."

 

A: NO! Don't. Chances are the password given is incredibly secure, if you change it you could make the server more vulnerable. Personally I suggest just leaving it as default, at the very least your root password should remain unchanged.

 

Q: How do I upgrade the server when a patch is released

 

A: Shut down the gameserver (Ctrl-C), and then run the steam command. 

 

 

A video version of the guide will follow later.

 

Thanks to Kirrus for double checking the info and giving pointers.

 

MAKE SURE CLIENT AND SERVER ARE RUNNING THE SAME PROJECT ZOMBOID BUILD IF YOU WISH TO CONNECT!

Link to comment
Share on other sites

This is really awesome! Thanks

 

Thanks 

          !!! Connall  !!!

 

Just started working on one and making notes

 

Thank you very much. :D

 

I've edited the OP to make it clear what lines need to be run in the terminal. It's indicated like so.

apt-get tutorial

So if it looks like that, it's what you want to be running in your terminal.

 

Edit: Thanks to whoever gave the pin. :D

Link to comment
Share on other sites

Thank you for this! I've been planning on this for a long time, but I don't have much experience in Linux so it's been a little off-putting.

 

Very understandable, the best way to look at it when starting off is really "In the end, it's just a box" you shouldn't fear screwing up or experimenting, since if things go disastrously wrong an OS re-install is usually a button away.

Link to comment
Share on other sites

Thanks for this awesome guide! One question though: How many players are possible with a VPS? Mine has two Cores and 2048MB guaranteed RAM (4096 dynamic).

 

 

@vesainen:

Kirrus said to me that you need atleast Debian 7 and for the error: You need to edit your sources.

After the update from debian 6 to debian 7 I had to add these sources:

deb http://ftp.us.debian.org/debian/ wheezy maindeb-src http://ftp.us.debian.org/debian/ wheezy maindeb http://security.debian.org/ wheezy/updates maindeb-src http://security.debian.org/ wheezy/updates maindeb http://ftp.us.debian.org/debian/ wheezy-updates maindeb-src http://ftp.us.debian.org/debian/ wheezy-updates main
Link to comment
Share on other sites

Thanks for this awesome guide! One question though: How many players are possible with a VPS? Mine has two Cores and 2048MB guaranteed RAM (4096 dynamic).

 

Really when it comes to player numbers RAM is the big bottleneck. Hypothetically you could have infinite players if you had infinite RAM since PZ doesn't do anything to limit player connections, except the eventual crash of the server.*

 

With 2GB I was getting 10-20 before a crash and had to upgrade to 4GB instead. So really it depends on how much RAM you have and how much is allocated to the PZ Server. Really depends how many players there are and how many are trying to connect.

 

*Of course infinite players is impossible, I'm just saying.

Link to comment
Share on other sites

Alright, thanks. The information flood for a Linux-newbie like myself is overwhelming, but I'll try to bear with it.

 

The best way to learn is to just play. One of the greatest features of using a VM, is you should be able to blow it away and get it reinstalled by your provider, usually with only a few clicks, so you don't need to fear making a server-breaking mistake. Just backup your world, config and db, and you'll be fine :)

Link to comment
Share on other sites

Hey Lars,

 

I got to the same spot.  I did the steamcmd, put in the guard info, and let it install, but there is no ProjectZomboid folder, or common folder above it for that matter.  Where exactly does steam put it?

 

Everlazy

 

**Edit**

 

Also, if I run the steamcmd again, it says it is already updated.

Link to comment
Share on other sites

I'm running into this error now after installing PZ:

 

/home/buildbot/buildslave_steam/steam_rel_client_linux/build/src/clientdll/../common/singleprocesspipe_linux.cpp (146) : Assertion Failed: false

/home/buildbot/buildslave_steam/steam_rel_client_linux/build/src/clientdll/../common/singleprocesspipe_linux.cpp (153) : Assertion Failed: CSingleProcessPipe::BWrite errno=22

 

Anyone have any thoughts?

 

Everlazy

Link to comment
Share on other sites

I've tried deleting and re-installing PZ as well, no go.. :\

 

There's really no fix for this, Steam is just incredibly tempormental. Kirrus has advised that running each + in

./steamcmd.sh +login steamusername steampassword +force_install_dir directory/you/want/to/install/to* +app_update 108600 -beta onlinetest validate +exit

separately (except force_install ignore that) might fix the problem. However the downloader is just incredibly temperamental, you'll have to persist I'm afraid. :(

 

 

 

I'm running into this error now after installing PZ:
 
/home/buildbot/buildslave_steam/steam_rel_client_linux/build/src/clientdll/../common/singleprocesspipe_linux.cpp (146) : Assertion Failed: false
/home/buildbot/buildslave_steam/steam_rel_client_linux/build/src/clientdll/../common/singleprocesspipe_linux.cpp (153) : Assertion Failed: CSingleProcessPipe::BWrite errno=22
 
Anyone have any thoughts?
 
Everlazy

 

 

I'll see what I can find out, but this is a new one for me. What's the OS it's running?

Link to comment
Share on other sites

I keep getting this error when I try to run projectzomboid-dedi-server.sh. I've updated the glibc libraries but to no avail.

 


Initialising Server Systems...

SVN REVISION 956

loading 64bit RakNet

Failed loading 64bit RakNet - trying 32bit

Exception in thread "main" java.lang.ExceptionInInitializerError

        at sun.misc.Unsafe.ensureClassInitialized(Native Method)

        at sun.reflect.UnsafeFieldAccessorFactory.newFieldAccessor(UnsafeFieldAccessorFactory.java:43)

        at sun.reflect.ReflectionFactory.newFieldAccessor(ReflectionFactory.java:140)

        at java.lang.reflect.Field.acquireFieldAccessor(Field.java:936)

        at java.lang.reflect.Field.getFieldAccessor(Field.java:917)

        at java.lang.reflect.Field.get(Field.java:376)

        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeStatics(LuaJavaClassExposer.java:393)

        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJava(LuaJavaClassExposer.java:366)

        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJavaByClass(LuaJavaClassExposer.java:575)

        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJava(LuaJavaClassExposer.java:539)

        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJavaByClass(LuaJavaClassExposer.java:583)

        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJava(LuaJavaClassExposer.java:539)

        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJavaByClass(LuaJavaClassExposer.java:583)

        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJava(LuaJavaClassExposer.java:539)

        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeList(LuaJavaClassExposer.java:560)

        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJavaByClass(LuaJavaClassExposer.java:578)

        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJava(LuaJavaClassExposer.java:539)

        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJavaByClass(LuaJavaClassExposer.java:580)

        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJavaByClass(LuaJavaClassExposer.java:573)

        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJavaByClass(LuaJavaClassExposer.java:573)

        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJava(LuaJavaClassExposer.java:539)

        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJavaByClass(LuaJavaClassExposer.java:583)

        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJava(LuaJavaClassExposer.java:539)

        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeList(LuaJavaClassExposer.java:560)

        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJavaByClass(LuaJavaClassExposer.java:586)

        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJava(LuaJavaClassExposer.java:539)

        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJavaByClass(LuaJavaClassExposer.java:583)

        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJava(LuaJavaClassExposer.java:539)

        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeList(LuaJavaClassExposer.java:560)

        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJava(LuaJavaClassExposer.java:548)

        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJavaByClass(LuaJavaClassExposer.java:583)

        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJava(LuaJavaClassExposer.java:539)

        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeList(LuaJavaClassExposer.java:560)

        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJavaByClass(LuaJavaClassExposer.java:578)

        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJava(LuaJavaClassExposer.java:539)

        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJavaByClass(LuaJavaClassExposer.java:580)

        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJava(LuaJavaClassExposer.java:539)

        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJavaByClass(LuaJavaClassExposer.java:580)

        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJava(LuaJavaClassExposer.java:539)

        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeList(LuaJavaClassExposer.java:560)

        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJavaByClass(LuaJavaClassExposer.java:578)

        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJava(LuaJavaClassExposer.java:539)

        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJavaByClass(LuaJavaClassExposer.java:580)

        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJava(LuaJavaClassExposer.java:539)

        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJavaByClass(LuaJavaClassExposer.java:580)

        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJava(LuaJavaClassExposer.java:539)

        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeList(LuaJavaClassExposer.java:560)

        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJavaByClass(LuaJavaClassExposer.java:578)

        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJava(LuaJavaClassExposer.java:539)

        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJavaByClass(LuaJavaClassExposer.java:580)

        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJava(LuaJavaClassExposer.java:539)

        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeList(LuaJavaClassExposer.java:560)

        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJavaByClass(LuaJavaClassExposer.java:578)

        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJava(LuaJavaClassExposer.java:539)

        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJavaByClass(LuaJavaClassExposer.java:580)

        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJava(LuaJavaClassExposer.java:539)

        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJavaByClass(LuaJavaClassExposer.java:571)

        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJava(LuaJavaClassExposer.java:539)

        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeList(LuaJavaClassExposer.java:560)

        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJavaByClass(LuaJavaClassExposer.java:578)

        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJava(LuaJavaClassExposer.java:539)

        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJavaByClass(LuaJavaClassExposer.java:571)

        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJava(LuaJavaClassExposer.java:539)

        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJavaByClass(LuaJavaClassExposer.java:583)

        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJava(LuaJavaClassExposer.java:539)

        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJavaByClass(LuaJavaClassExposer.java:583)

        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJava(LuaJavaClassExposer.java:539)

        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJavaByClass(LuaJavaClassExposer.java:583)

        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJava(LuaJavaClassExposer.java:539)

        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJavaByClass(LuaJavaClassExposer.java:580)

        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJava(LuaJavaClassExposer.java:539)

        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJavaByClass(LuaJavaClassExposer.java:571)

        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJava(LuaJavaClassExposer.java:539)

        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJavaRecursively(LuaJavaClassExposer.java:525)

        at zombie.Lua.LuaManager.init(LuaManager.java:237)

        at zombie.network.GameServer.doMinimumInit(GameServer.java:353)

        at zombie.network.GameServer.main(GameServer.java:85)

Caused by: java.lang.RuntimeException: Failed to load RakNet library

        at zombie.core.raknet.RakNetPeerInterface.<clinit>(RakNetPeerInterface.java:23)

        ... 77 more


Link to comment
Share on other sites

 

I keep getting this error when I try to run projectzomboid-dedi-server.sh. I've updated the glibc libraries but to no avail.
 

Initialising Server Systems...
SVN REVISION 956
loading 64bit RakNet
Failed loading 64bit RakNet - trying 32bit
Exception in thread "main" java.lang.ExceptionInInitializerError
        at sun.misc.Unsafe.ensureClassInitialized(Native Method)
        at sun.reflect.UnsafeFieldAccessorFactory.newFieldAccessor(UnsafeFieldAccessorFactory.java:43)
        at sun.reflect.ReflectionFactory.newFieldAccessor(ReflectionFactory.java:140)
        at java.lang.reflect.Field.acquireFieldAccessor(Field.java:936)
        at java.lang.reflect.Field.getFieldAccessor(Field.java:917)
        at java.lang.reflect.Field.get(Field.java:376)
        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeStatics(LuaJavaClassExposer.java:393)
        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJava(LuaJavaClassExposer.java:366)
        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJavaByClass(LuaJavaClassExposer.java:575)
        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJava(LuaJavaClassExposer.java:539)
        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJavaByClass(LuaJavaClassExposer.java:583)
        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJava(LuaJavaClassExposer.java:539)
        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJavaByClass(LuaJavaClassExposer.java:583)
        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJava(LuaJavaClassExposer.java:539)
        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeList(LuaJavaClassExposer.java:560)
        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJavaByClass(LuaJavaClassExposer.java:578)
        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJava(LuaJavaClassExposer.java:539)
        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJavaByClass(LuaJavaClassExposer.java:580)
        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJavaByClass(LuaJavaClassExposer.java:573)
        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJavaByClass(LuaJavaClassExposer.java:573)
        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJava(LuaJavaClassExposer.java:539)
        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJavaByClass(LuaJavaClassExposer.java:583)
        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJava(LuaJavaClassExposer.java:539)
        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeList(LuaJavaClassExposer.java:560)
        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJavaByClass(LuaJavaClassExposer.java:586)
        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJava(LuaJavaClassExposer.java:539)
        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJavaByClass(LuaJavaClassExposer.java:583)
        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJava(LuaJavaClassExposer.java:539)
        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeList(LuaJavaClassExposer.java:560)
        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJava(LuaJavaClassExposer.java:548)
        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJavaByClass(LuaJavaClassExposer.java:583)
        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJava(LuaJavaClassExposer.java:539)
        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeList(LuaJavaClassExposer.java:560)
        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJavaByClass(LuaJavaClassExposer.java:578)
        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJava(LuaJavaClassExposer.java:539)
        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJavaByClass(LuaJavaClassExposer.java:580)
        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJava(LuaJavaClassExposer.java:539)
        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJavaByClass(LuaJavaClassExposer.java:580)
        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJava(LuaJavaClassExposer.java:539)
        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeList(LuaJavaClassExposer.java:560)
        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJavaByClass(LuaJavaClassExposer.java:578)
        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJava(LuaJavaClassExposer.java:539)
        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJavaByClass(LuaJavaClassExposer.java:580)
        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJava(LuaJavaClassExposer.java:539)
        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJavaByClass(LuaJavaClassExposer.java:580)
        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJava(LuaJavaClassExposer.java:539)
        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeList(LuaJavaClassExposer.java:560)
        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJavaByClass(LuaJavaClassExposer.java:578)
        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJava(LuaJavaClassExposer.java:539)
        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJavaByClass(LuaJavaClassExposer.java:580)
        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJava(LuaJavaClassExposer.java:539)
        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeList(LuaJavaClassExposer.java:560)
        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJavaByClass(LuaJavaClassExposer.java:578)
        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJava(LuaJavaClassExposer.java:539)
        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJavaByClass(LuaJavaClassExposer.java:580)
        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJava(LuaJavaClassExposer.java:539)
        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJavaByClass(LuaJavaClassExposer.java:571)
        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJava(LuaJavaClassExposer.java:539)
        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeList(LuaJavaClassExposer.java:560)
        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJavaByClass(LuaJavaClassExposer.java:578)
        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJava(LuaJavaClassExposer.java:539)
        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJavaByClass(LuaJavaClassExposer.java:571)
        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJava(LuaJavaClassExposer.java:539)
        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJavaByClass(LuaJavaClassExposer.java:583)
        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJava(LuaJavaClassExposer.java:539)
        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJavaByClass(LuaJavaClassExposer.java:583)
        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJava(LuaJavaClassExposer.java:539)
        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJavaByClass(LuaJavaClassExposer.java:583)
        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJava(LuaJavaClassExposer.java:539)
        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJavaByClass(LuaJavaClassExposer.java:580)
        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJava(LuaJavaClassExposer.java:539)
        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJavaByClass(LuaJavaClassExposer.java:571)
        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJava(LuaJavaClassExposer.java:539)
        at se.krka.kahlua.integration.expose.LuaJavaClassExposer.exposeLikeJavaRecursively(LuaJavaClassExposer.java:525)
        at zombie.Lua.LuaManager.init(LuaManager.java:237)
        at zombie.network.GameServer.doMinimumInit(GameServer.java:353)
        at zombie.network.GameServer.main(GameServer.java:85)
Caused by: java.lang.RuntimeException: Failed to load RakNet library
        at zombie.core.raknet.RakNetPeerInterface.<clinit>(RakNetPeerInterface.java:23)
        ... 77 more

 

 

Firstly, please always put the spoiler tags on their own lines, else it doesn't work!

Right, so you may well not have a dependency. So we can find out what, here's a command I need you to run, from your install location (you need to cd into the place where the dedi-server.sh script is:

ldd projectzomboid/libRakNet64.so

Copy and paste what it says, into a spoiler here.

 

If your VM is 32bit instead of 64, run:

ldd projectzomboid/libRakNet32.so

Link to comment
Share on other sites

Firstly, please always put the spoiler tags on their own lines, else it doesn't work!

Right, so you may well not have a dependency. So we can find out what, here's a command I need you to run, from your install location (you need to cd into the place where the dedi-server.sh script is:

ldd projectzomboid/libRakNet64.so
Copy and paste what it says, into a spoiler here.

 

If your VM is 32bit instead of 64, run:

ldd projectzomboid/libRakNet32.so

projectzomboid/libRakNet32.so: /lib/i386-linux-gnu/libc.so.6: version `GLIBC_2.1 5' not found (required by projectzomboid/libRakNet32.so)

linux-gate.so.1 => (0xb77b8000)

libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xb755c000)

libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xb7536000)

libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xb7518000)

libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb73c8000)

/lib/ld-linux.so.2 (0xb77b9000)

Btw, thanks for taking your time helping. I really appreciate it.

Link to comment
Share on other sites

 

Firstly, please always put the spoiler tags on their own lines, else it doesn't work!

Right, so you may well not have a dependency. So we can find out what, here's a command I need you to run, from your install location (you need to cd into the place where the dedi-server.sh script is:

ldd projectzomboid/libRakNet64.so
Copy and paste what it says, into a spoiler here.

 

If your VM is 32bit instead of 64, run:

ldd projectzomboid/libRakNet32.so

 

projectzomboid/libRakNet32.so: /lib/i386-linux-gnu/libc.so.6: version `GLIBC_2.1 5' not found (required by projectzomboid/libRakNet32.so)

linux-gate.so.1 => (0xb77b8000)

libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xb755c000)

libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xb7536000)

libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xb7518000)

libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb73c8000)

/lib/ld-linux.so.2 (0xb77b9000)

Btw, thanks for taking your time helping. I really appreciate it.

 

 

It's glibc :)

This'll confirm what version you've got:

dpkg -l | grep libc6

Also, make sure you've run my script!

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...