-
-
Notifications
You must be signed in to change notification settings - Fork 853
Description
User story
Core Keeper seems to ignore config file settings such as password, IP and port. Must be set as launch parameters instead.
Game
Core Keeper
Linux distro
Ubuntu 24.04
Command
command: start
Further information
So I spent hours last night struggling to play this game with my son - That's not a fault of LGSM, unfortunately this game while fun just happens to have some of THE WORST multiplayer features of any game I have ever player (I have played C&C using a null modem if that gives you any indication of how bad this games MP is...)
Anyway, the game simply seems to ignore any of the config file options and instead these options MUST be set as launch parameters. If you attempt to do something like change the port the game will just ignore this and launch the game using a random port of its choosing using the garbage PlayFab system or something like that which doesn't allow cross-play and requires you to join via random code (more on this in a sec).
The game ALSO generates a random password and it doesn't tell you what this password is... So you need to go hunting for it under the GameID.txt file hidden inside the games server folder.
To fix this instead of specifying a port in the config file set it with -port 1234 as a launch parameter and then check the UDP connections and you'll see the game is now running with that specified port as expected.
As the patch allowing crossplay just came out recently LGSM doesn't do a great job of documenting what needs to be done to get this game working properly (Again, I'm not faulting LGSM here, the developers of Core Keeper did a poor job with the dedicated server).
So I'm not really sure what the best solution for this would be and I realise this is an edge case, but perhaps...
Many configs for this game need to be set as launch parameters instead.
Also when you run 'ckserver details' the details give you incorrect information. Eg, I thought the game was launching on port 1234 because LGSM SAID it was running on port 1234, but it's just giving you the information from the config file, which we have established is actually just ignored, so instead LGSM needs to provide the port specified in the launch parameters.
Providing the password as well in the game details would be useful as again, I had a password specified in the config file and kept trying it over and over until I realised the game had generated a random password in the GameID.TXT file which worked.
Giving the GameID in the Game Details is probably a good idea too. I'm not 100% sure if you can use the GameID and the IP/Port/Password at the same time, but for people that want to use that method instead they'll need to know the GameID they should be providing other players.
Example of my working command-line parameters:
xvfb-run ./CoreKeeperServer -batchmode -datapath -port 1234 /home/ckserver/serverfiles/gamedata/ckserver -logfile /home/ckserver/serverfiles/logs/ckserver-game.log
cat ServerConfig.json
{
"gameId": "qkZKFS44B5wTUggmEg1v23qvvcbh",
"password": "Icecream34",
"world": 0,
"worldName": "LinuxGSM",
"worldSeed": "0",
"hashedWorldSeed": 0,
"maxNumberPlayers": 100,
"maxNumberPacketsSentPerFrame": 1,
"networkSendRate": 20,
"worldMode": 0,
"seasonOverride": -1
}Don't worry that code and password don't work anyway. Censored the ones below. =)
cat GameInfo.txt
No GameID found. Creating new GameID for the session.
No proper Password found. Creating new Password for the session.
Allowed platforms: All
GameID: Atbxxxxxxxxxxx3LH
Local IP: 0.0.0.0
Public IP: xxx.xxx.xxx.xxx
Port: 1234
Password: 7xxxxxxxxxxx6
Paste to ip-field in "join via IP" menu to easily fill all values
xxx.xxx.xxx.xxx:1234::7xxxxxxxxxxw6
Here you can see what I had set in the server config which was ignored compared to what the server generated automatically (I think putting password and gameID as command line parameters is possible too.
Here is the contents of ARGUMENTS.TXT which describes the launch parameter options.
## World Index
USAGE: -world INDEX
Select the world index to use. Setting this parameter allows you to have multiple save files in your data path and switch between them. INDEX may take any value between 0 and 29, inclusive
EXAMPLE: -world 3
## World Name
USAGE: -worldname NAME
Select the world name to use. This is the name that connecting clients will see in their network settings. If NAME contains spaces it must be place in quotation mark.
EXAMPLE: -worldname "Core Keeper Server"
## World Seed
USAGE: -worldseed SEED
Select the world seed to use. This is the seed that is used to determine most random behavior in the game, most notably world generation and dungeon placement. SEED is an arbitrary string. If SEED contains spaces it must be placed in quotation marks. The seed behaves the same as if it was set during world creation in the regular game client. Only takes effect if set when the world is first created. Omit to generate a random seed.
EXAMPLE: -worldseed "Nice World"
## Hashed World Seed
USAGE: -hashedworldseed SEED
Similar to -worldseed, but specifies an already hashed seed. This is useful if you have lost access to the original seed string and only have the hashed version. Must be an unsigned 32-bit integer in the range 0 to 4294967295 (inclusive). Ignored if-worldseed is set.
EXAMPLE: -hashedworldseed 42
## World Mode
USAGE: -worldmode MODE
Select the world mode to use. Corresponds to the same setting when creating a world using the regular game client. Default is Normal. Changing between creative and non-creative modes after the world has been created is not supported.
Possible values are (both names and indices are valid):
- Normal (0): Face balanced monsters for a fair and engaging challenge.
- Hard (1): Tackle tougher monsters and reap greater rewards.
- Creative (2): Set your imagination free in an empty, limitless world.
- Casual (4): Encounter gentler monsters in a relaxed, enjoyable setting.
EXAMPLE 1: -worldmode 1
EXAMPLE 2: -worldmode Hard
## Season
USAGE: -season SEASON
Set the server season. If omitted, the season is set based on the current system date.
Possible values are (both names and indices are valid):
- None (0)
- Easter (1)
- Halloween (2)
- Christmas (3)
- Valentine (4)
- Anniversary (5)
- CherryBlossom (6)
- LunarNewYear (7)
EXAMPLE 1: -season 1
EXAMPLE 2: -season Easter
## Content Bundle
USAGE: -activatecontent BUNDLE1,BUNDLE2,...
Activate new content bundles if not already active for this game world. Once activated, the content bundle will stay active permanently for this world. There is no way to undo this. Multiple bundles may be activated at the same time by listing them separated by commas.
Possible values are (both names and indices are valid):
- GiantCicadaBossDungeon (2): A dangerous enemy has appeared! Adding them may overwrite some already explored areas in the Desert of Beginnings.
- NatureBiomeCicadas (3): The Queen's influence extends into nearby areas as well. Adding this bundle introduces a new enemy type to Azeos' Wilderness, which might overwrite some already explored areas in this biome.
- GuaranteedOases (4): Adding this bundle guarantees that this world gets at least a few Oases biomes in the Desert of Beginnings, even if it has already been fully explored. Doing so will overwrite everything in the areas where they appear.
- AbioticFactor (6): A fragment of a research facility has appeared through an extradimensional rift! Adding it may overwrite an already explored area in the Forgotten Ruins.
EXAMPLE 1: -activatecontent GiantCicadaBossDungeon
EXAMPLE 2: -activatecontent GiantCicadaBossDungeon,GuaranteedOases
EXAMPLE 3: -activatecontent 2,3
## Data Path
USAGE: -datapath PATH
Set the save file location. If omitted, the server will default to a subfolder named "DedicatedServer" at the default Core Keeper save location.
EXAMPLE: -datapath "C:/Users/MyUser/Desktop/CKServerSaves"
## Game ID
USAGE: -gameid 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. If omitted or invalid, a random game ID will be generated.
EXAMPLE: -gameid WH3rhzuk5TfbA4jFuZPg7SmbCHES
## 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"
## Port
USAGE: -port PORT
Select a port to bind to. Setting the port will make the server accept direct connections, effectively enabling cross-play. The port must be open to accept incoming connections. Use -port 27015 to connect to a server on the same LAN. If omitted, the server will instead use the Steam relay network and won't accept direct connections using IP. This argument may only be set using command line arguments. Setting it in ServerConfig.json has no effect.
EXAMPLE: -port 7778
## IP
USAGE: -ip IP
Sets the IP address that the server binds to. Has no effect unless -port is also set. This argument may only be set using command line arguments. Setting it in ServerConfig.json has no effect. If not set, default value 0.0.0.0 is used, which will accept connections from any internal ip.
EXAMPLE: -ip 0.0.0.0
## Max Players
USAGE: -maxplayers COUNT
Set the maximum number of players that can connect to the server. If omitted, the server will default to 8 players. Setting a higher player count may require more server resources or make the session unstable.
EXAMPLE: -maxplayers 16
## 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)
EXAMPLE 1: -allowonlyplatform 1
EXAMPLE 2: -allowonlyplatform SteamRelevant log output
Steps to reproduce
- Setup CoreKeeper the same way you'd expect any dedicated server to work.
- It doesn't work because the developers of this game did everything in their power to ruin multiplayer.
- Set options as launch parameters instead and that seems to work.
Metadata
Metadata
Assignees
Labels
Type
Projects
Status