Would it be possible to have all players share the same playerid?


#1

I would like to play fully coop, we share everything.

One town, two player


#2

Or it could be that we share all items, but have our own people.


#3

There used to be a bug which caused that effect, and it sounded like the issue was related to multiple players being “collapsed” into the same player ID… so I would guess that if you had some way to put multiple players on the same ID, they’d share everything in Co-op style. This would mean sharing a single set of hearthlings too, and might lead to odd things with the daily update etc. (e.g. would it be one shared daily update, or would each player get one? IDK anywhere near enough about the code to answer that haha.)


#4

If you connect to multiplayer without using Steam (some instructions here Multiplayer without Steam?), if you make sure all players have the same “user_id” in your user_settings.json, you should be able to connect as the same player.


#5

Oh Nice, I will try this Tonight.

Thanks !!!


#6

I just tried using this on both side :

“user_id” : “teamGabie”,

and in game if I do:

e:get_player_id()

I still get “player_1” and “developer_1”

even If I log using user_settings with Steam OFF.

(I had to copy manually each mods in the mods folder to get them sync)

Any other ideas ?


#7

I tried with my user_id copied over to the second player, not working.

Even without any mods, it doesnt work, I still have different player_id and I cannot share workbench or other stuff.

Also I checked the Lua and the player_id seems to be set in C++, I can go up until it call get_player_id in ENTITY class…

Thanks for helping !


#8

Player id is separate from user_id. Could you save the game and send me the save file? And also a log from the game where the client is trying to connect, that would help too.


#9

If this works, it might be possible to mod multiplayer to allow players to set the user_id as an argument when connecting, maybe. Theme it to make it make sense, “Which town would you like to join?” Pulldown options: <user_id01>, <user_id02> etc.

It would basically offer teams. Groups of human players sharing operation of different towns.

Thoughts?


#10

Taking it a step further, the mod could also include an authorization layer:

  1. Player who founds the town is the Founder/Mayor/Leader/Parent Owner of the town. Create something like founder_id that is populated with that player’s client ID.
  2. Link founder_id and client ID to the ownership data (e.g. user_id) of hearthlings.
  3. This would allow the client ID to change to a different player while preserving the founder ID.

Example:
megashub client ID: 012345
founder ID: 012345
user ID: 098765 (“Town Name”)

sdee client ID: 876543

megashub, as Founder, could then delegate control of hearthlings within the same town (user_id) to sdee to manage exclusively. If sdee disconnects, delegation reverts back to founder_id.

You’d probably have to institute some form of founder change voting system to cover the case of the founder disconnecting (when the founder is not also the host).

Doing this would theoretically allow a group of players to divvy up town responsibilities within the same “user_id”.

megashub handles all the combat units, sdee handles building and refinement, someone else handles farming and trapping, etc.


#11

Sure

Here it is : twoplayer-onetown.zip (3.4 MB)


#12

Yeah ! it works !

I was digging around in the file I sent and I found this ! I replace “developer_1” with “player_1” and I have only 5 heartling that both me and my wife can control. One town, one daily, one color.

server_metadata.json
“clients” : {
“host” : {
“player_id” : “player_1”,
“client_id” : “host”,
“provider” : “host”
},
“11a4a769-7ad2-4198-9345-865886900686” : {
“player_id” : "player_1",
“client_id” : “11a4a769-7ad2-4198-9345-865886900686”,
“provider” : “develop”
}
},

But we receive so many trader, goblin village and shop notification, once every 5 seconds.
Also some notification like : “Alert” doesn’t get sent to the other player, but most works (I can pause a building that the other started).