core-keeper-dedicated
core-keeper-dedicated copied to clipboard
Host does not allow crossplay
I run Docker in WSL (Windows 11). When I try to join the game, it shows the message "Host does not allow crossplay." I launch the game from XBOX Game Pass PC.
I am not sure if this works now as the README of the Dedicated Server contains the following Limitations chapter:
The dedicated server is currently only available via Steam, and only allows Steam users to connect to it. This is because the dedicated server does not use a Steam user id, but the networking backend used to connect with non-Steam users needs a user ID for authentication.
Edit:
Have you tried to use the SERVER_IP and SERVER_PORT variables?
The dedicated server is currently only available via Steam, and only allows Steam users to connect to it. This is because the dedicated server does not use a Steam user id, but the networking backend used to connect with non-Steam users needs a user ID for authentication
Why would the team do this and hide such a restriction buried in a Readme? I just bought the game after playing on GamePass after reading that there's a dedicated server for me and my friends to log into, but after buying the GamePass version that restriction (if it actually is a Steam exclusive thing) kinda makes me want to cancel the idea and refund.
Can Windows Store <> Steam users really not play together via a dedicated server?
The dedicated server is currently only available via Steam, and only allows Steam users to connect to it. This is because the dedicated server does not use a Steam user id, but the networking backend used to connect with non-Steam users needs a user ID for authentication
Why would the team do this and hide such a restriction buried in a Readme? I just bought the game after playing on GamePass after reading that there's a dedicated server for me and my friends to log into, but after buying the GamePass version that restriction (if it actually is a Steam exclusive thing) kinda makes me want to cancel the idea and refund.
Can Windows Store <> Steam users really not play together via a dedicated server?
Can you try setting SERVER_IP and SERVER_PORT?
The dedicated server is currently only available via Steam, and only allows Steam users to connect to it. This is because the dedicated server does not use a Steam user id, but the networking backend used to connect with non-Steam users needs a user ID for authentication
Why would the team do this and hide such a restriction buried in a Readme? I just bought the game after playing on GamePass after reading that there's a dedicated server for me and my friends to log into, but after buying the GamePass version that restriction (if it actually is a Steam exclusive thing) kinda makes me want to cancel the idea and refund. Can Windows Store <> Steam users really not play together via a dedicated server?
Can you try setting SERVER_IP and SERVER_PORT?
Can you elaborate on this? I installed the server via the 1 line Docker CLI instructions shown in the readme, and in the game when clicking Join Game I only have the option to enter a Server ID, not an IP/Port.
The dedicated server is currently only available via Steam, and only allows Steam users to connect to it. This is because the dedicated server does not use a Steam user id, but the networking backend used to connect with non-Steam users needs a user ID for authentication
Why would the team do this and hide such a restriction buried in a Readme? I just bought the game after playing on GamePass after reading that there's a dedicated server for me and my friends to log into, but after buying the GamePass version that restriction (if it actually is a Steam exclusive thing) kinda makes me want to cancel the idea and refund. Can Windows Store <> Steam users really not play together via a dedicated server?
Can you try setting SERVER_IP and SERVER_PORT?
Can you elaborate on this? I installed the server via the 1 line Docker CLI instructions shown in the readme, and in the game when clicking Join Game I only have the option to enter a Server ID, not an IP/Port.
I don't know either. But still sad I have XBOX Game pass version.
The dedicated server is currently only available via Steam, and only allows Steam users to connect to it. This is because the dedicated server does not use a Steam user id, but the networking backend used to connect with non-Steam users needs a user ID for authentication
Why would the team do this and hide such a restriction buried in a Readme? I just bought the game after playing on GamePass after reading that there's a dedicated server for me and my friends to log into, but after buying the GamePass version that restriction (if it actually is a Steam exclusive thing) kinda makes me want to cancel the idea and refund. Can Windows Store <> Steam users really not play together via a dedicated server?
Can you try setting SERVER_IP and SERVER_PORT?
Can you elaborate on this? I installed the server via the 1 line Docker CLI instructions shown in the readme, and in the game when clicking Join Game I only have the option to enter a Server ID, not an IP/Port.
I don't know either. But still sad I have XBOX Game pass version.
Same. I wanted to use my character and also collect Xbox achievements, plus I know a few people who are playing this through GamePass. I do not have Steam.
It's so crazy to me that dedicated server software would be made for this otherwise excellent game, only to lock it to one specific storefront. Like... why would you do that?!
Just found an interesting point. There seems to be a parameter "-allownosteam" which seems not to be used yet. (At least I could not find where it is used)
Also https://discord.com/channels/851842678340845600/1288555143444430919 describes cross play based on a setting in the ServerConfig.json (on Windows hosts)
I don't mind trying to set those if you can tell me how to make changes to a running Docker container (my Docker knowledge is limited I'm afraid).
I'm running an Ubuntu host.
I added the parameter to a test branch. https://github.com/Micke90s/core-keeper-dedicated/blob/d9f14e2db556d6e28e043f2acc31b267fd3d9eea/scripts/compile-parameters.sh#L22
You could build the Docker image by source.
This will pull the test branch and build the image core-keeper-dedicated
git clone https://github.com/Micke90s/core-keeper-dedicated.git
cd core-keeper-dedicated
git checkout allownosteam
docker build . --tag core-keeper-dedicated
You have to replace the image in the docker-compose.yml from escaping/core-keeper-dedicated to core-keeper-dedicated to use the created image.
To setup the server based on your docker-compose.yml you have to run
docker-compose up -d
To check the second option with ServerConfig.json you have to change the file manually. Should be under /home/steam/core-keeper-data inside the container. The easiest way would be if the volume is accessible from the host system.
e.g. by setup the volume as local path
On host: (create directory and make it read an writeable, 777 is not the best but the easiest solution)
mkdir /srv/core-keeper-data
chmod 777 /srv/core-keeper-data
In docker-compose.yml
volumes:
- server-files:/home/steam/core-keeper-dedicated
- /srv/core-keeper-data:/home/steam/core-keeper-data
Then docker-compose up -d to start the server. after this /srv/core-keeper-data should contain the files.
Add "crossPlay":false into the ServerConfig.json. Restart the server by
docker-compose down
docker-compose up -d
I think that should be all. 🤔
I added the parameter to a test branch. https://github.com/Micke90s/core-keeper-dedicated/blob/d9f14e2db556d6e28e043f2acc31b267fd3d9eea/scripts/compile-parameters.sh#L22
You could build the Docker image by source.
This will pull the test branch and build the image
core-keeper-dedicatedgit clone https://github.com/Micke90s/core-keeper-dedicated.git cd core-keeper-dedicated git checkout allownosteam docker build . --tag core-keeper-dedicatedYou have to replace the
imagein thedocker-compose.ymlfromescaping/core-keeper-dedicatedtocore-keeper-dedicatedto use the created image.To setup the server based on your
docker-compose.ymlyou have to rundocker-compose up -dTo check the second option with
ServerConfig.jsonyou have to change the file manually. Should be under/home/steam/core-keeper-datainside the container. The easiest way would be if the volume is accessible from the host system.e.g. by setup the volume as local path
On host: (create directory and make it read an writeable, 777 is not the best but the easiest solution)
mkdir /srv/core-keeper-data chmod 777 /srv/core-keeper-dataIn
docker-compose.ymlvolumes: - server-files:/home/steam/core-keeper-dedicated - /srv/core-keeper-data:/home/steam/core-keeper-dataThen
docker-compose up -dto start the server. after this/srv/core-keeper-datashould contain the files. Add"crossPlay":falseinto theServerConfig.json. Restart the server bydocker-compose down docker-compose up -dI think that should be all. 🤔
So it worked?
Unfortunately, it will not work. We got an official feedback on the Core Keeper Discord Server: (Thread https://discord.com/channels/851842678340845600/1288555143444430919)
That's alright, I get it can be a bit confusing sometimes But you are correct, dedicated servers only accept Steam users at the moment. We will launch support for the other stores at some point as well, we know it's a highly requested feature. We just don't have an ETA on it at the moment, but we're definitely looking into it
Seems that cross-play for PC (Steam, Epic Games, GoG, Microsoft Store) is activated: https://store.steampowered.com/news/app/1621690/view/591771368562885598?l=english
README:
## How to run with Direct Connections
Setting up the server for only Steam users doesn't require more than the above steps. But Direct Connections need few more extra steps.
To make the Server use Direct Connections and thus make it support cross-play, you need to:
Open port on your Servers Firewall
Port-Forward the correct port from your router to your Server
Pass the port at launch to your Game Server.
Once these has been set up, Steam players are still able to use the Game ID, but all other PC players can use the IP, port and password to join the server.
I think this already should work without extra steps, as we already support the direct connection parameters.
EDIT:
Just saw there is a new launch parameter -allowonlyplatform
## Platform
USAGE: -allowonlyplatform PLATFORM
Set the server only allow players from given platform. Effectively disables the cross-play from server. Has no effect unless -port is also set enabling Direct Connections.
Possible values are (both names and indices are valid):
- Steam (1)
- Epic (2)
- Microsoft (3)
- GOG (4)
Password support also is missing
## Password
USAGE: -password "Password"
Select the password players should use when trying to join using direct connections. Most characters are allowed if provided between "quotation marks", and maximum length password can be 28 characters. If omitted or invalid, a random password will be generated. Argument only valid when using Direct Connections.
EXAMPLE: -password "PleaseChangeMe"
... If omitted or invalid, a random password will be generated. ...
Sounds like the direct connection forces a password. 🤔 We may need to add this to the Discord message
// Token: 0x0400399E RID: 14750
public static readonly char[] sessionIdCharacterPool = new char[]
{
'1', '2', '3', '4', '5', '6', '7', '8', '9', 'A',
'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'L',
'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
'X', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h',
'i', 'j', 'k', 'm', 'n', 'p', 'q', 'r', 's', 't',
'u', 'v', 'w', 'z'
};
I wonder if they made an mistake or the missing characters are intentional....
sessionIdCharacterPool should be part of the game id.
Select the game ID clients use to connect to this server. Game ID Needs to be at least 15 but at max 28 alphanumeric characters, and may not include Y,y,x,0, or O.
I think this should just avoid characters which could be mixed up.
There is more than that missing, like Upper case i and Lower case L
There is more than that missing, like Upper case i and Lower case L
I missed that. Thank you. May they changed this with the current release and missed to update the README?
Just tried it on windows host:
Started CoreKeeperServer.exe Provided GameID "abcdefghijklmn" contained invalid characters. Proper GameID was created instead.
May they changed this with the current release and missed to update the README?
Maybe, it is kinda annoying to use words as game id, things like mylovelycorekeeperserver wont work
May they changed this with the current release and missed to update the README?
Maybe, it is kinda annoying to use words as game id, things like
mylovelycorekeeperserverwont work
Yes, that’s annoying. Also, this change will break a lot existing GameIDs.
Can I confirm that dedicated servers now support other storefronts + consoles? The issue is still open so I wasn't sure. I might have to set this up if so.
@TreeBranches It still is not a full crossplay, as PlayStation and Nintendo Switch seems not to be supported yet.
Well, we’re pleased to report that PC gamers can now play Core Keeper together on the same dedicated servers, whether they’re running the game on Steam, Epic Games, GoG, or the Microsoft Store!
Source: https://store.steampowered.com/news/app/1621690/view/591771368562885598?l=english
For Steam, Epic Games, GoG, or the Microsoft Store the direct connection mode should work.
@TreeBranches It still is not a full crossplay, as PlayStation and Nintendo Switch seems not to be supported yet.
Well, we’re pleased to report that PC gamers can now play Core Keeper together on the same dedicated servers, whether they’re running the game on Steam, Epic Games, GoG, or the Microsoft Store!
Source: https://store.steampowered.com/news/app/1621690/view/591771368562885598?l=english
For
Steam, Epic Games, GoG, or the Microsoft Storethe direct connection mode should work.
I don't care about Playstation and Nintendo, I care about Xbox and Windows Store.
But going by the post I guess it's purely "PC Only" as opposed to PC and Console.