[GH-ISSUE #554] Support for Hurtworld ? #445

Closed
opened 2026-02-27 02:01:29 +03:00 by kerem · 48 comments
Owner

Originally created by @UltimateByte on GitHub (Dec 13, 2015).
Original GitHub issue: https://github.com/GameServerManagers/LinuxGSM/issues/554

Originally assigned to: @UltimateByte on GitHub.

Seems to require some specific options, but should not be very hard to implement. That game seems to be very promising, and unlike Rust, it supports Linux server, even thought it's the same engine. L-O-L.

Originally created by @UltimateByte on GitHub (Dec 13, 2015). Original GitHub issue: https://github.com/GameServerManagers/LinuxGSM/issues/554 Originally assigned to: @UltimateByte on GitHub. Seems to require some specific options, but should not be very hard to implement. That game seems to be very promising, and unlike Rust, it supports Linux server, even thought it's the same engine. L-O-L.
Author
Owner

@UltimateByte commented on GitHub (Dec 15, 2015):

OK, so I tried the server in manual mode, and with the help of some other script that corrects a missing .so file... It's a bit different than source servers of course (Unity engine being used here).

So in case if you're willing to support this game (that has a poor linux support for now, i won't hide it... hopefully they don't do like Rust), here are some infos :

x64 launcher doesn't work yet. We have to use the x86 one.
I had issues getting the console... for now, my tmux session seems empty, even if the log works (at least it gives launching info, but not client actions info) and clients can successfully connect to the server and play.

Standard launch options should look like this :
tmux new-session -d -s hurtworld '/home/YOUR USER NAME/YOUR INSTALL DIR/Hurtworld.x86 -batchmode -nographics -exec "host 12871;queryport 12881;maxplayers 20;servername Linux Test Server" -logfile "gamelog.txt"'

Some references that helped me :
https://www.reddit.com/r/hurtworld/comments/3gcnoq/linux_user_with_a_key_here/ (devs announcing linux server support)
http://www.from-beyond.com/?p=526 (nice work from this guy)
http://hurtworld.wikia.com/wiki/Hosting_A_Server (very poor official documentation)

Cheers 🍻

<!-- gh-comment-id:164917281 --> @UltimateByte commented on GitHub (Dec 15, 2015): OK, so I tried the server in manual mode, and with the help of some other script that corrects a missing .so file... It's a bit different than source servers of course (Unity engine being used here). So in case if you're willing to support this game (that has a poor linux support for now, i won't hide it... hopefully they don't do like Rust), here are some infos : x64 launcher doesn't work yet. We have to use the x86 one. I had issues getting the console... for now, my tmux session seems empty, even if the log works (at least it gives launching info, but not client actions info) and clients can successfully connect to the server and play. Standard launch options should look like this : tmux new-session -d -s hurtworld '/home/YOUR USER NAME/YOUR INSTALL DIR/Hurtworld.x86 -batchmode -nographics -exec "host 12871;queryport 12881;maxplayers 20;servername Linux Test Server" -logfile "gamelog.txt"' Some references that helped me : https://www.reddit.com/r/hurtworld/comments/3gcnoq/linux_user_with_a_key_here/ (devs announcing linux server support) http://www.from-beyond.com/?p=526 (nice work from this guy) http://hurtworld.wikia.com/wiki/Hosting_A_Server (very poor official documentation) Cheers :beers:
Author
Owner

@dgibbs64 commented on GitHub (Dec 16, 2015):

Thanks for this. I would be happy to add this when possible. 7 Days to die server is also Unity. If you want you could have a play and see if you can get it running by using the 7 days to die script as a base. It may only be a case of changing the variables. I guarantee this would be released quicker if you can get started and at least get a server running with LGSM. I can tidy up any rough edges such as checking details is correct etc.

<!-- gh-comment-id:165275520 --> @dgibbs64 commented on GitHub (Dec 16, 2015): Thanks for this. I would be happy to add this when possible. 7 Days to die server is also Unity. If you want you could have a play and see if you can get it running by using the 7 days to die script as a base. It may only be a case of changing the variables. I guarantee this would be released quicker if you can get started and at least get a server running with LGSM. I can tidy up any rough edges such as checking details is correct etc.
Author
Owner

@UltimateByte commented on GitHub (Dec 17, 2015):

Cool. Well i'm on it, but i'm experiencing issues trying to keep those quotes into launch options...
I've been struggling for like 2 hours for this ridiculous problem !

So i'm trying it in another empty script...

parms='-batchmode -nographics -exec '"'host ${hostport} ${map} ${save};queryport ${queryport};maxplayers ${maxplayers};servername ${servername};creativemode ${creativemode}'"' -logfile '"'${logfile}'"' '

will return

-batchmode -nographics -exec 'host 12871 ;queryport 12881;maxplayers 20;servername Hurtworld LGSM Server;creativemode 0' -logfile 'gamelog.txt'
test done

So as you can see, it shows ' instead of ".

And
parms='-batchmode -nographics -exec "host ${hostport} ${map} ${save};queryport ${queryport};maxplayers ${maxplayers};servername ${servername};creativemode ${creativemode}" -logfile "${logfile}" '

Will not return the variables...
-batchmode -nographics -exec "host ${hostport} ${map} ${save};queryport ${queryport};maxplayers ${maxplayers};servername ${servername};creativemode ${creativemode}" -logfile "${logfile}"
test done

I need a hand on how to do that !

Edit : BTW i tried with this :
parms='-batchmode -nographics -exec "host 12871 ;queryport 12881;maxplayers 20;servername Hurtworld LGSM Server;creativemode 0" -logfile "gamelog.txt"'

And the server fails to start, or immediately close, so i can't get to the console, and no logfiles are created. So these quotes are definately a problem anyways.

Also, when it starts, it says :

[ OK ] Starting hurtworl-dserver: UNAVAILABLE
hurtworld@lrob:~$ ./hurtworldserver console

Even if it actually starts. I checked my processes, it seems like that user (the only one i used for my tests since the beginning) doesn't have any other process running.

<!-- gh-comment-id:165414143 --> @UltimateByte commented on GitHub (Dec 17, 2015): Cool. Well i'm on it, but i'm experiencing issues trying to keep those quotes into launch options... I've been struggling for like 2 hours for this ridiculous problem ! So i'm trying it in another empty script... parms='-batchmode -nographics -exec '"'host ${hostport} ${map} ${save};queryport ${queryport};maxplayers ${maxplayers};servername ${servername};creativemode ${creativemode}'"' -logfile '"'${logfile}'"' ' will return -batchmode -nographics -exec 'host 12871 ;queryport 12881;maxplayers 20;servername Hurtworld LGSM Server;creativemode 0' -logfile 'gamelog.txt' test done So as you can see, it shows ' instead of ". And parms='-batchmode -nographics -exec "host ${hostport} ${map} ${save};queryport ${queryport};maxplayers ${maxplayers};servername ${servername};creativemode ${creativemode}" -logfile "${logfile}" ' Will not return the variables... -batchmode -nographics -exec "host ${hostport} ${map} ${save};queryport ${queryport};maxplayers ${maxplayers};servername ${servername};creativemode ${creativemode}" -logfile "${logfile}" test done I need a hand on how to do that ! Edit : BTW i tried with this : parms='-batchmode -nographics -exec "host 12871 ;queryport 12881;maxplayers 20;servername Hurtworld LGSM Server;creativemode 0" -logfile "gamelog.txt"' And the server fails to start, or immediately close, so i can't get to the console, and no logfiles are created. So these quotes are definately a problem anyways. Also, when it starts, it says : [ OK ] Starting hurtworl-dserver: UNAVAILABLE hurtworld@lrob:~$ ./hurtworldserver console Even if it actually starts. I checked my processes, it seems like that user (the only one i used for my tests since the beginning) doesn't have any other process running.
Author
Owner

@dgibbs64 commented on GitHub (Dec 18, 2015):

Do you have a fork? I could take a look at it and suggest fixes easily :)
However this may work :)

parms="-batchmode -nographics -exec \"host ${hostport} ${map} ${save};queryport ${queryport};maxplayers ${maxplayers};servername ${servername};creativemode ${creativemode}\" -logfile \"${logfile}\" "
<!-- gh-comment-id:165846188 --> @dgibbs64 commented on GitHub (Dec 18, 2015): Do you have a fork? I could take a look at it and suggest fixes easily :) However this may work :) ``` parms="-batchmode -nographics -exec \"host ${hostport} ${map} ${save};queryport ${queryport};maxplayers ${maxplayers};servername ${servername};creativemode ${creativemode}\" -logfile \"${logfile}\" " ```
Author
Owner

@UltimateByte commented on GitHub (Dec 19, 2015):

The slash !
I'll try that tonight if i'm not too drunk or too tired when i get home, or tomorrow ! Thanks !

<!-- gh-comment-id:165985340 --> @UltimateByte commented on GitHub (Dec 19, 2015): The slash ! I'll try that tonight if i'm not too drunk or too tired when i get home, or tomorrow ! Thanks !
Author
Owner

@UltimateByte commented on GitHub (Dec 19, 2015):

OK, the server closes instantly every time, and it makes weird errors when coming to servername.

host 12871
queryport 12881
maxplayers 20
servername \e[0
31mUNAVAILABLE\e[0m
Unknown command: 31munavailable\e[0m
SteamAPI_GameServer.Init() failed.
Closing network connections...
Abort running Threads: 1

It also created this strange empty files at root (31munavailable\e[0m, host, queryport, servername... the commands in the end), don't know why.

<!-- gh-comment-id:166031392 --> @UltimateByte commented on GitHub (Dec 19, 2015): OK, the server closes instantly every time, and it makes weird errors when coming to servername. > host 12871 > queryport 12881 > maxplayers 20 > servername \e[0 > 31mUNAVAILABLE\e[0m > Unknown command: 31munavailable\e[0m > SteamAPI_GameServer.Init() failed. > Closing network connections... > Abort running Threads: 1 It also created this strange empty files at root (31munavailable\e[0m, host, queryport, servername... the commands in the end), don't know why.
Author
Owner

@UltimateByte commented on GitHub (Dec 19, 2015):

Maybe it's because i've got 2 interfaces and i don't know the command to select the right IP (or maybe it doesn't exist). But i don't think so as i've been able to make this work in standalone.

<!-- gh-comment-id:166032095 --> @UltimateByte commented on GitHub (Dec 19, 2015): Maybe it's because i've got 2 interfaces and i don't know the command to select the right IP (or maybe it doesn't exist). But i don't think so as i've been able to make this work in standalone.
Author
Owner

@UltimateByte commented on GitHub (Dec 19, 2015):

BTW, here is my fork
https://github.com/UltimateByte/linuxgsm/blob/master/Hurtworld/hurtworldserver

<!-- gh-comment-id:166032270 --> @UltimateByte commented on GitHub (Dec 19, 2015): BTW, here is my fork https://github.com/UltimateByte/linuxgsm/blob/master/Hurtworld/hurtworldserver
Author
Owner

@UltimateByte commented on GitHub (Dec 19, 2015):

OK, the fix for this server was copying steamclient.so to serverfiles/Hurtworld_Data/Plugins/x86.
It seems like it's also required to copy it to /Hurtworld_Data/Plugins/x86_64/steamclient.so to run the x64 server.
Now i'm able to start it correctly and clients can connect.

BTW, with your command, servername and stuff still fail.
Edit : It may be a missing \ at the end of the logfile variable.
I can set it manually and it works thanks to the " trick.

Now the next issue will be the console...
Maybe related to the red "UNAVAILABLE" message when starting ?
Issue with the way tmux starts the server ?
http://image.noelshack.com/fichiers/2015/51/1450567769-emptyconsole.png
The gamelog.txt shows everything, but the console doesn't.

Edit : OK, if i start it directly from the executable, the console shows nothing too.
http://image.noelshack.com/fichiers/2015/51/1450569007-console-empty.png

<!-- gh-comment-id:166033675 --> @UltimateByte commented on GitHub (Dec 19, 2015): OK, the fix for this server was copying steamclient.so to serverfiles/Hurtworld_Data/Plugins/x86. It seems like it's also required to copy it to /Hurtworld_Data/Plugins/x86_64/steamclient.so to run the x64 server. Now i'm able to start it correctly and clients can connect. BTW, with your command, servername and stuff still fail. Edit : It may be a missing \ at the end of the logfile variable. I can set it manually and it works thanks to the \" trick. Now the next issue will be the console... Maybe related to the red "UNAVAILABLE" message when starting ? Issue with the way tmux starts the server ? http://image.noelshack.com/fichiers/2015/51/1450567769-emptyconsole.png The gamelog.txt shows everything, but the console doesn't. Edit : OK, if i start it directly from the executable, the console shows nothing too. http://image.noelshack.com/fichiers/2015/51/1450569007-console-empty.png
Author
Owner

@dgibbs64 commented on GitHub (Dec 20, 2015):

Looks like your having fun :P.

UNAVAILABLE just means that the server name or other variable is not present. Normally not too important.

I found the same with 7 Days to Die not runing much on console. I wouldnt worry about it.

@UltimateByte You want to be a collaborator for this project? You do loads of work and help out loads. Seems to make sense you become one.

<!-- gh-comment-id:166159720 --> @dgibbs64 commented on GitHub (Dec 20, 2015): Looks like your having fun :P. UNAVAILABLE just means that the server name or other variable is not present. Normally not too important. I found the same with 7 Days to Die not runing much on console. I wouldnt worry about it. @UltimateByte You want to be a collaborator for this project? You do loads of work and help out loads. Seems to make sense you become one.
Author
Owner

@dgibbs64 commented on GitHub (Dec 20, 2015):

Also I send you a friend request on Steam

<!-- gh-comment-id:166159743 --> @dgibbs64 commented on GitHub (Dec 20, 2015): Also I send you a friend request on Steam
Author
Owner

@UltimateByte commented on GitHub (Dec 20, 2015):

Let's work on this !

<!-- gh-comment-id:166165869 --> @UltimateByte commented on GitHub (Dec 20, 2015): Let's work on this !
Author
Owner

@Dids91 commented on GitHub (Dec 21, 2015):

Nice idea ! ;-)

are you fix hurtworld ?

<!-- gh-comment-id:166279328 --> @Dids91 commented on GitHub (Dec 21, 2015): Nice idea ! ;-) are you fix hurtworld ?
Author
Owner

@UltimateByte commented on GitHub (Dec 21, 2015):

@Dids91 : It's coming soon i guess. It already installs, fixes itself, and runs OK with standard config options.
dgibbs64's gonna have to check a few things, and the script will be released.
If you're in a hurry, you can already try the dev branche if you wish, but expect some missing functions for now (details function is to do, monitor function is to check).
https://github.com/dgibbs64/linuxgsm/tree/hurt-world
Go find the hwserver script, and make a normal install. Note that you're gonna have to update the script and functions manually with the final release when it's out.

The blank console is a normal thing in Hurtworld, they don't provide it.
Maybe it's gonna be accessible with telnet as for 7 Days to Die. We're gonna have to check.
For now you have to use the addadmin STEAMID64 in start parameters (parm="....") and do your admin stuff via the game console.

<!-- gh-comment-id:166292289 --> @UltimateByte commented on GitHub (Dec 21, 2015): @Dids91 : It's coming soon i guess. It already installs, fixes itself, and runs OK with standard config options. dgibbs64's gonna have to check a few things, and the script will be released. If you're in a hurry, you can already try the dev branche if you wish, but expect some missing functions for now (details function is to do, monitor function is to check). https://github.com/dgibbs64/linuxgsm/tree/hurt-world Go find the hwserver script, and make a normal install. Note that you're gonna have to update the script and functions manually with the final release when it's out. The blank console is a normal thing in Hurtworld, they don't provide it. Maybe it's gonna be accessible with telnet as for 7 Days to Die. We're gonna have to check. For now you have to use the addadmin STEAMID64 in start parameters (parm="....") and do your admin stuff via the game console.
Author
Owner

@Dids91 commented on GitHub (Dec 21, 2015):

Thank you for dev branche i love you !

good job !

<!-- gh-comment-id:166297798 --> @Dids91 commented on GitHub (Dec 21, 2015): Thank you for dev branche i love you ! good job !
Author
Owner

@UltimateByte commented on GitHub (Dec 22, 2015):

Well, i guess it'll be releasable soon.

What works :

  • install
  • validate
  • start/stop/restart
  • monitor
  • details
  • update

Specific features :

  • Fix for hurtworld server
  • You can add admins at start
  • You can run the unstable 64 bit launcher for when it eventually gets fixed by Hurtworld's team.

LGSM adds/adaptations :

  • don't create a config file
  • gsquery working
    And i guess that's it.

Remaining on checklist :
@dgibbs64

  • See if we can use telnet with it as for sdtd.

To anyone already using it, you can update the script, configure it, then do ./hwserver update-functions , and you should be good to go ! But i recommend you to update it again once it's released so you're back into the main branche.

This is an honor to work on that project, hope it serves you well.

<!-- gh-comment-id:166494567 --> @UltimateByte commented on GitHub (Dec 22, 2015): Well, i guess it'll be releasable soon. What works : - install - validate - start/stop/restart - monitor - details - update Specific features : - Fix for hurtworld server - You can add admins at start - You can run the unstable 64 bit launcher for when it eventually gets fixed by Hurtworld's team. LGSM adds/adaptations : - don't create a config file - gsquery working And i guess that's it. Remaining on checklist : @dgibbs64 - See if we can use telnet with it as for sdtd. To anyone already using it, you can update the script, configure it, then do ./hwserver update-functions , and you should be good to go ! But i recommend you to update it again once it's released so you're back into the main branche. This is an honor to work on that project, hope it serves you well.
Author
Owner

@Dids91 commented on GitHub (Dec 22, 2015):

i'm testing branch dev oxide work ! very nice job ;-)

<!-- gh-comment-id:166534820 --> @Dids91 commented on GitHub (Dec 22, 2015): i'm testing branch dev oxide work ! very nice job ;-)
Author
Owner

@UltimateByte commented on GitHub (Dec 22, 2015):

@Dids91
Where did you get your working Oxide version for Linux ?
I'd like to try that too.

<!-- gh-comment-id:166634566 --> @UltimateByte commented on GitHub (Dec 22, 2015): @Dids91 Where did you get your working Oxide version for Linux ? I'd like to try that too.
Author
Owner
<!-- gh-comment-id:166922036 --> @Dids91 commented on GitHub (Dec 23, 2015): yes version linux https://github.com/OxideMod/Snapshots/blob/master/Oxide-Hurtworld_Linux.zip but Maj http://oxidemod.org/threads/game-update-the-server-can-not-find-outdated.13736/#post-154745 CHMOD 777 to fix oxide !
Author
Owner

@lxalano commented on GitHub (Dec 30, 2015):

Hello, your hurtworldserver can use?

<!-- gh-comment-id:167929435 --> @lxalano commented on GitHub (Dec 30, 2015): Hello, your hurtworldserver can use?
Author
Owner

@dgibbs64 commented on GitHub (Dec 30, 2015):

Found an undefined port. Any ideas what it is?

Useful port diagnostic command:
netstat -atunp | grep Hurtworld

DESCRIPTION DIRECTION PORT PROTOCOL

Game/RCON INBOUND 12871 udp
Query INBOUND 12881 udp

Status: ONLINE

admin@lgsm-ubuntu-14:~/lgsm/hwserver$ netstat -atunp | grep Hurtworld
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
udp 0 0 0.0.0.0:12871 0.0.0.0:* 25587/Hurtworld.x86
udp 0 0 0.0.0.0:12881 0.0.0.0:* 25587/Hurtworld.x86
udp 0 0 0.0.0.0:4260 0.0.0.0:* 25587/Hurtworld.x86

<!-- gh-comment-id:168080133 --> @dgibbs64 commented on GitHub (Dec 30, 2015): Found an undefined port. Any ideas what it is? Useful port diagnostic command: netstat -atunp | grep Hurtworld DESCRIPTION DIRECTION PORT PROTOCOL > Game/RCON INBOUND 12871 udp > Query INBOUND 12881 udp Status: ONLINE admin@lgsm-ubuntu-14:~/lgsm/hwserver$ netstat -atunp | grep Hurtworld (Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.) udp 0 0 0.0.0.0:12871 0.0.0.0:\* 25587/Hurtworld.x86 udp 0 0 0.0.0.0:12881 0.0.0.0:\* 25587/Hurtworld.x86 udp 0 0 0.0.0.0:4260 0.0.0.0:\* 25587/Hurtworld.x86
Author
Owner

@UltimateByte commented on GitHub (Dec 30, 2015):

That's weird. No idea, i'll do the same test and eventually ask the devs when i go back home in a few days. I may also try to run several servers to see if this port changes to avoid a conflict. We could also watch the traffic on this port to see who it communicates with.

<!-- gh-comment-id:168082761 --> @UltimateByte commented on GitHub (Dec 30, 2015): That's weird. No idea, i'll do the same test and eventually ask the devs when i go back home in a few days. I may also try to run several servers to see if this port changes to avoid a conflict. We could also watch the traffic on this port to see who it communicates with.
Author
Owner

@dgibbs64 commented on GitHub (Jan 1, 2016):

Further notes. Hurtworkd requires Glibc 2.15. Testing a glibcfix would be useful

<!-- gh-comment-id:168335537 --> @dgibbs64 commented on GitHub (Jan 1, 2016): Further notes. Hurtworkd requires Glibc 2.15. Testing a glibcfix would be useful
Author
Owner

@UltimateByte commented on GitHub (Jan 2, 2016):

@dgibbs64 What distros aren't updated to glibc 2.15+ yet ?

<!-- gh-comment-id:168428034 --> @UltimateByte commented on GitHub (Jan 2, 2016): @dgibbs64 What distros aren't updated to glibc 2.15+ yet ?
Author
Owner

@dgibbs64 commented on GitHub (Jan 2, 2016):

I should really create a list for this :P https://github.com/dgibbs64/linuxgsm/wiki/Glibc#disto-glibc-versions

<!-- gh-comment-id:168428142 --> @dgibbs64 commented on GitHub (Jan 2, 2016): I should really create a list for this :P https://github.com/dgibbs64/linuxgsm/wiki/Glibc#disto-glibc-versions
Author
Owner

@UltimateByte commented on GitHub (Jan 2, 2016):

Conclusion : Update your server OS to avoid problems. :p
Can i let you look out this glibc fix as i have no idea how it works ?

<!-- gh-comment-id:168429254 --> @UltimateByte commented on GitHub (Jan 2, 2016): Conclusion : Update your server OS to avoid problems. :p Can i let you look out this glibc fix as i have no idea how it works ?
Author
Owner

@UltimateByte commented on GitHub (Jan 2, 2016):

So, about that ghost port...

One server running :
serverdev@lrob:~/hurtworld/functions$ netstat -atunp | grep Hurtworld
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
udp 0 0 0.0.0.0:1535 0.0.0.0:* 4737/Hurtworld.x86
udp 0 0 0.0.0.0:12871 0.0.0.0:* 4737/Hurtworld.x86
udp 0 0 0.0.0.0:12881 0.0.0.0:* 4737/Hurtworld.x86

Two servers running :
[ OK ] Starting hurtworld-server: Hurtworld LGSM Server
serverdev@lrob:~/hwserver$ netstat -atunp | grep Hurtworld
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
udp 0 0 0.0.0.0:2982 0.0.0.0:* 17593/Hurtworld.x86
udp 0 0 0.0.0.0:4472 0.0.0.0:* 17805/Hurtworld.x86
udp 0 0 0.0.0.0:12871 0.0.0.0:* 17593/Hurtworld.x86
udp 0 0 0.0.0.0:12872 0.0.0.0:* 17805/Hurtworld.x86
udp 0 0 0.0.0.0:12881 0.0.0.0:* 17593/Hurtworld.x86
udp 0 0 0.0.0.0:12882 0.0.0.0:* 17805/Hurtworld.x86

That port changes every single time, it's totally random. I don't know what it's used for.
Should i ask the game devs ?

<!-- gh-comment-id:168430107 --> @UltimateByte commented on GitHub (Jan 2, 2016): So, about that ghost port... One server running : serverdev@lrob:~/hurtworld/functions$ netstat -atunp | grep Hurtworld (Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.) udp 0 0 0.0.0.0:1535 0.0.0.0:\* 4737/Hurtworld.x86 udp 0 0 0.0.0.0:12871 0.0.0.0:\* 4737/Hurtworld.x86 udp 0 0 0.0.0.0:12881 0.0.0.0:\* 4737/Hurtworld.x86 Two servers running : [ OK ] Starting hurtworld-server: Hurtworld LGSM Server serverdev@lrob:~/hwserver$ netstat -atunp | grep Hurtworld (Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.) udp 0 0 0.0.0.0:2982 0.0.0.0:\* 17593/Hurtworld.x86 udp 0 0 0.0.0.0:4472 0.0.0.0:\* 17805/Hurtworld.x86 udp 0 0 0.0.0.0:12871 0.0.0.0:\* 17593/Hurtworld.x86 udp 0 0 0.0.0.0:12872 0.0.0.0:\* 17805/Hurtworld.x86 udp 0 0 0.0.0.0:12881 0.0.0.0:\* 17593/Hurtworld.x86 udp 0 0 0.0.0.0:12882 0.0.0.0:\* 17805/Hurtworld.x86 That port changes every single time, it's totally random. I don't know what it's used for. Should i ask the game devs ?
Author
Owner

@dgibbs64 commented on GitHub (Jan 3, 2016):

Yeah may be worth contacting them to so we know what its for.

<!-- gh-comment-id:168485230 --> @dgibbs64 commented on GitHub (Jan 3, 2016): Yeah may be worth contacting them to so we know what its for.
Author
Owner

@UltimateByte commented on GitHub (Jan 3, 2016):

Asked there as it seems to be the best place to get devs : https://www.reddit.com/r/hurtworld/comments/3z9l1m/hurtworld_unbound_port_in_linux_server/

<!-- gh-comment-id:168492860 --> @UltimateByte commented on GitHub (Jan 3, 2016): Asked there as it seems to be the best place to get devs : https://www.reddit.com/r/hurtworld/comments/3z9l1m/hurtworld_unbound_port_in_linux_server/
Author
Owner

@dgibbs64 commented on GitHub (Jan 3, 2016):

Awesome hopefully we get the info.

<!-- gh-comment-id:168505314 --> @dgibbs64 commented on GitHub (Jan 3, 2016): Awesome hopefully we get the info.
Author
Owner

@UltimateByte commented on GitHub (Jan 6, 2016):

Also posted here http://www.hostedredmine.com/issues/507370

<!-- gh-comment-id:169339300 --> @UltimateByte commented on GitHub (Jan 6, 2016): Also posted here http://www.hostedredmine.com/issues/507370
Author
Owner

@UltimateByte commented on GitHub (Jan 7, 2016):

Here is the kind of things i get while tcpdumping this mysterious port :

root@lrob:/home/serverdev/hwserver# tcpdump port 3162 and '(tcp-syn|tcp-ack)!=0'
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
03:52:32.564560 IP lrob.3162 > 162-254-196-41.valve.net.27017: UDP, length 84
03:52:32.924189 IP 162-254-196-41.valve.net.27017 > lrob.3162: UDP, length 36
03:52:41.597250 IP lrob.3162 > 162-254-196-41.valve.net.27017: UDP, length 84
03:52:50.629852 IP lrob.3162 > 162-254-196-41.valve.net.27017: UDP, length 84
03:52:59.662648 IP lrob.3162 > 162-254-196-41.valve.net.27017: UDP, length 84
03:53:00.071290 IP 162-254-196-41.valve.net.27017 > lrob.3162: UDP, length 36

The only thing i can think of is server registration onto their server list, but i'm not so sure why it's not using the port set in config... And btw, anyone using a firewall would block that crap and complain not to be registered on their server list.

<!-- gh-comment-id:169533060 --> @UltimateByte commented on GitHub (Jan 7, 2016): Here is the kind of things i get while tcpdumping this mysterious port : root@lrob:/home/serverdev/hwserver# tcpdump port 3162 and '(tcp-syn|tcp-ack)!=0' tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes 03:52:32.564560 IP lrob.3162 > 162-254-196-41.valve.net.27017: UDP, length 84 03:52:32.924189 IP 162-254-196-41.valve.net.27017 > lrob.3162: UDP, length 36 03:52:41.597250 IP lrob.3162 > 162-254-196-41.valve.net.27017: UDP, length 84 03:52:50.629852 IP lrob.3162 > 162-254-196-41.valve.net.27017: UDP, length 84 03:52:59.662648 IP lrob.3162 > 162-254-196-41.valve.net.27017: UDP, length 84 03:53:00.071290 IP 162-254-196-41.valve.net.27017 > lrob.3162: UDP, length 36 The only thing i can think of is server registration onto their server list, but i'm not so sure why it's not using the port set in config... And btw, anyone using a firewall would block that crap and complain not to be registered on their server list.
Author
Owner

@dgibbs64 commented on GitHub (Jan 11, 2016):

Im happy to close this as it doesn't appear we are getting an answer. However if the info becomes available in the future we can add it in

<!-- gh-comment-id:170666007 --> @dgibbs64 commented on GitHub (Jan 11, 2016): Im happy to close this as it doesn't appear we are getting an answer. However if the info becomes available in the future we can add it in
Author
Owner

@UltimateByte commented on GitHub (Jan 12, 2016):

Yep, let's close it and update if info end up coming :)

<!-- gh-comment-id:170759240 --> @UltimateByte commented on GitHub (Jan 12, 2016): Yep, let's close it and update if info end up coming :)
Author
Owner

@JonathanPorta commented on GitHub (Jan 12, 2016):

I was able to get the Hurtworld 32-bit server running fine in a Docker container. I am only exposing two ports and have no issues with EAC or with having multiple clients connect.

If interested, here is the Dockerfile and start script.

And when I run the container I map the ports like so:

docker run\
        --net="host"\
        -v $(pwd)/logs:/logs/\
        -p 12871:12871/udp\
        -p 12881:12881/udp\
        -it jonathanporta/ogs-hurtworld -exec "host 12871;queryport 12881;servername [ogs] HurtCoast|Wiped 1/3|" -logfile "/logs/gamelog.txt"

Not sure if that is any help at all, but thought I would throw it out here just in case.

Cheers!

EDIT: Upvoted your Reddit post for visibility. Hopefully the devs will answer when they have a chance.

<!-- gh-comment-id:170772135 --> @JonathanPorta commented on GitHub (Jan 12, 2016): I was able to get the Hurtworld 32-bit server running fine in a Docker container. I am only exposing two ports and have no issues with EAC or with having multiple clients connect. If interested, here is the [Dockerfile](https://github.com/JonathanPorta/ogs-dockerfiles/blob/master/hurtworld/Dockerfile) and [start script](https://github.com/JonathanPorta/ogs-dockerfiles/blob/master/hurtworld/init.sh). And when I run the container I map the ports like so: ``` docker run\ --net="host"\ -v $(pwd)/logs:/logs/\ -p 12871:12871/udp\ -p 12881:12881/udp\ -it jonathanporta/ogs-hurtworld -exec "host 12871;queryport 12881;servername [ogs] HurtCoast|Wiped 1/3|" -logfile "/logs/gamelog.txt" ``` Not sure if that is any help at all, but thought I would throw it out here just in case. Cheers! EDIT: Upvoted your Reddit post for visibility. Hopefully the devs will answer when they have a chance.
Author
Owner

@UltimateByte commented on GitHub (Jan 12, 2016):

@JonathanPorta A pleasure to see you here !
(I'm sorry about that Steam "conversation", i didn't see this post yet and didn't know you under your nickname... I have quite a few people adding me with apparently no reason so I can be pretty expeditious.)

Thanks for upvoting, hopefully it gets some attention but i'm losing hope.

I'm not familiar with Dockerfiles btw, but i will try another standalone server (without LGSM) to see if something (tmux ?!) could happen to add another listening port. Because otherwise your start options are similar to LGSM ones !

Maybe it could be relevant : What distro are you using ?

<!-- gh-comment-id:170817273 --> @UltimateByte commented on GitHub (Jan 12, 2016): @JonathanPorta A pleasure to see you here ! (I'm sorry about that Steam "conversation", i didn't see this post yet and didn't know you under your nickname... I have quite a few people adding me with apparently no reason so I can be pretty expeditious.) Thanks for upvoting, hopefully it gets some attention but i'm losing hope. I'm not familiar with Dockerfiles btw, but i will try another standalone server (without LGSM) to see if something (tmux ?!) could happen to add another listening port. Because otherwise your start options are similar to LGSM ones ! Maybe it could be relevant : What distro are you using ?
Author
Owner

@JonathanPorta commented on GitHub (Jan 12, 2016):

@UltimateByte Heh, no worries. I accepted your request now. 👍

It's probably worth mentioning: I can't get the x86_64 version to run at all, but the 32bit version runs just fine. No idea why that is. I think it was compiled incorrectly. I have seen a couple of other people stating the same issue without a fix.

If you aren't familiar with Docker or Linux containers (Docker containers are Linux containers) you can, and I know someone will shoot me for saying this, think of them as super small and efficient VMs. Each one runs it's one Linux distro. I am using a lightweight cut of debian that's been slimmed down to just the basics. Essentially you run one process per container. So, basically it's just the server binary running in the container.

The cool thing about containers, including Docker containers, is that you are nearly guaranteed the same experience regardless of where it is running. So, if the server runs great on your laptop, it will run great on anyone else's laptop or server. Containerizing an application removes a large number of variables.

It also lets you fully role up the dependencies into a packaged binary format. No more installing shit at run time. It's already done when you build the container. And since it is a binary artifact you don't have to worry about missing any dependencies like you normally would if you ran around installing things on servers.

<!-- gh-comment-id:170836653 --> @JonathanPorta commented on GitHub (Jan 12, 2016): @UltimateByte Heh, no worries. I accepted your request now. :+1: It's probably worth mentioning: I can't get the x86_64 version to run at all, but the 32bit version runs just fine. No idea why that is. I think it was compiled incorrectly. I have seen a couple of other people stating the same issue without a fix. If you aren't familiar with Docker or Linux containers (Docker containers are Linux containers) you can, and I know someone will shoot me for saying this, think of them as super small and efficient VMs. Each one runs it's one Linux distro. I am using a lightweight cut of debian that's been slimmed down to just the basics. Essentially you run one process per container. So, basically it's just the server binary running in the container. The cool thing about containers, including Docker containers, is that you are nearly guaranteed the same experience regardless of where it is running. So, if the server runs great on your laptop, it will run great on anyone else's laptop or server. Containerizing an application removes a large number of variables. It also lets you fully role up the dependencies into a packaged binary format. No more installing shit at run time. It's already done when you build the container. And since it is a binary artifact you don't have to worry about missing any dependencies like you normally would if you ran around installing things on servers.
Author
Owner

@UltimateByte commented on GitHub (Jan 12, 2016):

@JonathanPorta Well thanks a lot for this clarification !
That Docker hting seems very interesting ! I'll have a look at the syntax and the usage then :)
Just one question that i can't answer myself right now : Did you get the supplementary port to be removed by not allowing it into the Docker, or is the simple fact of running the server into a docker enough to have it behave differently ?

<!-- gh-comment-id:170964225 --> @UltimateByte commented on GitHub (Jan 12, 2016): @JonathanPorta Well thanks a lot for this clarification ! That Docker hting seems very interesting ! I'll have a look at the syntax and the usage then :) Just one question that i can't answer myself right now : Did you get the supplementary port to be removed by not allowing it into the Docker, or is the simple fact of running the server into a docker enough to have it behave differently ?
Author
Owner

@hyperbolic2346 commented on GitHub (Jan 12, 2016):

Docker requires that you specifically list the ports that are open on the container. Simply not including the other random port means no incoming connections can happen.

I'm running both hurtworld and insurgency in docker containers as well and I highly recommend it for certain setups. It is more work to get things going, but you don't have to worry about things randomly breaking due to dependencies changing or something.

<!-- gh-comment-id:171056775 --> @hyperbolic2346 commented on GitHub (Jan 12, 2016): Docker requires that you specifically list the ports that are open on the container. Simply not including the other random port means no incoming connections can happen. I'm running both hurtworld and insurgency in docker containers as well and I highly recommend it for certain setups. It is more work to get things going, but you don't have to worry about things randomly breaking due to dependencies changing or something.
Author
Owner

@UltimateByte commented on GitHub (Jan 12, 2016):

@hyperbolic2346 Thanks for the info. So that means the server will have a random port listening anyway, it's just a way to block it. :)
I personally didn't any game server breaking after updating my packages after 2 years of using Debian (7 and 8), but i can definitely feel how useful it could be for CentOS users for example.

<!-- gh-comment-id:171089567 --> @UltimateByte commented on GitHub (Jan 12, 2016): @hyperbolic2346 Thanks for the info. So that means the server will have a random port listening anyway, it's just a way to block it. :) I personally didn't any game server breaking after updating my packages after 2 years of using Debian (7 and 8), but i can definitely feel how useful it could be for CentOS users for example.
Author
Owner

@hyperbolic2346 commented on GitHub (Jan 13, 2016):

@UltimateByte Yeah, it's something that crops up on occasion like needing a different version of tmux I saw recently, but overall unless you have a compelling reason to need the modularity I doubt it would be worth it. I'm running my servers on a cluster. I need to be able to push the container to any machine on the cluster and have it just work. That makes the container approach very appealing to me.

<!-- gh-comment-id:171118584 --> @hyperbolic2346 commented on GitHub (Jan 13, 2016): @UltimateByte Yeah, it's something that crops up on occasion like needing a different version of tmux I saw recently, but overall unless you have a compelling reason to need the modularity I doubt it would be worth it. I'm running my servers on a cluster. I need to be able to push the container to any machine on the cluster and have it just work. That makes the container approach very appealing to me.
Author
Owner

@UltimateByte commented on GitHub (Jan 22, 2016):

Closing this, as the script is fully working, and this remaining thing is a non-script issue that already has been notified to the game dev team.

<!-- gh-comment-id:174073555 --> @UltimateByte commented on GitHub (Jan 22, 2016): Closing this, as the script is fully working, and this remaining thing is a non-script issue that already has been notified to the game dev team.
Author
Owner

@aftek commented on GitHub (Mar 27, 2016):

Closing this, as the script is fully working

nope, still not working out of the box :'(

[ FAIL ] Starting hurtworld-server: Unable to start Hurtworld LGSM Server

Nothing in the logs... only:

Console logging disabled: Bug in tmux 1.8 breaks logging
http://gameservermanagers.com/tmux-upgrade
Currently installed: tmux 1.8

which I did, and now i'm getting empty logs.

I'll try without ./hwserver in a new container, see if it has anything to do with it, or just my current setup.

Update: server is working when going straight through steamcmd and skipping hwserver :'(
though, i'm left with a server that i can join and show my friends how to join, but still not visible ingame...

so.. won't be using hwserver, unless it works first shot AND is visible ingame :)

PS: please please, get rid of tmux, nohup works like a charm on debian based distribution.. and is most likely already installed.
tmux is the reason why i woudn't see any log file from the game;
EVEN after updating it with the ppa you're linking for tmux -- it was worst, no log at all.

<!-- gh-comment-id:202107136 --> @aftek commented on GitHub (Mar 27, 2016): > Closing this, as the script is fully working nope, still not working out of the box :'( `[ FAIL ] Starting hurtworld-server: Unable to start Hurtworld LGSM Server` Nothing in the logs... only: ``` Console logging disabled: Bug in tmux 1.8 breaks logging http://gameservermanagers.com/tmux-upgrade Currently installed: tmux 1.8 ``` which I did, and now i'm getting empty logs. I'll try without `./hwserver` in a new container, see if it has anything to do with it, or just my current setup. Update: server is working when going straight through steamcmd and skipping hwserver :'( though, i'm left with a server that i can join and show my friends how to join, but still not visible ingame... so.. won't be using hwserver, unless it works first shot AND is visible ingame :) PS: please please, get rid of tmux, nohup works like a charm on debian based distribution.. and is most likely already installed. tmux is the reason why i woudn't see any log file from the game; EVEN after updating it with the ppa you're linking for tmux -- it was worst, no log at all.
Author
Owner

@UltimateByte commented on GitHub (Mar 28, 2016):

@Aftek Can you please copy that into a new issue ?

<!-- gh-comment-id:202183583 --> @UltimateByte commented on GitHub (Mar 28, 2016): @Aftek Can you please copy that into a new issue ?
Author
Owner

@aftek commented on GitHub (Mar 28, 2016):

@UltimateByte thanks for following up on closed issues too :)
Otherwise done! #772

<!-- gh-comment-id:202375731 --> @aftek commented on GitHub (Mar 28, 2016): @UltimateByte thanks for following up on closed issues too :) Otherwise done! #772
Author
Owner

@xcoce commented on GitHub (Jul 13, 2016):

Hello and help please
How u fixed this ?
running LGSM linux hurtworld server and get this in log:

SteamAPI_GameServer.Init() failed.
Closing network connections…
Abort running Threads: 1
Setting up 1 worker threads for Enlighten.
Thread -> id: e10e6b40 -> priority: 1
Unloaded all mods

if debbuging by command ./hwserver debug
then i get this:
[ INFO ] Stopping hurtworld-server: hurt.7worlds.ru is already stopped
[ OK ] Debug hurtworld-server: Starting debug
Set current directory to /home/hwserver/serverfiles
Found path: /home/hwserver/serverfiles/Hurtworld.x86

<!-- gh-comment-id:232477646 --> @xcoce commented on GitHub (Jul 13, 2016): Hello and help please How u fixed this ? running LGSM linux hurtworld server and get this in log: SteamAPI_GameServer.Init() failed. Closing network connections… Abort running Threads: 1 Setting up 1 worker threads for Enlighten. Thread -> id: e10e6b40 -> priority: 1 Unloaded all mods if debbuging by command ./hwserver debug then i get this: [ INFO ] Stopping hurtworld-server: hurt.7worlds.ru is already stopped [ OK ] Debug hurtworld-server: Starting debug Set current directory to /home/hwserver/serverfiles Found path: /home/hwserver/serverfiles/Hurtworld.x86
Author
Owner

@UltimateByte commented on GitHub (Jul 14, 2016):

@xcoce Please, make your own topic into the steam group for general help, and provide some real information, following those instructions : http://steamcommunity.com/groups/linuxgsm/discussions/0/458604254471755996/

<!-- gh-comment-id:232633948 --> @UltimateByte commented on GitHub (Jul 14, 2016): @xcoce Please, make your own topic into the steam group for general help, and provide some real information, following those instructions : http://steamcommunity.com/groups/linuxgsm/discussions/0/458604254471755996/
Author
Owner

@lock[bot] commented on GitHub (Jul 19, 2018):

This thread has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.

<!-- gh-comment-id:406222024 --> @lock[bot] commented on GitHub (Jul 19, 2018): This thread has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.
Sign in to join this conversation.
No labels
Atomic
Epic
cannot reproduce
command: backup
command: console
command: debug
command: details
command: fast-dl
command: install
command: mods
command: monitor
command: post-details
command: restart
command: send
command: start
command: stop
command: update
command: update-lgsm
command: validate
command: wipe
distro: AlmaLinux
distro: Arch Linux
distro: CentOS
distro: Debian
distro: Fedora
distro: RedHat
distro: Rocky Linux
distro: Ubuntu
distro: openSUSE
engine: goldsrc
engine: source
game: 7 Days to Die
game: ARMA 3
game: Ark: Survival Evolved
game: Assetto Corsa
game: Avorion
game: BATTALION: Legacy
game: Barotrauma
game: Battalion 1944
game: Battlefield 1942
game: Black Mesa: Deathmatch
game: Blade Symphony
game: Call of Duty 2
game: Call of Duty 4
game: Call of Duty: United Offensive
game: Counter-Strike 1.6
game: Counter-Strike 2
game: Counter-Strike: Global Offensive
game: Counter-Strike: Source
game: Day of Infamy
game: Dayz
game: Death Match Classic
game: Don't Starve Together
game: ET: Legacy
game: Eco
game: Factorio
game: Factorio
game: Garry's Mod
game: Half-Life
game: Hurtword
game: Insurgecy
game: Insurgecy
game: Insurgency: Sandstorm
game: Just Cause 3
game: Killing Floor
game: Killing Floor 2
game: Left 4 Dead 2
game: Minecraft
game: Minecraft Bedrock
game: Mordhau
game: Multi Theft Auto
game: Mumble
game: Natural Selection 2
game: No More Room in Hell
game: Pavlov VR
game: Post Scriptum
game: Project Zomboid
game: Quake 3
game: QuakeWorld
game: Red Orchestra: Ostfront 41-45
game: Return to Castle Wolfenstein
game: Rising World
game: Rust
game: San Andreas Multiplayer
game: Satisfactory
game: Soldat
game: Soldier of Fortune 2
game: Squad
game: Squad 44
game: Starbound
game: Stationeers
game: Sven Co-op
game: Team Fortress 2
game: Teamspeak 3
game: Teeworlds
game: Terraria
game: The Front
game: Unreal Tournament 2004
game: Unreal Tournament 3
game: Unreal Tournament 99
game: Unturned
game: Valheim
game: Wurm Unlimited
game: Zombie Master Reborn
game: label missing
good first issue
help wanted
info: alerts
info: dependency
info: docker
info: docs
info: email
info: query
info: steamcmd
info: systemd
info: tmux
info: website
info: website
needs more info
outcome: duplicate
outcome: issue resolved
outcome: issue resolved
outcome: issue unresolved
outcome: pr accepted
outcome: pr rejected
outcome: unconfirmed
outcome: wontfix
outcome: wrong forum
potential-duplicate
priority
pull-request
type: bug
type: feature
type: feature
type: feature request
type: game server request
type: refactor
waiting response
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/LinuxGSM#445
No description provided.