mirror of
https://github.com/GameServerManagers/LinuxGSM.git
synced 2026-04-25 06:05:57 +03:00
[GH-ISSUE #554] Support for Hurtworld ? #445
Labels
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
No due date set.
Dependencies
No dependencies set.
Reference
starred/LinuxGSM#445
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
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.
@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 🍻
@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.
@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.
@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 :)
@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 !
@UltimateByte commented on GitHub (Dec 19, 2015):
OK, the server closes instantly every time, and it makes weird errors when coming to servername.
It also created this strange empty files at root (31munavailable\e[0m, host, queryport, servername... the commands in the end), don't know why.
@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.
@UltimateByte commented on GitHub (Dec 19, 2015):
BTW, here is my fork
https://github.com/UltimateByte/linuxgsm/blob/master/Hurtworld/hurtworldserver
@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
@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.
@dgibbs64 commented on GitHub (Dec 20, 2015):
Also I send you a friend request on Steam
@UltimateByte commented on GitHub (Dec 20, 2015):
Let's work on this !
@Dids91 commented on GitHub (Dec 21, 2015):
Nice idea ! ;-)
are you fix hurtworld ?
@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.
@Dids91 commented on GitHub (Dec 21, 2015):
Thank you for dev branche i love you !
good job !
@UltimateByte commented on GitHub (Dec 22, 2015):
Well, i guess it'll be releasable soon.
What works :
Specific features :
LGSM adds/adaptations :
And i guess that's it.
Remaining on checklist :
@dgibbs64
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.
@Dids91 commented on GitHub (Dec 22, 2015):
i'm testing branch dev oxide work ! very nice job ;-)
@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.
@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 !
@lxalano commented on GitHub (Dec 30, 2015):
Hello, your hurtworldserver can use?
@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
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
@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.
@dgibbs64 commented on GitHub (Jan 1, 2016):
Further notes. Hurtworkd requires Glibc 2.15. Testing a glibcfix would be useful
@UltimateByte commented on GitHub (Jan 2, 2016):
@dgibbs64 What distros aren't updated to glibc 2.15+ yet ?
@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
@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 ?
@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 ?
@dgibbs64 commented on GitHub (Jan 3, 2016):
Yeah may be worth contacting them to so we know what its for.
@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/
@dgibbs64 commented on GitHub (Jan 3, 2016):
Awesome hopefully we get the info.
@UltimateByte commented on GitHub (Jan 6, 2016):
Also posted here http://www.hostedredmine.com/issues/507370
@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.
@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
@UltimateByte commented on GitHub (Jan 12, 2016):
Yep, let's close it and update if info end up coming :)
@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:
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.
@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 ?
@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.
@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 ?
@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.
@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.
@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.
@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.
@aftek commented on GitHub (Mar 27, 2016):
nope, still not working out of the box :'(
[ FAIL ] Starting hurtworld-server: Unable to start Hurtworld LGSM ServerNothing in the logs... only:
which I did, and now i'm getting empty logs.
I'll try without
./hwserverin 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.
@UltimateByte commented on GitHub (Mar 28, 2016):
@Aftek Can you please copy that into a new issue ?
@aftek commented on GitHub (Mar 28, 2016):
@UltimateByte thanks for following up on closed issues too :)
Otherwise done! #772
@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
@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/
@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.