Comments (20)
Patch v1.0.1.1 (Build ID #5440050) has been released and it seems to be working correctly.
Remember to forward port 27016 and use -e R2_HEARTBEAT=1
from ror2-server.
I haven't really got it to work but I want to share my current progress.
When comparing the log output of running the server under Windows vs. Wine/Linux I noticed the lines
(Filename: C:\buildslave\unity\build\Runtime/Export/Debug.bindings.h Line: 45)
InitServer: GameServer_Init returned false
(Filename: C:\buildslave\unity\build\Runtime/Export/Debug.bindings.h Line: 45)
steamworksServer.IsValid=False
on Wine/Linux which should look like
(Filename: C:\buildslave\unity\build\Runtime/Export/Debug.bindings.h Line: 45)
Unloading 7 Unused Serialized files (Serialized files now loaded: 0)
Setting breakpad minidump AppID = 632360
steamworksServer.IsValid=True
(Filename: C:\buildslave\unity\build\Runtime/Export/Debug.bindings.h Line: 45)
steamworksServer.LoggedOn=False
, as produced by running it on Windows.
After spending a lot more time than necessary with https://github.com/Facepunch/Facepunch.Steamworks (because I missed the InitServer: GameServer_Init returned false
line at first) I came to the (rather obvious) conclusion that a call to https://partner.steamgames.com/doc/api/steam_gameserver#SteamGameServer_Init failed. Looking at the linked https://partner.steamgames.com/doc/api/steam_api#SteamAPI_Init I find the helpful note that a return value of false
can indicate (among other things) that
The Steam client isn't running. A running Steam client is required to provide implementations of the various Steamworks interfaces.
A bit of googling leads me to https://developer.valvesoftware.com/wiki/SteamCMD#Unable_to_locate_a_running_instance_of_Steam, drawing my attention to the steamclient.dll
.
The same page also tells me where to get this dll (https://developer.valvesoftware.com/wiki/SteamCMD#Getting_a_Linux_64-bit_steamclient.so_on_a_Windows_Machine):
by running ./steamcmd +@sSteamCmdForcePlatformType windows +login anonymous +force_install_dir steamworks_sdk +app_update 1007 +quit
.
Lo and behold, copying all the *64.dll
files from the steamworks_sdk
folder into the directory where Risk of Rain 2.exe
(the server executable) lies magically changes the log output into
(Filename: C:\buildslave\unity\build\Runtime/Export/Debug.bindings.h Line: 45)
0029:fixme:ntdll:EtwEventRegister ({47a9201e-73b0-42ce-9821-7e134361bc6f}, 0x13f0073b0, 0x13f059588, 0x13f059580) stub.
0029:fixme:ntdll:EtwEventRegister ({58a9201e-73b0-42ce-9821-7e134361bc70}, 0x13f0073b0, 0x13f0595c0, 0x13f0595b8) stub.
0029:fixme:ntdll:EtwEventRegister ({3fa9201e-73b0-43fe-9821-7e145359bc6f}, 0x13f0073b0, 0x13f059550, 0x13f059548) stub.
0029:fixme:ntdll:EtwEventRegister ({1432afee-73b0-42ce-9821-7e134361b433}, 0x13f0073b0, 0x13f0595f8, 0x13f0595f0) stub.
0029:fixme:ntdll:EtwEventRegister ({4372afee-73b0-42ce-9821-7e134361b519}, 0x13f0073b0, 0x13f059630, 0x13f059628) stub.
0029:err:winediag:SECUR32_initNTLMSP ntlm_auth was not found or is outdated. Make sure that ntlm_auth >= 3.0.25 is in your path. Usually, you can find it in the winbind package of your distribution.
0050:fixme:wbemprox:wbem_locator_ConnectServer unsupported flags
0050:fixme:wbemprox:client_security_SetBlanket 000000006775DD00, 00000000153720C0, 10, 0, (null), 3, 3, 0000000000000000, 0x00000000
0050:fixme:wbemprox:client_security_Release 000000006775DD00
0023:fixme:mountmgr:harddisk_ioctl The DISK_PARTITION_INFO and DISK_DETECTION_INFO structures will not be filled
wine: Read access denied for device L"\\??\\Z:\\", FS volume label and serial are not available.
0050:fixme:wbemprox:enum_class_object_Next timeout not supported
0023:fixme:mountmgr:harddisk_ioctl The DISK_PARTITION_INFO and DISK_DETECTION_INFO structures will not be filled
Setting breakpad minidump AppID = 632360
0048:fixme:iphlpapi:NotifyAddrChange (Handle 0x2a5a0710, overlapped 0x2a5a0718): stub
Unloading 7 Unused Serialized files (Serialized files now loaded: 0)
0048:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering
steamworksServer.IsValid=True
(Filename: C:\buildslave\unity\build\Runtime/Export/Debug.bindings.h Line: 45)
steamworksServer.LoggedOn=False
The only bummer is, that I still can't discover the server in the server list. Though it should be noted that I can't find any dedicated servers (using the Lobbies
and Dedicated Servers
checkboxes to filter) in the new 1.0 ingame server browser. Soo maybe the server browser is just broken (fingers crossed)? I don't have a further Windows machine suitable for testing it with a run-as-intended dedicated server right now.
Edit: Apparently someone on the RoR2 Discord found this out as well! https://discordapp.com/channels/417739215355510784/559901472339525644/742846457551388703
from ror2-server.
So, since the last update, they have fixed the server browser to now show the dedicated servers.
This fix is communicating with steam correctly (so at least thats solved), but steam is rejecting it with "bad_version".
I'm unsure if this is something with the game, or with the dll's we added (maybe its too new, since i remember reading how ror2 uses an older versions of facepunch steamworks)
http://api.steampowered.com/ISteamApps/GetServersAtAddress/v0001/?format=json&addr=IP_HERE
You can check if your server is talking to steam correctly here
What i've noticed is that the server will appear on that list when you start it, but can dissapear soon after.
Example of the response I got for my vamist.dev server:
{ "response":{ "success":true, "servers":[ { "addr":"85.10.195.233:27016", "gmsindex":65534, "reject":"bad_version", "appid":632360, "gamedir":"Risk of Rain 2", "region":-1, "secure":true, "lan":false, "gameport":27015, "specport":0 } ] } }
EDIT: I tried with older dll's, no difference.
from ror2-server.
@Vam-Jam Do you think we can ship the docker with the modified version of Assembly-CSharp.dll to fix the issue? I.e. after the steam installation replace it?
If the devs are aware of it i think it may be better to just wait for their fix in the next update instead of overwriting a dll with a custom compiled one, it's probably not worth the trouble.
from ror2-server.
@avivace That is how we do it on our servers. Another issue with shipping the container with a modified version of the dll is essentially the same as distributing it, which is not technically legal and is why we aren't able to share it with other server hosts. There is more needing fixed in the assembly that we had to do as well; for instance, the game likes to get stuck on "outro" occasionally when players beat the game, we had to modify it with some restart rules in place to account for this as well.
from ror2-server.
Thank you for the update, @Schuwi !
@Vam-Jam, the user who submitted the report you mentioned, contacted me on discord with a workaround that I just pushed to provide those ddls with a linux package, so the docker image should now make steamworksServer init work correctly
from ror2-server.
Unsure, can't reproduce at home. There are other dedicated servers up however (i'm assuming windows) without this issue.
http://api.steampowered.com/ISteamApps/GetServersAtAddress/v0001/?format=json&addr=73.14.24.184
I'll see if i can talk to who ever hosts this
from ror2-server.
Seeing the same issue myself.
docker shows the ports are being forwarded
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a857b2ca9dc9 avivace/ror2server:latest "/bin/sh -c ${STEAMA…" 8 minutes ago Up 7 minutes 0.0.0.0:27015->27015/udp, 27016/udp, 0.0.0.0:27016->27016/tcp recursing_shirley
root@ror2-server:~# docker port recursing_shirley
27016/tcp -> 0.0.0.0:27016
27015/udp -> 0.0.0.0:27015
Steamwork API seems to show it's good
{"response":{"success":true,"servers":[{"addr":"x.x.x.x.62:27016","gmsindex":65534,"appid":632360,"gamedir":"Risk of Rain 2","region":-1,"secure":true,"lan":false,"gameport":27015,"specport":0}]}}
But it doesn't show up in the server list at all. Can also connect to it manually as well.
from ror2-server.
Works perfectly, thanks again, @dubvulture. I see you've already updated the readme as well. 👐
from ror2-server.
It doesn't seem like the 27016/tcp forward is needed. My server is now showing up only using the 27015/udp and 27016/udp. Thanks @dubvulture!
from ror2-server.
@Vam-Jam Do you know if the same is happening when launching the server on Windows?
from ror2-server.
After looking at their discord, they just edited the Assembly-CSharp.dll
to fix the issue.
Ror2 dev's are also aware of the issues with dedi servers, so it seems like it will get fixed next update too.
My server is now up on the server browser, so it works. Looks like the bad_version
is caused by the game telling steam we are using version 0.0.0.0
from ror2-server.
@Vam-Jam Do you think we can ship the docker with the modified version of Assembly-CSharp.dll to fix the issue? I.e. after the steam installation replace it?
from ror2-server.
@InfernalPlacebo Mh, you're right.
Maybe we can generate a diff of the decompiled source of the DLL and generate the patched version from the one downloaded by the Steam client? In this way we could also track the modifications applied
from ror2-server.
Hmm. I'm still struggling to get this to work.
I'm forwarding the following ports:
25565(udp) -> 25565(udp)
25566(tcp) -> 25566(tcp)
I'm using this docker setup:
version: '3'
services:
riskofrain:
image: avivace/ror2server
ports:
- "27015:27015/udp"
- "27016:27016"
environment:
- "R2_HOSTNAME=ou"
- "R2_ENABLE_MODS=1"
- "R2_HEARTBEAT=1"
- "R2_PSW=something"
volumes:
- ./modding:/home/steam/ror2-dedicated/mods
I look at the steamworks API to double check:
http://api.steampowered.com/ISteamApps/GetServersAtAddress/v0001/?format=json&addr=<my ip>
It shows some response:
{"response":{"success":true,"servers":[{"addr":"<my ip>:27016","gmsindex":65534,"appid":632360,"gamedir":"Risk of Rain 2","region":-1,"secure":true,"lan":false,"gameport":27015,"specport":0}]}}
This all seems correct, yeah? But it still doesn't show up in the server browser. This might not be an issue with this container, but maybe just still a bug with the game?
from ror2-server.
@ouvoun since you enabled mods you should try installing the same mods on your client.
If you already did that try disabling all mods and let me know what happens.
from ror2-server.
I did have that same thought as well, so I already tried it. Just to double check again, I tried again right now.
Vanilla client, vanilla server. Server logs still say the IP was discovered, and I see in steamworks that it sees the server. Still doesn't show up.
from ror2-server.
@ouvoun I'm just noticing an inconsistency in the port configuration in your first post. You said 2556x and then put 2701x in the configuration.
Is that a typo? If you want to use custom ports, check out the recently updated README with the instructions on how to configure them.
from ror2-server.
Heh, sorry. Definitely a typo. I'm forwarding ports 27015 & 27016. Anything in the 2xx range my brain autocorrects to Minecraft's ports. 😄
I can definitely still join the server manually using the console, so I really don't think it's an issue with port forwarding.
from ror2-server.
Ok, turns out you need to add -p 27016:27016/udp
.
I always did that even though it's not mentioned anywhere and now I'm not even sure if you need to forward the TCP one.
from ror2-server.
Related Issues (20)
- Run local server via localtunnel or similar HOT 4
- Wine can not find /home/steam/ror2-dedicated/Risk of Rain 2.exe HOT 5
- Server Boots hangs on 004a:fixme:winsock:WS_setsockopt SO_SNDBUF HOT 7
- Mods will not load HOT 1
- Server not shown in server list. HOT 3
- After I open the console and input the command, why do the following problems occur HOT 1
- Trying to run server with quickstart guide (on windows 11) HOT 3
- it doesn't seem to work with players more than 4, despite adding the environment variable HOT 11
- Multiplayer server not working? HOT 2
- Always prompt "002c:fixme:rawinput:GetRegisteredRawInputDevices devices 0x7f7b1204d3a0, device_count 0x21e940, size 16 stub!" HOT 1
- Server not starting HOT 1
- MarkObjects very high latency HOT 1
- control game version HOT 1
- Is there a way to make the sever private? HOT 1
- [Compatibility] Upstream steamcmd docker image upgraded to Debian 11 HOT 3
- Whether I set R2_HOSTNAME or not , it only show "??????" in the lobby list. HOT 3
- failed to install HOT 1
- Failed to create socket HOT 1
- can't connect to server HOT 2
- ror2 old version in docker image
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ror2-server.