Git Product home page Git Product logo

Comments (20)

dubvulture avatar dubvulture commented on July 30, 2024 7

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

serben

from ror2-server.

Schuwi avatar Schuwi commented on July 30, 2024 2

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.

Vam-Jam avatar Vam-Jam commented on July 30, 2024 2

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.

fnicolini avatar fnicolini commented on July 30, 2024 2

@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.

InfernalPlacebo avatar InfernalPlacebo commented on July 30, 2024 2

@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.

avivace avatar avivace commented on July 30, 2024 1

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.

Vam-Jam avatar Vam-Jam commented on July 30, 2024 1

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.

fdcarl avatar fdcarl commented on July 30, 2024 1

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.

ouvoun avatar ouvoun commented on July 30, 2024 1

Works perfectly, thanks again, @dubvulture. I see you've already updated the readme as well. 👐

from ror2-server.

fdcarl avatar fdcarl commented on July 30, 2024 1

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.

avivace avatar avivace commented on July 30, 2024

@Vam-Jam Do you know if the same is happening when launching the server on Windows?

from ror2-server.

Vam-Jam avatar Vam-Jam commented on July 30, 2024

image

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.

avivace avatar avivace commented on July 30, 2024

@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.

avivace avatar avivace commented on July 30, 2024

@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.

ouvoun avatar ouvoun commented on July 30, 2024

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.

dubvulture avatar dubvulture commented on July 30, 2024

@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.

ouvoun avatar ouvoun commented on July 30, 2024

@dubvulture

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.

dubvulture avatar dubvulture commented on July 30, 2024

@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.

ouvoun avatar ouvoun commented on July 30, 2024

@dubvulture

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.

dubvulture avatar dubvulture commented on July 30, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.